diff options
author | job <> | 2024-01-26 11:58:37 +0000 |
---|---|---|
committer | job <> | 2024-01-26 11:58:37 +0000 |
commit | ebf8195ae2a041b9e833b4a53bdf3b0f0ac2fee7 (patch) | |
tree | 22591d8d23256836bf7d611b624a079dc6dafe19 /src/regress/usr.bin/openssl | |
parent | e71abd74fd0206dc7a48c9c5a889e557b2afbb45 (diff) | |
download | openbsd-ebf8195ae2a041b9e833b4a53bdf3b0f0ac2fee7.tar.gz openbsd-ebf8195ae2a041b9e833b4a53bdf3b0f0ac2fee7.tar.bz2 openbsd-ebf8195ae2a041b9e833b4a53bdf3b0f0ac2fee7.zip |
Add 'openssl x509 -new' functionality to the libcrypto CLI utility
The ability to generate a new certificate is useful for testing and
experimentation with rechaining PKIs.
While there, alias '-key' to '-signkey' for compatibility.
with and OK tb@
Diffstat (limited to 'src/regress/usr.bin/openssl')
-rwxr-xr-x | src/regress/usr.bin/openssl/appstest.sh | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/src/regress/usr.bin/openssl/appstest.sh b/src/regress/usr.bin/openssl/appstest.sh index 500fae0251..8c0e75deb4 100755 --- a/src/regress/usr.bin/openssl/appstest.sh +++ b/src/regress/usr.bin/openssl/appstest.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | # | 2 | # |
3 | # $OpenBSD: appstest.sh,v 1.60 2024/01/12 13:16:48 tb Exp $ | 3 | # $OpenBSD: appstest.sh,v 1.61 2024/01/26 11:58:36 job Exp $ |
4 | # | 4 | # |
5 | # Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org> | 5 | # Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org> |
6 | # | 6 | # |
@@ -867,6 +867,55 @@ __EOF__ | |||
867 | diff $server_dir/testpubkey.pem $revoke_cert.pub | 867 | diff $server_dir/testpubkey.pem $revoke_cert.pub |
868 | check_exit_status $? | 868 | check_exit_status $? |
869 | 869 | ||
870 | start_message "x509 ... test -new" | ||
871 | $openssl_bin genrsa -out $server_dir/ca-new.key 2048 | ||
872 | check_exit_status $? | ||
873 | $openssl_bin x509 -new -set_issuer '/CN=test-issuer' \ | ||
874 | -set_subject '/CN=test-subject' \ | ||
875 | -out $server_dir/new.pem -days 1 -key $server_dir/ca-new.key \ | ||
876 | -force_pubkey $revoke_cert.pub | ||
877 | check_exit_status $? | ||
878 | $openssl_bin x509 -in $server_dir/new.pem -pubkey -noout \ | ||
879 | > $server_dir/new.pem.pub | ||
880 | check_exit_status $? | ||
881 | |||
882 | start_message "x509 ... check if -new cert has proper pubkey" | ||
883 | diff $server_dir/testpubkey.pem $server_dir/new.pem.pub | ||
884 | check_exit_status $? | ||
885 | |||
886 | start_message "x509 ... check if -new cert has proper issuer & subject" | ||
887 | if [ "$($openssl_bin x509 -in $server_dir/new.pem -issuer -noout)" != \ | ||
888 | "issuer= /CN=test-issuer" ]; then | ||
889 | exit 1 | ||
890 | fi | ||
891 | if [ "$($openssl_bin x509 -in $server_dir/new.pem -subject -noout)" != \ | ||
892 | "subject= /CN=test-subject" ]; then | ||
893 | exit 1 | ||
894 | fi | ||
895 | check_exit_status 0 | ||
896 | |||
897 | start_message "x509 ... test -new without -force_pubkey" | ||
898 | $openssl_bin x509 -new -set_subject '/CN=test-subject2' \ | ||
899 | -out $server_dir/new2.pem -days 1 -key $server_dir/ca-new.key | ||
900 | check_exit_status $? | ||
901 | $openssl_bin x509 -in $server_dir/new2.pem -pubkey -noout \ | ||
902 | > $server_dir/new2.pem.pub | ||
903 | check_exit_status $? | ||
904 | $openssl_bin rsa -in $server_dir/ca-new.key -pubout \ | ||
905 | -out $server_dir/ca-new.pubkey | ||
906 | check_exit_status $? | ||
907 | diff $server_dir/new2.pem.pub $server_dir/ca-new.pubkey | ||
908 | check_exit_status $? | ||
909 | if [ "$($openssl_bin x509 -in $server_dir/new2.pem -issuer -noout)" \ | ||
910 | != "issuer= /CN=test-subject2" ]; then | ||
911 | exit 1 | ||
912 | fi | ||
913 | if [ "$($openssl_bin x509 -in $server_dir/new2.pem -subject -noout)" \ | ||
914 | != "subject= /CN=test-subject2" ]; then | ||
915 | exit 1 | ||
916 | fi | ||
917 | check_exit_status 0 | ||
918 | |||
870 | start_message "ca ... issue cert for server csr#3" | 919 | start_message "ca ... issue cert for server csr#3" |
871 | 920 | ||
872 | sv_ecdsa_cert=$server_dir/sv_ecdsa_cert.pem | 921 | sv_ecdsa_cert=$server_dir/sv_ecdsa_cert.pem |