Hi,
I'm looking to clean up some test code (IKEv2, NISTs CAVP tests), so that
they "work" in FIPS mode (what ever that means).
The test inputs look like:
Ni = 3651fef5c9c35e93
Nr = c09a8b90a3f04d59
g^ir =
d084a30166a50fb7325c3960874a839449ef9741c2f4f947d0201dd8c1269273d79509f37e3ca3eb4fa2fe2a28254e289cd3f34dad4eb4df1a07685a4b8a94fa61e2491f7598b3ce65547ff133b3f63d1ac4175eaa695033f3cedb026a6873a36455172a8540b8a5d23a0143bed0390ee49b168269d75fffee9fb62be965993c
g^ir (new) =
52f00ab174c25d5b7139ae5ff4e8e9eddee5992d2e36adf8a559ffd90dab1442e4fbe429d320c0f33552a17d1557fa41ea70e8fb916c4fa27ed52b5f8ebd8461afa78f1159159a64055ac5f6319e29c28eae58cbc6847770f32c3fed1d04750484f854790f95e9ec01bc5bc461f24966462e359511329305038e94deb6dd42c2
SPIi = 8e5c3ae507221684
SPIr = b1f201bb155c3acd
The problem is with g^ir.(which is the DH exponentiation). The
calculations rely on g^ir being in a PK11SymKey.
In the "real world" (as in the non-test code), "i" is created as a
PK11SymKey, and hence a g^ir PK11SymKey can be derived from that. Here,
though, I've no secure starting point - I'm just given the raw byte value
of g^ir.
So, in FIPS mode, in a standalone test program, what is the correct way to
turn g^ir into PK11SymKey.
Andrew
PS: The current code uses the hack (something like) from the NSS examples:
PK11SymKey *sym_key = PK11_ImportSymKey(slot,
CKM_DH_PKCS_DERIVE,
PK11_OriginUnwrap,
CKA_ENCRYPT, &key_item,
NULL);
which is of course not valid in FIPS mode.
--
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto