@@ -1915,97 +1915,192 @@ <h2>Privacy Considerations</h2>
19151915 < h2 > Test Vectors</ h2 >
19161916 < section >
19171917 < h4 > Test Vector Common Inputs</ h4 >
1918- < p class ="ednote "> Proof Options, Unsigned Document will be shown here.
1919- </ p >
1920- < p class ="ednote "> Test vector "outputs" for common algorithms are reused
1921- as inputs to cyphersuite specific test vectors.
1918+ < p >
1919+ Inputs used in two or more test vectors are given in this section. They include
1920+ the unsigned document, general proof options, and cryptographic keys.
19221921 </ p >
1923- </ section >
1924- < section >
1925- < h4 > Common Algorithms: Proof Configuration</ h4 >
1922+
19261923 < section >
1927- < h5 > Proof Configuration (`rdfc`, `sha-256`)</ h5 >
1924+ < h5 > Unsecured Data Document</ h5 >
1925+ < p >
1926+ The common < a > unsecured data document</ a > used for generating all test vectors
1927+ that require this input is given below.
1928+ </ p >
1929+ < pre class ="example nohighlight " title ="Unsigned Document "
1930+ data-include ="testVectors/inputs/employmentAuth.json "
1931+ data-include-format ="text ">
19281932 </ section >
19291933 < section >
1930- < h5 > Proof Configuration (`rdfc`, `sha-384`)</ h5 >
1934+ < h5 > Proof Options</ h5 >
1935+ < p >
1936+ A general template for the < em > proof options</ em > used by test vectors that
1937+ require this input is given below.
1938+ </ p >
1939+ < pre class ="example nohighlight " title ="Proof Options (general) "
1940+ data-include ="testVectors/inputs/proofOptions-general.json "
1941+ data-include-format ="text ">
1942+ </ pre >
1943+ < p >
1944+ For each specific test case the `cryptosuite` and `verificationMethod` fields
1945+ need to be set. For example, for the `slhdsa128-rdfc-2024` cryptosuite using the
1946+ appropriate public key information from section [[[#TestKeys]]] the specific
1947+ proof options is given below.
1948+ </ p >
1949+ < pre class ="example nohighlight " title ="Proof Options (slhdsa128-rdfc-2024 example) "
1950+ data-include ="testVectors/inputs/proofOptions-slhdsa128-rdfc-2024.json "
1951+ data-include-format ="text ">
1952+ </ pre >
19311953 </ section >
1954+
1955+ < section id ="TestKeys ">
1956+ < h5 > Example Cryptographic Keys</ h5 >
1957+ < p >
1958+ Cryptographic keys for used to generate output for specific signature suites are
1959+ given below. This includes public and private (secret) keys in hexadeximal
1960+ format and the public key as a `publicKeyMultibase`.
1961+ </ p >
1962+ < pre class ="example nohighlight " title ="Private and Public keys for ML-DSA-44 "
1963+ data-include ="testVectors/inputs/KeysMLDSA.json "
1964+ data-include-format ="text ">
1965+ </ pre >
1966+
1967+ < pre class ="example nohighlight " title ="Private and Public keys for SLH-DSA-SHA2-128s "
1968+ data-include ="testVectors/inputs/KeysSLHDSA.json "
1969+ data-include-format ="text ">
1970+ </ pre >
1971+ </ section >
1972+ </ section >
1973+ < section >
1974+ < h4 > Common Algorithms: Proof Configuration</ h4 >
1975+ < p >
1976+ The Proof Configuration algorithm output is dependent on the specific < em > proof
1977+ options</ em > as well as the parameters, hence an output test vector for Proof
1978+ Configuration is given for each supported `cyphersuite`.
1979+ </ p >
19321980 < section >
1933- < h5 > Proof Configuration (`rdfc`, `sha-512`)</ h5 >
1981+ < h5 > Proof Configuration (`rdfc`, `sha-256`)</ h5 >
1982+ < pre class ="example nohighlight " title ="Proof Configuration mldsa44-rdfc-2024 "
1983+ data-include ="testVectors/commonAlgs/proofConfig-mldsa44-rdfc-2024.txt "
1984+ data-include-format ="text ">
1985+ </ pre >
1986+
1987+ < pre class ="example nohighlight " title ="Proof Configuration slhdsa128-rdfc-2024 "
1988+ data-include ="testVectors/commonAlgs/proofConfig-slhdsa128-rdfc-2024.txt "
1989+ data-include-format ="text ">
1990+ </ pre >
19341991 </ section >
19351992 < section >
19361993 < h5 > Proof Configuration (`jcs`)</ h5 >
1994+
1995+ < pre class ="example nohighlight " title ="Proof Configuration mldsa44-jcs-2024 "
1996+ data-include ="testVectors/commonAlgs/proofConfig-mldsa44-jcs-2024.txt "
1997+ data-include-format ="text ">
1998+ </ pre >
1999+
2000+ < pre class ="example nohighlight " title ="Proof Configuration slhdsa128-jcs-2024 "
2001+ data-include ="testVectors/commonAlgs/proofConfig-slhdsa128-jcs-2024.txt "
2002+ data-include-format ="text ">
2003+ </ pre >
19372004 </ section >
19382005 </ section >
19392006 < section >
19402007 < h4 > Common Algorithms: Transform</ h4 >
2008+ < p >
2009+ In addition to the common < a > unsecured data document</ a > the Transform algorithm
2010+ takes parameters |canonScheme| and |hashName|. Only in the case of |canonScheme|
2011+ equal to `rdfc` does the |hashName| parameter matter. This is reflected in the
2012+ set of Transformation output test vectors given below.
2013+ </ p >
19412014 < section >
19422015 < h5 > Transform (`rdfc`, `sha-256`)</ h5 >
2016+ < pre class ="example nohighlight " title ="Transform RDFC, SHA-256 "
2017+ data-include ="testVectors/commonAlgs/transform-rdfc-sha256.txt "
2018+ data-include-format ="text ">
2019+ </ pre >
19432020 </ section >
19442021 < section >
19452022 < h5 > Transform (`rdfc`, `sha-384`)</ h5 >
2023+ < pre class ="example nohighlight " title ="Transform RDFC, SHA-384 "
2024+ data-include ="testVectors/commonAlgs/transform-rdfc-sha384.txt "
2025+ data-include-format ="text ">
2026+ </ pre >
19462027 </ section >
19472028 < section >
19482029 < h5 > Transform (`rdfc`, `sha-512`)</ h5 >
2030+ < pre class ="example nohighlight " title ="Transform RDFC, SHA-512 "
2031+ data-include ="testVectors/commonAlgs/transform-rdfc-sha512.txt "
2032+ data-include-format ="text ">
2033+ </ pre >
19492034 </ section >
19502035 < section >
19512036 < h5 > Transform (`jcs`)</ h5 >
2037+ < pre class ="example nohighlight " title ="Transform JCS "
2038+ data-include ="testVectors/commonAlgs/transform-jcs-sha256.txt "
2039+ data-include-format ="text ">
2040+ </ pre >
19522041 </ section >
19532042 </ section >
19542043 < section >
19552044 < h4 > Common Algorithms: Hashing</ h4 >
1956- < section >
1957- < h5 > Hashing (`sha-256`)</ h5 >
1958- </ section >
1959- < section >
1960- < h5 > Hashing (`sha-384`)</ h5 >
1961- </ section >
1962- < section >
1963- < h5 > Hashing (`sha-512`)</ h5 >
1964- </ section >
2045+ < p >
2046+ The < em > Hashing</ em > algorithm takes as inputs the results of the < em > Proof
2047+ Configuration</ em > and < em > Transformation</ em > algorithms. Since the < em > Proof
2048+ Configuration</ em > algorithm output is cyphersuite specific the < em > Hashing</ em >
2049+ algorithm output is given for each cyphersuite test case. The < em > Hashing</ em >
2050+ output for each cyphersuite test case is given in hexadecimal format below.
2051+ </ p >
2052+ < p class ="note ">
2053+ The first half of the hexadecimal < em > Hashing</ em > result is the hash of the
2054+ output of the < em > Proof Configuration</ em > algorithm, while the second half of
2055+ the hexidecimal value is the hash of the output from the < em > Transformation</ em >
2056+ algorithm and both can be useful information when debugging.
2057+ </ p >
2058+ < pre class ="example nohighlight " title ="Hashing (combined) "
2059+ data-include ="testVectors/commonAlgs/hashing-combined.json "
2060+ data-include-format ="text ">
2061+ </ pre >
19652062 </ section >
19662063
1967- < section id ="TV-ML-DSA ">
1968- < h4 > ML-DSA Cyphersuites</ h4 >
1969- < p class ="ednote "> Only one test vector will be shown for each
1970- cyphersuite, building on common algorithm outputs.</ p >
1971- < section >
1972- < h5 > ML-DSA Test Vector Key Material</ h5 >
1973- </ section >
2064+ < section id ="TV-Create-Proof ">
2065+ < h4 > Create Proof</ h4 >
2066+ < p >
2067+ The < em > Create Proof</ em > algorithm output is cyphersuite specific and uses the
2068+ outputs of the < em > Proof Configuration</ em > , < em > Transformation</ em > ,
2069+ < em > Hashing</ em > , and < em > Proof Serialization</ em > algorithms. The output for
2070+ each cyphersuite test case is given below.
2071+ </ p >
2072+ < p class ="note ">
2073+ The output of the < em > Proof Serialization</ em > common algorithm is not given
2074+ separately since it is contained in the `proofValue` attribute in the following
2075+ examples and can be quite lengthy for some quantum safe signature algorithms.
2076+ </ p >
19742077 < section >
19752078 < h5 > Cyphersuite `mldsa44-rdfc-2024`</ h5 >
2079+ < pre class ="example nohighlight " title ="Signed credential `mldsa44-rdfc-2024` "
2080+ data-include ="testVectors/mldsa44-rdfc-2024/signed-mldsa44-rdfc-2024.json "
2081+ data-include-format ="text ">
2082+ </ pre >
19762083 </ section >
19772084 < section >
19782085 < h5 > Cyphersuite `mldsa44-jcs-2024`</ h5 >
1979- </ section >
1980- < section >
1981- < h5 > Cyphersuite `mldsa65-rdfc-2024`</ h5 >
1982- </ section >
1983- < section >
1984- < h5 > Cyphersuite `mldsa65-jcs-2024`</ h5 >
1985- </ section >
1986- < section >
1987- < h5 > Cyphersuite `mldsa87-rdfc-2024`</ h5 >
1988- </ section >
1989- < section >
1990- < h5 > Cyphersuite `mldsa87-jcs-2024`</ h5 >
1991- </ section >
1992- </ section >
1993- < section >
1994- < h4 > SLH-DSA Cyphersuites</ h4 >
1995- < section >
1996- < h5 > SLH-DSA Test Vector Key Material</ h5 >
2086+ < pre class ="example nohighlight " title ="Signed credential `mldsa44-jcs-2024` "
2087+ data-include ="testVectors/mldsa44-jcs-2024/signed-mldsa44-jcs-2024.json "
2088+ data-include-format ="text ">
2089+ </ pre >
19972090 </ section >
19982091 < section >
19992092 < h5 > Cyphersuite `slhdsa128-rdfc-2024`</ h5 >
2093+ < pre class ="example nohighlight " title ="Signed credential `slhdsa128-rdfc-2024` "
2094+ data-include ="testVectors/slhdsa128-rdfc-2024/signed-slhdsa128-rdfc-2024.json "
2095+ data-include-format ="text ">
2096+ </ pre >
20002097 </ section >
20012098 < section >
20022099 < h5 > Cyphersuite `slhdsa128-jcs-2024`</ h5 >
2003- </ section >
2004- < section >
2005- < h5 > Cyphersuite `slhdsa192-rdfc-2024`</ h5 >
2006- </ section >
2007- < section >
2008- < h5 > Cyphersuite `slhdsa192-jcs-2024`</ h5 >
2100+ < pre class ="example nohighlight " title ="Signed credential `slhdsa128-jcs-2024` "
2101+ data-include ="testVectors/slhdsa128-jcs-2024/signed-slhdsa128-jcs-2024.json "
2102+ data-include-format ="text ">
2103+ </ pre >
20092104 </ section >
20102105 </ section >
20112106 </ section >
0 commit comments