當前位置: 首頁>>代碼示例>>Python>>正文


Python hmac.digest方法代碼示例

本文整理匯總了Python中hmac.digest方法的典型用法代碼示例。如果您正苦於以下問題:Python hmac.digest方法的具體用法?Python hmac.digest怎麽用?Python hmac.digest使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在hmac的用法示例。


在下文中一共展示了hmac.digest方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: rootxprv_from_seed

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def rootxprv_from_seed(seed: Octets, version: Optional[Octets] = None) -> bytes:
    """Return BIP32 root master extended private key from seed."""

    seed = bytes_from_octets(seed)
    hd = hmac.digest(b"Bitcoin seed", seed, "sha512")
    k = b"\x00" + hd[:32]
    if version is None:
        v = NETWORKS["mainnet"]["bip32_prv"]
    else:
        v = bytes_from_octets(version)
    if v not in _XPRV_VERSIONS_ALL:
        raise ValueError(f"unknown extended private key version {v!r}")

    d: BIP32KeyDict = {
        "version": v,
        "depth": 0,
        "parent_fingerprint": b"\x00\x00\x00\x00",
        "index": b"\x00\x00\x00\x00",
        "chain_code": hd[32:],
        "key": k,
    }
    return serialize(d) 
開發者ID:fametrano,項目名稱:btclib,代碼行數:24,代碼來源:bip32.py

示例2: add_auth

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def add_auth(self, req, **kwargs):
        """
        Add AWS3 authentication to a request.

        :type req: :class`boto.connection.HTTPRequest`
        :param req: The HTTPRequest object.
        """
        # This could be a retry.  Make sure the previous
        # authorization header is removed first.
        if 'X-Amzn-Authorization' in req.headers:
            del req.headers['X-Amzn-Authorization']
        req.headers['X-Amz-Date'] = formatdate(usegmt=True)
        if self._provider.security_token:
            req.headers['X-Amz-Security-Token'] = self._provider.security_token
        string_to_sign, headers_to_sign = self.string_to_sign(req)
        boto.log.debug('StringToSign:\n%s' % string_to_sign)
        hash_value = sha256(string_to_sign.encode('utf-8')).digest()
        b64_hmac = self.sign_string(hash_value)
        s = "AWS3 AWSAccessKeyId=%s," % self._provider.access_key
        s += "Algorithm=%s," % self.algorithm()
        s += "SignedHeaders=%s," % ';'.join(headers_to_sign)
        s += "Signature=%s" % b64_hmac
        req.headers['X-Amzn-Authorization'] = s 
開發者ID:VirtueSecurity,項目名稱:aws-extender,代碼行數:25,代碼來源:auth.py

示例3: _calc_signature

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def _calc_signature(self, params, verb, path, server_name):
        boto.log.debug('using _calc_signature_2')
        string_to_sign = '%s\n%s\n%s\n' % (verb, server_name.lower(), path)
        if self._hmac_256:
            hmac = self._hmac_256.copy()
            params['SignatureMethod'] = 'HmacSHA256'
        else:
            hmac = self._hmac.copy()
            params['SignatureMethod'] = 'HmacSHA1'
        keys = params.keys()
        keys.sort()
        pairs = []
        for key in keys:
            val = boto.utils.get_utf8_value(params[key])
            pairs.append(urllib.quote(key, safe='') + '=' +
                         urllib.quote(val, safe='-_~'))
        qs = '&'.join(pairs)
        boto.log.debug('query string: %s' % qs)
        string_to_sign += qs
        boto.log.debug('string_to_sign: %s' % string_to_sign)
        hmac.update(string_to_sign)
        b64 = base64.b64encode(hmac.digest())
        boto.log.debug('len(b64)=%d' % len(b64))
        boto.log.debug('base64 encoded digest: %s' % b64)
        return (qs, b64) 
開發者ID:canvasnetworks,項目名稱:canvas,代碼行數:27,代碼來源:auth.py

示例4: hash

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def hash(self, msg: bytes) -> bytes:
        return hmac.digest(self._cookie, msg, self.digest) 
開發者ID:twisteroidambassador,項目名稱:ptadapter,代碼行數:4,代碼來源:adapters.py

示例5: _ckd

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def _ckd(d: ExtendedBIP32KeyDict, index: bytes) -> None:

    # d is a prvkey
    if d["key"][0] == 0:
        d["depth"] += 1
        Pbytes = bytes_from_point(mult(d["q"]))
        d["parent_fingerprint"] = hash160(Pbytes)[:4]
        d["index"] = index
        if index[0] >= 0x80:  # hardened derivation
            h = hmac.digest(d["chain_code"], d["key"] + index, "sha512")
        else:  # normal derivation
            h = hmac.digest(d["chain_code"], Pbytes + index, "sha512")
        d["chain_code"] = h[32:]
        offset = int.from_bytes(h[:32], byteorder="big")
        d["q"] = (d["q"] + offset) % ec.n
        d["key"] = b"\x00" + d["q"].to_bytes(32, "big")
        d["Q"] = INF
    # d is a pubkey
    else:
        if index[0] >= 0x80:
            raise ValueError("hardened derivation from pubkey is impossible")
        d["depth"] += 1
        d["parent_fingerprint"] = hash160(d["key"])[:4]
        d["index"] = index
        h = hmac.digest(d["chain_code"], d["key"] + index, "sha512")
        d["chain_code"] = h[32:]
        offset = int.from_bytes(h[:32], byteorder="big")
        Offset = mult(offset)
        d["Q"] = ec.add(d["Q"], Offset)
        d["key"] = bytes_from_point(d["Q"])
        d["q"] = 0 
