Python源码示例:ecdsa.ellipticcurve.INFINITY

示例1
def from_parent(parent_key, i):
        if i & HARDENED_INDEX:
            raise ValueError("Can't generate a hardened child key from a parent public key.")

        child = hmac.new(parent_key.chain_code,
                         parent_key.compressed_key + i.to_bytes(length=4, byteorder='big'),
                         hashlib.sha512).digest()
        child_left, child_right = child[:32], child[32:]
        if int.from_bytes(child_left, 'big') >= ecdsa.generator_256.order():
            return None

        temp_pri_key = SigningKey.from_string(string=child_left, curve=curves.NIST256p)

        ki = temp_pri_key.verifying_key.pubkey.point + parent_key.key.pubkey.point
        if ki == ellipticcurve.INFINITY:
            return None

        return HDPublicKey(public_key=VerifyingKey.from_public_point(point=ki, curve=curves.NIST256p),
                           chain_code=child_right,
                           index=i,
                           depth=parent_key.depth + 1,
                           parent_fingerprint=parent_key.fingerprint) 
示例2
def get_child(self, index, hardened=False):
        left, right = self.get_hash(index, hardened)
        point = ((left * generator_secp256k1)
                 + VerifyingKey.from_string(self.key.uncompressed[1:], curve=SECP256k1).pubkey.point)
        if point == INFINITY:
            raise ValueError('Computed point equals INFINITY')
        return ExtendedPublicKey(PublicKey.from_point(point), right, self.depth+1, self.get_fingerprint(), index, False) 
示例3
def test_infinity_point(self):
        w = Wallet.new_random_wallet()
        with patch('multimerchant.wallet.keys.PublicKey.to_point',
                   return_value=INFINITY):
            self.assertRaises(
                InfinityPointException,
                w.get_child,
                1) 
示例4
def test_infinity_point(self):
        w = Wallet.new_random_wallet()
        with patch('bitmerchant.wallet.keys.PublicKey.to_point',
                   return_value=INFINITY):
            self.assertRaises(
                InfinityPointException,
                w.get_child,
                1)