我想弄清楚javacard的派生函数是如何工作的,我必须承认我对如何设置这些函数感到迷茫。
我认为DerivationFunction可以用来推导密钥,并且使用ALG_KDF_HKDF可以指定所需的基于HMAC的密钥推导。然而,我不明白如何设置秘密和盐。KDFHmacSpec接口只指定了获取者,并没有指定如何设置秘密和盐。它没有指定如何设置值。到目前为止,我还不知道如何设置这些值。
我想用它来生成XOR密钥(最好是指定长度),基于一个秘密和一些随机的公共值。
这是为javacard 3+。
我可以想到的是,它确实是一个。interface
. 你可以在自己定义的类中实现接口。
这样做的缺点是,你可能不得不把诸如盐(对于密钥派生函数来说,盐的使用并不多)这样的数组复制到一个瞬时内存数组中。
优点是其他键派生参数如果不需要改变,可以简单地成为类定义的一部分。
我建议你为你的HKDF函数创建一个单一的、可重用的、可突变的类。