跳转至

HDKF

对于大多数应用程序,shared_key应将其传递给密钥派生函数。 这允许将附加信息混合到密钥中,派生多个密钥,并破坏可能存在的任何结构。

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey
from cryptography.hazmat.primitives.kdf.hkdf import HKDF

alice_private_key = X25519PrivateKey.generate()

bob_public_key = X25519PrivateKey.generate().public_key()


shared_key = alice_private_key.exchange(bob_public_key)

derived_key = HKDF(
    algorithm=hashes.SHA256(),
    length=32,
    salt=None,
    info=b'handshake data',
).derive(shared_key)