Source code for aries_cloudagent.core.in_memory.didcomm.derive_1pu

"""Functions for performing Key Agreement using ECDH-1PU."""

from .derive_ecdh import derive_shared_secret, concat_kdf


[docs]def derive_1pu(ze, zs, alg, apu, apv, keydatalen): """Generate shared encryption key from two ECDH shared secrets.""" z = ze + zs key = concat_kdf(z, alg, apu, apv, keydatalen) return key
[docs]def derive_sender_1pu(epk, sender_sk, recip_pk, alg, apu, apv, keydatalen): """Generate two shared secrets (ze, zs).""" ze = derive_shared_secret(epk, recip_pk) zs = derive_shared_secret(sender_sk, recip_pk) key = derive_1pu(ze, zs, alg, apu, apv, keydatalen) return key
[docs]def derive_receiver_1pu(epk, sender_pk, recip_sk, alg, apu, apv, keydatalen): """Generate two shared secrets (ze, zs).""" ze = derive_shared_secret(recip_sk, epk) zs = derive_shared_secret(recip_sk, sender_pk) key = derive_1pu(ze, zs, alg, apu, apv, keydatalen) return key