根据https://cr.yp.to/highspeed/naclcrypto-20090310.pdf,NaCl从crypto_box
API中的共享密钥和随机数中获取MAC密钥。
Alice使用长流的前32个字节(使用
salsa20
从共享密钥和现时生成)来计算加密数据包的验证者。
但是,此程序是内部的。我想知道是否有手动派生MAC密钥的API?
答案 0 :(得分:0)
box
构造使用xsalsa20
密码(最初 - 还有使用xchacha20
的变体)。
该密码的第一个块用作Poly1305密钥。其余的块与消息进行异或运算以计算密文。
因此,您只需使用crypto_stream()
来计算Poly1305密钥。