我使用充气城堡为 ECDH 和 AES128-GCM 使用密钥推导函数。
所以这是我的代码。
byte[] secretZ = txtEcdhKdfZ.Text.HexToByteArray();
byte[] extraInfo = txtEcdhKdfInfo.Text.HexToByteArray();
ECDHKekGenerator egH = new ECDHKekGenerator(DigestUtilities.GetDigest("SHA256"));
egH.Init(new DHKdfParameters(NistObjectIdentifiers.IdAes128Gcm, 128, secretZ, extraInfo));
byte[] symmetricKey = new byte[DigestUtilities.GetDigest("SHA256").GetDigestSize()];
egH.GenerateBytes(symmetricKey, 0, symmetricKey.Length);
txtEcdhKdf.Text = symmetricKey.ToHex();
我在这里看到了那个代码。
但 extraInfo 不影响结果。
因为无论 extraInfo 是否有值,结果总是相同的。
new DHKdfParameters(...) 中的 secretZ 值和 keySize 会影响结果。
如何让 extraInfo 影响结果?