Skip to content

Commit 03a3f0e

Browse files
fixup! Add support for HMAC.
Removed SoftHSM from supported suites list. During test, force all ops on token. Signed-off-by: Ilie Halip <[email protected]>
1 parent 169e444 commit 03a3f0e

File tree

2 files changed

+36
-41
lines changed

2 files changed

+36
-41
lines changed

tests/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ tests = {
154154
'fork': {'suites': all_suites},
155155
'oaepsha2': {'suites': ['softokn', 'kryoptic', 'kryoptic.nss']},
156156
'hkdf': {'suites': ['softokn', 'kryoptic', 'kryoptic.nss']},
157-
'hmac': {'suites': all_suites},
157+
'hmac': {'suites': ['softokn', 'kryoptic', 'kryoptic.nss']},
158158
'imported' : {'suites': ['softokn', 'kryoptic', 'kryoptic.nss']},
159159
'pem_encoder': {'suites': all_suites},
160160
'rsa': {'suites': all_suites},

tests/thmac

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,41 @@ source "${TESTSSRCDIR}/helpers.sh"
66

77
title 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"
5146
done

0 commit comments

Comments
 (0)