#!/bin/sh # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # SPDX-License-Identifier: MPL-2.0 # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. prog=$0 args="" quiet=0 dir="" msg="cryptography" if test -z "$KEYGEN"; then . ../conf.sh alg="-a $DEFAULT_ALGORITHM -b $DEFAULT_BITS" else alg="" quiet=1 args="-q" fi while test "$#" -gt 0; do case $1 in -q) if test $quiet -eq 0; then args="$args -q" quiet=1 fi ;; rsa | RSA | rsasha1 | RSASHA1) alg="-a RSASHA1" msg="RSA cryptography" ;; rsasha256 | RSASHA256) alg="-a RSASHA256" msg="RSA cryptography" ;; rsasha512 | RSASHA512) alg="-a RSASHA512" msg="RSA cryptography" ;; ecdsa | ECDSA | ecdsap256sha256 | ECDSAP256SHA256) alg="-a ECDSAP256SHA256" msg="ECDSA cryptography" ;; ecdsap384sha384 | ECDSAP384SHA384) alg="-a ECDSAP384SHA384" msg="ECDSA cryptography" ;; eddsa | EDDSA | ed25519 | ED25519) alg="-a ED25519" msg="EDDSA cryptography" ;; ed448 | ED448) alg="-a ED448" msg="EDDSA cryptography" ;; *) echo "${prog}: unknown argument" exit 1 ;; esac shift done if test -z "$alg"; then echo "${prog}: no algorithm selected" exit 1 fi if test -n "$TMPDIR"; then dir=$(mktemp -d "$TMPDIR/XXXXXX") args="$args -K $dir" fi if $KEYGEN $args $alg foo >/dev/null 2>&1; then if test -z "$dir"; then rm -f Kfoo* else rm -rf "$dir" fi else if test $quiet -eq 0; then echo_i "This test requires support for $msg" >&2 fi exit 255 fi