]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
tests: check algorithms for generating PKCS#12 file
authorDaiki Ueno <ueno@gnu.org>
Tue, 21 Dec 2021 14:02:45 +0000 (15:02 +0100)
committerDaiki Ueno <ueno@gnu.org>
Tue, 11 Jan 2022 15:35:03 +0000 (16:35 +0100)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
.x-sc_space_tab [new file with mode: 0644]
tests/cert-tests/Makefile.am
tests/cert-tests/pkcs12.sh

diff --git a/.x-sc_space_tab b/.x-sc_space_tab
new file mode 100644 (file)
index 0000000..36b2b50
--- /dev/null
@@ -0,0 +1 @@
+^tests/cert-tests/pkcs12.sh
index f1de1bef27ee94887e142da7cbf8de82a264b144..0c78cd9a1d58714b95e581bb0f083e6dcba7d7c6 100644 (file)
@@ -160,6 +160,7 @@ TESTS_ENVIRONMENT = EXEEXT=$(EXEEXT) \
        ASAN_OPTIONS="detect_leaks=0:exitcode=6" \
        GNUTLS_TEST_SUITE_RUN=1                 \
        GNUTLS_SYSTEM_PRIORITY_FILE=$(abs_top_srcdir)/tests/system.prio \
+       PKCS12_ITER_COUNT="$(PKCS12_ITER_COUNT)" \
        srcdir="$(srcdir)"
 
 if ENABLE_FIPS140
index a04b043c8ec4625284ae62103c240078e9e21853..445a82eff4426ef2deb2b191479b3f86abb9f4cd 100755 (executable)
@@ -40,8 +40,11 @@ fi
 : ${DIFF=diff}
 DEBUG=""
 
-TMPFILE=pkcs12.$$.tmp
-TMPFILE_PEM=pkcs12.$$.pem.tmp
+. "${srcdir}/../scripts/common.sh"
+testdir=`create_testdir pkcs12`
+
+TMPFILE=$testdir/pkcs12
+TMPFILE_PEM=$testdir/pkcs12.pem
 
 DEBUG="1"
 
@@ -101,7 +104,7 @@ if test ${rc} != 0; then
        exit 1
 fi
 
-${VALGRIND} "${CERTTOOL}" --p12-info --inder --password 1234 --infile $TMPFILE >${TMPFILE_PEM} 2>/dev/null
+${VALGRIND} "${CERTTOOL}" --p12-info --inder --password 1234 --infile $TMPFILE|tr -d '\r' >${TMPFILE_PEM} 2>/dev/null
 rc=$?
 if test ${rc} != 0; then
        echo "PKCS12 FATAL decrypting/decoding"
@@ -122,4 +125,43 @@ if test "${rc}" != "0"; then
        exit ${rc}
 fi
 
+INFO_EXP=$testdir/p12-info.exp
+INFO_OUT=$testdir/p12-info.out
+
+cat >$INFO_EXP <<EOF
+MAC info:
+       MAC: SHA256 (2.16.840.1.101.3.4.2.1)
+       Salt size: 8
+       Iteration count: $PKCS12_ITER_COUNT
+
+BAG #0
+       Type: Encrypted
+       Cipher: AES-128-CBC
+       Schema: PBES2-AES128-CBC (2.16.840.1.101.3.4.1.2)
+       Iteration count: $PKCS12_ITER_COUNT
+
+BAG #1
+       Elements: 1
+       Type: PKCS #8 Encrypted key
+       PKCS #8 information:
+               Cipher: AES-128-CBC
+               Schema: PBES2-AES128-CBC (2.16.840.1.101.3.4.1.2)
+               Iteration count: $PKCS12_ITER_COUNT
+
+EOF
+
+sed -n '/^\(MAC\|BAG\)/,/^$/p' ${TMPFILE_PEM} | \
+sed -e '/^[    ]*Salt:/d' \
+    -e '/^BAG #[0-9]*/,$ { /^[         ]*Salt size:/d }' > ${INFO_OUT}
+
+diff ${INFO_EXP} ${INFO_OUT}
+
+rc=$?
+
+if test "${rc}" != "0"; then
+       exit ${rc}
+fi
+
+rm -rf "${testdir}"
+
 exit 0