lbrycrd.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:lbryum 作者: lbryio 项目源码 文件源码
def verify_message(cls, address, sig, message):
        if len(sig) != 65:
            raise Exception("Wrong encoding")
        nV = ord(sig[0])
        if nV < 27 or nV >= 35:
            raise Exception("Bad encoding")
        if nV >= 31:
            compressed = True
            nV -= 4
        else:
            compressed = False
        recid = nV - 27

        h = Hash(msg_magic(message))
        public_key = MyVerifyingKey.from_signature(sig[1:], recid, h, curve=SECP256k1)
        # check public key
        public_key.verify_digest(sig[1:], h, sigdecode=ecdsa.util.sigdecode_string)
        pubkey = point_to_ser(public_key.pubkey.point, compressed)
        # check that we get the original signing address
        addr = public_key_to_bc_address(pubkey)
        if address != addr:
            raise Exception("Bad signature")

    # ECIES encryption/decryption methods; AES-128-CBC with PKCS7 is used as the cipher;
    # hmac-sha256 is used as the mac
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号