In 6.64.2 ML-DSA public key objects:
The Data Type of CKA_VALUE should be defined as "Byte array" (or perhaps "Byte string"), not Big Integer.
We may also want to change the Meaning of CKA_VALUE to mention "Public key" instead of "Public value".
This is how the algorithm that defines how to calculate the public key is defined in FIPS 204, and the above changes would make it more clear what we refer to:
Algorithm 22 pkEncode(π, π1 )
Encodes a public key for ML-DSA into a byte string.
In 6.64.3 ML-DSA private key objects:
The Data Type of CKA_VALUE should be defined as "Byte array" (or perhaps "Byte string"), not Big Integer.
We may also want to change the Meaning of CKA_VALUE to mention "Secret key" instead of "Private value".
This is how the algorithm that defines how to calculate the public key is defined in FIPS 204, and the above changes would make it more clear what we refer to:
Algorithm 24 skEncode(π, πΎ, π‘π, π¬1 , π¬2 , π0 )
Encodes a secret key for ML-DSA into a byte string.
Additionally the CKA_SEED value we agreed to add seem to be missing from the table and is not mentioned anywhere in the document.
In 6.65.2 ML-KEM public key objects:
We may want to change the Meaning of CKA_VALUE to mention "Encapsulation key" instead of "Public value".
In 6.65.3 ML-KEM private key objects:
We may want to change the Meaning of CKA_VALUE to mention "Decapsulation key" instead of "Private value".
This is how the algorithm that defines how to calculate the key pair is defined in FIPS 203, and the above changes would make it more clear what we refer to:
Algorithm 19 ML-KEM.KeyGen()
Generates an encapsulation key and a corresponding decapsulation key.
In 6.66.2 SLH-DSA public key objects:
The Data Type of CKA_VALUE should be defined as "Byte array", not Big Integer.
We may also want to change the Meaning of CKA_VALUE to mention "Public key" instead of "Public value".
In FIPS 205 section 9.1 that's how the public value is called, and in other areas public seed is referenced, which is only part of the public key, using the term "public value" would be ambiguous as "public values" are mentioned as part of the spec but they are not public keys (nor seeds).
In 6.66.3 SLH-DSA private key objects:
The Data Type of CKA_VALUE should be defined as "Byte array", not Big Integer.
We may also want to change the Meaning of CKA_VALUE to mention "Private key" instead of "Private value".
A search on "private value" in FIPS 205 yields nothing, while private key is well defined, see above.
------------------------------
Simo Sorce
Red Hat
------------------------------