JCAlgTest icon indicating copy to clipboard operation
JCAlgTest copied to clipboard

Incorrect key length used in KeyBuilder tests with TYPE_HMAC keys

Open nc-adnan opened this issue 2 years ago • 2 comments

According to the Java Card 3.0.5 API, the keyLength parameter passed to the KeyBuilder.buildKey method is the key size in bits.

In the KeyBuilder tests configs, the key sizes are specified in bytes for TYPE_HMAC keys (64/128) which leads to incorrect results:

see JCAlgTest/AlgTest_JClient/src/algtestjclient/SingleModeTest.java:

KEYBUILDER_TEST_CFGS.put("TYPE_HMAC_TRANSIENT_RESET#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC_TRANSIENT_RESET, (short) 64));
KEYBUILDER_TEST_CFGS.put("TYPE_HMAC_TRANSIENT_DESELECT#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC_TRANSIENT_DESELECT, (short) 64));
KEYBUILDER_TEST_CFGS.put("TYPE_HMAC LENGTH_HMAC_SHA_1_BLOCK_64#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC, (short) 64));
KEYBUILDER_TEST_CFGS.put("TYPE_HMAC LENGTH_HMAC_SHA_256_BLOCK_64#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC, (short) 64));
KEYBUILDER_TEST_CFGS.put("TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC, (short) 128));
KEYBUILDER_TEST_CFGS.put("TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64#2.2.2", new KBTestCfg(JCConsts.KeyBuilder_TYPE_HMAC, (short) 128));

nc-adnan avatar Feb 14 '23 11:02 nc-adnan

Thank you @nc-adnan for reporting, it will take longer to fix this issue due to need for re-measurement of existing results for these six values. So I'm leaving the issue open for now.

petrs avatar Aug 03 '23 06:08 petrs

fixed by 6e01f83e311cb41a9ac6964a45279efbdd1235f3

petrs avatar Nov 23 '24 18:11 petrs