Python ecdsa 模块,VerifyingKey() 实例源码

我们从Python开源项目中,提取了以下13个代码示例,用于说明如何使用ecdsa.VerifyingKey()

项目:start    作者:argeweb    | 项目源码 | 文件源码
def prepare_key(self, key):

        if isinstance(key, ecdsa.SigningKey) or \
           isinstance(key, ecdsa.VerifyingKey):
            return key

        if isinstance(key, string_types):
            if isinstance(key, text_type):
                key = key.encode('utf-8')

            # Attempt to load key. We don't know if it's
            # a Signing Key or a Verifying Key, so we try
            # the Verifying Key first.
            try:
                key = ecdsa.VerifyingKey.from_pem(key)
            except ecdsa.der.UnexpectedDER:
                key = ecdsa.SigningKey.from_pem(key)

        else:
            raise TypeError('Expecting a PEM-formatted key.')

        return key
项目:goofycoin    作者:homeowmorphism    | 项目源码 | 文件源码
def load_key(cls, wallet_name, key_type):
        if key_type == 'public_key':
            ecdsa_key = ecdsa.VerifyingKey
            extension = ".pk"
        elif key_type =='secret_key':
            ecdsa_key = ecdsa.SigningKey
            extension = ".sk"
        else:
            raise ValueError('Third argument key_type needs to be either public_key or secret_key.')

        key_path = os.path.join(settings.WALLETS_ABS_PATH, wallet_name + extension)
        with open(key_path, 'rb') as temp_file:
            hex_key = temp_file.read()
            bytes_key = unhexlify(hex_key)
            key = ecdsa_key.from_string(bytes_key, settings.bitcoin_curve)

        return key
项目:electrumx    作者:kyuupichan    | 项目源码 | 文件源码
def _verifying_key_from_pubkey(cls, pubkey):
        '''Converts a 33-byte compressed pubkey into an ecdsa.VerifyingKey
        object'''
        if not isinstance(pubkey, (bytes, bytearray)):
            raise TypeError('pubkey must be raw bytes')
        if len(pubkey) != 33:
            raise ValueError('pubkey must be 33 bytes')
        if pubkey[0] not in (2, 3):
            raise ValueError('invalid pubkey prefix byte')
        curve = cls.CURVE.curve

        is_odd = pubkey[0] == 3
        x = bytes_to_int(pubkey[1:])

        # p is the finite field order
        a, b, p = curve.a(), curve.b(), curve.p()
        y2 = pow(x, 3, p) + b
        assert a == 0  # Otherwise y2 += a * pow(x, 2, p)
        y = NT.square_root_mod_prime(y2 % p, p)
        if bool(y & 1) != is_odd:
            y = p - y
        point = EC.Point(curve, x, y)

        return ecdsa.VerifyingKey.from_public_point(point, curve=cls.CURVE)
项目:electrumx    作者:kyuupichan    | 项目源码 | 文件源码
def child(self, n):
        '''Return the derived child extended pubkey at index N.'''
        if not 0 <= n < (1 << 31):
            raise ValueError('invalid BIP32 public key child number')

        msg = self.pubkey_bytes + struct.pack('>I', n)
        L, R = self._hmac_sha512(msg)

        curve = self.CURVE
        L = bytes_to_int(L)
        if L >= curve.order:
            raise DerivationError

        point = curve.generator * L + self.ec_point()
        if point == EC.INFINITY:
            raise DerivationError

        verkey = ecdsa.VerifyingKey.from_public_point(point, curve=curve)

        return PubKey(verkey, R, n, self.depth + 1, self)
项目:TutLab    作者:KingsMentor    | 项目源码 | 文件源码
def prepare_key(self, key):

        if isinstance(key, ecdsa.SigningKey) or \
           isinstance(key, ecdsa.VerifyingKey):
            return key

        if isinstance(key, string_types):
            if isinstance(key, text_type):
                key = key.encode('utf-8')

            # Attempt to load key. We don't know if it's
            # a Signing Key or a Verifying Key, so we try
            # the Verifying Key first.
            try:
                key = ecdsa.VerifyingKey.from_pem(key)
            except ecdsa.der.UnexpectedDER:
                key = ecdsa.SigningKey.from_pem(key)

        else:
            raise TypeError('Expecting a PEM-formatted key.')

        return key
项目:TornadoWeb    作者:VxCoder    | 项目源码 | 文件源码
def prepare_key(self, key):

        if isinstance(key, ecdsa.SigningKey) or \
           isinstance(key, ecdsa.VerifyingKey):
            return key

        if isinstance(key, string_types):
            if isinstance(key, text_type):
                key = key.encode('utf-8')

            # Attempt to load key. We don't know if it's
            # a Signing Key or a Verifying Key, so we try
            # the Verifying Key first.
            try:
                key = ecdsa.VerifyingKey.from_pem(key)
            except ecdsa.der.UnexpectedDER:
                key = ecdsa.SigningKey.from_pem(key)

        else:
            raise TypeError('Expecting a PEM-formatted key.')

        return key
