@@ -6,46 +6,41 @@ source "${TESTSSRCDIR}/helpers.sh"
66
77title PARA " Test HMAC support"
88
9- # Use a large key size, softhsm requires it to be >= digest size
10- HMAC_HEX_KEY=aaaabbbbaaaabbbbaaaabbbbaaaabbbbaaaabbbbaaaabbbbaaaabbbbaaaabbbb
11-
12- declare -A digests=(
13- # These HMAC digests should be generally supported
14- [" supported" ]=" sha1 SSL3-SHA1 SHA1 SHA256 SHA-256 SHA2-256 SHA384 SHA-384 SHA2-384 SHA512 SHA-512 SHA2-512"
15-
16- [" optional" ]=" SHA512-224 SHA-512/224 SHA2-512/224 SHA512-256 SHA-512/256 SHA2-512/256"
9+ HMAC_HEX_KEY=aaaabbbbaaaabbbbaaaabbbbaaaabbbb
10+
11+ digests=(
12+ SHA1
13+ SHA256
14+ SHA384
15+ SHA512
16+ SHA3-224
17+ SHA3-256
18+ SHA3-384
19+ SHA3-512
1720)
1821
19- for key in " ${! digests[@]} " ; do
20- IFS=" " read -r -a values <<< " ${digests[$key]}"
21- FAIL=0
22-
23- for digest in " ${values[@]} " ; do
24- ossl "
25- mac -digest ${digest}
26- -macopt key:${HMAC_HEX_KEY}
27- -in ${RAND64FILE}
28- -out ${TMPPDIR} /hmac-out-pkcs11.bin
29- -propquery provider=pkcs11
30- hmac" || FAIL=1
31- if [ $FAIL -eq 1 ]; then
32- if [ " ${key} " = " supported" ]; then
33- exit 1
34- else
35- continue
36- fi
37- fi
38-
39- ossl "
40- mac -digest ${digest}
41- -macopt key:${HMAC_HEX_KEY}
42- -in ${RAND64FILE}
43- -out ${TMPPDIR} /hmac-out.bin
44- hmac" || FAIL=1
45- if [ $FAIL -eq 1 ]; then
46- exit 1
47- fi
48-
49- diff " ${TMPPDIR} /hmac-out-pkcs11.bin" " ${TMPPDIR} /hmac-out.bin"
50- done
22+ for digest in ${digests[@]} ; do
23+ ossl "
24+ mac -digest ${digest}
25+ -macopt key:${HMAC_HEX_KEY}
26+ -in ${RAND64FILE}
27+ -out ${TMPPDIR} /hmac-out-${digest} .bin
28+ hmac" || exit 1
29+ done
30+
31+ # After hmac generation force all operations on the token
32+ ORIG_OPENSSL_CONF=${OPENSSL_CONF}
33+ sed -e " s/#MORECONF/alg_section = algorithm_sec\n\n[algorithm_sec]\ndefault_properties = ?provider=pkcs11/" \
34+ " ${OPENSSL_CONF} " > " ${OPENSSL_CONF} .forcetoken"
35+ OPENSSL_CONF=${OPENSSL_CONF} .forcetoken
36+
37+ for digest in ${digests[@]} ; do
38+ ossl "
39+ mac -digest ${digest}
40+ -macopt key:${HMAC_HEX_KEY}
41+ -in ${RAND64FILE}
42+ -out ${TMPPDIR} /hmac-out-pkcs11-${digest} .bin
43+ hmac" || exit 1
44+
45+ diff " ${TMPPDIR} /hmac-out-${digest} .bin" " ${TMPPDIR} /hmac-out-pkcs11-${digest} .bin"
5146done
0 commit comments