開發者ID:fametrano,項目名稱:btclib,代碼行數:33,代碼來源:bip32.py

示例6: crack_prvkey

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def crack_prvkey(parent_xpub: BIP32Key, child_xprv: BIP32Key) -> bytes:

    if isinstance(parent_xpub, dict):
        p = copy.copy(parent_xpub)
    else:
        p = deserialize(parent_xpub)

    if p["key"][0] not in (2, 3):
        m = "extended parent key is not a public key: "
        m += f"{serialize(p).decode()}"
        raise ValueError(m)

    if isinstance(child_xprv, dict):
        c = child_xprv
    else:
        c = deserialize(child_xprv)
    if c["key"][0] != 0:
        m = f"extended child key is not a private key: {serialize(c).decode()}"
        raise ValueError(m)

    # check depth
    if c["depth"] != p["depth"] + 1:
        raise ValueError("not a parent's child: wrong depths")

    # check fingerprint
    if c["parent_fingerprint"] != hash160(p["key"])[:4]:
        raise ValueError("not a parent's child: wrong parent fingerprint")

    # check normal derivation
    if c["index"][0] >= 0x80:
        raise ValueError("hardened child derivation")

    p["version"] = c["version"]

    h = hmac.digest(p["chain_code"], p["key"] + c["index"], "sha512")
    child_q = int.from_bytes(c["key"][1:], byteorder="big")
    offset = int.from_bytes(h[:32], byteorder="big")
    parent_q = (child_q - offset) % ec.n
    p["key"] = b"\x00" + parent_q.to_bytes(32, byteorder="big")

    return serialize(p) 
開發者ID:fametrano,項目名稱:btclib,代碼行數:43,代碼來源:bip32.py

示例7: generate_hmac

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def generate_hmac(self, secret_key, counter):
        """Create a 160-bit HMAC from secret and counter.

        Args:
            secret_key: a byte string (recommended minimum 20 bytes) that is
                the shared secret between the client and server.
            counter: an integer value represented in an 8-byte string with
                the most significant byte first and least significant byte
                last

        Returns:
            The HMAC digest; a byte string, 20 bytes long.

        Raises:
            TypeError: if the counter and secret are not byte strings.
            ValueError: if the counter is not 8 bytes long.

        """
        from hashlib import sha1
        import hmac

        if not isinstance(secret_key, bytes):
            raise TypeError('secret_key must be a byte string')
        if not isinstance(counter, bytes):
            raise TypeError('counter must be a byte string')
        if (8 != len(counter)):
            raise ValueError('counter must be 8 bytes')

        hmac = hmac.new(secret_key, counter, sha1)
        hash = hmac.digest()
        return hash 
開發者ID:JeNeSuisPasDave,項目名稱:authenticator,代碼行數:33,代碼來源:hotp.py

示例8: sign_string

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def sign_string(self, string_to_sign):
        new_hmac = self._get_hmac()
        new_hmac.update(string_to_sign.encode('utf-8'))
        return encodebytes(new_hmac.digest()).decode('utf-8').strip() 
開發者ID:VirtueSecurity,項目名稱:aws-extender,代碼行數:6,代碼來源:auth.py

示例9: _sign

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def _sign(self, key, msg, hex=False):
        if not isinstance(key, bytes):
            key = key.encode('utf-8')

        if hex:
            sig = hmac.new(key, msg.encode('utf-8'), sha256).hexdigest()
        else:
            sig = hmac.new(key, msg.encode('utf-8'), sha256).digest()
        return sig 
開發者ID:VirtueSecurity,項目名稱:aws-extender,代碼行數:11,代碼來源:auth.py

示例10: _calc_signature

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def _calc_signature(self, params, *args):
        boto.log.debug('using _calc_signature_0')
        hmac = self._get_hmac()
        s = params['Action'] + params['Timestamp']
        hmac.update(s.encode('utf-8'))
        keys = params.keys()
        keys.sort(cmp=lambda x, y: cmp(x.lower(), y.lower()))
        pairs = []
        for key in keys:
            val = boto.utils.get_utf8_value(params[key])
            pairs.append(key + '=' + urllib.parse.quote(val))
        qs = '&'.join(pairs)
        return (qs, base64.b64encode(hmac.digest())) 
開發者ID:VirtueSecurity,項目名稱:aws-extender,代碼行數:15,代碼來源:auth.py

示例11: sign_string

# 需要導入模塊: import hmac [as 別名]
# 或者: from hmac import digest [as 別名]
def sign_string(self, string_to_sign):
        boto.log.debug('Canonical: %s' % string_to_sign)
        if self._hmac_256:
            hmac = self._hmac_256.copy()
        else:
            hmac = self._hmac.copy()
        hmac.update(string_to_sign)
        return base64.encodestring(hmac.digest()).strip() 
開發者ID:canvasnetworks,項目名稱:canvas,代碼行數:10,代碼來源:auth.py


注:本文中的hmac.digest方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。