in util/fipstools/acvp/modulewrapper/modulewrapper.cc [192:1438]
static bool GetConfig(const Span<const uint8_t> args[],
ReplyCallback write_reply) {
static constexpr char kConfig[] =
R"([
{
"algorithm": "SHA2-224",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA2-256",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA2-384",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA2-512",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA2-512/224",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA2-512/256",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA3-224",
"revision": "2.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA3-256",
"revision": "2.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA3-384",
"revision": "2.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA3-512",
"revision": "2.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHAKE-128",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"outputLen": [{
"min": 128,
"max": 8192,
"increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHAKE-256",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65536, "increment": 8
}],
"outputLen": [{
"min": 128,
"max": 8192,
"increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "SHA-1",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}],
"performLargeDataTest": [1, 2, 4, 8]
},
{
"algorithm": "ACVP-AES-XTS",
"revision": "2.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [256],
"payloadLen": [1024],
"tweakMode": ["number"],
"dataUnitLenMatchesPayload": true
},
{
"algorithm": "ACVP-AES-ECB",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256]
},
{
"algorithm": "ACVP-AES-CTR",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256],
"payloadLen": [{
"min": 8, "max": 128, "increment": 8
}],
"incrementalCounter": true,
"overflowCounter": true,
"performCounterTests": true
},
{
"algorithm": "ACVP-AES-CBC",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256]
},
{
"algorithm": "ACVP-AES-GCM",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256],
"payloadLen": [{
"min": 0, "max": 65536, "increment": 8
}],
"aadLen": [{
"min": 0, "max": 65536, "increment": 8
}],
"tagLen": [32, 64, 96, 104, 112, 120, 128],
"ivLen": [96],
"ivGen": ["external", "internal"],
"ivGenMode": "8.2.2"
},
{
"algorithm": "ACVP-AES-GMAC",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256],
"payloadLen": [{
"min": 0, "max": 65536, "increment": 8
}],
"aadLen": [{
"min": 0, "max": 65536, "increment": 8
}],
"tagLen": [32, 64, 96, 104, 112, 120, 128],
"ivLen": [96],
"ivGen": "external"
},
{
"algorithm": "ACVP-AES-KW",
"revision": "1.0",
"direction": [
"encrypt",
"decrypt"
],
"kwCipher": [
"cipher"
],
"keyLen": [
128, 192, 256
],
"payloadLen": [{"min": 128, "max": 4096, "increment": 64}]
},
{
"algorithm": "ACVP-AES-KWP",
"revision": "1.0",
"direction": [
"encrypt",
"decrypt"
],
"kwCipher": [
"cipher"
],
"keyLen": [
128, 192, 256
],
"payloadLen": [{"min": 8, "max": 4096, "increment": 8}]
},
{
"algorithm": "ACVP-AES-CCM",
"revision": "1.0",
"direction": [
"encrypt",
"decrypt"
],
"keyLen": [
128
],
"payloadLen": [{"min": 0, "max": 256, "increment": 8}],
"ivLen": [104],
"tagLen": [32, 64],
"aadLen": [{"min": 0, "max": 524288, "increment": 8}]
},
{
"algorithm": "HMAC-SHA-1",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 160, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-224",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 224, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-256",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 256, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-384",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 384, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-512",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 512, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-512/224",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 224, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-512/256",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 524288, "increment": 8
}],
"macLen": [{
"min": 32, "max": 256, "increment": 8
}]
},
{
"vsId": 0,
"algorithm": "PBKDF",
"revision": "1.0",
"capabilities": [
{
"iterationCount": [
{
"min": 1,
"max": 10000,
"increment": 1
}
],
"passwordLen": [
{
"min": 8,
"max": 64,
"increment": 1
}
],
"saltLen": [
{
"min": 128,
"max": 512,
"increment": 8
}
],
"keyLen": [
{
"min": 112,
"max": 2048,
"increment": 8
}
],
"hmacAlg": [
"SHA-1",
"SHA2-224",
"SHA2-256",
"SHA2-384",
"SHA2-512",
"SHA2-512/224",
"SHA2-512/256"
]
}
]
},
{
"algorithm": "ctrDRBG",
"revision": "1.0",
"predResistanceEnabled": [false],
"reseedImplemented": true,
"capabilities": [{
"mode": "AES-256",
"derFuncEnabled": false,
"entropyInputLen": [384],
"nonceLen": [0],
"persoStringLen": [{"min": 0, "max": 384, "increment": 16}],
"additionalInputLen": [
{"min": 0, "max": 384, "increment": 16}
],
"returnedBitsLen": 2048
}]
},
{
"algorithm": "ECDSA",
"mode": "keyGen",
"revision": "1.0",
"curve": [
"P-224",
"P-256",
"P-384",
"P-521"
],
"secretGenerationMode": [
"testing candidates"
]
},
{
"algorithm": "ECDSA",
"mode": "keyVer",
"revision": "1.0",
"curve": [
"P-224",
"P-256",
"P-384",
"P-521"
]
},
{
"algorithm": "ECDSA",
"mode": "sigGen",
"revision": "1.0",
"capabilities": [{
"curve": [
"P-224",
"P-256",
"P-384",
"P-521"
],
"hashAlg": [
"SHA2-224",
"SHA2-256",
"SHA2-384",
"SHA2-512",
"SHA2-512/224",
"SHA2-512/256",
"SHA3-224",
"SHA3-256",
"SHA3-384",
"SHA3-512"
]
}]
},
{
"algorithm": "ECDSA",
"mode": "sigVer",
"revision": "1.0",
"capabilities": [{
"curve": [
"P-224",
"P-256",
"P-384",
"P-521"
],
"hashAlg": [
"SHA-1",
"SHA2-224",
"SHA2-256",
"SHA2-384",
"SHA2-512",
"SHA2-512/224",
"SHA2-512/256",
"SHA3-224",
"SHA3-256",
"SHA3-384",
"SHA3-512"
]
}]
},)"
R"({
"algorithm": "RSA",
"mode": "keyGen",
"revision": "FIPS186-5",
"infoGeneratedByServer": true,
"pubExpMode": "fixed",
"fixedPubExp": "010001",
"keyFormat": "standard",
"capabilities": [{
"randPQ": "probable",
"properties": [{
"modulo": 2048,
"primeTest": [
"2powSecStr"
],
"pMod8": 0,
"qMod8": 0
},{
"modulo": 3072,
"primeTest": [
"2powSecStr"
],
"pMod8": 0,
"qMod8": 0
},{
"modulo": 4096,
"primeTest": [
"2powSecStr"
],
"pMod8": 0,
"qMod8": 0
},{
"modulo": 6144,
"primeTest": [
"2powSecStr"
],
"pMod8": 0,
"qMod8": 0
},{
"modulo": 8192,
"primeTest": [
"2powSecStr"
],
"pMod8": 0,
"qMod8": 0
}]
}]
},)"
R"({
"algorithm": "RSA",
"mode": "sigGen",
"revision": "FIPS186-5",
"capabilities": [{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
},{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
},{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 2048,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
},{
"modulo": 3072,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
},{
"modulo": 4096,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
}]
}]
},)"
R"({
"algorithm": "RSA",
"mode": "sigVer",
"revision": "FIPS186-4",
"pubExpMode": "fixed",
"fixedPubExp": "010001",
"capabilities": [{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 1024,
"hashPair": [{
"hashAlg": "SHA-1"
},{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
}]
},{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA-1"
}]
},{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA-1"
}]
},{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA-1"
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 1024,
"hashPair": [{
"hashAlg": "SHA-1",
"saltLen": 20
},{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
}]
},{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA-1",
"saltLen": 20
}]
},{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA-1",
"saltLen": 20
}]
},{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA-1",
"saltLen": 20
}]
}]
}]
},)"
R"({
"algorithm": "RSA",
"mode": "sigVer",
"revision": "FIPS186-5",
"pubExpMode": "fixed",
"fixedPubExp": "010001",
"capabilities": [{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
},{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
},{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224"
},{
"hashAlg": "SHA2-256"
},{
"hashAlg": "SHA2-384"
},{
"hashAlg": "SHA2-512"
},{
"hashAlg": "SHA2-512/224"
},{
"hashAlg": "SHA2-512/256"
},{
"hashAlg": "SHA3-224"
},{
"hashAlg": "SHA3-256"
},{
"hashAlg": "SHA3-384"
},{
"hashAlg": "SHA3-512"
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 2048,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
},{
"modulo": 3072,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
},{
"modulo": 4096,
"maskFunction": ["mgf1"],
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
},{
"hashAlg": "SHA2-256",
"saltLen": 32
},{
"hashAlg": "SHA2-384",
"saltLen": 48
},{
"hashAlg": "SHA2-512",
"saltLen": 64
},{
"hashAlg": "SHA2-512/224",
"saltLen": 28
},{
"hashAlg": "SHA2-512/256",
"saltLen": 32
},{
"hashAlg": "SHA3-224",
"saltLen": 28
},{
"hashAlg": "SHA3-256",
"saltLen": 32
},{
"hashAlg": "SHA3-384",
"saltLen": 48
},{
"hashAlg": "SHA3-512",
"saltLen": 64
}]
}]
}]
},)"
R"({
"algorithm": "CMAC-AES",
"acvptoolTestOnly": true,
"revision": "1.0",
"capabilities": [{
"direction": ["gen", "ver"],
"msgLen": [{
"min": 0,
"max": 524288,
"increment": 8
}],
"keyLen": [128, 256],
"macLen": [{
"min": 8,
"max": 128,
"increment": 8
}]
}]
},
{
"algorithm": "KDF",
"revision": "1.0",
"capabilities": [{
"kdfMode": "feedback",
"macMode": [
"HMAC-SHA-1",
"HMAC-SHA2-224",
"HMAC-SHA2-256",
"HMAC-SHA2-384",
"HMAC-SHA2-512",
"HMAC-SHA2-512/224",
"HMAC-SHA2-512/256"
],
"customKeyInLength": 0,
"supportedLengths": [{
"min": 8,
"max": 1024,
"increment": 8
}],
"fixedDataOrder": ["after fixed data"],
"counterLength": [8],
"supportsEmptyIv": true,
"requiresEmptyIv": true
},{
"kdfMode": "counter",
"macMode": [
"HMAC-SHA-1",
"HMAC-SHA2-224",
"HMAC-SHA2-256",
"HMAC-SHA2-384",
"HMAC-SHA2-512",
"HMAC-SHA2-512/224",
"HMAC-SHA2-512/256"
],
"supportedLengths": [{
"min": 8,
"max": 4096,
"increment": 8
}],
"fixedDataOrder": ["before fixed data"],
"counterLength": [32]
}]
},
{
"algorithm": "kdf-components",
"revision": "1.0",
"mode": "tls",
"tlsVersion": [
"v1.0/1.1",
"v1.2"
],
"hashAlg": [
"SHA2-256",
"SHA2-384",
"SHA2-512"
]
},
{
"algorithm": "kdf-components",
"mode": "ssh",
"revision": "1.0",
"isSample": true,
"hashAlg": [
"SHA-1",
"SHA2-224",
"SHA2-256",
"SHA2-384",
"SHA2-512"
],
"cipher": [
"TDES",
"AES-128",
"AES-192",
"AES-256"
]
},
{
"algorithm": "TLS-v1.2",
"revision": "RFC7627",
"mode": "KDF",
"hashAlg": [
"SHA2-256",
"SHA2-384",
"SHA2-512"
]
},
{
"vsId": 0,
"algorithm": "KDA",
"mode": "HKDF",
"revision": "Sp800-56Cr1",
"isSample": true,
"fixedInfoPattern": "uPartyInfo||vPartyInfo||l",
"encoding": [
"concatenation"
],
"hmacAlg": [
"SHA-1",
"SHA2-224",
"SHA2-256",
"SHA2-384",
"SHA2-512",
"SHA2-512/224",
"SHA2-512/256"
],
"macSaltMethods": [
"default",
"random"
],
"l": 1024,
"z": [
{
"min": 224,
"max": 65536,
"increment": 8
}
],
"performMultiExpansionTests": false
},
{
"algorithm": "KAS-ECC-SSC",
"revision": "Sp800-56Ar3",
"scheme": {
"ephemeralUnified": {
"kasRole": [
"initiator",
"responder"
]
},
"staticUnified": {
"kasRole": [
"initiator",
"responder"
]
}
},
"domainParameterGenerationMethods": [
"P-224",
"P-256",
"P-384",
"P-521"
]
},
{
"algorithm": "KAS-FFC-SSC",
"revision": "Sp800-56Ar3",
"scheme": {
"dhEphem": {
"kasRole": [
"initiator",
"responder"
]
}
},
"domainParameterGenerationMethods": [
"FB",
"FC"
]
},
{
"algorithm": "KDA",
"mode": "OneStep",
"revision": "Sp800-56Cr2",
"prereqVals": [],
"auxFunctions": [
{"auxFunctionName": "SHA-1"},
{"auxFunctionName": "SHA2-224"},
{"auxFunctionName": "SHA2-256"},
{"auxFunctionName": "SHA2-384"},
{"auxFunctionName": "SHA2-512"},
{"auxFunctionName": "SHA2-512/224"},
{"auxFunctionName": "SHA2-512/256"},
{"auxFunctionName": "SHA3-224"},
{"auxFunctionName": "SHA3-256"},
{"auxFunctionName": "SHA3-384"},
{"auxFunctionName": "SHA3-512"},
{"auxFunctionName": "HMAC-SHA-1", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-224", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-256", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-384", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-512", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-512/224", "macSaltMethods": ["default", "random"]},
{"auxFunctionName": "HMAC-SHA2-512/256", "macSaltMethods": ["default", "random"]}
],
"fixedInfoPattern": "uPartyInfo||vPartyInfo",
"encoding": ["concatenation"],
"z": [{"min": 224, "max": 8192, "increment": 8}],
"l": 2048
},)"
R"({
"algorithm": "ML-KEM",
"mode": "keyGen",
"revision": "FIPS203",
"parameterSets": ["ML-KEM-512", "ML-KEM-768", "ML-KEM-1024"]
},
{
"algorithm": "ML-KEM",
"mode": "encapDecap",
"revision": "FIPS203",
"parameterSets": ["ML-KEM-512", "ML-KEM-768", "ML-KEM-1024"],
"functions": ["encapsulation", "decapsulation"]
},)"
R"({
"algorithm": "EDDSA",
"mode": "keyGen",
"revision": "1.0",
"curve": ["ED-25519"]
},{
"algorithm": "EDDSA",
"mode": "keyVer",
"revision": "1.0",
"curve": ["ED-25519"]
},{
"algorithm": "EDDSA",
"mode": "sigGen",
"revision": "1.0",
"curve": ["ED-25519"],
"pure": true,
"preHash": true,
"contextLength": [{"min": 0, "max": 255, "increment": 1}]
},{
"algorithm": "EDDSA",
"mode": "sigVer",
"revision": "1.0",
"curve": ["ED-25519"],
"pure": true,
"preHash": true,
"contextLength": [{"min": 0, "max": 255, "increment": 1}]
},)"
R"({
"algorithm": "ML-DSA",
"mode": "keyGen",
"revision": "FIPS204",
"parameterSets": ["ML-DSA-44", "ML-DSA-65", "ML-DSA-87"]
},{
"algorithm": "ML-DSA",
"mode": "sigGen",
"revision": "FIPS204",
"capabilities": [
{
"parameterSets": [
"ML-DSA-44",
"ML-DSA-65",
"ML-DSA-87"
],
"messageLength": [
{
"min": 8,
"max": 65536,
"increment": 8
}
]
}
],
"deterministic": [false],
"externalMu": [
true,
false
],
"signatureInterfaces": ["internal"]
},{
"algorithm": "ML-DSA",
"mode": "sigVer",
"revision": "FIPS204",
"capabilities": [
{
"parameterSets": [
"ML-DSA-44",
"ML-DSA-65",
"ML-DSA-87"
],
"messageLength": [
{
"min": 8,
"max": 65536,
"increment": 8
}
]
}
],
"deterministic": [false],
"externalMu": [
true,
false
],
"signatureInterfaces": ["internal"]
}])";
return write_reply({Span<const uint8_t>(
reinterpret_cast<const uint8_t *>(kConfig), sizeof(kConfig) - 1)});
}