1e1051a39Sopenharmony_ci#! /usr/bin/env perl 2e1051a39Sopenharmony_ci# Copyright 2017-2021 The OpenSSL Project Authors. All Rights Reserved. 3e1051a39Sopenharmony_ci# 4e1051a39Sopenharmony_ci# Licensed under the Apache License 2.0 (the "License"). You may not use 5e1051a39Sopenharmony_ci# this file except in compliance with the License. You can obtain a copy 6e1051a39Sopenharmony_ci# in the file LICENSE in the source distribution or at 7e1051a39Sopenharmony_ci# https://www.openssl.org/source/license.html 8e1051a39Sopenharmony_ci 9e1051a39Sopenharmony_ciuse strict; 10e1051a39Sopenharmony_ciuse warnings; 11e1051a39Sopenharmony_ci 12e1051a39Sopenharmony_ciuse File::Spec; 13e1051a39Sopenharmony_ciuse OpenSSL::Glob; 14e1051a39Sopenharmony_ciuse OpenSSL::Test qw/:DEFAULT data_file/; 15e1051a39Sopenharmony_ciuse OpenSSL::Test::Utils; 16e1051a39Sopenharmony_ci 17e1051a39Sopenharmony_cisetup("test_dsaparam"); 18e1051a39Sopenharmony_ci 19e1051a39Sopenharmony_ci=pod Generation script 20e1051a39Sopenharmony_ci 21e1051a39Sopenharmony_ci#!/bin/sh 22e1051a39Sopenharmony_ci 23e1051a39Sopenharmony_ciTESTDIR=test/recipes/15-test_dsaparam_data/valid 24e1051a39Sopenharmony_cirm -rf $TESTDIR 25e1051a39Sopenharmony_cimkdir -p $TESTDIR 26e1051a39Sopenharmony_ci 27e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:160 -pkeyopt type:fips186_4 -out $TESTDIR/p1024_q160_t1864.pem 28e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:224 -pkeyopt type:fips186_4 -out $TESTDIR/p2048_q224_t1864.pem 29e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:256 -pkeyopt type:fips186_4 -out $TESTDIR/p2048_q256_t1864.pem 30e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:256 -pkeyopt type:fips186_4 -out $TESTDIR/p3072_q256_t1864.pem 31e1051a39Sopenharmony_ci 32e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:160 -pkeyopt type:fips186_4 -pkeyopt gindex:1 -out $TESTDIR/p1024_q160_t1864_gind1.pem 33e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:224 -pkeyopt type:fips186_4 -pkeyopt gindex:1 -out $TESTDIR/p2048_q224_t1864_gind1.pem 34e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:256 -pkeyopt type:fips186_4 -pkeyopt gindex:1 -out $TESTDIR/p2048_q256_t1864_gind1.pem 35e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:256 -pkeyopt type:fips186_4 -pkeyopt gindex:1 -out $TESTDIR/p3072_q256_t1864_gind1.pem 36e1051a39Sopenharmony_ci 37e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -out $TESTDIR/p1024_q160_t1862.pem 38e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -out $TESTDIR/p1024_q224_t1862.pem 39e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -out $TESTDIR/p1024_q256_t1862.pem 40e1051a39Sopenharmony_ci 41e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -out $TESTDIR/p2048_q160_t1862.pem 42e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -out $TESTDIR/p2048_q224_t1862.pem 43e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -out $TESTDIR/p2048_q256_t1862.pem 44e1051a39Sopenharmony_ci 45e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -out $TESTDIR/p3072_q160_t1862.pem 46e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -out $TESTDIR/p3072_q224_t1862.pem 47e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -out $TESTDIR/p3072_q256_t1862.pem 48e1051a39Sopenharmony_ci 49e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p1024_q160_t1862_gind1.pem 50e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p1024_q224_t1862_gind1.pem 51e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:1024 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p1024_q256_t1862_gind1.pem 52e1051a39Sopenharmony_ci 53e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p2048_q160_t1862_gind1.pem 54e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p2048_q224_t1862_gind1.pem 55e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:2048 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p2048_q256_t1862_gind1.pem 56e1051a39Sopenharmony_ci 57e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:160 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p3072_q160_t1862_gind1.pem 58e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:224 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p3072_q224_t1862_gind1.pem 59e1051a39Sopenharmony_ci./util/opensslwrap.sh genpkey -genparam -algorithm DSA -pkeyopt dsa_paramgen_bits:3072 -pkeyopt qbits:256 -pkeyopt type:fips186_2 -pkeyopt gindex:1 -out $TESTDIR/p3072_q256_t1862_gind1.pem 60e1051a39Sopenharmony_ci 61e1051a39Sopenharmony_ci=cut 62e1051a39Sopenharmony_ci 63e1051a39Sopenharmony_ciplan skip_all => "DSA isn't supported in this build" 64e1051a39Sopenharmony_ci if disabled("dsa"); 65e1051a39Sopenharmony_ci 66e1051a39Sopenharmony_cimy @valid = glob(data_file("valid", "*.pem")); 67e1051a39Sopenharmony_cimy @invalid = glob(data_file("invalid", "*.pem")); 68e1051a39Sopenharmony_ci 69e1051a39Sopenharmony_cimy $num_tests = scalar @valid + scalar @invalid; 70e1051a39Sopenharmony_ciplan tests => $num_tests; 71e1051a39Sopenharmony_ci 72e1051a39Sopenharmony_ciforeach (@valid) { 73e1051a39Sopenharmony_ci ok(run(app([qw{openssl pkeyparam -noout -check -in}, $_]))); 74e1051a39Sopenharmony_ci} 75e1051a39Sopenharmony_ci 76e1051a39Sopenharmony_ciforeach (@invalid) { 77e1051a39Sopenharmony_ci ok(!run(app([qw{openssl pkeyparam -noout -check -in}, $_]))); 78e1051a39Sopenharmony_ci} 79