Lines Matching refs:self
129 def __init__(self, val_a: str, val_b: str = "0", bits_in_limb: int = 32) -> None:
130 self.val_a = val_a
131 self.val_b = val_b
134 self.int_a = hex_to_int(val_a)
135 self.int_b = hex_to_int(val_b)
136 self.dependencies = deepcopy(self.dependencies)
137 if bits_in_limb not in self.limb_sizes:
139 if self.input_style == "arch_split":
140 self.dependencies.append("MBEDTLS_HAVE_INT{:d}".format(bits_in_limb))
141 self.bits_in_limb = bits_in_limb
144 def boundary(self) -> int:
145 if self.arity == 1:
146 return self.int_a
147 elif self.arity == 2:
148 return max(self.int_a, self.int_b)
152 def limb_boundary(self) -> int:
153 return bound_mpi(self.boundary, self.bits_in_limb)
156 def limbs(self) -> int:
157 return limbs_mpi(self.boundary, self.bits_in_limb)
160 def hex_digits(self) -> int:
161 return hex_digits_for_limb(self.limbs, self.bits_in_limb)
163 def format_arg(self, val: str) -> str:
164 if self.input_style not in self.input_styles:
166 if self.input_style == "variable":
169 return val.zfill(self.hex_digits)
171 def format_result(self, res: int) -> str:
173 return quote_str(self.format_arg(res_str))
176 def arg_a(self) -> str:
177 return self.format_arg(self.val_a)
180 def arg_b(self) -> str:
181 if self.arity == 1:
183 return self.format_arg(self.val_b)
185 def arguments(self) -> List[str]:
186 args = [quote_str(self.arg_a)]
187 if self.arity == 2:
188 args.append(quote_str(self.arg_b))
189 return args + self.result()
191 def description(self) -> str:
198 if not self.case_description:
199 if self.arity == 1:
200 format_string = "{1:x} {0}" if self.suffix else "{0} {1:x}"
201 self.case_description = format_string.format(
202 self.symbol, self.int_a
204 elif self.arity == 2:
205 self.case_description = "{:x} {} {:x}".format(
206 self.int_a, self.symbol, self.int_b
211 def is_valid(self) -> bool:
215 def result(self) -> List[str]:
276 def symbol(self) -> str:
278 return 'MBEDTLS_MPI_MOD_REP_' + self.name
293 def __init__(self, val_n: str, val_a: str, val_b: str = "0",
296 self.val_n = val_n
299 self.int_n = hex_to_int(val_n)
301 def to_montgomery(self, val: int) -> int:
302 return (val * self.r) % self.int_n
304 def from_montgomery(self, val: int) -> int:
305 return (val * self.r_inv) % self.int_n
307 def convert_from_canonical(self, canonical: int,
311 return self.to_montgomery(canonical)
319 def boundary(self) -> int:
320 return self.int_n
323 def arg_a(self) -> str:
324 if self.montgomery_form_a:
325 value_a = self.to_montgomery(self.int_a)
327 value_a = self.int_a
328 return self.format_arg('{:x}'.format(value_a))
331 def arg_n(self) -> str:
332 return self.format_arg(self.val_n)
334 def format_arg(self, val: str) -> str:
335 return super().format_arg(val).zfill(self.hex_digits)
337 def arguments(self) -> List[str]:
338 return [quote_str(self.arg_n)] + super().arguments()
341 def r(self) -> int: # pylint: disable=invalid-name
342 l = limbs_mpi(self.int_n, self.bits_in_limb)
343 return bound_mpi_limbs(l, self.bits_in_limb)
346 def r_inv(self) -> int:
347 return invmod(self.r, self.int_n)
350 def r2(self) -> int: # pylint: disable=invalid-name
351 return pow(self.r, 2)
354 def is_valid(self) -> bool:
355 if self.int_a >= self.int_n:
357 if self.disallow_zero_a and self.int_a == 0:
359 if self.arity == 2 and self.int_b >= self.int_n:
363 def description(self) -> str:
370 if not self.case_description:
371 return super().description() + " mod {:x}".format(self.int_n)