usnistgov / ACVP-Server

A repository tracking releases of NIST's ACVP server. See www.github.com/usnistgov/ACVP for the protocol.
46 stars 16 forks source link

PBKDF iterationCount having increment value of 8 fails #231

Closed dsikkema-atsec closed 1 year ago

dsikkema-atsec commented 1 year ago

environment Demo

testSessionId No testSession ID, it fails to register

vsId No vectorSet ID, it fails to register

Algorithm registration PBKDF Request JSON object: [ { "acvVersion":"1.0" }, { "isSample":false, "operation":"register", "certificateRequest":"no", "debugRequest":"yes", "production":"no", "encryptAtRest":"yes", "algorithms":[ { "revision":"1.0", "algorithm":"PBKDF", "prereqVals":[ { "algorithm":"SHA", "valValue":"same" } ], "capabilities":[ { "iterationCount":[ { "min":1, "max":10000000, "increment":8 } ], "keyLen":[ { "min":112, "max":4096, "increment":8 } ], "passwordLen":[ { "min":8, "max":128, "increment":1 } ], "saltLen":[ { "min":128, "max":4096, "increment":8 } ], "hmacAlg":[ "SHA-1", "SHA2-224", "SHA2-256", "SHA2-384", "SHA2-512", "SHA2-512/224", "SHA2-512/256" ] } ] } ] } ]

Endpoint in which the error is experienced

Expected behavior It was expected to be able to get test vectors using an increment of 8 for iterationCount. There is no restrictions that I could find, but error shown below happens when using 8.

Additional context CVPProxy (08:50:47) () Debug - HTTP operation [lib/common/network_backend_apple.m:acvp_nsurl_write_cb:123]: Current complete retrieved data (len 184): [ { "acvVersion": "1.0" }, { "error": "Validation error(s) on JSON payload.", "context": [ "PBKDF-1.0: min - max mod increment must be 0." ] } ]

Kritner commented 1 year ago

this isn't a restriction in the algorithm, but rather a misuse of the Domain being provided:

{
"min":1,
"max":10000000,
"increment":8
}
CVPProxy (08:50:47) () Debug - HTTP operation [lib/common/network_backend_apple.m:acvp_nsurl_write_cb:123]: Current complete retrieved data (len 184): [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"PBKDF-1.0: min - max mod increment must be 0."
]
}
]

10_000_000 - 1 % 8 != 0, there'd be no way to hit your max increment from your min increment counting by 8s