Trying to write a PKCS#12 integrity function as in RFC 7292.
See certificate below (generated with openSSL), password = "123456".
I compared with mbed TLS and it looks good, but could someone confirm that the computed key from salt (0xCFA02B24583B9EE36C508C7FFB875FE652AD797F), password and iterations (100000) using SHA1 is actually 0xB988D43E0B9CF2B84D837A3DD3FCEDFA826D9E1D?
RFC 7292 states that "If the PFX PDU is to be authenticated with HMAC, then an HMAC with SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, or SHA-512/256 is computed on the contents of the Data in T (i.e., excluding the OCTET STRING tag and length bytes). In this example, Data should be 0x308209F7308205AE0609...3092DCC53A93ECFE3D (2555 bytes).
With this chunk, the computed HMAC is different from the expected one (0xE897CBC69CA16B9EA7C717708DACAA8223D55E0F). Am I using the correct byte string for Data? Is there simple a test case in C somewhere that I can compile to compare step by step values with a debugger?
Thanks.
Certificate
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