def __init__(self, value, order, rand = False): '''Creates an element value in the field F_order^2. value must be an array [c,d] that describes polynomial cx + d If rand parameter is set to True, value will be ignored and a random element of the field will be returned. @note: Ensuring that order is prime is programmer responsibility! ''' assert order > 1 if rand: self.value = [get_256_random_bits_os() % order, get_256_random_bits_os() % order] else: self.value = [value[0] % order, value[1] % order] self.order = order self.orderexp = order ** self.exp
def __init__(self, value, order, rand = False): '''Creates an element value in the field F_order. If rand parameter is set to True, value will be ignored and a random element of the field will be returned. @note: Ensuring that order is prime is programmer responsibility! ''' assert order > 1 if rand: self.value = get_256_random_bits_os() % order else: self.value = value % order self.order = order