@@ -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