in src/util/fipstools/acvp/modulewrapper/modulewrapper.cc [225:854]
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
}]
},
{
"algorithm": "SHA2-256",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}]
},
{
"algorithm": "SHA2-384",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}]
},
{
"algorithm": "SHA2-512",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}]
},
{
"algorithm": "SHA2-512/256",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}]
},
{
"algorithm": "SHA-1",
"revision": "1.0",
"messageLength": [{
"min": 0, "max": 65528, "increment": 8
}]
},
{
"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": 256, "increment": 8
}],
"aadLen": [{
"min": 0, "max": 320, "increment": 8
}],
"tagLen": [32, 64, 96, 104, 112, 120, 128],
"ivLen": [96],
"ivGen": "external"
},
{
"algorithm": "ACVP-AES-GMAC",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [128, 192, 256],
"payloadLen": [{
"min": 0, "max": 256, "increment": 8
}],
"aadLen": [{
"min": 0, "max": 320, "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": 1024, "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],
"aadLen": [{"min": 0, "max": 1024, "increment": 8}]
},
{
"algorithm": "ACVP-TDES-ECB",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [192],
"keyingOption": [1]
},
{
"algorithm": "ACVP-TDES-CBC",
"revision": "1.0",
"direction": ["encrypt", "decrypt"],
"keyLen": [192],
"keyingOption": [1]
},
{
"algorithm": "HMAC-SHA-1",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 2048, "increment": 8
}],
"macLen": [{
"min": 32, "max": 160, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-224",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 2048, "increment": 8
}],
"macLen": [{
"min": 32, "max": 224, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-256",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 2048, "increment": 8
}],
"macLen": [{
"min": 32, "max": 256, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-384",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 2048, "increment": 8
}],
"macLen": [{
"min": 32, "max": 384, "increment": 8
}]
},
{
"algorithm": "HMAC-SHA2-512",
"revision": "1.0",
"keyLen": [{
"min": 8, "max": 2048, "increment": 8
}],
"macLen": [{
"min": 32, "max": 512, "increment": 8
}]
},
{
"algorithm": "ctrDRBG",
"revision": "1.0",
"predResistanceEnabled": [false],
"reseedImplemented": false,
"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"
]
}]
},
{
"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"
]
}]
},
{
"algorithm": "RSA",
"mode": "keyGen",
"revision": "FIPS186-4",
"infoGeneratedByServer": true,
"pubExpMode": "fixed",
"fixedPubExp": "010001",
"keyFormat": "standard",
"capabilities": [{
"randPQ": "B.3.3",
"properties": [{
"modulo": 2048,
"primeTest": [
"tblC2"
]
},{
"modulo": 3072,
"primeTest": [
"tblC2"
]
},{
"modulo": 4096,
"primeTest": [
"tblC2"
]
}]
}]
},
{
"algorithm": "RSA",
"mode": "sigGen",
"revision": "FIPS186-4",
"capabilities": [{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}]
}]
},{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}]
}]
},{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}]
}]
}]
},
{
"algorithm": "RSA",
"mode": "sigVer",
"revision": "FIPS186-4",
"pubExpMode": "fixed",
"fixedPubExp": "010001",
"capabilities": [{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 1024,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}, {
"hashAlg": "SHA-1"
}]
}]
},{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}, {
"hashAlg": "SHA-1"
}]
}]
},{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}, {
"hashAlg": "SHA-1"
}]
}]
},{
"sigType": "pkcs1v1.5",
"properties": [{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224"
}, {
"hashAlg": "SHA2-256"
}, {
"hashAlg": "SHA2-384"
}, {
"hashAlg": "SHA2-512"
}, {
"hashAlg": "SHA-1"
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 2048,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}, {
"hashAlg": "SHA-1",
"saltLen": 20
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 3072,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}, {
"hashAlg": "SHA-1",
"saltLen": 20
}]
}]
},{
"sigType": "pss",
"properties": [{
"modulo": 4096,
"hashPair": [{
"hashAlg": "SHA2-224",
"saltLen": 28
}, {
"hashAlg": "SHA2-256",
"saltLen": 32
}, {
"hashAlg": "SHA2-384",
"saltLen": 48
}, {
"hashAlg": "SHA2-512",
"saltLen": 64
}, {
"hashAlg": "SHA-1",
"saltLen": 20
}]
}]
}]
},
{
"algorithm": "CMAC-AES",
"acvptoolTestOnly": true,
"revision": "1.0",
"capabilities": [{
"direction": ["gen", "ver"],
"msgLen": [{
"min": 0,
"max": 65536,
"increment": 8
}],
"keyLen": [128, 256],
"macLen": [{
"min": 32,
"max": 128,
"increment": 8
}]
}]
},
{
"algorithm": "kdf-components",
"revision": "1.0",
"mode": "tls",
"tlsVersion": [
"v1.0/1.1",
"v1.2"
],
"hashAlg": [
"SHA2-256",
"SHA2-384",
"SHA2-512"
]
},
{
"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"
]
}
},
"domainParameterGenerationMethods": [
"FB",
"FC"
]
}
])";
return write_reply({Span<const uint8_t>(
reinterpret_cast<const uint8_t *>(kConfig), sizeof(kConfig) - 1)});
}