项目:lbryum    作者:lbryio    | 项目源码 | 文件源码
def _CKD_pub(cK, c, s):
    order = generator_secp256k1.order()
    I = hmac.new(c, cK + s, hashlib.sha512).digest()
    curve = SECP256k1
    pubkey_point = string_to_number(I[0:32]) * curve.generator + ser_to_point(cK)
    public_key = ecdsa.VerifyingKey.from_public_point(pubkey_point, curve=SECP256k1)
    c_n = I[32:]
    cK_n = GetPubKey(public_key.pubkey, True)
    return cK_n, c_n
项目:Repobot    作者:Desgard    | 项目源码 | 文件源码
def __init__(self, key, algorithm):
        if algorithm not in self.valid_hash_algs:
            raise JWKError('hash_alg: %s is not a valid hash algorithm' % algorithm)
        self.hash_alg = get_algorithm_object(algorithm)

        self.curve = self.curve_map.get(self.hash_alg)

        if isinstance(key, (ecdsa.SigningKey, ecdsa.VerifyingKey)):
            self.prepared_key = key
            return

        if isinstance(key, dict):
            self.prepared_key = self._process_jwk(key)
            return

        if isinstance(key, six.string_types):
            if isinstance(key, six.text_type):
                key = key.encode('utf-8')

            # Attempt to load key. We don't know if it's
            # a Signing Key or a Verifying Key, so we try
            # the Verifying Key first.
            try:
                key = ecdsa.VerifyingKey.from_pem(key)
            except ecdsa.der.UnexpectedDER:
                key = ecdsa.SigningKey.from_pem(key)
            except Exception as e:
                raise JWKError(e)

            self.prepared_key = key
            return

        raise JWKError('Unable to parse an ECKey from key: %s' % key)
项目:Repobot    作者:Desgard    | 项目源码 | 文件源码
def _process_jwk(self, jwk_dict):
        if not jwk_dict.get('kty') == 'EC':
            raise JWKError("Incorrect key type.  Expected: 'EC', Recieved: %s" % jwk_dict.get('kty'))

        x = base64_to_long(jwk_dict.get('x'))
        y = base64_to_long(jwk_dict.get('y'))

        if not ecdsa.ecdsa.point_is_valid(self.curve.generator, x, y):
            raise JWKError("Point: %s, %s is not a valid point" % (x, y))

        point = ecdsa.ellipticcurve.Point(self.curve.curve, x, y, self.curve.order)
        verifying_key = ecdsa.keys.VerifyingKey.from_public_point(point, self.curve)

        return verifying_key
项目:goofycoin    作者:homeowmorphism    | 项目源码 | 文件源码
def deprecated_load(cls, wallet_name): #cls stands for class, because the variable name class is taken
        with open(wallet_name, 'rb') as temp_file:
            temp_array = temp_file.read().splitlines()
            secret_key_hex, public_key_hex = temp_array 
            secret_key_bytes, public_key_bytes = unhexlify(secret_key_hex), unhexlify(public_key_hex)
            secret_key, public_key = ecdsa.SigningKey.from_string(secret_key_bytes, settings.bitcoin_curve), ecdsa.VerifyingKey.from_string(public_key_bytes, settings.bitcoin_curve)
            print("Wallet loaded.")
            return Wallet(secret_key, public_key)
项目:lbryschema    作者:lbryio    | 项目源码 | 文件源码
def __init__(self, public_key, certificate_claim_id):
        if not isinstance(public_key, ecdsa.VerifyingKey):
            raise Exception("Key is not type needed for verification")
        if not self.CURVE_NAME == public_key.curve.name:
            raise Exception("Curve mismatch")
        validate_claim_id(certificate_claim_id)
        self._public_key = public_key
        self._certificate_claim_id = certificate_claim_id
项目:lbryschema    作者:lbryio    | 项目源码 | 文件源码
def verifying_key_from_der(der):
        return ecdsa.VerifyingKey.from_der(der)
项目:electrumx    作者:kyuupichan    | 项目源码 | 文件源码
def __init__(self, pubkey, chain_code, n, depth, parent=None):
        super().__init__(chain_code, n, depth, parent)
        if isinstance(pubkey, ecdsa.VerifyingKey):
            self.verifying_key = pubkey
        else:
            self.verifying_key = self._verifying_key_from_pubkey(pubkey)
        self.addresses = {}