diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr.bin/openssl/smime.c | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/usr.bin/openssl/smime.c b/src/usr.bin/openssl/smime.c index 65b4ac079f..0783ebafa9 100644 --- a/src/usr.bin/openssl/smime.c +++ b/src/usr.bin/openssl/smime.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: smime.c,v 1.12 2022/01/11 14:35:14 inoguchi Exp $ */ | 1 | /* $OpenBSD: smime.c,v 1.13 2022/01/11 15:02:34 inoguchi Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project. | 3 | * project. |
| 4 | */ | 4 | */ |
| @@ -738,39 +738,39 @@ smime_main(int argc, char **argv) | |||
| 738 | args = argv + argsused; | 738 | args = argv + argsused; |
| 739 | ret = 1; | 739 | ret = 1; |
| 740 | 740 | ||
| 741 | if (!(smime_config.operation & SMIME_SIGNERS) && (smime_config.skkeys || smime_config.sksigners)) { | 741 | if (!(smime_config.operation & SMIME_SIGNERS) && (smime_config.skkeys != NULL || smime_config.sksigners != NULL)) { |
| 742 | BIO_puts(bio_err, "Multiple signers or keys not allowed\n"); | 742 | BIO_puts(bio_err, "Multiple signers or keys not allowed\n"); |
| 743 | goto argerr; | 743 | goto argerr; |
| 744 | } | 744 | } |
| 745 | if (smime_config.operation & SMIME_SIGNERS) { | 745 | if (smime_config.operation & SMIME_SIGNERS) { |
| 746 | /* Check to see if any final signer needs to be appended */ | 746 | /* Check to see if any final signer needs to be appended */ |
| 747 | if (smime_config.keyfile && !smime_config.signerfile) { | 747 | if (smime_config.keyfile != NULL && smime_config.signerfile == NULL) { |
| 748 | BIO_puts(bio_err, "Illegal -inkey without -signer\n"); | 748 | BIO_puts(bio_err, "Illegal -inkey without -signer\n"); |
| 749 | goto argerr; | 749 | goto argerr; |
| 750 | } | 750 | } |
| 751 | if (smime_config.signerfile) { | 751 | if (smime_config.signerfile != NULL) { |
| 752 | if (!smime_config.sksigners) | 752 | if (smime_config.sksigners == NULL) |
| 753 | smime_config.sksigners = sk_OPENSSL_STRING_new_null(); | 753 | smime_config.sksigners = sk_OPENSSL_STRING_new_null(); |
| 754 | sk_OPENSSL_STRING_push(smime_config.sksigners, smime_config.signerfile); | 754 | sk_OPENSSL_STRING_push(smime_config.sksigners, smime_config.signerfile); |
| 755 | if (!smime_config.skkeys) | 755 | if (smime_config.skkeys == NULL) |
| 756 | smime_config.skkeys = sk_OPENSSL_STRING_new_null(); | 756 | smime_config.skkeys = sk_OPENSSL_STRING_new_null(); |
| 757 | if (!smime_config.keyfile) | 757 | if (smime_config.keyfile == NULL) |
| 758 | smime_config.keyfile = smime_config.signerfile; | 758 | smime_config.keyfile = smime_config.signerfile; |
| 759 | sk_OPENSSL_STRING_push(smime_config.skkeys, smime_config.keyfile); | 759 | sk_OPENSSL_STRING_push(smime_config.skkeys, smime_config.keyfile); |
| 760 | } | 760 | } |
| 761 | if (!smime_config.sksigners) { | 761 | if (smime_config.sksigners == NULL) { |
| 762 | BIO_printf(bio_err, "No signer certificate specified\n"); | 762 | BIO_printf(bio_err, "No signer certificate specified\n"); |
| 763 | badarg = 1; | 763 | badarg = 1; |
| 764 | } | 764 | } |
| 765 | smime_config.signerfile = NULL; | 765 | smime_config.signerfile = NULL; |
| 766 | smime_config.keyfile = NULL; | 766 | smime_config.keyfile = NULL; |
| 767 | } else if (smime_config.operation == SMIME_DECRYPT) { | 767 | } else if (smime_config.operation == SMIME_DECRYPT) { |
| 768 | if (!smime_config.recipfile && !smime_config.keyfile) { | 768 | if (smime_config.recipfile == NULL && smime_config.keyfile == NULL) { |
| 769 | BIO_printf(bio_err, "No recipient certificate or key specified\n"); | 769 | BIO_printf(bio_err, "No recipient certificate or key specified\n"); |
| 770 | badarg = 1; | 770 | badarg = 1; |
| 771 | } | 771 | } |
| 772 | } else if (smime_config.operation == SMIME_ENCRYPT) { | 772 | } else if (smime_config.operation == SMIME_ENCRYPT) { |
| 773 | if (!*args) { | 773 | if (*args == NULL) { |
| 774 | BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n"); | 774 | BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n"); |
| 775 | badarg = 1; | 775 | badarg = 1; |
| 776 | } | 776 | } |
| @@ -809,7 +809,7 @@ smime_main(int argc, char **argv) | |||
| 809 | } | 809 | } |
| 810 | 810 | ||
| 811 | if (smime_config.operation == SMIME_ENCRYPT) { | 811 | if (smime_config.operation == SMIME_ENCRYPT) { |
| 812 | if (!smime_config.cipher) { | 812 | if (smime_config.cipher == NULL) { |
| 813 | #ifndef OPENSSL_NO_RC2 | 813 | #ifndef OPENSSL_NO_RC2 |
| 814 | smime_config.cipher = EVP_rc2_40_cbc(); | 814 | smime_config.cipher = EVP_rc2_40_cbc(); |
| 815 | #else | 815 | #else |
| @@ -818,9 +818,9 @@ smime_main(int argc, char **argv) | |||
| 818 | #endif | 818 | #endif |
| 819 | } | 819 | } |
| 820 | encerts = sk_X509_new_null(); | 820 | encerts = sk_X509_new_null(); |
| 821 | while (*args) { | 821 | while (*args != NULL) { |
| 822 | if (!(cert = load_cert(bio_err, *args, FORMAT_PEM, | 822 | if ((cert = load_cert(bio_err, *args, FORMAT_PEM, |
| 823 | NULL, "recipient certificate file"))) { | 823 | NULL, "recipient certificate file")) == NULL) { |
| 824 | goto end; | 824 | goto end; |
| 825 | } | 825 | } |
| 826 | sk_X509_push(encerts, cert); | 826 | sk_X509_push(encerts, cert); |
| @@ -828,37 +828,37 @@ smime_main(int argc, char **argv) | |||
| 828 | args++; | 828 | args++; |
| 829 | } | 829 | } |
| 830 | } | 830 | } |
| 831 | if (smime_config.certfile) { | 831 | if (smime_config.certfile != NULL) { |
| 832 | if (!(other = load_certs(bio_err, smime_config.certfile, FORMAT_PEM, NULL, | 832 | if ((other = load_certs(bio_err, smime_config.certfile, FORMAT_PEM, NULL, |
| 833 | "certificate file"))) { | 833 | "certificate file")) == NULL) { |
| 834 | ERR_print_errors(bio_err); | 834 | ERR_print_errors(bio_err); |
| 835 | goto end; | 835 | goto end; |
| 836 | } | 836 | } |
| 837 | } | 837 | } |
| 838 | if (smime_config.recipfile && (smime_config.operation == SMIME_DECRYPT)) { | 838 | if (smime_config.recipfile != NULL && (smime_config.operation == SMIME_DECRYPT)) { |
| 839 | if (!(recip = load_cert(bio_err, smime_config.recipfile, FORMAT_PEM, NULL, | 839 | if ((recip = load_cert(bio_err, smime_config.recipfile, FORMAT_PEM, NULL, |
| 840 | "recipient certificate file"))) { | 840 | "recipient certificate file")) == NULL) { |
| 841 | ERR_print_errors(bio_err); | 841 | ERR_print_errors(bio_err); |
| 842 | goto end; | 842 | goto end; |
| 843 | } | 843 | } |
| 844 | } | 844 | } |
| 845 | if (smime_config.operation == SMIME_DECRYPT) { | 845 | if (smime_config.operation == SMIME_DECRYPT) { |
| 846 | if (!smime_config.keyfile) | 846 | if (smime_config.keyfile == NULL) |
| 847 | smime_config.keyfile = smime_config.recipfile; | 847 | smime_config.keyfile = smime_config.recipfile; |
| 848 | } else if (smime_config.operation == SMIME_SIGN) { | 848 | } else if (smime_config.operation == SMIME_SIGN) { |
| 849 | if (!smime_config.keyfile) | 849 | if (smime_config.keyfile == NULL) |
| 850 | smime_config.keyfile = smime_config.signerfile; | 850 | smime_config.keyfile = smime_config.signerfile; |
| 851 | } else | 851 | } else |
| 852 | smime_config.keyfile = NULL; | 852 | smime_config.keyfile = NULL; |
| 853 | 853 | ||
| 854 | if (smime_config.keyfile) { | 854 | if (smime_config.keyfile != NULL) { |
| 855 | key = load_key(bio_err, smime_config.keyfile, smime_config.keyform, 0, passin, | 855 | key = load_key(bio_err, smime_config.keyfile, smime_config.keyform, 0, passin, |
| 856 | "signing key file"); | 856 | "signing key file"); |
| 857 | if (!key) | 857 | if (key == NULL) |
| 858 | goto end; | 858 | goto end; |
| 859 | } | 859 | } |
| 860 | if (smime_config.infile) { | 860 | if (smime_config.infile != NULL) { |
| 861 | if (!(in = BIO_new_file(smime_config.infile, inmode))) { | 861 | if ((in = BIO_new_file(smime_config.infile, inmode)) == NULL) { |
| 862 | BIO_printf(bio_err, | 862 | BIO_printf(bio_err, |
| 863 | "Can't open input file %s\n", smime_config.infile); | 863 | "Can't open input file %s\n", smime_config.infile); |
| 864 | goto end; | 864 | goto end; |
| @@ -878,20 +878,20 @@ smime_main(int argc, char **argv) | |||
| 878 | goto end; | 878 | goto end; |
| 879 | } | 879 | } |
| 880 | 880 | ||
| 881 | if (!p7) { | 881 | if (p7 == NULL) { |
| 882 | BIO_printf(bio_err, "Error reading S/MIME message\n"); | 882 | BIO_printf(bio_err, "Error reading S/MIME message\n"); |
| 883 | goto end; | 883 | goto end; |
| 884 | } | 884 | } |
| 885 | if (smime_config.contfile) { | 885 | if (smime_config.contfile != NULL) { |
| 886 | BIO_free(indata); | 886 | BIO_free(indata); |
| 887 | if (!(indata = BIO_new_file(smime_config.contfile, "rb"))) { | 887 | if ((indata = BIO_new_file(smime_config.contfile, "rb")) == NULL) { |
| 888 | BIO_printf(bio_err, "Can't read content file %s\n", smime_config.contfile); | 888 | BIO_printf(bio_err, "Can't read content file %s\n", smime_config.contfile); |
| 889 | goto end; | 889 | goto end; |
| 890 | } | 890 | } |
| 891 | } | 891 | } |
| 892 | } | 892 | } |
| 893 | if (smime_config.outfile) { | 893 | if (smime_config.outfile != NULL) { |
| 894 | if (!(out = BIO_new_file(smime_config.outfile, outmode))) { | 894 | if ((out = BIO_new_file(smime_config.outfile, outmode)) == NULL) { |
| 895 | BIO_printf(bio_err, | 895 | BIO_printf(bio_err, |
| 896 | "Can't open output file %s\n", smime_config.outfile); | 896 | "Can't open output file %s\n", smime_config.outfile); |
| 897 | goto end; | 897 | goto end; |
| @@ -901,10 +901,10 @@ smime_main(int argc, char **argv) | |||
| 901 | } | 901 | } |
| 902 | 902 | ||
| 903 | if (smime_config.operation == SMIME_VERIFY) { | 903 | if (smime_config.operation == SMIME_VERIFY) { |
| 904 | if (!(store = setup_verify(bio_err, smime_config.CAfile, smime_config.CApath))) | 904 | if ((store = setup_verify(bio_err, smime_config.CAfile, smime_config.CApath)) == NULL) |
| 905 | goto end; | 905 | goto end; |
| 906 | X509_STORE_set_verify_cb(store, smime_cb); | 906 | X509_STORE_set_verify_cb(store, smime_cb); |
| 907 | if (smime_config.vpm) | 907 | if (smime_config.vpm != NULL) |
| 908 | X509_STORE_set1_param(store, smime_config.vpm); | 908 | X509_STORE_set1_param(store, smime_config.vpm); |
| 909 | } | 909 | } |
| 910 | ret = 3; | 910 | ret = 3; |
| @@ -927,7 +927,7 @@ smime_main(int argc, char **argv) | |||
| 927 | smime_config.flags |= PKCS7_STREAM; | 927 | smime_config.flags |= PKCS7_STREAM; |
| 928 | smime_config.flags |= PKCS7_PARTIAL; | 928 | smime_config.flags |= PKCS7_PARTIAL; |
| 929 | p7 = PKCS7_sign(NULL, NULL, other, in, smime_config.flags); | 929 | p7 = PKCS7_sign(NULL, NULL, other, in, smime_config.flags); |
| 930 | if (!p7) | 930 | if (p7 == NULL) |
| 931 | goto end; | 931 | goto end; |
| 932 | } else | 932 | } else |
| 933 | smime_config.flags |= PKCS7_REUSE_DIGEST; | 933 | smime_config.flags |= PKCS7_REUSE_DIGEST; |
| @@ -936,14 +936,14 @@ smime_main(int argc, char **argv) | |||
| 936 | smime_config.keyfile = sk_OPENSSL_STRING_value(smime_config.skkeys, i); | 936 | smime_config.keyfile = sk_OPENSSL_STRING_value(smime_config.skkeys, i); |
| 937 | signer = load_cert(bio_err, smime_config.signerfile, FORMAT_PEM, NULL, | 937 | signer = load_cert(bio_err, smime_config.signerfile, FORMAT_PEM, NULL, |
| 938 | "signer certificate"); | 938 | "signer certificate"); |
| 939 | if (!signer) | 939 | if (signer == NULL) |
| 940 | goto end; | 940 | goto end; |
| 941 | key = load_key(bio_err, smime_config.keyfile, smime_config.keyform, 0, passin, | 941 | key = load_key(bio_err, smime_config.keyfile, smime_config.keyform, 0, passin, |
| 942 | "signing key file"); | 942 | "signing key file"); |
| 943 | if (!key) | 943 | if (key == NULL) |
| 944 | goto end; | 944 | goto end; |
| 945 | if (!PKCS7_sign_add_signer(p7, signer, key, | 945 | if (PKCS7_sign_add_signer(p7, signer, key, |
| 946 | smime_config.sign_md, smime_config.flags)) | 946 | smime_config.sign_md, smime_config.flags) == NULL) |
| 947 | goto end; | 947 | goto end; |
| 948 | X509_free(signer); | 948 | X509_free(signer); |
| 949 | signer = NULL; | 949 | signer = NULL; |
| @@ -956,7 +956,7 @@ smime_main(int argc, char **argv) | |||
| 956 | goto end; | 956 | goto end; |
| 957 | } | 957 | } |
| 958 | } | 958 | } |
| 959 | if (!p7) { | 959 | if (p7 == NULL) { |
| 960 | BIO_printf(bio_err, "Error creating PKCS#7 structure\n"); | 960 | BIO_printf(bio_err, "Error creating PKCS#7 structure\n"); |
| 961 | goto end; | 961 | goto end; |
| 962 | } | 962 | } |
| @@ -985,11 +985,11 @@ smime_main(int argc, char **argv) | |||
| 985 | } else if (smime_config.operation == SMIME_PK7OUT) | 985 | } else if (smime_config.operation == SMIME_PK7OUT) |
| 986 | PEM_write_bio_PKCS7(out, p7); | 986 | PEM_write_bio_PKCS7(out, p7); |
| 987 | else { | 987 | else { |
| 988 | if (smime_config.to) | 988 | if (smime_config.to != NULL) |
| 989 | BIO_printf(out, "To: %s\n", smime_config.to); | 989 | BIO_printf(out, "To: %s\n", smime_config.to); |
| 990 | if (smime_config.from) | 990 | if (smime_config.from != NULL) |
| 991 | BIO_printf(out, "From: %s\n", smime_config.from); | 991 | BIO_printf(out, "From: %s\n", smime_config.from); |
| 992 | if (smime_config.subject) | 992 | if (smime_config.subject != NULL) |
| 993 | BIO_printf(out, "Subject: %s\n", smime_config.subject); | 993 | BIO_printf(out, "Subject: %s\n", smime_config.subject); |
| 994 | if (smime_config.outformat == FORMAT_SMIME) { | 994 | if (smime_config.outformat == FORMAT_SMIME) { |
| 995 | if (smime_config.operation == SMIME_RESIGN) | 995 | if (smime_config.operation == SMIME_RESIGN) |
| @@ -1034,10 +1034,10 @@ save_certs(char *signerfile, STACK_OF(X509) *signers) | |||
| 1034 | int i; | 1034 | int i; |
| 1035 | BIO *tmp; | 1035 | BIO *tmp; |
| 1036 | 1036 | ||
| 1037 | if (!signerfile) | 1037 | if (signerfile == NULL) |
| 1038 | return 1; | 1038 | return 1; |
| 1039 | tmp = BIO_new_file(signerfile, "w"); | 1039 | tmp = BIO_new_file(signerfile, "w"); |
| 1040 | if (!tmp) | 1040 | if (tmp == NULL) |
| 1041 | return 0; | 1041 | return 0; |
| 1042 | for (i = 0; i < sk_X509_num(signers); i++) | 1042 | for (i = 0; i < sk_X509_num(signers); i++) |
| 1043 | PEM_write_bio_X509(tmp, sk_X509_value(signers, i)); | 1043 | PEM_write_bio_X509(tmp, sk_X509_value(signers, i)); |
