usnistgov / ACVP-Server

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

help request: kdf ansi x9.42 der; derived key does not match expected #291

Closed MarkSimontonOfCG closed 5 months ago

MarkSimontonOfCG commented 9 months ago

env: demo

kdf: ansi x9.42 der kdf-component

I am requesting help; the results Our application is producing does not match the expected results. It is clear to me that I am not constructing the key-material properly.

The method I used to construct the key-material mimics the examples in RFC 2631; and I can generate the same output for the two examples.

suggestions requested.

Thanks, Mark Simonton

request_tc_1.json

 [ {
    "jwt": "xyzzy",
    "url": "\/acvp\/v1\/testSessions\/446760",
    "isSample": true,
    "vectorSetUrls": [
        "\/acvp\/v1\/testSessions\/446760\/vectorSets\/1890410"
    ]
}, {
    "vsId": 1890410,
    "algorithm": "kdf-components",
    "mode": "ansix9.42",
    "revision": "1.0",
    "isSample": true,
    "testGroups": [
        {
            "tgId": 1,
            "testType": "AFT",
            "hashAlg": "SHA2-256",
            "kdfType": "DER",
            "oid": "0609608648016503040105",
            "tests": [
                {
                    "tcId": 1,
                    "zz": "EC98372FD04495C8A42672F888F22BBE73922733CF0EDB",
                    "keyLen": 256,
                    "partyUInfo": "",
                    "partyVInfo": "",
                    "suppPubInfo": "",
                    "suppPrivInfo": ""
                }            ]        }    ] } ]
keyMaterialBuffer[52] =
EC 98 37 2F D0 44 95 C8 A4 26 72 F8 88 F2 2B BE 73 92 27 33 CF 0E DB 30 1B 30 11 06 09 60 86 48
01 65 03 04 01 05 04 04 00 00 00 01 A2 06 04 04 00 00 01 00

which decodes as:

EC 98 37 2F D0 44 95 C8 A4 26 72 F8 88 F2 2B BE 73 92 27 33 CF 0E DB ; ZZ
30 1B                                          ; (CONSTRUCTED |SEQUENCE)
  30 11 06 09 60 86 48 01 65 03 04 01 05      ; OID
  04 04                                        ; (OCTET_STRING, L=4)
     00 00 00 01                           ; count
  A2 06                                       ; (CONTEXT_SPECIFIC | CONSTRUCTED | INTEGER), L=6
     04 04                                    ; (OCTET_STRING, L=4)
        00 00 01 00                       ; keyLen

hash from BcryptHash

HASH Result[32] =
39 69 7D 36 1A 5B 64 D0 76 BF B1 08 C9 CF 9E DD 
9E 28 E1 ED C6 85 48 2F AC B6 87 97 85 D8 68 64

expected result

"derivedKey": 
"E067E055186B1E0E6837183F1BF9E99C7DA5F9C60EADCD1D100B35655D937B26"
MarkSimontonOfCG commented 9 months ago

I solved my problem, by removing key length member of the key material blob; of course this is different from the example in RFC 2631; Also, this difference from RFC 2631 is not documented, so I predict that others will have the same issue.

jbrock24 commented 9 months ago

Thanks @MarkSimontonOfCG , I'll look into this and update accordingly. Appreciate it.

MarkSimontonOfCG commented 9 months ago

Thanks. I have some other issues I am encountering, which might end in other bugs, such as the tag values for partyUInfo (A0) , partyVInfo(A1), suppPubInfo(A2), suppPubInfo(A3) need to be documented, because they do not appear anywhere in the published documentation for ANSI x9.42 der encoding I could find on the internet, and if you follow the rules that I could find the tag for all 4 fields should be A0 as in (application-specific + Octet string). Either way is okay, as long as, it is documented so people can do the correct thing without needing to poke around in the code.

My most current issue is that my code doesn't encode key material where the Optional OtherInfo values are longer than 256 bits (actually the optional values are 512 bits); if the optional values are 0 bits my resulting hash matches that from the demo server.

Is it possible to get a hex dump of the key-material just before the hash for "vsId": 1890411; "tgId": 1, "tcId": 2, and 3

