Skip to content

Commit 40ec390

Browse files
Update ACVP documentation (#2960)
Update ACVP documentation with new configuration support. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
1 parent bf03332 commit 40ec390

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

util/fipstools/acvp/ACVP.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,40 @@ The other commands are as follows. (Note that you only need to implement the com
7777
| ECDSA/keyVer | Curve name, X, Y | Single-byte valid flag |
7878
| ECDSA/sigGen | Curve name, private key, hash name, message | R, S |
7979
| ECDSA/sigVer | Curve name, hash name, message, X, Y, R, S | Single-byte validity flag |
80+
| EDDSA/keyGen | Curve name | private key seed (D), public key (Q) |
81+
| EDDSA/keyVer | Curve name, public key (Q) | Single-byte valid flag |
82+
| EDDSA/sigGen | Curve name, private key seed (D), message, single-byte prehash flag, prehash context | Signature |
83+
| EDDSA/sigVer | Curve name, message, public key (Q), signature, single-byte prehash flag | Single-byte validity flag |
8084
| FFDH | p, q, g, peer public key, local private key (or empty), local public key (or empty) | Local public key, shared key |
8185
| HKDF/<HASH> | key, salt, info, num output bytes | Key |
86+
| HKDFExpandLabel/<HASH> | Output length, secret, label, transcript hash | Key |
8287
| HMAC-SHA-1 | Value to hash, key | Digest |
8388
| HMAC-SHA2-224 | Value to hash, key | Digest |
8489
| HMAC-SHA2-256 | Value to hash, key | Digest |
8590
| HMAC-SHA2-384 | Value to hash, key | Digest |
8691
| HMAC-SHA2-512 | Value to hash, key | Digest |
8792
| HMAC-SHA2-512/224 | Value to hash, key | Digest |
8893
| HMAC-SHA2-512/256 | Value to hash, key | Digest |
94+
| HMAC-SHA3-224 | Value to hash, key | Digest |
95+
| HMAC-SHA3-256 | Value to hash, key | Digest |
96+
| HMAC-SHA3-384 | Value to hash, key | Digest |
97+
| HMAC-SHA3-512 | Value to hash, key | Digest |
8998
| hmacDRBG/<HASH>| Output length, entropy, personalisation, ad1, ad2, nonce | Output |
9099
| hmacDRBG-reseed/<HASH>| Output length, entropy, personalisation, reseedAD, reseedEntropy, ad1, ad2, nonce | Output |
91100
| hmacDRBG-pr/<HASH>| Output length, entropy, personalisation, ad1, entropy1, ad2, entropy2, nonce | Output |
92-
| KDF-counter | Number output bytes, PRF name, counter location string, key, number of counter bits | Counter, output |
101+
| KDA/OneStep/<HASH> | z, fixedInfo, l | dkm |
102+
| KDA/OneStep/HMAC-<HASH> | z, salt, fixedInfo, l | dkm |
103+
| KDF/Counter/HMAC-<HASH> | output len, keyIn, fixedData | keyOut |
104+
| KDF/Feedback/HMAC-<HASH> | output len, keyIn, fixedData | keyOut |
105+
| ML-DSA-XX/keyGen | Seed | Public key, private key |
106+
| ML-DSA-XX/sigGen | Private key, message, randomizer, context, mu | Signature |
107+
| ML-DSA-XX/sigVer | Public key, message, signature, context, mu | Single-byte validity flag |
108+
| ML-KEM-XX/keyGen | Seed | Public key, private key |
109+
| ML-KEM-XX/encap | Public key, entropy | Ciphertext, shared secret |
110+
| ML-KEM-XX/decap | Private key, ciphertext | Shared secret |
111+
| ML-KEM-XX/encapKeyCheck| Public key | Single-byte validity flag |
112+
| ML-KEM-XX/decapKeyCheck| Private key | Single-byte validity flag |
113+
| PBKDF | HMAC name, key length (bits), salt, password, iteration count | Derived key |
93114
| RSA/keyGen | Modulus bit-size | e, p, q, n, d |
94115
| RSA/sigGen/<HASH>/pkcs1v1.5 | Modulus bit-size | n, e, signature |
95116
| RSA/sigGen/<HASH>/pss | Modulus bit-size | n, e, signature |
@@ -102,6 +123,10 @@ The other commands are as follows. (Note that you only need to implement the com
102123
| SHA2-512 | Value to hash | Digest |
103124
| SHA2-512/224 | Value to hash | Digest |
104125
| SHA2-512/256 | Value to hash | Digest |
126+
| SHA3-224 | Value to hash | Digest |
127+
| SHA3-256 | Value to hash | Digest |
128+
| SHA3-384 | Value to hash | Digest |
129+
| SHA3-512 | Value to hash | Digest |
105130
| SHAKE-128 | Value to hash, output len | Digest |
106131
| SHAKE-256 | Value to hash, output len | Digest |
107132
| SHA-1/MCT | Initial seed¹ | Digest |
@@ -113,6 +138,12 @@ The other commands are as follows. (Note that you only need to implement the com
113138
| SHA2-512/256/MCT | Initial seed¹ | Digest |
114139
| SHAKE-128/MCT | Initial seed_, output len | Digest |
115140
| SHAKE-256/MCT | Initial seed_, output len | Digest |
141+
| SSHKDF/<HASH>/ivCli | k, h, sessionId, output len | initialIvClient |
142+
| SSHKDF/<HASH>/ivServ | k, h, sessionId, output len | initialIvServer |
143+
| SSHKDF/<HASH>/encryptCli | k, h, sessionId, output len | encryptionKeyClient |
144+
| SSHKDF/<HASH>/encryptServ | k, h, sessionId, output len | encryptionKeyServer |
145+
| SSHKDF/<HASH>/integCli | k, h, sessionId, output len | integrityKeyClient |
146+
| SSHKDF/<HASH>/integServ | k, h, sessionId, output len | integrityKeyServer |
116147
| TLSKDF/<1.0\|1.2>/<HASH> | Number output bytes, secret, label, seed1, seed2 | Output |
117148

118149
¹ The iterated tests would result in excessive numbers of round trips if the module wrapper handled only basic operations. Thus some ACVP logic is pushed down for these tests so that the inner loop can be handled locally. Either read the NIST documentation ([block-ciphers](https://pages.nist.gov/ACVP/draft-celi-acvp-symmetric.html#name-monte-carlo-tests-for-block) [hashes](https://pages.nist.gov/ACVP/draft-celi-acvp-sha.html#name-monte-carlo-tests-for-sha-1)) to understand the iteration count and return values or, probably more fruitfully, see how these functions are handled in the `modulewrapper` directory.

0 commit comments

Comments
 (0)