HKDF Android实施

时间:2018-06-20 17:19:08

标签: android python kotlin cryptography hkdf

我正在尝试与HKDF进行密钥交换以进行密钥派生。我已经看过Is HKDF implemented in Java Cryptography Architecture? Ask Question ,但是,我仍然没有得到应该得到的东西。

在python中,我有以下(src)

shared = private_key.exchange(ec.ECDH(), peer_public_key).hex()
derived = HKDF(algorithm=hashes.SHA256(), length=32, salt=b'', info=b'', backend=default_backend()).derive(shared.encode()).hex()

这适用于python和iOS(我也在那里实现了)。但是,Android在最后一步给我带来了麻烦。有人可以详细说明Android版HKDF吗?

编辑: 现有的Kotlin代码

val keyPairGenerator = KeyPairGenerator.getInstance("EC")
keyPairGenerator.initialize(384)
val keyPair = keyPairGenerator.generateKeyPair()

val peerPublicKey = ... created from external data

val keyAgreement = KeyAgreement.getInstance("ECDH")
keyAgreement.init(keyPair.private)
keyAgreement.doPhase(peerPublicKey, true)
val sharedSecretKey = keyAgreement.generateSecret("ECDH")

谢谢!

0 个答案:

没有答案