It would help me to understand why my hash value doesn't match expected values, and I am confused about where my encoding of the input values is wrong, I am guessing it is the length value of the outer "header".

From: Joel Brockman @.> Sent: Thursday, October 26, 2023 1:45 PM To: usnistgov/ACVP-Server @.> Cc: Mark Simonton (Capgemini America Inc) @.>; Mention @.> Subject: Re: [usnistgov/ACVP-Server] help request: kdf ansi x9.42 der; derived key does not match expected (Issue #291)

Thanks @MarkSimontonOfCGhttps://github.com/MarkSimontonOfCG , I'll look into this and update accordingly. Appreciate it.

- Reply to this email directly, view it on GitHubhttps://github.com/usnistgov/ACVP-Server/issues/291#issuecomment-1781870133, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BDIH5TCXDVTM4EXTFMTLCP3YBLDVHAVCNFSM6AAAAAA57V567KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBRHA3TAMJTGM. You are receiving this because you were mentioned.Message ID: @.***>

jbrock24 commented 7 months ago

Hi @MarkSimontonOfCG Sorry for the delay here, but I will make that change to the documentation to specify the A0-3 encoding. As far as your second question, your test has expired, you'd need to perform another run for me to provide it for you.

MarkSimontonOfCG commented 7 months ago

@jbrock24 thank you for the response I have downloaded a new set of vectors and the expected results. "\/acvp\/v1\/testSessions\/464422\/vectorSets\/2021126"

request: { "vsId": 2021126, "algorithm": "kdf-components", "mode": "ansix9.42", "revision": "1.0", "isSample": true, "testGroups": [ { "tgId": 1, "testType": "AFT", "hashAlg": "SHA2-256", "kdfType": "DER", "oid": "0609608648016503040105", "tests": [ { "tcId": 1, "zz": "38AA6E97CBDBDA434C77BCE83042304DA72C03D6FC22FD6187B7DECFB796CB9118C2DF69", "keyLen": 464, "partyUInfo": "82A6319B7232C42D5B68FCEB1EB25FE20541D15A5AAC0039E952F3EFEB02F5734953D430919D383BD39E7F7147615909894D3DEF7C4DD257D6C3", "partyVInfo": "91A64A60D582027BC74BE888F6EE73189CC481CB47C856DB2959084EE0C02ABEA68C775D3422D1AE98F66A7844D3710D7706169A613AF908037E", "suppPubInfo": "CC75D808BB2EDAC85535CC25297FDFDFE94AF34654DE37DA37B091C984854B65F9DED61E9588EA1C860C2DCDAEA22268A917052925556FA2936D", "suppPrivInfo": "2689DB763621691B059A1005A0F8BAB7A8FF4B696C33EAC411C2022EF462EFBC301698D3B5563EB69FA0283FB74F95D46B71D7E0937FDDBF5C90" } ] } ] } response { "vsId": 2021126, "algorithm": "kdf-components", "testGroups": [ { "tgId": 1, "tests": [ { "tcId": 1, "derivedKey": "F84F12A451734149FA610D9127359F9A941272FFCA5393388125B2BC8073481C77516F4ED8D21A7ACD493D158BCC1388E6F22240812CFD69EC89" } ] } ] } expected { "vsId": 2021126, "algorithm": "kdf-components", "mode": "ansix9.42", "revision": "1.0", "isSample": true, "testGroups": [ { "tgId": 1, "tests": [ { "tcId": 1, "derivedKey": "CA4E79F6AC5104929D180545E34614DDA85B6686B8DA437240423B2F9A283C1EC863352058939940E3B068AE00F003C39D13CEE02C0C06D7D538" } ] } ] } `verbose output: ACVP [INFO][show_tc_param_values:184]--> CON_OUT-TEST-2021126.1.1-20231214_112620 ACVP [INFO][show_tc_param_values:185]--> test: 2021126.1.1 ACVP [INFO][show_tc_param_values:186]--> algorithm: 4, DER ACVP [INFO][show_tc_param_values:187]--> mode: 34, ANSI x9.42 ACVP [INFO][show_tc_param_values:188]--> testType: 1, AFT OID[11] = 06 09 60 86 48 01 65 03 04 01 05 zz[36] = 38 AA 6E 97 CB DB DA 43 4C 77 BC E8 30 42 30 4D A7 2C 03 D6 FC 22 FD 61 87 B7 DE CF B7 96 CB 91 18 C2 DF 69 ACVP [INFO][show_tc_param_values:191]--> keyLen: 464 partyUInfo[58] = 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 partyVInfo[58] = 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E suppPubInfo[58] = CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D suppPrivInfo[58] = 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90

ZZ [36] = 38 AA 6E 97 CB DB DA 43 4C 77 BC E8 30 42 30 4D A7 2C 03 D6 FC 22 FD 61 87 B7 DE CF B7 96 CB 91 18 C2 DF 69 count[6] = 04 04 00 00 00 01 OtherInfo(oid, count)[19] = 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 01 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 ACVP [INFO][get_optional_other_info_key_material:570]--> bytes used: 240 Optional Key Material[240] = A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 key_material_other_info_buf[263] = 30 82 01 03 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 01 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 keyMaterialBuffer[299] = 38 AA 6E 97 CB DB DA 43 4C 77 BC E8 30 42 30 4D A7 2C 03 D6 FC 22 FD 61 87 B7 DE CF B7 96 CB 91 18 C2 DF 69 30 82 01 03 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 01 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 ACVP [INFO][show_tc_and_hash_param_values:144]--> (tc->tcId = 1) ACVP [INFO][show_tc_and_hash_param_values:145]--> itteration: 1 / 2 ACVP [INFO][show_tc_and_hash_param_values:147]--> (hash_param.algSHA = SHA256 HASH Result[32] = F8 4F 12 A4 51 73 41 49 FA 61 0D 91 27 35 9F 9A 94 12 72 FF CA 53 93 38 81 25 B2 BC 80 73 48 1C pbHashConcatBuffer[32] = F8 4F 12 A4 51 73 41 49 FA 61 0D 91 27 35 9F 9A 94 12 72 FF CA 53 93 38 81 25 B2 BC 80 73 48 1C ZZ [36] = 38 AA 6E 97 CB DB DA 43 4C 77 BC E8 30 42 30 4D A7 2C 03 D6 FC 22 FD 61 87 B7 DE CF B7 96 CB 91 18 C2 DF 69 count[6] = 04 04 00 00 00 02 OtherInfo(oid, count)[19] = 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 02 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 ACVP [INFO][get_optional_other_info_key_material:570]--> bytes used: 240 Optional Key Material[240] = A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 key_material_other_info_buf[263] = 30 82 01 03 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 02 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 keyMaterialBuffer[299] = 38 AA 6E 97 CB DB DA 43 4C 77 BC E8 30 42 30 4D A7 2C 03 D6 FC 22 FD 61 87 B7 DE CF B7 96 CB 91 18 C2 DF 69 30 82 01 03 30 11 06 09 60 86 48 01 65 03 04 01 05 04 04 00 00 00 02 A0 3A 82 A6 31 9B 72 32 C4 2D 5B 68 FC EB 1E B2 5F E2 05 41 D1 5A 5A AC 00 39 E9 52 F3 EF EB 02 F5 73 49 53 D4 30 91 9D 38 3B D3 9E 7F 71 47 61 59 09 89 4D 3D EF 7C 4D D2 57 D6 C3 A1 3A 91 A6 4A 60 D5 82 02 7B C7 4B E8 88 F6 EE 73 18 9C C4 81 CB 47 C8 56 DB 29 59 08 4E E0 C0 2A BE A6 8C 77 5D 34 22 D1 AE 98 F6 6A 78 44 D3 71 0D 77 06 16 9A 61 3A F9 08 03 7E A2 3A CC 75 D8 08 BB 2E DA C8 55 35 CC 25 29 7F DF DF E9 4A F3 46 54 DE 37 DA 37 B0 91 C9 84 85 4B 65 F9 DE D6 1E 95 88 EA 1C 86 0C 2D CD AE A2 22 68 A9 17 05 29 25 55 6F A2 93 6D A3 3A 26 89 DB 76 36 21 69 1B 05 9A 10 05 A0 F8 BA B7 A8 FF 4B 69 6C 33 EA C4 11 C2 02 2E F4 62 EF BC 30 16 98 D3 B5 56 3E B6 9F A0 28 3F B7 4F 95 D4 6B 71 D7 E0 93 7F DD BF 5C 90 ACVP [INFO][show_tc_and_hash_param_values:144]--> (tc->tcId = 1) ACVP [INFO][show_tc_and_hash_param_values:145]--> itteration: 2 / 2 ACVP [INFO][show_tc_and_hash_param_values:147]--> (hash_param.algSHA = SHA256 HASH Result[32] = 77 51 6F 4E D8 D2 1A 7A CD 49 3D 15 8B CC 13 88 E6 F2 22 40 81 2C FD 69 EC 89 AD 8D 03 2B 37 FF pbHashConcatBuffer[64] = F8 4F 12 A4 51 73 41 49 FA 61 0D 91 27 35 9F 9A 94 12 72 FF CA 53 93 38 81 25 B2 BC 80 73 48 1C 77 51 6F 4E D8 D2 1A 7A CD 49 3D 15 8B CC 13 88 E6 F2 22 40 81 2C FD 69 EC 89 AD 8D 03 2B 37 FF derivedKey[58] = F8 4F 12 A4 51 73 41 49 FA 61 0D 91 27 35 9F 9A 94 12 72 FF CA 53 93 38 81 25 B2 BC 80 73 48 1C 77 51 6F 4E D8 D2 1A 7A CD 49 3D 15 8B CC 13 88 E6 F2 22 40 81 2C FD 69 EC 89`

ANSI-X9_42KDF-der-sha256-kl464_20231214_1130.txt ANSI-X9_42KDF-der-sha256-kl464_request.json ANSI-X9_42KDF-der-sha256-kl464_response.json ANSI-X9_42KDF-der-sha256-kl464_ts464422_vs2021126_20231213_112232_expected.json

jbrock24 commented 5 months ago

Hi @MarkSimontonOfCG, I'm unable to provide a dump for that, but the values that go into the hash can be found within the code, here is where all that happens. What goes into it can be found within the DeriveKey and DerEncode methods.

I am going to update the documentation alongside this current release of *.33 coming out. Please let me know if there's any continued confusion that I can try and be helpful with.

MarkSimontonOfCG commented 5 months ago

Thanks for the response. I am redoing my code to somewhat mimic yours (as much as C can mimic C#) 😊

From: Joel Brockman @.> Sent: Wednesday, January 31, 2024 11:45 AM To: usnistgov/ACVP-Server @.> Cc: Mark Simonton (Capgemini America Inc) @.>; Mention @.> Subject: Re: [usnistgov/ACVP-Server] help request: kdf ansi x9.42 der; derived key does not match expected (Issue #291)

Hi @MarkSimontonOfCGhttps://github.com/MarkSimontonOfCG, I'm unable to provide a dump for that, but the values that go into the hash can be found within the code, herehttps://gitlab.nist.gov/gitlab/cvp/cavp/genvals/-/blob/develop/gen-val/src/crypto/src/NIST.CVP.ACVTS.Libraries.Crypto/ANSIX942/AnsiX942Der.cs?ref_type=heads is where all that happens. What goes into it can be found within the DeriveKey and DerEncode methods.

I am going to update the documentation alongside this current release of *.33 coming out. Please let me know if there's any continued confusion that I can try and be helpful with.

— Reply to this email directly, view it on GitHubhttps://github.com/usnistgov/ACVP-Server/issues/291#issuecomment-1919814158, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BDIH5TA36GKF7HH2BXASPM3YRKNMTAVCNFSM6AAAAAA57V567KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJZHAYTIMJVHA. You are receiving this because you were mentioned.Message ID: @.***>

jbrock24 commented 5 months ago

Gonna close this out, if a related issue pops up, can open up a new ticket. Thanks! Oh, and reference it here, ty!