diff options
Diffstat (limited to '')
45 files changed, 0 insertions, 6951 deletions
diff --git a/src/lib/libcrypto/pkcs7/Makefile b/src/lib/libcrypto/pkcs7/Makefile deleted file mode 100644 index 56dc6823d1..0000000000 --- a/src/lib/libcrypto/pkcs7/Makefile +++ /dev/null | |||
| @@ -1,194 +0,0 @@ | |||
| 1 | # | ||
| 2 | # OpenSSL/crypto/pkcs7/Makefile | ||
| 3 | # | ||
| 4 | |||
| 5 | DIR= pkcs7 | ||
| 6 | TOP= ../.. | ||
| 7 | CC= cc | ||
| 8 | INCLUDES= -I.. -I$(TOP) -I../../include | ||
| 9 | CFLAG=-g | ||
| 10 | MAKEFILE= Makefile | ||
| 11 | AR= ar r | ||
| 12 | |||
| 13 | PEX_LIBS= | ||
| 14 | EX_LIBS= | ||
| 15 | |||
| 16 | CFLAGS= $(INCLUDES) $(CFLAG) | ||
| 17 | |||
| 18 | GENERAL=Makefile README | ||
| 19 | TEST= | ||
| 20 | APPS= | ||
| 21 | |||
| 22 | LIB=$(TOP)/libcrypto.a | ||
| 23 | LIBSRC= pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c \ | ||
| 24 | pk7_mime.c bio_pk7.c | ||
| 25 | LIBOBJ= pk7_asn1.o pk7_lib.o pkcs7err.o pk7_doit.o pk7_smime.o pk7_attr.o \ | ||
| 26 | pk7_mime.o bio_pk7.o | ||
| 27 | |||
| 28 | SRC= $(LIBSRC) | ||
| 29 | |||
| 30 | EXHEADER= pkcs7.h | ||
| 31 | HEADER= $(EXHEADER) | ||
| 32 | |||
| 33 | ALL= $(GENERAL) $(SRC) $(HEADER) | ||
| 34 | |||
| 35 | top: | ||
| 36 | (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all) | ||
| 37 | |||
| 38 | test: | ||
| 39 | |||
| 40 | all: lib | ||
| 41 | |||
| 42 | testapps: enc dec sign verify | ||
| 43 | |||
| 44 | enc: enc.o lib | ||
| 45 | $(CC) $(CFLAGS) -o enc enc.o $(PEX_LIBS) $(LIB) $(EX_LIBS) | ||
| 46 | |||
| 47 | dec: dec.o lib | ||
| 48 | $(CC) $(CFLAGS) -o dec dec.o $(PEX_LIBS) $(LIB) $(EX_LIBS) | ||
| 49 | |||
| 50 | sign: sign.o lib | ||
| 51 | $(CC) $(CFLAGS) -o sign sign.o $(PEX_LIBS) $(LIB) $(EX_LIBS) | ||
| 52 | |||
| 53 | verify: verify.o example.o lib | ||
| 54 | $(CC) $(CFLAGS) -o verify verify.o $(PEX_LIBS) example.o $(LIB) $(EX_LIBS) | ||
| 55 | |||
| 56 | lib: $(LIBOBJ) | ||
| 57 | $(AR) $(LIB) $(LIBOBJ) | ||
| 58 | $(RANLIB) $(LIB) || echo Never mind. | ||
| 59 | @touch lib | ||
| 60 | |||
| 61 | files: | ||
| 62 | $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO | ||
| 63 | |||
| 64 | links: | ||
| 65 | @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER) | ||
| 66 | @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST) | ||
| 67 | @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS) | ||
| 68 | |||
| 69 | install: | ||
| 70 | @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... | ||
| 71 | @headerlist="$(EXHEADER)"; for i in $$headerlist ; \ | ||
| 72 | do \ | ||
| 73 | (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ | ||
| 74 | chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ | ||
| 75 | done; | ||
| 76 | |||
| 77 | tags: | ||
| 78 | ctags $(SRC) | ||
| 79 | |||
| 80 | tests: | ||
| 81 | |||
| 82 | lint: | ||
| 83 | lint -DLINT $(INCLUDES) $(SRC)>fluff | ||
| 84 | |||
| 85 | depend: | ||
| 86 | @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile... | ||
| 87 | $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC) | ||
| 88 | |||
| 89 | dclean: | ||
| 90 | $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new | ||
| 91 | mv -f Makefile.new $(MAKEFILE) | ||
| 92 | |||
| 93 | clean: | ||
| 94 | rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff enc dec sign verify | ||
| 95 | |||
| 96 | # DO NOT DELETE THIS LINE -- make depend depends on it. | ||
| 97 | |||
| 98 | bio_pk7.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | ||
| 99 | bio_pk7.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | ||
| 100 | bio_pk7.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
| 101 | bio_pk7.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h | ||
| 102 | bio_pk7.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | ||
| 103 | bio_pk7.o: ../../include/openssl/symhacks.h bio_pk7.c | ||
| 104 | pk7_asn1.o: ../../e_os.h ../../include/openssl/asn1.h | ||
| 105 | pk7_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h | ||
| 106 | pk7_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | ||
| 107 | pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | ||
| 108 | pk7_asn1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h | ||
| 109 | pk7_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h | ||
| 110 | pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | ||
| 111 | pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h | ||
| 112 | pk7_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 113 | pk7_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h | ||
| 114 | pk7_asn1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h | ||
| 115 | pk7_asn1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h | ||
| 116 | pk7_asn1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_asn1.c | ||
| 117 | pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h | ||
| 118 | pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
| 119 | pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | ||
| 120 | pk7_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | ||
| 121 | pk7_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | ||
| 122 | pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | ||
| 123 | pk7_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | ||
| 124 | pk7_attr.o: ../../include/openssl/opensslconf.h | ||
| 125 | pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 126 | pk7_attr.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h | ||
| 127 | pk7_attr.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h | ||
| 128 | pk7_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h | ||
| 129 | pk7_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h | ||
| 130 | pk7_attr.o: ../../include/openssl/x509_vfy.h pk7_attr.c | ||
| 131 | pk7_doit.o: ../../e_os.h ../../include/openssl/asn1.h | ||
| 132 | pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
| 133 | pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h | ||
| 134 | pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | ||
| 135 | pk7_doit.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h | ||
| 136 | pk7_doit.o: ../../include/openssl/err.h ../../include/openssl/evp.h | ||
| 137 | pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | ||
| 138 | pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h | ||
| 139 | pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 140 | pk7_doit.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h | ||
| 141 | pk7_doit.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | ||
| 142 | pk7_doit.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | ||
| 143 | pk7_doit.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
| 144 | pk7_doit.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_doit.c | ||
| 145 | pk7_lib.o: ../../e_os.h ../../include/openssl/asn1.h | ||
| 146 | pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
| 147 | pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | ||
| 148 | pk7_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | ||
| 149 | pk7_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | ||
| 150 | pk7_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | ||
| 151 | pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | ||
| 152 | pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
| 153 | pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h | ||
| 154 | pk7_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | ||
| 155 | pk7_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | ||
| 156 | pk7_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
| 157 | pk7_lib.o: ../asn1/asn1_locl.h ../cryptlib.h pk7_lib.c | ||
| 158 | pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h | ||
| 159 | pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
| 160 | pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | ||
| 161 | pk7_mime.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | ||
| 162 | pk7_mime.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | ||
| 163 | pk7_mime.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | ||
| 164 | pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | ||
| 165 | pk7_mime.o: ../../include/openssl/opensslconf.h | ||
| 166 | pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 167 | pk7_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h | ||
| 168 | pk7_mime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | ||
| 169 | pk7_mime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | ||
| 170 | pk7_mime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
| 171 | pk7_mime.o: ../cryptlib.h pk7_mime.c | ||
| 172 | pk7_smime.o: ../../e_os.h ../../include/openssl/asn1.h | ||
| 173 | pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
| 174 | pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h | ||
| 175 | pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | ||
| 176 | pk7_smime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h | ||
| 177 | pk7_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h | ||
| 178 | pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | ||
| 179 | pk7_smime.o: ../../include/openssl/objects.h | ||
| 180 | pk7_smime.o: ../../include/openssl/opensslconf.h | ||
| 181 | pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 182 | pk7_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h | ||
| 183 | pk7_smime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h | ||
| 184 | pk7_smime.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h | ||
| 185 | pk7_smime.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h | ||
| 186 | pk7_smime.o: ../cryptlib.h pk7_smime.c | ||
| 187 | pkcs7err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | ||
| 188 | pkcs7err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | ||
| 189 | pkcs7err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h | ||
| 190 | pkcs7err.o: ../../include/openssl/opensslconf.h | ||
| 191 | pkcs7err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
| 192 | pkcs7err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h | ||
| 193 | pkcs7err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | ||
| 194 | pkcs7err.o: pkcs7err.c | ||
diff --git a/src/lib/libcrypto/pkcs7/bio_ber.c b/src/lib/libcrypto/pkcs7/bio_ber.c deleted file mode 100644 index 31973fcd1f..0000000000 --- a/src/lib/libcrypto/pkcs7/bio_ber.c +++ /dev/null | |||
| @@ -1,466 +0,0 @@ | |||
| 1 | /* crypto/evp/bio_ber.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include <errno.h> | ||
| 61 | #include "cryptlib.h" | ||
| 62 | #include <openssl/buffer.h> | ||
| 63 | #include <openssl/evp.h> | ||
| 64 | |||
| 65 | static int ber_write(BIO *h,char *buf,int num); | ||
| 66 | static int ber_read(BIO *h,char *buf,int size); | ||
| 67 | /*static int ber_puts(BIO *h,char *str); */ | ||
| 68 | /*static int ber_gets(BIO *h,char *str,int size); */ | ||
| 69 | static long ber_ctrl(BIO *h,int cmd,long arg1,char *arg2); | ||
| 70 | static int ber_new(BIO *h); | ||
| 71 | static int ber_free(BIO *data); | ||
| 72 | static long ber_callback_ctrl(BIO *h,int cmd,void *(*fp)()); | ||
| 73 | #define BER_BUF_SIZE (32) | ||
| 74 | |||
| 75 | /* This is used to hold the state of the BER objects being read. */ | ||
| 76 | typedef struct ber_struct | ||
| 77 | { | ||
| 78 | int tag; | ||
| 79 | int class; | ||
| 80 | long length; | ||
| 81 | int inf; | ||
| 82 | int num_left; | ||
| 83 | int depth; | ||
| 84 | } BER_CTX; | ||
| 85 | |||
| 86 | typedef struct bio_ber_struct | ||
| 87 | { | ||
| 88 | int tag; | ||
| 89 | int class; | ||
| 90 | long length; | ||
| 91 | int inf; | ||
| 92 | |||
| 93 | /* most of the following are used when doing non-blocking IO */ | ||
| 94 | /* reading */ | ||
| 95 | long num_left; /* number of bytes still to read/write in block */ | ||
| 96 | int depth; /* used with indefinite encoding. */ | ||
| 97 | int finished; /* No more read data */ | ||
| 98 | |||
| 99 | /* writting */ | ||
| 100 | char *w_addr; | ||
| 101 | int w_offset; | ||
| 102 | int w_left; | ||
| 103 | |||
| 104 | int buf_len; | ||
| 105 | int buf_off; | ||
| 106 | unsigned char buf[BER_BUF_SIZE]; | ||
| 107 | } BIO_BER_CTX; | ||
| 108 | |||
| 109 | static BIO_METHOD methods_ber= | ||
| 110 | { | ||
| 111 | BIO_TYPE_CIPHER,"cipher", | ||
| 112 | ber_write, | ||
| 113 | ber_read, | ||
| 114 | NULL, /* ber_puts, */ | ||
| 115 | NULL, /* ber_gets, */ | ||
| 116 | ber_ctrl, | ||
| 117 | ber_new, | ||
| 118 | ber_free, | ||
| 119 | ber_callback_ctrl, | ||
| 120 | }; | ||
| 121 | |||
| 122 | BIO_METHOD *BIO_f_ber(void) | ||
| 123 | { | ||
| 124 | return(&methods_ber); | ||
| 125 | } | ||
| 126 | |||
| 127 | static int ber_new(BIO *bi) | ||
| 128 | { | ||
| 129 | BIO_BER_CTX *ctx; | ||
| 130 | |||
| 131 | ctx=(BIO_BER_CTX *)OPENSSL_malloc(sizeof(BIO_BER_CTX)); | ||
| 132 | if (ctx == NULL) return(0); | ||
| 133 | |||
| 134 | memset((char *)ctx,0,sizeof(BIO_BER_CTX)); | ||
| 135 | |||
| 136 | bi->init=0; | ||
| 137 | bi->ptr=(char *)ctx; | ||
| 138 | bi->flags=0; | ||
| 139 | return(1); | ||
| 140 | } | ||
| 141 | |||
| 142 | static int ber_free(BIO *a) | ||
| 143 | { | ||
| 144 | BIO_BER_CTX *b; | ||
| 145 | |||
| 146 | if (a == NULL) return(0); | ||
| 147 | b=(BIO_BER_CTX *)a->ptr; | ||
| 148 | OPENSSL_cleanse(a->ptr,sizeof(BIO_BER_CTX)); | ||
| 149 | OPENSSL_free(a->ptr); | ||
| 150 | a->ptr=NULL; | ||
| 151 | a->init=0; | ||
| 152 | a->flags=0; | ||
| 153 | return(1); | ||
| 154 | } | ||
| 155 | |||
| 156 | int bio_ber_get_header(BIO *bio, BIO_BER_CTX *ctx) | ||
| 157 | { | ||
| 158 | char buf[64]; | ||
| 159 | int i,j,n; | ||
| 160 | int ret; | ||
| 161 | unsigned char *p; | ||
| 162 | unsigned long length | ||
| 163 | int tag; | ||
| 164 | int class; | ||
| 165 | long max; | ||
| 166 | |||
| 167 | BIO_clear_retry_flags(b); | ||
| 168 | |||
| 169 | /* Pack the buffer down if there is a hole at the front */ | ||
| 170 | if (ctx->buf_off != 0) | ||
| 171 | { | ||
| 172 | p=ctx->buf; | ||
| 173 | j=ctx->buf_off; | ||
| 174 | n=ctx->buf_len-j; | ||
| 175 | for (i=0; i<n; i++) | ||
| 176 | { | ||
| 177 | p[0]=p[j]; | ||
| 178 | p++; | ||
| 179 | } | ||
| 180 | ctx->buf_len-j; | ||
| 181 | ctx->buf_off=0; | ||
| 182 | } | ||
| 183 | |||
| 184 | /* If there is more room, read some more data */ | ||
| 185 | i=BER_BUF_SIZE-ctx->buf_len; | ||
| 186 | if (i) | ||
| 187 | { | ||
| 188 | i=BIO_read(bio->next_bio,&(ctx->buf[ctx->buf_len]),i); | ||
| 189 | if (i <= 0) | ||
| 190 | { | ||
| 191 | BIO_copy_next_retry(b); | ||
| 192 | return(i); | ||
| 193 | } | ||
| 194 | else | ||
| 195 | ctx->buf_len+=i; | ||
| 196 | } | ||
| 197 | |||
| 198 | max=ctx->buf_len; | ||
| 199 | p=ctx->buf; | ||
| 200 | ret=ASN1_get_object(&p,&length,&tag,&class,max); | ||
| 201 | |||
| 202 | if (ret & 0x80) | ||
| 203 | { | ||
| 204 | if ((ctx->buf_len < BER_BUF_SIZE) && | ||
| 205 | (ERR_GET_REASON(ERR_peek_error()) == ASN1_R_TOO_LONG)) | ||
| 206 | { | ||
| 207 | ERR_clear_error(); /* clear the error */ | ||
| 208 | BIO_set_retry_read(b); | ||
| 209 | } | ||
| 210 | return(-1); | ||
| 211 | } | ||
| 212 | |||
| 213 | /* We have no error, we have a header, so make use of it */ | ||
| 214 | |||
| 215 | if ((ctx->tag >= 0) && (ctx->tag != tag)) | ||
| 216 | { | ||
| 217 | BIOerr(BIO_F_BIO_BER_GET_HEADER,BIO_R_TAG_MISMATCH); | ||
| 218 | sprintf(buf,"tag=%d, got %d",ctx->tag,tag); | ||
| 219 | ERR_add_error_data(1,buf); | ||
| 220 | return(-1); | ||
| 221 | } | ||
| 222 | if (ret & 0x01) | ||
| 223 | if (ret & V_ASN1_CONSTRUCTED) | ||
| 224 | } | ||
| 225 | |||
| 226 | static int ber_read(BIO *b, char *out, int outl) | ||
| 227 | { | ||
| 228 | int ret=0,i,n; | ||
| 229 | BIO_BER_CTX *ctx; | ||
| 230 | |||
| 231 | BIO_clear_retry_flags(b); | ||
| 232 | |||
| 233 | if (out == NULL) return(0); | ||
| 234 | ctx=(BIO_BER_CTX *)b->ptr; | ||
| 235 | |||
| 236 | if ((ctx == NULL) || (b->next_bio == NULL)) return(0); | ||
| 237 | |||
| 238 | if (ctx->finished) return(0); | ||
| 239 | |||
| 240 | again: | ||
| 241 | /* First see if we are half way through reading a block */ | ||
| 242 | if (ctx->num_left > 0) | ||
| 243 | { | ||
| 244 | if (ctx->num_left < outl) | ||
| 245 | n=ctx->num_left; | ||
| 246 | else | ||
| 247 | n=outl; | ||
| 248 | i=BIO_read(b->next_bio,out,n); | ||
| 249 | if (i <= 0) | ||
| 250 | { | ||
| 251 | BIO_copy_next_retry(b); | ||
| 252 | return(i); | ||
| 253 | } | ||
| 254 | ctx->num_left-=i; | ||
| 255 | outl-=i; | ||
| 256 | ret+=i; | ||
| 257 | if (ctx->num_left <= 0) | ||
| 258 | { | ||
| 259 | ctx->depth--; | ||
| 260 | if (ctx->depth <= 0) | ||
| 261 | ctx->finished=1; | ||
| 262 | } | ||
| 263 | if (outl <= 0) | ||
| 264 | return(ret); | ||
| 265 | else | ||
| 266 | goto again; | ||
| 267 | } | ||
| 268 | else /* we need to read another BER header */ | ||
| 269 | { | ||
| 270 | } | ||
| 271 | } | ||
| 272 | |||
| 273 | static int ber_write(BIO *b, char *in, int inl) | ||
| 274 | { | ||
| 275 | int ret=0,n,i; | ||
| 276 | BIO_ENC_CTX *ctx; | ||
| 277 | |||
| 278 | ctx=(BIO_ENC_CTX *)b->ptr; | ||
| 279 | ret=inl; | ||
| 280 | |||
| 281 | BIO_clear_retry_flags(b); | ||
| 282 | n=ctx->buf_len-ctx->buf_off; | ||
| 283 | while (n > 0) | ||
| 284 | { | ||
| 285 | i=BIO_write(b->next_bio,&(ctx->buf[ctx->buf_off]),n); | ||
| 286 | if (i <= 0) | ||
| 287 | { | ||
| 288 | BIO_copy_next_retry(b); | ||
| 289 | return(i); | ||
| 290 | } | ||
| 291 | ctx->buf_off+=i; | ||
| 292 | n-=i; | ||
| 293 | } | ||
| 294 | /* at this point all pending data has been written */ | ||
| 295 | |||
| 296 | if ((in == NULL) || (inl <= 0)) return(0); | ||
| 297 | |||
| 298 | ctx->buf_off=0; | ||
| 299 | while (inl > 0) | ||
| 300 | { | ||
| 301 | n=(inl > ENC_BLOCK_SIZE)?ENC_BLOCK_SIZE:inl; | ||
| 302 | EVP_CipherUpdate(&(ctx->cipher), | ||
| 303 | (unsigned char *)ctx->buf,&ctx->buf_len, | ||
| 304 | (unsigned char *)in,n); | ||
| 305 | inl-=n; | ||
| 306 | in+=n; | ||
| 307 | |||
| 308 | ctx->buf_off=0; | ||
| 309 | n=ctx->buf_len; | ||
| 310 | while (n > 0) | ||
| 311 | { | ||
| 312 | i=BIO_write(b->next_bio,&(ctx->buf[ctx->buf_off]),n); | ||
| 313 | if (i <= 0) | ||
| 314 | { | ||
| 315 | BIO_copy_next_retry(b); | ||
| 316 | return(i); | ||
| 317 | } | ||
| 318 | n-=i; | ||
| 319 | ctx->buf_off+=i; | ||
| 320 | } | ||
| 321 | ctx->buf_len=0; | ||
| 322 | ctx->buf_off=0; | ||
| 323 | } | ||
| 324 | BIO_copy_next_retry(b); | ||
| 325 | return(ret); | ||
| 326 | } | ||
| 327 | |||
| 328 | static long ber_ctrl(BIO *b, int cmd, long num, char *ptr) | ||
| 329 | { | ||
| 330 | BIO *dbio; | ||
| 331 | BIO_ENC_CTX *ctx,*dctx; | ||
| 332 | long ret=1; | ||
| 333 | int i; | ||
| 334 | |||
| 335 | ctx=(BIO_ENC_CTX *)b->ptr; | ||
| 336 | |||
| 337 | switch (cmd) | ||
| 338 | { | ||
| 339 | case BIO_CTRL_RESET: | ||
| 340 | ctx->ok=1; | ||
| 341 | ctx->finished=0; | ||
| 342 | EVP_CipherInit_ex(&(ctx->cipher),NULL,NULL,NULL,NULL, | ||
| 343 | ctx->cipher.berrypt); | ||
| 344 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 345 | break; | ||
| 346 | case BIO_CTRL_EOF: /* More to read */ | ||
| 347 | if (ctx->cont <= 0) | ||
| 348 | ret=1; | ||
| 349 | else | ||
| 350 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 351 | break; | ||
| 352 | case BIO_CTRL_WPENDING: | ||
| 353 | ret=ctx->buf_len-ctx->buf_off; | ||
| 354 | if (ret <= 0) | ||
| 355 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 356 | break; | ||
| 357 | case BIO_CTRL_PENDING: /* More to read in buffer */ | ||
| 358 | ret=ctx->buf_len-ctx->buf_off; | ||
| 359 | if (ret <= 0) | ||
| 360 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 361 | break; | ||
| 362 | case BIO_CTRL_FLUSH: | ||
| 363 | /* do a final write */ | ||
| 364 | again: | ||
| 365 | while (ctx->buf_len != ctx->buf_off) | ||
| 366 | { | ||
| 367 | i=ber_write(b,NULL,0); | ||
| 368 | if (i < 0) | ||
| 369 | { | ||
| 370 | ret=i; | ||
| 371 | break; | ||
| 372 | } | ||
| 373 | } | ||
| 374 | |||
| 375 | if (!ctx->finished) | ||
| 376 | { | ||
| 377 | ctx->finished=1; | ||
| 378 | ctx->buf_off=0; | ||
| 379 | ret=EVP_CipherFinal_ex(&(ctx->cipher), | ||
| 380 | (unsigned char *)ctx->buf, | ||
| 381 | &(ctx->buf_len)); | ||
| 382 | ctx->ok=(int)ret; | ||
| 383 | if (ret <= 0) break; | ||
| 384 | |||
| 385 | /* push out the bytes */ | ||
| 386 | goto again; | ||
| 387 | } | ||
| 388 | |||
| 389 | /* Finally flush the underlying BIO */ | ||
| 390 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 391 | break; | ||
| 392 | case BIO_C_GET_CIPHER_STATUS: | ||
| 393 | ret=(long)ctx->ok; | ||
| 394 | break; | ||
| 395 | case BIO_C_DO_STATE_MACHINE: | ||
| 396 | BIO_clear_retry_flags(b); | ||
| 397 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 398 | BIO_copy_next_retry(b); | ||
| 399 | break; | ||
| 400 | |||
| 401 | case BIO_CTRL_DUP: | ||
| 402 | dbio=(BIO *)ptr; | ||
| 403 | dctx=(BIO_ENC_CTX *)dbio->ptr; | ||
| 404 | memcpy(&(dctx->cipher),&(ctx->cipher),sizeof(ctx->cipher)); | ||
| 405 | dbio->init=1; | ||
| 406 | break; | ||
| 407 | default: | ||
| 408 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 409 | break; | ||
| 410 | } | ||
| 411 | return(ret); | ||
| 412 | } | ||
| 413 | |||
| 414 | static long ber_callback_ctrl(BIO *b, int cmd, void *(*fp)()) | ||
| 415 | { | ||
| 416 | long ret=1; | ||
| 417 | |||
| 418 | if (b->next_bio == NULL) return(0); | ||
| 419 | switch (cmd) | ||
| 420 | { | ||
| 421 | default: | ||
| 422 | ret=BIO_callback_ctrl(b->next_bio,cmd,fp); | ||
| 423 | break; | ||
| 424 | } | ||
| 425 | return(ret); | ||
| 426 | } | ||
| 427 | |||
| 428 | /* | ||
| 429 | void BIO_set_cipher_ctx(b,c) | ||
| 430 | BIO *b; | ||
| 431 | EVP_CIPHER_ctx *c; | ||
| 432 | { | ||
| 433 | if (b == NULL) return; | ||
| 434 | |||
| 435 | if ((b->callback != NULL) && | ||
| 436 | (b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,0L) <= 0)) | ||
| 437 | return; | ||
| 438 | |||
| 439 | b->init=1; | ||
| 440 | ctx=(BIO_ENC_CTX *)b->ptr; | ||
| 441 | memcpy(ctx->cipher,c,sizeof(EVP_CIPHER_CTX)); | ||
| 442 | |||
| 443 | if (b->callback != NULL) | ||
| 444 | b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,1L); | ||
| 445 | } | ||
| 446 | */ | ||
| 447 | |||
| 448 | void BIO_set_cipher(BIO *b, EVP_CIPHER *c, unsigned char *k, unsigned char *i, | ||
| 449 | int e) | ||
| 450 | { | ||
| 451 | BIO_ENC_CTX *ctx; | ||
| 452 | |||
| 453 | if (b == NULL) return; | ||
| 454 | |||
| 455 | if ((b->callback != NULL) && | ||
| 456 | (b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,0L) <= 0)) | ||
| 457 | return; | ||
| 458 | |||
| 459 | b->init=1; | ||
| 460 | ctx=(BIO_ENC_CTX *)b->ptr; | ||
| 461 | EVP_CipherInit_ex(&(ctx->cipher),c,NULL,k,i,e); | ||
| 462 | |||
| 463 | if (b->callback != NULL) | ||
| 464 | b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,1L); | ||
| 465 | } | ||
| 466 | |||
diff --git a/src/lib/libcrypto/pkcs7/bio_pk7.c b/src/lib/libcrypto/pkcs7/bio_pk7.c deleted file mode 100644 index c8d06d6cdc..0000000000 --- a/src/lib/libcrypto/pkcs7/bio_pk7.c +++ /dev/null | |||
| @@ -1,69 +0,0 @@ | |||
| 1 | /* bio_pk7.c */ | ||
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
| 3 | * project. | ||
| 4 | */ | ||
| 5 | /* ==================================================================== | ||
| 6 | * Copyright (c) 2008 The OpenSSL Project. All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in | ||
| 17 | * the documentation and/or other materials provided with the | ||
| 18 | * distribution. | ||
| 19 | * | ||
| 20 | * 3. All advertising materials mentioning features or use of this | ||
| 21 | * software must display the following acknowledgment: | ||
| 22 | * "This product includes software developed by the OpenSSL Project | ||
| 23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 24 | * | ||
| 25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 26 | * endorse or promote products derived from this software without | ||
| 27 | * prior written permission. For written permission, please contact | ||
| 28 | * licensing@OpenSSL.org. | ||
| 29 | * | ||
| 30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 31 | * nor may "OpenSSL" appear in their names without prior written | ||
| 32 | * permission of the OpenSSL Project. | ||
| 33 | * | ||
| 34 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 35 | * acknowledgment: | ||
| 36 | * "This product includes software developed by the OpenSSL Project | ||
| 37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 51 | * ==================================================================== | ||
| 52 | * | ||
| 53 | */ | ||
| 54 | |||
| 55 | #include <openssl/asn1.h> | ||
| 56 | #include <openssl/pkcs7.h> | ||
| 57 | #include <openssl/bio.h> | ||
| 58 | |||
| 59 | #ifndef OPENSSL_SYSNAME_NETWARE | ||
| 60 | #include <memory.h> | ||
| 61 | #endif | ||
| 62 | #include <stdio.h> | ||
| 63 | |||
| 64 | /* Streaming encode support for PKCS#7 */ | ||
| 65 | |||
| 66 | BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7) | ||
| 67 | { | ||
| 68 | return BIO_new_NDEF(out, (ASN1_VALUE *)p7, ASN1_ITEM_rptr(PKCS7)); | ||
| 69 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/dec.c b/src/lib/libcrypto/pkcs7/dec.c deleted file mode 100644 index 6752ec568a..0000000000 --- a/src/lib/libcrypto/pkcs7/dec.c +++ /dev/null | |||
| @@ -1,248 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/verify.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | #include <stdio.h> | ||
| 59 | #include <stdlib.h> | ||
| 60 | #include <string.h> | ||
| 61 | #include <openssl/bio.h> | ||
| 62 | #include <openssl/x509.h> | ||
| 63 | #include <openssl/pem.h> | ||
| 64 | #include <openssl/err.h> | ||
| 65 | #include <openssl/asn1.h> | ||
| 66 | |||
| 67 | int verify_callback(int ok, X509_STORE_CTX *ctx); | ||
| 68 | |||
| 69 | BIO *bio_err=NULL; | ||
| 70 | |||
| 71 | int main(argc,argv) | ||
| 72 | int argc; | ||
| 73 | char *argv[]; | ||
| 74 | { | ||
| 75 | char *keyfile=NULL; | ||
| 76 | BIO *in; | ||
| 77 | EVP_PKEY *pkey; | ||
| 78 | X509 *x509; | ||
| 79 | PKCS7 *p7; | ||
| 80 | PKCS7_SIGNER_INFO *si; | ||
| 81 | X509_STORE_CTX cert_ctx; | ||
| 82 | X509_STORE *cert_store=NULL; | ||
| 83 | BIO *data,*detached=NULL,*p7bio=NULL; | ||
| 84 | char buf[1024*4]; | ||
| 85 | unsigned char *pp; | ||
| 86 | int i,printit=0; | ||
| 87 | STACK_OF(PKCS7_SIGNER_INFO) *sk; | ||
| 88 | |||
| 89 | OpenSSL_add_all_algorithms(); | ||
| 90 | bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); | ||
| 91 | |||
| 92 | data=BIO_new(BIO_s_file()); | ||
| 93 | pp=NULL; | ||
| 94 | while (argc > 1) | ||
| 95 | { | ||
| 96 | argc--; | ||
| 97 | argv++; | ||
| 98 | if (strcmp(argv[0],"-p") == 0) | ||
| 99 | { | ||
| 100 | printit=1; | ||
| 101 | } | ||
| 102 | else if ((strcmp(argv[0],"-k") == 0) && (argc >= 2)) { | ||
| 103 | keyfile = argv[1]; | ||
| 104 | argc-=1; | ||
| 105 | argv+=1; | ||
| 106 | } else if ((strcmp(argv[0],"-d") == 0) && (argc >= 2)) | ||
| 107 | { | ||
| 108 | detached=BIO_new(BIO_s_file()); | ||
| 109 | if (!BIO_read_filename(detached,argv[1])) | ||
| 110 | goto err; | ||
| 111 | argc-=1; | ||
| 112 | argv+=1; | ||
| 113 | } | ||
| 114 | else break; | ||
| 115 | } | ||
| 116 | |||
| 117 | if (!BIO_read_filename(data,argv[0])) goto err; | ||
| 118 | |||
| 119 | if(!keyfile) { | ||
| 120 | fprintf(stderr, "No private key file specified\n"); | ||
| 121 | goto err; | ||
| 122 | } | ||
| 123 | |||
| 124 | if ((in=BIO_new_file(keyfile,"r")) == NULL) goto err; | ||
| 125 | if ((x509=PEM_read_bio_X509(in,NULL,NULL,NULL)) == NULL) goto err; | ||
| 126 | BIO_reset(in); | ||
| 127 | if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL)) == NULL) | ||
| 128 | goto err; | ||
| 129 | BIO_free(in); | ||
| 130 | |||
| 131 | if (pp == NULL) | ||
| 132 | BIO_set_fp(data,stdin,BIO_NOCLOSE); | ||
| 133 | |||
| 134 | |||
| 135 | /* Load the PKCS7 object from a file */ | ||
| 136 | if ((p7=PEM_read_bio_PKCS7(data,NULL,NULL,NULL)) == NULL) goto err; | ||
| 137 | |||
| 138 | |||
| 139 | |||
| 140 | /* This stuff is being setup for certificate verification. | ||
| 141 | * When using SSL, it could be replaced with a | ||
| 142 | * cert_stre=SSL_CTX_get_cert_store(ssl_ctx); */ | ||
| 143 | cert_store=X509_STORE_new(); | ||
| 144 | X509_STORE_set_default_paths(cert_store); | ||
| 145 | X509_STORE_load_locations(cert_store,NULL,"../../certs"); | ||
| 146 | X509_STORE_set_verify_cb_func(cert_store,verify_callback); | ||
| 147 | |||
| 148 | ERR_clear_error(); | ||
| 149 | |||
| 150 | /* We need to process the data */ | ||
| 151 | /* We cannot support detached encryption */ | ||
| 152 | p7bio=PKCS7_dataDecode(p7,pkey,detached,x509); | ||
| 153 | |||
| 154 | if (p7bio == NULL) | ||
| 155 | { | ||
| 156 | printf("problems decoding\n"); | ||
| 157 | goto err; | ||
| 158 | } | ||
| 159 | |||
| 160 | /* We now have to 'read' from p7bio to calculate digests etc. */ | ||
| 161 | for (;;) | ||
| 162 | { | ||
| 163 | i=BIO_read(p7bio,buf,sizeof(buf)); | ||
| 164 | /* print it? */ | ||
| 165 | if (i <= 0) break; | ||
| 166 | fwrite(buf,1, i, stdout); | ||
| 167 | } | ||
| 168 | |||
| 169 | /* We can now verify signatures */ | ||
| 170 | sk=PKCS7_get_signer_info(p7); | ||
| 171 | if (sk == NULL) | ||
| 172 | { | ||
| 173 | fprintf(stderr, "there are no signatures on this data\n"); | ||
| 174 | } | ||
| 175 | else | ||
| 176 | { | ||
| 177 | /* Ok, first we need to, for each subject entry, | ||
| 178 | * see if we can verify */ | ||
| 179 | ERR_clear_error(); | ||
| 180 | for (i=0; i<sk_PKCS7_SIGNER_INFO_num(sk); i++) | ||
| 181 | { | ||
| 182 | si=sk_PKCS7_SIGNER_INFO_value(sk,i); | ||
| 183 | i=PKCS7_dataVerify(cert_store,&cert_ctx,p7bio,p7,si); | ||
| 184 | if (i <= 0) | ||
| 185 | goto err; | ||
| 186 | else | ||
| 187 | fprintf(stderr,"Signature verified\n"); | ||
| 188 | } | ||
| 189 | } | ||
| 190 | X509_STORE_free(cert_store); | ||
| 191 | |||
| 192 | exit(0); | ||
| 193 | err: | ||
| 194 | ERR_load_crypto_strings(); | ||
| 195 | ERR_print_errors_fp(stderr); | ||
| 196 | exit(1); | ||
| 197 | } | ||
| 198 | |||
| 199 | /* should be X509 * but we can just have them as char *. */ | ||
| 200 | int verify_callback(int ok, X509_STORE_CTX *ctx) | ||
| 201 | { | ||
| 202 | char buf[256]; | ||
| 203 | X509 *err_cert; | ||
| 204 | int err,depth; | ||
| 205 | |||
| 206 | err_cert=X509_STORE_CTX_get_current_cert(ctx); | ||
| 207 | err= X509_STORE_CTX_get_error(ctx); | ||
| 208 | depth= X509_STORE_CTX_get_error_depth(ctx); | ||
| 209 | |||
| 210 | X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256); | ||
| 211 | BIO_printf(bio_err,"depth=%d %s\n",depth,buf); | ||
| 212 | if (!ok) | ||
| 213 | { | ||
| 214 | BIO_printf(bio_err,"verify error:num=%d:%s\n",err, | ||
| 215 | X509_verify_cert_error_string(err)); | ||
| 216 | if (depth < 6) | ||
| 217 | { | ||
| 218 | ok=1; | ||
| 219 | X509_STORE_CTX_set_error(ctx,X509_V_OK); | ||
| 220 | } | ||
| 221 | else | ||
| 222 | { | ||
| 223 | ok=0; | ||
| 224 | X509_STORE_CTX_set_error(ctx,X509_V_ERR_CERT_CHAIN_TOO_LONG); | ||
| 225 | } | ||
| 226 | } | ||
| 227 | switch (ctx->error) | ||
| 228 | { | ||
| 229 | case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: | ||
| 230 | X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,256); | ||
| 231 | BIO_printf(bio_err,"issuer= %s\n",buf); | ||
| 232 | break; | ||
| 233 | case X509_V_ERR_CERT_NOT_YET_VALID: | ||
| 234 | case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: | ||
| 235 | BIO_printf(bio_err,"notBefore="); | ||
| 236 | ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); | ||
| 237 | BIO_printf(bio_err,"\n"); | ||
| 238 | break; | ||
| 239 | case X509_V_ERR_CERT_HAS_EXPIRED: | ||
| 240 | case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: | ||
| 241 | BIO_printf(bio_err,"notAfter="); | ||
| 242 | ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); | ||
| 243 | BIO_printf(bio_err,"\n"); | ||
| 244 | break; | ||
| 245 | } | ||
| 246 | BIO_printf(bio_err,"verify return:%d\n",ok); | ||
| 247 | return(ok); | ||
| 248 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/des.pem b/src/lib/libcrypto/pkcs7/des.pem deleted file mode 100644 index 62d1657e3e..0000000000 --- a/src/lib/libcrypto/pkcs7/des.pem +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | |||
| 2 | MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG | ||
| 3 | A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 4 | dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD | ||
| 5 | ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEC2vXI1xQDW6lUHM3zQ | ||
| 6 | /9uBEBOO5A3TtkrklAXq7v01gsIC21t52qSk36REXY+slhNZ0OQ349tgkTsoETHFLoEwMIHw | ||
| 7 | AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI | ||
| 8 | QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU | ||
| 9 | UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G | ||
| 10 | CSqGSIb3DQEBAQUABEB8ujxbabxXUYJhopuDm3oDq4JNqX6Io4p3ro+ShqfIndsXTZ1v5a2N | ||
| 11 | WtLLCWlHn/habjBwZ/DgQgcKASbZ7QxNMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA | ||
| 12 | oAQIbsL5v1wX98KggAQoAaJ4WHm68fXY1WE5OIjfVBIDpO1K+i8dmKhjnAjrjoyZ9Bwc8rDL | ||
| 13 | lgQg4CXb805h5xl+GfvSwUaHJayte1m2mcOhs3J2YyqbQ+MEIMIiJQccmhO3oDKm36CFvYR8 | ||
| 14 | 5PjpclVcZyX2ngbwPFMnBAgy0clOAE6UKAAAAAAAAAAAAAA= | ||
| 15 | |||
diff --git a/src/lib/libcrypto/pkcs7/doc b/src/lib/libcrypto/pkcs7/doc deleted file mode 100644 index d2e8b7b2a3..0000000000 --- a/src/lib/libcrypto/pkcs7/doc +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | int PKCS7_set_content_type(PKCS7 *p7, int type); | ||
| 2 | Call to set the type of PKCS7 object we are working on | ||
| 3 | |||
| 4 | int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, | ||
| 5 | EVP_MD *dgst); | ||
| 6 | Use this to setup a signer info | ||
| 7 | There will also be functions to add signed and unsigned attributes. | ||
| 8 | |||
| 9 | int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); | ||
| 10 | Add a signer info to the content. | ||
| 11 | |||
| 12 | int PKCS7_add_certificae(PKCS7 *p7, X509 *x509); | ||
| 13 | int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); | ||
| 14 | |||
| 15 | ---- | ||
| 16 | |||
| 17 | p7=PKCS7_new(); | ||
| 18 | PKCS7_set_content_type(p7,NID_pkcs7_signed); | ||
| 19 | |||
| 20 | signer=PKCS7_SINGNER_INFO_new(); | ||
| 21 | PKCS7_SIGNER_INFO_set(signer,x509,pkey,EVP_md5()); | ||
| 22 | PKCS7_add_signer(py,signer); | ||
| 23 | |||
| 24 | we are now setup. | ||
diff --git a/src/lib/libcrypto/pkcs7/enc.c b/src/lib/libcrypto/pkcs7/enc.c deleted file mode 100644 index 7417f8a4e0..0000000000 --- a/src/lib/libcrypto/pkcs7/enc.c +++ /dev/null | |||
| @@ -1,174 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/enc.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | #include <stdio.h> | ||
| 59 | #include <string.h> | ||
| 60 | #include <openssl/bio.h> | ||
| 61 | #include <openssl/x509.h> | ||
| 62 | #include <openssl/pem.h> | ||
| 63 | #include <openssl/err.h> | ||
| 64 | |||
| 65 | int main(argc,argv) | ||
| 66 | int argc; | ||
| 67 | char *argv[]; | ||
| 68 | { | ||
| 69 | X509 *x509; | ||
| 70 | PKCS7 *p7; | ||
| 71 | BIO *in; | ||
| 72 | BIO *data,*p7bio; | ||
| 73 | char buf[1024*4]; | ||
| 74 | int i; | ||
| 75 | int nodetach=1; | ||
| 76 | char *keyfile = NULL; | ||
| 77 | const EVP_CIPHER *cipher=NULL; | ||
| 78 | STACK_OF(X509) *recips=NULL; | ||
| 79 | |||
| 80 | OpenSSL_add_all_algorithms(); | ||
| 81 | |||
| 82 | data=BIO_new(BIO_s_file()); | ||
| 83 | while(argc > 1) | ||
| 84 | { | ||
| 85 | if (strcmp(argv[1],"-nd") == 0) | ||
| 86 | { | ||
| 87 | nodetach=1; | ||
| 88 | argv++; argc--; | ||
| 89 | } | ||
| 90 | else if ((strcmp(argv[1],"-c") == 0) && (argc >= 2)) { | ||
| 91 | if(!(cipher = EVP_get_cipherbyname(argv[2]))) { | ||
| 92 | fprintf(stderr, "Unknown cipher %s\n", argv[2]); | ||
| 93 | goto err; | ||
| 94 | } | ||
| 95 | argc-=2; | ||
| 96 | argv+=2; | ||
| 97 | } else if ((strcmp(argv[1],"-k") == 0) && (argc >= 2)) { | ||
| 98 | keyfile = argv[2]; | ||
| 99 | argc-=2; | ||
| 100 | argv+=2; | ||
| 101 | if (!(in=BIO_new_file(keyfile,"r"))) goto err; | ||
| 102 | if (!(x509=PEM_read_bio_X509(in,NULL,NULL,NULL))) | ||
| 103 | goto err; | ||
| 104 | if(!recips) recips = sk_X509_new_null(); | ||
| 105 | sk_X509_push(recips, x509); | ||
| 106 | BIO_free(in); | ||
| 107 | } else break; | ||
| 108 | } | ||
| 109 | |||
| 110 | if(!recips) { | ||
| 111 | fprintf(stderr, "No recipients\n"); | ||
| 112 | goto err; | ||
| 113 | } | ||
| 114 | |||
| 115 | if (!BIO_read_filename(data,argv[1])) goto err; | ||
| 116 | |||
| 117 | p7=PKCS7_new(); | ||
| 118 | #if 0 | ||
| 119 | BIO_reset(in); | ||
| 120 | if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL)) == NULL) goto err; | ||
| 121 | BIO_free(in); | ||
| 122 | PKCS7_set_type(p7,NID_pkcs7_signedAndEnveloped); | ||
| 123 | |||
| 124 | if (PKCS7_add_signature(p7,x509,pkey,EVP_sha1()) == NULL) goto err; | ||
| 125 | /* we may want to add more */ | ||
| 126 | PKCS7_add_certificate(p7,x509); | ||
| 127 | #else | ||
| 128 | PKCS7_set_type(p7,NID_pkcs7_enveloped); | ||
| 129 | #endif | ||
| 130 | if(!cipher) { | ||
| 131 | #ifndef OPENSSL_NO_DES | ||
| 132 | cipher = EVP_des_ede3_cbc(); | ||
| 133 | #else | ||
| 134 | fprintf(stderr, "No cipher selected\n"); | ||
| 135 | goto err; | ||
| 136 | #endif | ||
| 137 | } | ||
| 138 | |||
| 139 | if (!PKCS7_set_cipher(p7,cipher)) goto err; | ||
| 140 | for(i = 0; i < sk_X509_num(recips); i++) { | ||
| 141 | if (!PKCS7_add_recipient(p7,sk_X509_value(recips, i))) goto err; | ||
| 142 | } | ||
| 143 | sk_X509_pop_free(recips, X509_free); | ||
| 144 | |||
| 145 | /* Set the content of the signed to 'data' */ | ||
| 146 | /* PKCS7_content_new(p7,NID_pkcs7_data); not used in envelope */ | ||
| 147 | |||
| 148 | /* could be used, but not in this version :-) | ||
| 149 | if (!nodetach) PKCS7_set_detached(p7,1); | ||
| 150 | */ | ||
| 151 | |||
| 152 | if ((p7bio=PKCS7_dataInit(p7,NULL)) == NULL) goto err; | ||
| 153 | |||
| 154 | for (;;) | ||
| 155 | { | ||
| 156 | i=BIO_read(data,buf,sizeof(buf)); | ||
| 157 | if (i <= 0) break; | ||
| 158 | BIO_write(p7bio,buf,i); | ||
| 159 | } | ||
| 160 | BIO_flush(p7bio); | ||
| 161 | |||
| 162 | if (!PKCS7_dataFinal(p7,p7bio)) goto err; | ||
| 163 | BIO_free(p7bio); | ||
| 164 | |||
| 165 | PEM_write_PKCS7(stdout,p7); | ||
| 166 | PKCS7_free(p7); | ||
| 167 | |||
| 168 | exit(0); | ||
| 169 | err: | ||
| 170 | ERR_load_crypto_strings(); | ||
| 171 | ERR_print_errors_fp(stderr); | ||
| 172 | exit(1); | ||
| 173 | } | ||
| 174 | |||
diff --git a/src/lib/libcrypto/pkcs7/es1.pem b/src/lib/libcrypto/pkcs7/es1.pem deleted file mode 100644 index 47112a238f..0000000000 --- a/src/lib/libcrypto/pkcs7/es1.pem +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG | ||
| 3 | A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 4 | dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD | ||
| 5 | ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0GCSqGSIb3DQEBAQUABEDWak0y/5XZJhQJeCLo | ||
| 6 | KECcHXkTEbjzYkYNHIinbiPmRK4QbNfs9z2mA3z/c2ykQ4eAqFR2jyNrUMN/+I5XEiv6MIHw | ||
| 7 | AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI | ||
| 8 | QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU | ||
| 9 | UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G | ||
| 10 | CSqGSIb3DQEBAQUABEAWg9+KgtCjc77Jdj1Ve4wGgHjVHbbSYEA1ZqKFDoi15vSr9hfpHmC4 | ||
| 11 | ycZzcRo16JkTfolefiHZzmyjVz94vSN6MIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA | ||
| 12 | oAQI7X4Tk4mcbV6ggASBsHl1mCaJ3RhXWlNPCgCRU53d7M5x6TDZRkvwdtdvW96m1lupT03F | ||
| 13 | XtonkBqk7oMkH7kGfs5/REQOPjx0QE2Ixmgt1W3szum82EZwA7pZNppcraK7W/odw/7bYZO+ | ||
| 14 | II3HPmRklE2N9qiu1LPaPUsnYogkO6SennyeL5tZ382vBweL/8pnG0qsbT1OBb65v+llnsjT | ||
| 15 | pa1T/p+fIx/iJJGE6K9fYFokC6gXLQ6ozXRdOu5oBDB8mPCYYvAqKycidM/MrGGUkpEtS4f0 | ||
| 16 | lS31PwQi5YTim8Ig3/TOwVpPX32i46FTuEIEIMHkD/OvpfwCCzXUHHJnKnKUAUvIsSY3vGBs | ||
| 17 | 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 | ||
| 66 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/example.c b/src/lib/libcrypto/pkcs7/example.c deleted file mode 100644 index 2953d04b5c..0000000000 --- a/src/lib/libcrypto/pkcs7/example.c +++ /dev/null | |||
| @@ -1,329 +0,0 @@ | |||
| 1 | #include <stdio.h> | ||
| 2 | #include <stdlib.h> | ||
| 3 | #include <string.h> | ||
| 4 | #include <openssl/pkcs7.h> | ||
| 5 | #include <openssl/asn1_mac.h> | ||
| 6 | #include <openssl/x509.h> | ||
| 7 | |||
| 8 | int add_signed_time(PKCS7_SIGNER_INFO *si) | ||
| 9 | { | ||
| 10 | ASN1_UTCTIME *sign_time; | ||
| 11 | |||
| 12 | /* The last parameter is the amount to add/subtract from the current | ||
| 13 | * time (in seconds) */ | ||
| 14 | sign_time=X509_gmtime_adj(NULL,0); | ||
| 15 | PKCS7_add_signed_attribute(si,NID_pkcs9_signingTime, | ||
| 16 | V_ASN1_UTCTIME,(char *)sign_time); | ||
| 17 | return(1); | ||
| 18 | } | ||
| 19 | |||
| 20 | ASN1_UTCTIME *get_signed_time(PKCS7_SIGNER_INFO *si) | ||
| 21 | { | ||
| 22 | ASN1_TYPE *so; | ||
| 23 | |||
| 24 | so=PKCS7_get_signed_attribute(si,NID_pkcs9_signingTime); | ||
| 25 | if (so->type == V_ASN1_UTCTIME) | ||
| 26 | return so->value.utctime; | ||
| 27 | return NULL; | ||
| 28 | } | ||
| 29 | |||
| 30 | static int signed_string_nid= -1; | ||
| 31 | |||
| 32 | void add_signed_string(PKCS7_SIGNER_INFO *si, char *str) | ||
| 33 | { | ||
| 34 | ASN1_OCTET_STRING *os; | ||
| 35 | |||
| 36 | /* To a an object of OID 1.2.3.4.5, which is an octet string */ | ||
| 37 | if (signed_string_nid == -1) | ||
| 38 | signed_string_nid= | ||
| 39 | OBJ_create("1.2.3.4.5","OID_example","Our example OID"); | ||
| 40 | os=ASN1_OCTET_STRING_new(); | ||
| 41 | ASN1_OCTET_STRING_set(os,(unsigned char*)str,strlen(str)); | ||
| 42 | /* When we add, we do not free */ | ||
| 43 | PKCS7_add_signed_attribute(si,signed_string_nid, | ||
| 44 | V_ASN1_OCTET_STRING,(char *)os); | ||
| 45 | } | ||
| 46 | |||
| 47 | int get_signed_string(PKCS7_SIGNER_INFO *si, char *buf, int len) | ||
| 48 | { | ||
| 49 | ASN1_TYPE *so; | ||
| 50 | ASN1_OCTET_STRING *os; | ||
| 51 | int i; | ||
| 52 | |||
| 53 | if (signed_string_nid == -1) | ||
| 54 | signed_string_nid= | ||
| 55 | OBJ_create("1.2.3.4.5","OID_example","Our example OID"); | ||
| 56 | /* To retrieve */ | ||
| 57 | so=PKCS7_get_signed_attribute(si,signed_string_nid); | ||
| 58 | if (so != NULL) | ||
| 59 | { | ||
| 60 | if (so->type == V_ASN1_OCTET_STRING) | ||
| 61 | { | ||
| 62 | os=so->value.octet_string; | ||
| 63 | i=os->length; | ||
| 64 | if ((i+1) > len) | ||
| 65 | i=len-1; | ||
| 66 | memcpy(buf,os->data,i); | ||
| 67 | return(i); | ||
| 68 | } | ||
| 69 | } | ||
| 70 | return(0); | ||
| 71 | } | ||
| 72 | |||
| 73 | static int signed_seq2string_nid= -1; | ||
| 74 | /* ########################################### */ | ||
| 75 | int add_signed_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2) | ||
| 76 | { | ||
| 77 | /* To add an object of OID 1.9.999, which is a sequence containing | ||
| 78 | * 2 octet strings */ | ||
| 79 | unsigned char *p; | ||
| 80 | ASN1_OCTET_STRING *os1,*os2; | ||
| 81 | ASN1_STRING *seq; | ||
| 82 | unsigned char *data; | ||
| 83 | int i,total; | ||
| 84 | |||
| 85 | if (signed_seq2string_nid == -1) | ||
| 86 | signed_seq2string_nid= | ||
| 87 | OBJ_create("1.9.9999","OID_example","Our example OID"); | ||
| 88 | |||
| 89 | os1=ASN1_OCTET_STRING_new(); | ||
| 90 | os2=ASN1_OCTET_STRING_new(); | ||
| 91 | ASN1_OCTET_STRING_set(os1,(unsigned char*)str1,strlen(str1)); | ||
| 92 | ASN1_OCTET_STRING_set(os2,(unsigned char*)str1,strlen(str1)); | ||
| 93 | i =i2d_ASN1_OCTET_STRING(os1,NULL); | ||
| 94 | i+=i2d_ASN1_OCTET_STRING(os2,NULL); | ||
| 95 | total=ASN1_object_size(1,i,V_ASN1_SEQUENCE); | ||
| 96 | |||
| 97 | data=malloc(total); | ||
| 98 | p=data; | ||
| 99 | ASN1_put_object(&p,1,i,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); | ||
| 100 | i2d_ASN1_OCTET_STRING(os1,&p); | ||
| 101 | i2d_ASN1_OCTET_STRING(os2,&p); | ||
| 102 | |||
| 103 | seq=ASN1_STRING_new(); | ||
| 104 | ASN1_STRING_set(seq,data,total); | ||
| 105 | free(data); | ||
| 106 | ASN1_OCTET_STRING_free(os1); | ||
| 107 | ASN1_OCTET_STRING_free(os2); | ||
| 108 | |||
| 109 | PKCS7_add_signed_attribute(si,signed_seq2string_nid, | ||
| 110 | V_ASN1_SEQUENCE,(char *)seq); | ||
| 111 | return(1); | ||
| 112 | } | ||
| 113 | |||
| 114 | /* For this case, I will malloc the return strings */ | ||
| 115 | int get_signed_seq2string(PKCS7_SIGNER_INFO *si, char **str1, char **str2) | ||
| 116 | { | ||
| 117 | ASN1_TYPE *so; | ||
| 118 | |||
| 119 | if (signed_seq2string_nid == -1) | ||
| 120 | signed_seq2string_nid= | ||
| 121 | OBJ_create("1.9.9999","OID_example","Our example OID"); | ||
| 122 | /* To retrieve */ | ||
| 123 | so=PKCS7_get_signed_attribute(si,signed_seq2string_nid); | ||
| 124 | if (so && (so->type == V_ASN1_SEQUENCE)) | ||
| 125 | { | ||
| 126 | ASN1_const_CTX c; | ||
| 127 | ASN1_STRING *s; | ||
| 128 | long length; | ||
| 129 | ASN1_OCTET_STRING *os1,*os2; | ||
| 130 | |||
| 131 | s=so->value.sequence; | ||
| 132 | c.p=ASN1_STRING_data(s); | ||
| 133 | c.max=c.p+ASN1_STRING_length(s); | ||
| 134 | if (!asn1_GetSequence(&c,&length)) goto err; | ||
| 135 | /* Length is the length of the seqence */ | ||
| 136 | |||
| 137 | c.q=c.p; | ||
| 138 | if ((os1=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) | ||
| 139 | goto err; | ||
| 140 | c.slen-=(c.p-c.q); | ||
| 141 | |||
| 142 | c.q=c.p; | ||
| 143 | if ((os2=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) | ||
| 144 | goto err; | ||
| 145 | c.slen-=(c.p-c.q); | ||
| 146 | |||
| 147 | if (!asn1_const_Finish(&c)) goto err; | ||
| 148 | *str1=malloc(os1->length+1); | ||
| 149 | *str2=malloc(os2->length+1); | ||
| 150 | memcpy(*str1,os1->data,os1->length); | ||
| 151 | memcpy(*str2,os2->data,os2->length); | ||
| 152 | (*str1)[os1->length]='\0'; | ||
| 153 | (*str2)[os2->length]='\0'; | ||
| 154 | ASN1_OCTET_STRING_free(os1); | ||
| 155 | ASN1_OCTET_STRING_free(os2); | ||
| 156 | return(1); | ||
| 157 | } | ||
| 158 | err: | ||
| 159 | return(0); | ||
| 160 | } | ||
| 161 | |||
| 162 | |||
| 163 | /* ####################################### | ||
| 164 | * THE OTHER WAY TO DO THINGS | ||
| 165 | * ####################################### | ||
| 166 | */ | ||
| 167 | X509_ATTRIBUTE *create_time(void) | ||
| 168 | { | ||
| 169 | ASN1_UTCTIME *sign_time; | ||
| 170 | X509_ATTRIBUTE *ret; | ||
| 171 | |||
| 172 | /* The last parameter is the amount to add/subtract from the current | ||
| 173 | * time (in seconds) */ | ||
| 174 | sign_time=X509_gmtime_adj(NULL,0); | ||
| 175 | ret=X509_ATTRIBUTE_create(NID_pkcs9_signingTime, | ||
| 176 | V_ASN1_UTCTIME,(char *)sign_time); | ||
| 177 | return(ret); | ||
| 178 | } | ||
| 179 | |||
| 180 | ASN1_UTCTIME *sk_get_time(STACK_OF(X509_ATTRIBUTE) *sk) | ||
| 181 | { | ||
| 182 | ASN1_TYPE *so; | ||
| 183 | PKCS7_SIGNER_INFO si; | ||
| 184 | |||
| 185 | si.auth_attr=sk; | ||
| 186 | so=PKCS7_get_signed_attribute(&si,NID_pkcs9_signingTime); | ||
| 187 | if (so->type == V_ASN1_UTCTIME) | ||
| 188 | return so->value.utctime; | ||
| 189 | return NULL; | ||
| 190 | } | ||
| 191 | |||
| 192 | X509_ATTRIBUTE *create_string(char *str) | ||
| 193 | { | ||
| 194 | ASN1_OCTET_STRING *os; | ||
| 195 | X509_ATTRIBUTE *ret; | ||
| 196 | |||
| 197 | /* To a an object of OID 1.2.3.4.5, which is an octet string */ | ||
| 198 | if (signed_string_nid == -1) | ||
| 199 | signed_string_nid= | ||
| 200 | OBJ_create("1.2.3.4.5","OID_example","Our example OID"); | ||
| 201 | os=ASN1_OCTET_STRING_new(); | ||
| 202 | ASN1_OCTET_STRING_set(os,(unsigned char*)str,strlen(str)); | ||
| 203 | /* When we add, we do not free */ | ||
| 204 | ret=X509_ATTRIBUTE_create(signed_string_nid, | ||
| 205 | V_ASN1_OCTET_STRING,(char *)os); | ||
| 206 | return(ret); | ||
| 207 | } | ||
| 208 | |||
| 209 | int sk_get_string(STACK_OF(X509_ATTRIBUTE) *sk, char *buf, int len) | ||
| 210 | { | ||
| 211 | ASN1_TYPE *so; | ||
| 212 | ASN1_OCTET_STRING *os; | ||
| 213 | int i; | ||
| 214 | PKCS7_SIGNER_INFO si; | ||
| 215 | |||
| 216 | si.auth_attr=sk; | ||
| 217 | |||
| 218 | if (signed_string_nid == -1) | ||
| 219 | signed_string_nid= | ||
| 220 | OBJ_create("1.2.3.4.5","OID_example","Our example OID"); | ||
| 221 | /* To retrieve */ | ||
| 222 | so=PKCS7_get_signed_attribute(&si,signed_string_nid); | ||
| 223 | if (so != NULL) | ||
| 224 | { | ||
| 225 | if (so->type == V_ASN1_OCTET_STRING) | ||
| 226 | { | ||
| 227 | os=so->value.octet_string; | ||
| 228 | i=os->length; | ||
| 229 | if ((i+1) > len) | ||
| 230 | i=len-1; | ||
| 231 | memcpy(buf,os->data,i); | ||
| 232 | return(i); | ||
| 233 | } | ||
| 234 | } | ||
| 235 | return(0); | ||
| 236 | } | ||
| 237 | |||
| 238 | X509_ATTRIBUTE *add_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2) | ||
| 239 | { | ||
| 240 | /* To add an object of OID 1.9.999, which is a sequence containing | ||
| 241 | * 2 octet strings */ | ||
| 242 | unsigned char *p; | ||
| 243 | ASN1_OCTET_STRING *os1,*os2; | ||
| 244 | ASN1_STRING *seq; | ||
| 245 | X509_ATTRIBUTE *ret; | ||
| 246 | unsigned char *data; | ||
| 247 | int i,total; | ||
| 248 | |||
| 249 | if (signed_seq2string_nid == -1) | ||
| 250 | signed_seq2string_nid= | ||
| 251 | OBJ_create("1.9.9999","OID_example","Our example OID"); | ||
| 252 | |||
| 253 | os1=ASN1_OCTET_STRING_new(); | ||
| 254 | os2=ASN1_OCTET_STRING_new(); | ||
| 255 | ASN1_OCTET_STRING_set(os1,(unsigned char*)str1,strlen(str1)); | ||
| 256 | ASN1_OCTET_STRING_set(os2,(unsigned char*)str1,strlen(str1)); | ||
| 257 | i =i2d_ASN1_OCTET_STRING(os1,NULL); | ||
| 258 | i+=i2d_ASN1_OCTET_STRING(os2,NULL); | ||
| 259 | total=ASN1_object_size(1,i,V_ASN1_SEQUENCE); | ||
| 260 | |||
| 261 | data=malloc(total); | ||
| 262 | p=data; | ||
| 263 | ASN1_put_object(&p,1,i,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); | ||
| 264 | i2d_ASN1_OCTET_STRING(os1,&p); | ||
| 265 | i2d_ASN1_OCTET_STRING(os2,&p); | ||
| 266 | |||
| 267 | seq=ASN1_STRING_new(); | ||
| 268 | ASN1_STRING_set(seq,data,total); | ||
| 269 | free(data); | ||
| 270 | ASN1_OCTET_STRING_free(os1); | ||
| 271 | ASN1_OCTET_STRING_free(os2); | ||
| 272 | |||
| 273 | ret=X509_ATTRIBUTE_create(signed_seq2string_nid, | ||
| 274 | V_ASN1_SEQUENCE,(char *)seq); | ||
| 275 | return(ret); | ||
| 276 | } | ||
| 277 | |||
| 278 | /* For this case, I will malloc the return strings */ | ||
| 279 | int sk_get_seq2string(STACK_OF(X509_ATTRIBUTE) *sk, char **str1, char **str2) | ||
| 280 | { | ||
| 281 | ASN1_TYPE *so; | ||
| 282 | PKCS7_SIGNER_INFO si; | ||
| 283 | |||
| 284 | if (signed_seq2string_nid == -1) | ||
| 285 | signed_seq2string_nid= | ||
| 286 | OBJ_create("1.9.9999","OID_example","Our example OID"); | ||
| 287 | |||
| 288 | si.auth_attr=sk; | ||
| 289 | /* To retrieve */ | ||
| 290 | so=PKCS7_get_signed_attribute(&si,signed_seq2string_nid); | ||
| 291 | if (so->type == V_ASN1_SEQUENCE) | ||
| 292 | { | ||
| 293 | ASN1_const_CTX c; | ||
| 294 | ASN1_STRING *s; | ||
| 295 | long length; | ||
| 296 | ASN1_OCTET_STRING *os1,*os2; | ||
| 297 | |||
| 298 | s=so->value.sequence; | ||
| 299 | c.p=ASN1_STRING_data(s); | ||
| 300 | c.max=c.p+ASN1_STRING_length(s); | ||
| 301 | if (!asn1_GetSequence(&c,&length)) goto err; | ||
| 302 | /* Length is the length of the seqence */ | ||
| 303 | |||
| 304 | c.q=c.p; | ||
| 305 | if ((os1=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) | ||
| 306 | goto err; | ||
| 307 | c.slen-=(c.p-c.q); | ||
| 308 | |||
| 309 | c.q=c.p; | ||
| 310 | if ((os2=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) | ||
| 311 | goto err; | ||
| 312 | c.slen-=(c.p-c.q); | ||
| 313 | |||
| 314 | if (!asn1_const_Finish(&c)) goto err; | ||
| 315 | *str1=malloc(os1->length+1); | ||
| 316 | *str2=malloc(os2->length+1); | ||
| 317 | memcpy(*str1,os1->data,os1->length); | ||
| 318 | memcpy(*str2,os2->data,os2->length); | ||
| 319 | (*str1)[os1->length]='\0'; | ||
| 320 | (*str2)[os2->length]='\0'; | ||
| 321 | ASN1_OCTET_STRING_free(os1); | ||
| 322 | ASN1_OCTET_STRING_free(os2); | ||
| 323 | return(1); | ||
| 324 | } | ||
| 325 | err: | ||
| 326 | return(0); | ||
| 327 | } | ||
| 328 | |||
| 329 | |||
diff --git a/src/lib/libcrypto/pkcs7/example.h b/src/lib/libcrypto/pkcs7/example.h deleted file mode 100644 index 96167de188..0000000000 --- a/src/lib/libcrypto/pkcs7/example.h +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | /* ==================================================================== | ||
| 2 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved. | ||
| 3 | * | ||
| 4 | * Redistribution and use in source and binary forms, with or without | ||
| 5 | * modification, are permitted provided that the following conditions | ||
| 6 | * are met: | ||
| 7 | * | ||
| 8 | * 1. Redistributions of source code must retain the above copyright | ||
| 9 | * notice, this list of conditions and the following disclaimer. | ||
| 10 | * | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in | ||
| 13 | * the documentation and/or other materials provided with the | ||
| 14 | * distribution. | ||
| 15 | * | ||
| 16 | * 3. All advertising materials mentioning features or use of this | ||
| 17 | * software must display the following acknowledgment: | ||
| 18 | * "This product includes software developed by the OpenSSL Project | ||
| 19 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
| 20 | * | ||
| 21 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 22 | * endorse or promote products derived from this software without | ||
| 23 | * prior written permission. For written permission, please contact | ||
| 24 | * openssl-core@openssl.org. | ||
| 25 | * | ||
| 26 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 27 | * nor may "OpenSSL" appear in their names without prior written | ||
| 28 | * permission of the OpenSSL Project. | ||
| 29 | * | ||
| 30 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 31 | * acknowledgment: | ||
| 32 | * "This product includes software developed by the OpenSSL Project | ||
| 33 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
| 34 | * | ||
| 35 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 36 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 37 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 38 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 39 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 40 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 41 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 42 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 43 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 44 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 45 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 46 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 47 | * ==================================================================== | ||
| 48 | * | ||
| 49 | * This product includes cryptographic software written by Eric Young | ||
| 50 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
| 51 | * Hudson (tjh@cryptsoft.com). | ||
| 52 | * | ||
| 53 | */ | ||
| 54 | |||
| 55 | int add_signed_time(PKCS7_SIGNER_INFO *si); | ||
| 56 | ASN1_UTCTIME *get_signed_time(PKCS7_SIGNER_INFO *si); | ||
| 57 | int get_signed_seq2string(PKCS7_SIGNER_INFO *si, char **str1, char **str2); | ||
diff --git a/src/lib/libcrypto/pkcs7/info.pem b/src/lib/libcrypto/pkcs7/info.pem deleted file mode 100644 index 989baf8709..0000000000 --- a/src/lib/libcrypto/pkcs7/info.pem +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA | ||
| 2 | subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com | ||
| 3 | serial :047D | ||
| 4 | |||
| 5 | Certificate: | ||
| 6 | Data: | ||
| 7 | Version: 3 (0x2) | ||
| 8 | Serial Number: 1149 (0x47d) | ||
| 9 | Signature Algorithm: md5withRSAEncryption | ||
| 10 | Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA | ||
| 11 | Validity | ||
| 12 | Not Before: May 13 05:40:58 1998 GMT | ||
| 13 | Not After : May 12 05:40:58 2000 GMT | ||
| 14 | Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com | ||
| 15 | Subject Public Key Info: | ||
| 16 | Public Key Algorithm: rsaEncryption | ||
| 17 | Modulus: | ||
| 18 | 00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: | ||
| 19 | 73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: | ||
| 20 | 89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: | ||
| 21 | fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: | ||
| 22 | e7:e7:0c:4d:0b | ||
| 23 | Exponent: 65537 (0x10001) | ||
| 24 | X509v3 extensions: | ||
| 25 | Netscape Comment: | ||
| 26 | Generated with SSLeay | ||
| 27 | Signature Algorithm: md5withRSAEncryption | ||
| 28 | 52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: | ||
| 29 | f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: | ||
| 30 | d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: | ||
| 31 | 50:74:ad:92:cb:4e:90:e5:fa:7d | ||
| 32 | |||
| 33 | -----BEGIN CERTIFICATE----- | ||
| 34 | MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV | ||
| 35 | MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE | ||
| 36 | ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E | ||
| 37 | IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw | ||
| 38 | NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK | ||
| 39 | UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 40 | dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 | ||
| 41 | aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG | ||
| 42 | 9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf | ||
| 43 | lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB | ||
| 44 | hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA | ||
| 45 | UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 | ||
| 46 | 4A3ZItobUHStkstOkOX6fQ== | ||
| 47 | -----END CERTIFICATE----- | ||
| 48 | |||
| 49 | -----BEGIN RSA PRIVATE KEY----- | ||
| 50 | MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 | ||
| 51 | mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG | ||
| 52 | fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ | ||
| 53 | zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 | ||
| 54 | p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b | ||
| 55 | bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk | ||
| 56 | IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG | ||
| 57 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libcrypto/pkcs7/infokey.pem b/src/lib/libcrypto/pkcs7/infokey.pem deleted file mode 100644 index 1e2acc954d..0000000000 --- a/src/lib/libcrypto/pkcs7/infokey.pem +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | -----BEGIN RSA PRIVATE KEY----- | ||
| 2 | MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 | ||
| 3 | mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG | ||
| 4 | fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ | ||
| 5 | zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 | ||
| 6 | p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b | ||
| 7 | bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk | ||
| 8 | IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG | ||
| 9 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libcrypto/pkcs7/p7/a1 b/src/lib/libcrypto/pkcs7/p7/a1 deleted file mode 100644 index 56ca943762..0000000000 --- a/src/lib/libcrypto/pkcs7/p7/a1 +++ /dev/null | |||
| @@ -1,2 +0,0 @@ | |||
| 1 | j,H>_æá_DôzEîLœ VJ³ß觬¤””E3ûáYäx%_Àk | ||
| 2 | 3ê)DLScñ8%ôM \ No newline at end of file | ||
diff --git a/src/lib/libcrypto/pkcs7/p7/a2 b/src/lib/libcrypto/pkcs7/p7/a2 deleted file mode 100644 index 23d8fb5e93..0000000000 --- a/src/lib/libcrypto/pkcs7/p7/a2 +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | k~@a”,NâM͹¼ <O( KP—é¨ ¤K²>×U¿o_½BqrmÎ?Ù t?t÷ÏéId2‰Š \ No newline at end of file | ||
diff --git a/src/lib/libcrypto/pkcs7/p7/cert.p7c b/src/lib/libcrypto/pkcs7/p7/cert.p7c deleted file mode 100644 index 2b75ec05f7..0000000000 --- a/src/lib/libcrypto/pkcs7/p7/cert.p7c +++ /dev/null | |||
| Binary files differ | |||
diff --git a/src/lib/libcrypto/pkcs7/p7/smime.p7m b/src/lib/libcrypto/pkcs7/p7/smime.p7m deleted file mode 100644 index 2b6e6f82ba..0000000000 --- a/src/lib/libcrypto/pkcs7/p7/smime.p7m +++ /dev/null | |||
| Binary files differ | |||
diff --git a/src/lib/libcrypto/pkcs7/p7/smime.p7s b/src/lib/libcrypto/pkcs7/p7/smime.p7s deleted file mode 100644 index 2b5d4fb0e3..0000000000 --- a/src/lib/libcrypto/pkcs7/p7/smime.p7s +++ /dev/null | |||
| Binary files differ | |||
diff --git a/src/lib/libcrypto/pkcs7/pk7_asn1.c b/src/lib/libcrypto/pkcs7/pk7_asn1.c deleted file mode 100644 index b7ec2883cb..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_asn1.c +++ /dev/null | |||
| @@ -1,247 +0,0 @@ | |||
| 1 | /* pk7_asn.c */ | ||
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
| 3 | * project 2000. | ||
| 4 | */ | ||
| 5 | /* ==================================================================== | ||
| 6 | * Copyright (c) 2000 The OpenSSL Project. All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in | ||
| 17 | * the documentation and/or other materials provided with the | ||
| 18 | * distribution. | ||
| 19 | * | ||
| 20 | * 3. All advertising materials mentioning features or use of this | ||
| 21 | * software must display the following acknowledgment: | ||
| 22 | * "This product includes software developed by the OpenSSL Project | ||
| 23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 24 | * | ||
| 25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 26 | * endorse or promote products derived from this software without | ||
| 27 | * prior written permission. For written permission, please contact | ||
| 28 | * licensing@OpenSSL.org. | ||
| 29 | * | ||
| 30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 31 | * nor may "OpenSSL" appear in their names without prior written | ||
| 32 | * permission of the OpenSSL Project. | ||
| 33 | * | ||
| 34 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 35 | * acknowledgment: | ||
| 36 | * "This product includes software developed by the OpenSSL Project | ||
| 37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 51 | * ==================================================================== | ||
| 52 | * | ||
| 53 | * This product includes cryptographic software written by Eric Young | ||
| 54 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
| 55 | * Hudson (tjh@cryptsoft.com). | ||
| 56 | * | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include "cryptlib.h" | ||
| 61 | #include <openssl/asn1t.h> | ||
| 62 | #include <openssl/pkcs7.h> | ||
| 63 | #include <openssl/x509.h> | ||
| 64 | |||
| 65 | /* PKCS#7 ASN1 module */ | ||
| 66 | |||
| 67 | /* This is the ANY DEFINED BY table for the top level PKCS#7 structure */ | ||
| 68 | |||
| 69 | ASN1_ADB_TEMPLATE(p7default) = ASN1_EXP_OPT(PKCS7, d.other, ASN1_ANY, 0); | ||
| 70 | |||
| 71 | ASN1_ADB(PKCS7) = { | ||
| 72 | ADB_ENTRY(NID_pkcs7_data, ASN1_NDEF_EXP_OPT(PKCS7, d.data, ASN1_OCTET_STRING_NDEF, 0)), | ||
| 73 | ADB_ENTRY(NID_pkcs7_signed, ASN1_NDEF_EXP_OPT(PKCS7, d.sign, PKCS7_SIGNED, 0)), | ||
| 74 | ADB_ENTRY(NID_pkcs7_enveloped, ASN1_NDEF_EXP_OPT(PKCS7, d.enveloped, PKCS7_ENVELOPE, 0)), | ||
| 75 | ADB_ENTRY(NID_pkcs7_signedAndEnveloped, ASN1_NDEF_EXP_OPT(PKCS7, d.signed_and_enveloped, PKCS7_SIGN_ENVELOPE, 0)), | ||
| 76 | ADB_ENTRY(NID_pkcs7_digest, ASN1_NDEF_EXP_OPT(PKCS7, d.digest, PKCS7_DIGEST, 0)), | ||
| 77 | ADB_ENTRY(NID_pkcs7_encrypted, ASN1_NDEF_EXP_OPT(PKCS7, d.encrypted, PKCS7_ENCRYPT, 0)) | ||
| 78 | } ASN1_ADB_END(PKCS7, 0, type, 0, &p7default_tt, NULL); | ||
| 79 | |||
| 80 | /* PKCS#7 streaming support */ | ||
| 81 | static int pk7_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, | ||
| 82 | void *exarg) | ||
| 83 | { | ||
| 84 | ASN1_STREAM_ARG *sarg = exarg; | ||
| 85 | PKCS7 **pp7 = (PKCS7 **)pval; | ||
| 86 | |||
| 87 | switch(operation) | ||
| 88 | { | ||
| 89 | |||
| 90 | case ASN1_OP_STREAM_PRE: | ||
| 91 | if (PKCS7_stream(&sarg->boundary, *pp7) <= 0) | ||
| 92 | return 0; | ||
| 93 | case ASN1_OP_DETACHED_PRE: | ||
| 94 | sarg->ndef_bio = PKCS7_dataInit(*pp7, sarg->out); | ||
| 95 | if (!sarg->ndef_bio) | ||
| 96 | return 0; | ||
| 97 | break; | ||
| 98 | |||
| 99 | case ASN1_OP_STREAM_POST: | ||
| 100 | case ASN1_OP_DETACHED_POST: | ||
| 101 | if (PKCS7_dataFinal(*pp7, sarg->ndef_bio) <= 0) | ||
| 102 | return 0; | ||
| 103 | break; | ||
| 104 | |||
| 105 | } | ||
| 106 | return 1; | ||
| 107 | } | ||
| 108 | |||
| 109 | ASN1_NDEF_SEQUENCE_cb(PKCS7, pk7_cb) = { | ||
| 110 | ASN1_SIMPLE(PKCS7, type, ASN1_OBJECT), | ||
| 111 | ASN1_ADB_OBJECT(PKCS7) | ||
| 112 | }ASN1_NDEF_SEQUENCE_END_cb(PKCS7, PKCS7) | ||
| 113 | |||
| 114 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7) | ||
| 115 | IMPLEMENT_ASN1_NDEF_FUNCTION(PKCS7) | ||
| 116 | IMPLEMENT_ASN1_DUP_FUNCTION(PKCS7) | ||
| 117 | |||
| 118 | ASN1_NDEF_SEQUENCE(PKCS7_SIGNED) = { | ||
| 119 | ASN1_SIMPLE(PKCS7_SIGNED, version, ASN1_INTEGER), | ||
| 120 | ASN1_SET_OF(PKCS7_SIGNED, md_algs, X509_ALGOR), | ||
| 121 | ASN1_SIMPLE(PKCS7_SIGNED, contents, PKCS7), | ||
| 122 | ASN1_IMP_SEQUENCE_OF_OPT(PKCS7_SIGNED, cert, X509, 0), | ||
| 123 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGNED, crl, X509_CRL, 1), | ||
| 124 | ASN1_SET_OF(PKCS7_SIGNED, signer_info, PKCS7_SIGNER_INFO) | ||
| 125 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGNED) | ||
| 126 | |||
| 127 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGNED) | ||
| 128 | |||
| 129 | /* Minor tweak to operation: free up EVP_PKEY */ | ||
| 130 | static int si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, | ||
| 131 | void *exarg) | ||
| 132 | { | ||
| 133 | if(operation == ASN1_OP_FREE_POST) { | ||
| 134 | PKCS7_SIGNER_INFO *si = (PKCS7_SIGNER_INFO *)*pval; | ||
| 135 | EVP_PKEY_free(si->pkey); | ||
| 136 | } | ||
| 137 | return 1; | ||
| 138 | } | ||
| 139 | |||
| 140 | ASN1_SEQUENCE_cb(PKCS7_SIGNER_INFO, si_cb) = { | ||
| 141 | ASN1_SIMPLE(PKCS7_SIGNER_INFO, version, ASN1_INTEGER), | ||
| 142 | ASN1_SIMPLE(PKCS7_SIGNER_INFO, issuer_and_serial, PKCS7_ISSUER_AND_SERIAL), | ||
| 143 | ASN1_SIMPLE(PKCS7_SIGNER_INFO, digest_alg, X509_ALGOR), | ||
| 144 | /* NB this should be a SET OF but we use a SEQUENCE OF so the | ||
| 145 | * original order * is retained when the structure is reencoded. | ||
| 146 | * Since the attributes are implicitly tagged this will not affect | ||
| 147 | * the encoding. | ||
| 148 | */ | ||
| 149 | ASN1_IMP_SEQUENCE_OF_OPT(PKCS7_SIGNER_INFO, auth_attr, X509_ATTRIBUTE, 0), | ||
| 150 | ASN1_SIMPLE(PKCS7_SIGNER_INFO, digest_enc_alg, X509_ALGOR), | ||
| 151 | ASN1_SIMPLE(PKCS7_SIGNER_INFO, enc_digest, ASN1_OCTET_STRING), | ||
| 152 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGNER_INFO, unauth_attr, X509_ATTRIBUTE, 1) | ||
| 153 | } ASN1_SEQUENCE_END_cb(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) | ||
| 154 | |||
| 155 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) | ||
| 156 | |||
| 157 | ASN1_SEQUENCE(PKCS7_ISSUER_AND_SERIAL) = { | ||
| 158 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, issuer, X509_NAME), | ||
| 159 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, serial, ASN1_INTEGER) | ||
| 160 | } ASN1_SEQUENCE_END(PKCS7_ISSUER_AND_SERIAL) | ||
| 161 | |||
| 162 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) | ||
| 163 | |||
| 164 | ASN1_NDEF_SEQUENCE(PKCS7_ENVELOPE) = { | ||
| 165 | ASN1_SIMPLE(PKCS7_ENVELOPE, version, ASN1_INTEGER), | ||
| 166 | ASN1_SET_OF(PKCS7_ENVELOPE, recipientinfo, PKCS7_RECIP_INFO), | ||
| 167 | ASN1_SIMPLE(PKCS7_ENVELOPE, enc_data, PKCS7_ENC_CONTENT) | ||
| 168 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENVELOPE) | ||
| 169 | |||
| 170 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENVELOPE) | ||
| 171 | |||
| 172 | /* Minor tweak to operation: free up X509 */ | ||
| 173 | static int ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, | ||
| 174 | void *exarg) | ||
| 175 | { | ||
| 176 | if(operation == ASN1_OP_FREE_POST) { | ||
| 177 | PKCS7_RECIP_INFO *ri = (PKCS7_RECIP_INFO *)*pval; | ||
| 178 | X509_free(ri->cert); | ||
| 179 | } | ||
| 180 | return 1; | ||
| 181 | } | ||
| 182 | |||
| 183 | ASN1_SEQUENCE_cb(PKCS7_RECIP_INFO, ri_cb) = { | ||
| 184 | ASN1_SIMPLE(PKCS7_RECIP_INFO, version, ASN1_INTEGER), | ||
| 185 | ASN1_SIMPLE(PKCS7_RECIP_INFO, issuer_and_serial, PKCS7_ISSUER_AND_SERIAL), | ||
| 186 | ASN1_SIMPLE(PKCS7_RECIP_INFO, key_enc_algor, X509_ALGOR), | ||
| 187 | ASN1_SIMPLE(PKCS7_RECIP_INFO, enc_key, ASN1_OCTET_STRING) | ||
| 188 | } ASN1_SEQUENCE_END_cb(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) | ||
| 189 | |||
| 190 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) | ||
| 191 | |||
| 192 | ASN1_NDEF_SEQUENCE(PKCS7_ENC_CONTENT) = { | ||
| 193 | ASN1_SIMPLE(PKCS7_ENC_CONTENT, content_type, ASN1_OBJECT), | ||
| 194 | ASN1_SIMPLE(PKCS7_ENC_CONTENT, algorithm, X509_ALGOR), | ||
| 195 | ASN1_IMP_OPT(PKCS7_ENC_CONTENT, enc_data, ASN1_OCTET_STRING_NDEF, 0) | ||
| 196 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENC_CONTENT) | ||
| 197 | |||
| 198 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) | ||
| 199 | |||
| 200 | ASN1_NDEF_SEQUENCE(PKCS7_SIGN_ENVELOPE) = { | ||
| 201 | ASN1_SIMPLE(PKCS7_SIGN_ENVELOPE, version, ASN1_INTEGER), | ||
| 202 | ASN1_SET_OF(PKCS7_SIGN_ENVELOPE, recipientinfo, PKCS7_RECIP_INFO), | ||
| 203 | ASN1_SET_OF(PKCS7_SIGN_ENVELOPE, md_algs, X509_ALGOR), | ||
| 204 | ASN1_SIMPLE(PKCS7_SIGN_ENVELOPE, enc_data, PKCS7_ENC_CONTENT), | ||
| 205 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGN_ENVELOPE, cert, X509, 0), | ||
| 206 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGN_ENVELOPE, crl, X509_CRL, 1), | ||
| 207 | ASN1_SET_OF(PKCS7_SIGN_ENVELOPE, signer_info, PKCS7_SIGNER_INFO) | ||
| 208 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGN_ENVELOPE) | ||
| 209 | |||
| 210 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) | ||
| 211 | |||
| 212 | ASN1_NDEF_SEQUENCE(PKCS7_ENCRYPT) = { | ||
| 213 | ASN1_SIMPLE(PKCS7_ENCRYPT, version, ASN1_INTEGER), | ||
| 214 | ASN1_SIMPLE(PKCS7_ENCRYPT, enc_data, PKCS7_ENC_CONTENT) | ||
| 215 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENCRYPT) | ||
| 216 | |||
| 217 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENCRYPT) | ||
| 218 | |||
| 219 | ASN1_NDEF_SEQUENCE(PKCS7_DIGEST) = { | ||
| 220 | ASN1_SIMPLE(PKCS7_DIGEST, version, ASN1_INTEGER), | ||
| 221 | ASN1_SIMPLE(PKCS7_DIGEST, md, X509_ALGOR), | ||
| 222 | ASN1_SIMPLE(PKCS7_DIGEST, contents, PKCS7), | ||
| 223 | ASN1_SIMPLE(PKCS7_DIGEST, digest, ASN1_OCTET_STRING) | ||
| 224 | } ASN1_NDEF_SEQUENCE_END(PKCS7_DIGEST) | ||
| 225 | |||
| 226 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_DIGEST) | ||
| 227 | |||
| 228 | /* Specials for authenticated attributes */ | ||
| 229 | |||
| 230 | /* When signing attributes we want to reorder them to match the sorted | ||
| 231 | * encoding. | ||
| 232 | */ | ||
| 233 | |||
| 234 | ASN1_ITEM_TEMPLATE(PKCS7_ATTR_SIGN) = | ||
| 235 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_ORDER, 0, PKCS7_ATTRIBUTES, X509_ATTRIBUTE) | ||
| 236 | ASN1_ITEM_TEMPLATE_END(PKCS7_ATTR_SIGN) | ||
| 237 | |||
| 238 | /* When verifying attributes we need to use the received order. So | ||
| 239 | * we use SEQUENCE OF and tag it to SET OF | ||
| 240 | */ | ||
| 241 | |||
| 242 | ASN1_ITEM_TEMPLATE(PKCS7_ATTR_VERIFY) = | ||
| 243 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_IMPTAG | ASN1_TFLG_UNIVERSAL, | ||
| 244 | V_ASN1_SET, PKCS7_ATTRIBUTES, X509_ATTRIBUTE) | ||
| 245 | ASN1_ITEM_TEMPLATE_END(PKCS7_ATTR_VERIFY) | ||
| 246 | |||
| 247 | IMPLEMENT_ASN1_PRINT_FUNCTION(PKCS7) | ||
diff --git a/src/lib/libcrypto/pkcs7/pk7_attr.c b/src/lib/libcrypto/pkcs7/pk7_attr.c deleted file mode 100644 index a97db51210..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_attr.c +++ /dev/null | |||
| @@ -1,165 +0,0 @@ | |||
| 1 | /* pk7_attr.c */ | ||
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
| 3 | * project 2001. | ||
| 4 | */ | ||
| 5 | /* ==================================================================== | ||
| 6 | * Copyright (c) 2001-2004 The OpenSSL Project. All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in | ||
| 17 | * the documentation and/or other materials provided with the | ||
| 18 | * distribution. | ||
| 19 | * | ||
| 20 | * 3. All advertising materials mentioning features or use of this | ||
| 21 | * software must display the following acknowledgment: | ||
| 22 | * "This product includes software developed by the OpenSSL Project | ||
| 23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 24 | * | ||
| 25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 26 | * endorse or promote products derived from this software without | ||
| 27 | * prior written permission. For written permission, please contact | ||
| 28 | * licensing@OpenSSL.org. | ||
| 29 | * | ||
| 30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 31 | * nor may "OpenSSL" appear in their names without prior written | ||
| 32 | * permission of the OpenSSL Project. | ||
| 33 | * | ||
| 34 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 35 | * acknowledgment: | ||
| 36 | * "This product includes software developed by the OpenSSL Project | ||
| 37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 51 | * ==================================================================== | ||
| 52 | * | ||
| 53 | * This product includes cryptographic software written by Eric Young | ||
| 54 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
| 55 | * Hudson (tjh@cryptsoft.com). | ||
| 56 | * | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include <stdlib.h> | ||
| 61 | #include <openssl/bio.h> | ||
| 62 | #include <openssl/asn1.h> | ||
| 63 | #include <openssl/asn1t.h> | ||
| 64 | #include <openssl/pem.h> | ||
| 65 | #include <openssl/pkcs7.h> | ||
| 66 | #include <openssl/x509.h> | ||
| 67 | #include <openssl/err.h> | ||
| 68 | |||
| 69 | int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK_OF(X509_ALGOR) *cap) | ||
| 70 | { | ||
| 71 | ASN1_STRING *seq; | ||
| 72 | if(!(seq = ASN1_STRING_new())) { | ||
| 73 | PKCS7err(PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP,ERR_R_MALLOC_FAILURE); | ||
| 74 | return 0; | ||
| 75 | } | ||
| 76 | seq->length = ASN1_item_i2d((ASN1_VALUE *)cap,&seq->data, | ||
| 77 | ASN1_ITEM_rptr(X509_ALGORS)); | ||
| 78 | return PKCS7_add_signed_attribute(si, NID_SMIMECapabilities, | ||
| 79 | V_ASN1_SEQUENCE, seq); | ||
| 80 | } | ||
| 81 | |||
| 82 | STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si) | ||
| 83 | { | ||
| 84 | ASN1_TYPE *cap; | ||
| 85 | const unsigned char *p; | ||
| 86 | |||
| 87 | cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities); | ||
| 88 | if (!cap || (cap->type != V_ASN1_SEQUENCE)) | ||
| 89 | return NULL; | ||
| 90 | p = cap->value.sequence->data; | ||
| 91 | return (STACK_OF(X509_ALGOR) *) | ||
| 92 | ASN1_item_d2i(NULL, &p, cap->value.sequence->length, | ||
| 93 | ASN1_ITEM_rptr(X509_ALGORS)); | ||
| 94 | } | ||
| 95 | |||
| 96 | /* Basic smime-capabilities OID and optional integer arg */ | ||
| 97 | int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg) | ||
| 98 | { | ||
| 99 | X509_ALGOR *alg; | ||
| 100 | |||
| 101 | if(!(alg = X509_ALGOR_new())) { | ||
| 102 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP,ERR_R_MALLOC_FAILURE); | ||
| 103 | return 0; | ||
| 104 | } | ||
| 105 | ASN1_OBJECT_free(alg->algorithm); | ||
| 106 | alg->algorithm = OBJ_nid2obj (nid); | ||
| 107 | if (arg > 0) { | ||
| 108 | ASN1_INTEGER *nbit; | ||
| 109 | if(!(alg->parameter = ASN1_TYPE_new())) { | ||
| 110 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP,ERR_R_MALLOC_FAILURE); | ||
| 111 | return 0; | ||
| 112 | } | ||
| 113 | if(!(nbit = ASN1_INTEGER_new())) { | ||
| 114 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP,ERR_R_MALLOC_FAILURE); | ||
| 115 | return 0; | ||
| 116 | } | ||
| 117 | if(!ASN1_INTEGER_set (nbit, arg)) { | ||
| 118 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP,ERR_R_MALLOC_FAILURE); | ||
| 119 | return 0; | ||
| 120 | } | ||
| 121 | alg->parameter->value.integer = nbit; | ||
| 122 | alg->parameter->type = V_ASN1_INTEGER; | ||
| 123 | } | ||
| 124 | sk_X509_ALGOR_push (sk, alg); | ||
| 125 | return 1; | ||
| 126 | } | ||
| 127 | |||
| 128 | int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid) | ||
| 129 | { | ||
| 130 | if (PKCS7_get_signed_attribute(si, NID_pkcs9_contentType)) | ||
| 131 | return 0; | ||
| 132 | if (!coid) | ||
| 133 | coid = OBJ_nid2obj(NID_pkcs7_data); | ||
| 134 | return PKCS7_add_signed_attribute(si, NID_pkcs9_contentType, | ||
| 135 | V_ASN1_OBJECT, coid); | ||
| 136 | } | ||
| 137 | |||
| 138 | int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t) | ||
| 139 | { | ||
| 140 | if (!t && !(t=X509_gmtime_adj(NULL,0))) | ||
| 141 | { | ||
| 142 | PKCS7err(PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME, | ||
| 143 | ERR_R_MALLOC_FAILURE); | ||
| 144 | return 0; | ||
| 145 | } | ||
| 146 | return PKCS7_add_signed_attribute(si, NID_pkcs9_signingTime, | ||
| 147 | V_ASN1_UTCTIME, t); | ||
| 148 | } | ||
| 149 | |||
| 150 | int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, | ||
| 151 | const unsigned char *md, int mdlen) | ||
| 152 | { | ||
| 153 | ASN1_OCTET_STRING *os; | ||
| 154 | os = ASN1_OCTET_STRING_new(); | ||
| 155 | if (!os) | ||
| 156 | return 0; | ||
| 157 | if (!ASN1_STRING_set(os, md, mdlen) | ||
| 158 | || !PKCS7_add_signed_attribute(si, NID_pkcs9_messageDigest, | ||
| 159 | V_ASN1_OCTET_STRING, os)) | ||
| 160 | { | ||
| 161 | ASN1_OCTET_STRING_free(os); | ||
| 162 | return 0; | ||
| 163 | } | ||
| 164 | return 1; | ||
| 165 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/pk7_dgst.c b/src/lib/libcrypto/pkcs7/pk7_dgst.c deleted file mode 100644 index 90edfa5001..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_dgst.c +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pk7_dgst.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include "cryptlib.h" | ||
| 61 | #include <openssl/evp.h> | ||
| 62 | #include <openssl/rand.h> | ||
| 63 | #include <openssl/objects.h> | ||
| 64 | #include <openssl/x509.h> | ||
| 65 | #include <openssl/pkcs7.h> | ||
| 66 | |||
diff --git a/src/lib/libcrypto/pkcs7/pk7_doit.c b/src/lib/libcrypto/pkcs7/pk7_doit.c deleted file mode 100644 index 3bf1a367bb..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_doit.c +++ /dev/null | |||
| @@ -1,1248 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pk7_doit.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include "cryptlib.h" | ||
| 61 | #include <openssl/rand.h> | ||
| 62 | #include <openssl/objects.h> | ||
| 63 | #include <openssl/x509.h> | ||
| 64 | #include <openssl/x509v3.h> | ||
| 65 | #include <openssl/err.h> | ||
| 66 | |||
| 67 | static int add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype, | ||
| 68 | void *value); | ||
| 69 | static ASN1_TYPE *get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid); | ||
| 70 | |||
| 71 | static int PKCS7_type_is_other(PKCS7* p7) | ||
| 72 | { | ||
| 73 | int isOther=1; | ||
| 74 | |||
| 75 | int nid=OBJ_obj2nid(p7->type); | ||
| 76 | |||
| 77 | switch( nid ) | ||
| 78 | { | ||
| 79 | case NID_pkcs7_data: | ||
| 80 | case NID_pkcs7_signed: | ||
| 81 | case NID_pkcs7_enveloped: | ||
| 82 | case NID_pkcs7_signedAndEnveloped: | ||
| 83 | case NID_pkcs7_digest: | ||
| 84 | case NID_pkcs7_encrypted: | ||
| 85 | isOther=0; | ||
| 86 | break; | ||
| 87 | default: | ||
| 88 | isOther=1; | ||
| 89 | } | ||
| 90 | |||
| 91 | return isOther; | ||
| 92 | |||
| 93 | } | ||
| 94 | |||
| 95 | static ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7) | ||
| 96 | { | ||
| 97 | if ( PKCS7_type_is_data(p7)) | ||
| 98 | return p7->d.data; | ||
| 99 | if ( PKCS7_type_is_other(p7) && p7->d.other | ||
| 100 | && (p7->d.other->type == V_ASN1_OCTET_STRING)) | ||
| 101 | return p7->d.other->value.octet_string; | ||
| 102 | return NULL; | ||
| 103 | } | ||
| 104 | |||
| 105 | static int PKCS7_bio_add_digest(BIO **pbio, X509_ALGOR *alg) | ||
| 106 | { | ||
| 107 | BIO *btmp; | ||
| 108 | const EVP_MD *md; | ||
| 109 | if ((btmp=BIO_new(BIO_f_md())) == NULL) | ||
| 110 | { | ||
| 111 | PKCS7err(PKCS7_F_PKCS7_BIO_ADD_DIGEST,ERR_R_BIO_LIB); | ||
| 112 | goto err; | ||
| 113 | } | ||
| 114 | |||
| 115 | md=EVP_get_digestbyobj(alg->algorithm); | ||
| 116 | if (md == NULL) | ||
| 117 | { | ||
| 118 | PKCS7err(PKCS7_F_PKCS7_BIO_ADD_DIGEST,PKCS7_R_UNKNOWN_DIGEST_TYPE); | ||
| 119 | goto err; | ||
| 120 | } | ||
| 121 | |||
| 122 | BIO_set_md(btmp,md); | ||
| 123 | if (*pbio == NULL) | ||
| 124 | *pbio=btmp; | ||
| 125 | else if (!BIO_push(*pbio,btmp)) | ||
| 126 | { | ||
| 127 | PKCS7err(PKCS7_F_PKCS7_BIO_ADD_DIGEST,ERR_R_BIO_LIB); | ||
| 128 | goto err; | ||
| 129 | } | ||
| 130 | btmp=NULL; | ||
| 131 | |||
| 132 | return 1; | ||
| 133 | |||
| 134 | err: | ||
| 135 | if (btmp) | ||
| 136 | BIO_free(btmp); | ||
| 137 | return 0; | ||
| 138 | |||
| 139 | } | ||
| 140 | |||
| 141 | static int pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri, | ||
| 142 | unsigned char *key, int keylen) | ||
| 143 | { | ||
| 144 | EVP_PKEY_CTX *pctx = NULL; | ||
| 145 | EVP_PKEY *pkey = NULL; | ||
| 146 | unsigned char *ek = NULL; | ||
| 147 | int ret = 0; | ||
| 148 | size_t eklen; | ||
| 149 | |||
| 150 | pkey = X509_get_pubkey(ri->cert); | ||
| 151 | |||
| 152 | if (!pkey) | ||
| 153 | return 0; | ||
| 154 | |||
| 155 | pctx = EVP_PKEY_CTX_new(pkey, NULL); | ||
| 156 | if (!pctx) | ||
| 157 | return 0; | ||
| 158 | |||
| 159 | if (EVP_PKEY_encrypt_init(pctx) <= 0) | ||
| 160 | goto err; | ||
| 161 | |||
| 162 | if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_ENCRYPT, | ||
| 163 | EVP_PKEY_CTRL_PKCS7_ENCRYPT, 0, ri) <= 0) | ||
| 164 | { | ||
| 165 | PKCS7err(PKCS7_F_PKCS7_ENCODE_RINFO, PKCS7_R_CTRL_ERROR); | ||
| 166 | goto err; | ||
| 167 | } | ||
| 168 | |||
| 169 | if (EVP_PKEY_encrypt(pctx, NULL, &eklen, key, keylen) <= 0) | ||
| 170 | goto err; | ||
| 171 | |||
| 172 | ek = OPENSSL_malloc(eklen); | ||
| 173 | |||
| 174 | if (ek == NULL) | ||
| 175 | { | ||
| 176 | PKCS7err(PKCS7_F_PKCS7_ENCODE_RINFO, ERR_R_MALLOC_FAILURE); | ||
| 177 | goto err; | ||
| 178 | } | ||
| 179 | |||
| 180 | if (EVP_PKEY_encrypt(pctx, ek, &eklen, key, keylen) <= 0) | ||
| 181 | goto err; | ||
| 182 | |||
| 183 | ASN1_STRING_set0(ri->enc_key, ek, eklen); | ||
| 184 | ek = NULL; | ||
| 185 | |||
| 186 | ret = 1; | ||
| 187 | |||
| 188 | err: | ||
| 189 | if (pkey) | ||
| 190 | EVP_PKEY_free(pkey); | ||
| 191 | if (pctx) | ||
| 192 | EVP_PKEY_CTX_free(pctx); | ||
| 193 | if (ek) | ||
| 194 | OPENSSL_free(ek); | ||
| 195 | return ret; | ||
| 196 | |||
| 197 | } | ||
| 198 | |||
| 199 | |||
| 200 | static int pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen, | ||
| 201 | PKCS7_RECIP_INFO *ri, EVP_PKEY *pkey) | ||
| 202 | { | ||
| 203 | EVP_PKEY_CTX *pctx = NULL; | ||
| 204 | unsigned char *ek = NULL; | ||
| 205 | size_t eklen; | ||
| 206 | |||
| 207 | int ret = 0; | ||
| 208 | |||
| 209 | pctx = EVP_PKEY_CTX_new(pkey, NULL); | ||
| 210 | if (!pctx) | ||
| 211 | return 0; | ||
| 212 | |||
| 213 | if (EVP_PKEY_decrypt_init(pctx) <= 0) | ||
| 214 | goto err; | ||
| 215 | |||
| 216 | if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DECRYPT, | ||
| 217 | EVP_PKEY_CTRL_PKCS7_DECRYPT, 0, ri) <= 0) | ||
| 218 | { | ||
| 219 | PKCS7err(PKCS7_F_PKCS7_DECRYPT_RINFO, PKCS7_R_CTRL_ERROR); | ||
| 220 | goto err; | ||
| 221 | } | ||
| 222 | |||
| 223 | if (EVP_PKEY_decrypt(pctx, NULL, &eklen, | ||
| 224 | ri->enc_key->data, ri->enc_key->length) <= 0) | ||
| 225 | goto err; | ||
| 226 | |||
| 227 | ek = OPENSSL_malloc(eklen); | ||
| 228 | |||
| 229 | if (ek == NULL) | ||
| 230 | { | ||
| 231 | PKCS7err(PKCS7_F_PKCS7_DECRYPT_RINFO, ERR_R_MALLOC_FAILURE); | ||
| 232 | goto err; | ||
| 233 | } | ||
| 234 | |||
| 235 | if (EVP_PKEY_decrypt(pctx, ek, &eklen, | ||
| 236 | ri->enc_key->data, ri->enc_key->length) <= 0) | ||
| 237 | { | ||
| 238 | PKCS7err(PKCS7_F_PKCS7_DECRYPT_RINFO, ERR_R_EVP_LIB); | ||
| 239 | goto err; | ||
| 240 | } | ||
| 241 | |||
| 242 | ret = 1; | ||
| 243 | |||
| 244 | *pek = ek; | ||
| 245 | *peklen = eklen; | ||
| 246 | |||
| 247 | err: | ||
| 248 | if (pctx) | ||
| 249 | EVP_PKEY_CTX_free(pctx); | ||
| 250 | if (!ret && ek) | ||
| 251 | OPENSSL_free(ek); | ||
| 252 | |||
| 253 | return ret; | ||
| 254 | } | ||
| 255 | |||
| 256 | BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio) | ||
| 257 | { | ||
| 258 | int i; | ||
| 259 | BIO *out=NULL,*btmp=NULL; | ||
| 260 | X509_ALGOR *xa = NULL; | ||
| 261 | const EVP_CIPHER *evp_cipher=NULL; | ||
| 262 | STACK_OF(X509_ALGOR) *md_sk=NULL; | ||
| 263 | STACK_OF(PKCS7_RECIP_INFO) *rsk=NULL; | ||
| 264 | X509_ALGOR *xalg=NULL; | ||
| 265 | PKCS7_RECIP_INFO *ri=NULL; | ||
| 266 | ASN1_OCTET_STRING *os=NULL; | ||
| 267 | |||
| 268 | i=OBJ_obj2nid(p7->type); | ||
| 269 | p7->state=PKCS7_S_HEADER; | ||
| 270 | |||
| 271 | switch (i) | ||
| 272 | { | ||
| 273 | case NID_pkcs7_signed: | ||
| 274 | md_sk=p7->d.sign->md_algs; | ||
| 275 | os = PKCS7_get_octet_string(p7->d.sign->contents); | ||
| 276 | break; | ||
| 277 | case NID_pkcs7_signedAndEnveloped: | ||
| 278 | rsk=p7->d.signed_and_enveloped->recipientinfo; | ||
| 279 | md_sk=p7->d.signed_and_enveloped->md_algs; | ||
| 280 | xalg=p7->d.signed_and_enveloped->enc_data->algorithm; | ||
| 281 | evp_cipher=p7->d.signed_and_enveloped->enc_data->cipher; | ||
| 282 | if (evp_cipher == NULL) | ||
| 283 | { | ||
| 284 | PKCS7err(PKCS7_F_PKCS7_DATAINIT, | ||
| 285 | PKCS7_R_CIPHER_NOT_INITIALIZED); | ||
| 286 | goto err; | ||
| 287 | } | ||
| 288 | break; | ||
| 289 | case NID_pkcs7_enveloped: | ||
| 290 | rsk=p7->d.enveloped->recipientinfo; | ||
| 291 | xalg=p7->d.enveloped->enc_data->algorithm; | ||
| 292 | evp_cipher=p7->d.enveloped->enc_data->cipher; | ||
| 293 | if (evp_cipher == NULL) | ||
| 294 | { | ||
| 295 | PKCS7err(PKCS7_F_PKCS7_DATAINIT, | ||
| 296 | PKCS7_R_CIPHER_NOT_INITIALIZED); | ||
| 297 | goto err; | ||
| 298 | } | ||
| 299 | break; | ||
| 300 | case NID_pkcs7_digest: | ||
| 301 | xa = p7->d.digest->md; | ||
| 302 | os = PKCS7_get_octet_string(p7->d.digest->contents); | ||
| 303 | break; | ||
| 304 | case NID_pkcs7_data: | ||
| 305 | break; | ||
| 306 | default: | ||
| 307 | PKCS7err(PKCS7_F_PKCS7_DATAINIT,PKCS7_R_UNSUPPORTED_CONTENT_TYPE); | ||
| 308 | goto err; | ||
| 309 | } | ||
| 310 | |||
| 311 | for (i=0; i<sk_X509_ALGOR_num(md_sk); i++) | ||
| 312 | if (!PKCS7_bio_add_digest(&out, sk_X509_ALGOR_value(md_sk, i))) | ||
| 313 | goto err; | ||
| 314 | |||
| 315 | if (xa && !PKCS7_bio_add_digest(&out, xa)) | ||
| 316 | goto err; | ||
| 317 | |||
| 318 | if (evp_cipher != NULL) | ||
| 319 | { | ||
| 320 | unsigned char key[EVP_MAX_KEY_LENGTH]; | ||
| 321 | unsigned char iv[EVP_MAX_IV_LENGTH]; | ||
| 322 | int keylen,ivlen; | ||
| 323 | EVP_CIPHER_CTX *ctx; | ||
| 324 | |||
| 325 | if ((btmp=BIO_new(BIO_f_cipher())) == NULL) | ||
| 326 | { | ||
| 327 | PKCS7err(PKCS7_F_PKCS7_DATAINIT,ERR_R_BIO_LIB); | ||
| 328 | goto err; | ||
| 329 | } | ||
| 330 | BIO_get_cipher_ctx(btmp, &ctx); | ||
| 331 | keylen=EVP_CIPHER_key_length(evp_cipher); | ||
| 332 | ivlen=EVP_CIPHER_iv_length(evp_cipher); | ||
| 333 | xalg->algorithm = OBJ_nid2obj(EVP_CIPHER_type(evp_cipher)); | ||
| 334 | if (ivlen > 0) | ||
| 335 | if (RAND_pseudo_bytes(iv,ivlen) <= 0) | ||
| 336 | goto err; | ||
| 337 | if (EVP_CipherInit_ex(ctx, evp_cipher, NULL, NULL, NULL, 1)<=0) | ||
| 338 | goto err; | ||
| 339 | if (EVP_CIPHER_CTX_rand_key(ctx, key) <= 0) | ||
| 340 | goto err; | ||
| 341 | if (EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, 1) <= 0) | ||
| 342 | goto err; | ||
| 343 | |||
| 344 | if (ivlen > 0) { | ||
| 345 | if (xalg->parameter == NULL) { | ||
| 346 | xalg->parameter = ASN1_TYPE_new(); | ||
| 347 | if (xalg->parameter == NULL) | ||
| 348 | goto err; | ||
| 349 | } | ||
| 350 | if(EVP_CIPHER_param_to_asn1(ctx, xalg->parameter) < 0) | ||
| 351 | goto err; | ||
| 352 | } | ||
| 353 | |||
| 354 | /* Lets do the pub key stuff :-) */ | ||
| 355 | for (i=0; i<sk_PKCS7_RECIP_INFO_num(rsk); i++) | ||
| 356 | { | ||
| 357 | ri=sk_PKCS7_RECIP_INFO_value(rsk,i); | ||
| 358 | if (pkcs7_encode_rinfo(ri, key, keylen) <= 0) | ||
| 359 | goto err; | ||
| 360 | } | ||
| 361 | OPENSSL_cleanse(key, keylen); | ||
| 362 | |||
| 363 | if (out == NULL) | ||
| 364 | out=btmp; | ||
| 365 | else | ||
| 366 | BIO_push(out,btmp); | ||
| 367 | btmp=NULL; | ||
| 368 | } | ||
| 369 | |||
| 370 | if (bio == NULL) | ||
| 371 | { | ||
| 372 | if (PKCS7_is_detached(p7)) | ||
| 373 | bio=BIO_new(BIO_s_null()); | ||
| 374 | else if (os && os->length > 0) | ||
| 375 | bio = BIO_new_mem_buf(os->data, os->length); | ||
| 376 | if(bio == NULL) | ||
| 377 | { | ||
| 378 | bio=BIO_new(BIO_s_mem()); | ||
| 379 | if (bio == NULL) | ||
| 380 | goto err; | ||
| 381 | BIO_set_mem_eof_return(bio,0); | ||
| 382 | } | ||
| 383 | } | ||
| 384 | if (out) | ||
| 385 | BIO_push(out,bio); | ||
| 386 | else | ||
| 387 | out = bio; | ||
| 388 | bio=NULL; | ||
| 389 | if (0) | ||
| 390 | { | ||
| 391 | err: | ||
| 392 | if (out != NULL) | ||
| 393 | BIO_free_all(out); | ||
| 394 | if (btmp != NULL) | ||
| 395 | BIO_free_all(btmp); | ||
| 396 | out=NULL; | ||
| 397 | } | ||
| 398 | return(out); | ||
| 399 | } | ||
| 400 | |||
| 401 | static int pkcs7_cmp_ri(PKCS7_RECIP_INFO *ri, X509 *pcert) | ||
| 402 | { | ||
| 403 | int ret; | ||
| 404 | ret = X509_NAME_cmp(ri->issuer_and_serial->issuer, | ||
| 405 | pcert->cert_info->issuer); | ||
| 406 | if (ret) | ||
| 407 | return ret; | ||
| 408 | return M_ASN1_INTEGER_cmp(pcert->cert_info->serialNumber, | ||
| 409 | ri->issuer_and_serial->serial); | ||
| 410 | } | ||
| 411 | |||
| 412 | /* int */ | ||
| 413 | BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert) | ||
| 414 | { | ||
| 415 | int i,j; | ||
| 416 | BIO *out=NULL,*btmp=NULL,*etmp=NULL,*bio=NULL; | ||
| 417 | X509_ALGOR *xa; | ||
| 418 | ASN1_OCTET_STRING *data_body=NULL; | ||
| 419 | const EVP_MD *evp_md; | ||
| 420 | const EVP_CIPHER *evp_cipher=NULL; | ||
| 421 | EVP_CIPHER_CTX *evp_ctx=NULL; | ||
| 422 | X509_ALGOR *enc_alg=NULL; | ||
| 423 | STACK_OF(X509_ALGOR) *md_sk=NULL; | ||
| 424 | STACK_OF(PKCS7_RECIP_INFO) *rsk=NULL; | ||
| 425 | PKCS7_RECIP_INFO *ri=NULL; | ||
| 426 | |||
| 427 | i=OBJ_obj2nid(p7->type); | ||
| 428 | p7->state=PKCS7_S_HEADER; | ||
| 429 | |||
| 430 | switch (i) | ||
| 431 | { | ||
| 432 | case NID_pkcs7_signed: | ||
| 433 | data_body=PKCS7_get_octet_string(p7->d.sign->contents); | ||
| 434 | md_sk=p7->d.sign->md_algs; | ||
| 435 | break; | ||
| 436 | case NID_pkcs7_signedAndEnveloped: | ||
| 437 | rsk=p7->d.signed_and_enveloped->recipientinfo; | ||
| 438 | md_sk=p7->d.signed_and_enveloped->md_algs; | ||
| 439 | data_body=p7->d.signed_and_enveloped->enc_data->enc_data; | ||
| 440 | enc_alg=p7->d.signed_and_enveloped->enc_data->algorithm; | ||
| 441 | evp_cipher=EVP_get_cipherbyobj(enc_alg->algorithm); | ||
| 442 | if (evp_cipher == NULL) | ||
| 443 | { | ||
| 444 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_UNSUPPORTED_CIPHER_TYPE); | ||
| 445 | goto err; | ||
| 446 | } | ||
| 447 | break; | ||
| 448 | case NID_pkcs7_enveloped: | ||
| 449 | rsk=p7->d.enveloped->recipientinfo; | ||
| 450 | enc_alg=p7->d.enveloped->enc_data->algorithm; | ||
| 451 | data_body=p7->d.enveloped->enc_data->enc_data; | ||
| 452 | evp_cipher=EVP_get_cipherbyobj(enc_alg->algorithm); | ||
| 453 | if (evp_cipher == NULL) | ||
| 454 | { | ||
| 455 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_UNSUPPORTED_CIPHER_TYPE); | ||
| 456 | goto err; | ||
| 457 | } | ||
| 458 | break; | ||
| 459 | default: | ||
| 460 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_UNSUPPORTED_CONTENT_TYPE); | ||
| 461 | goto err; | ||
| 462 | } | ||
| 463 | |||
| 464 | /* We will be checking the signature */ | ||
| 465 | if (md_sk != NULL) | ||
| 466 | { | ||
| 467 | for (i=0; i<sk_X509_ALGOR_num(md_sk); i++) | ||
| 468 | { | ||
| 469 | xa=sk_X509_ALGOR_value(md_sk,i); | ||
| 470 | if ((btmp=BIO_new(BIO_f_md())) == NULL) | ||
| 471 | { | ||
| 472 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,ERR_R_BIO_LIB); | ||
| 473 | goto err; | ||
| 474 | } | ||
| 475 | |||
| 476 | j=OBJ_obj2nid(xa->algorithm); | ||
| 477 | evp_md=EVP_get_digestbynid(j); | ||
| 478 | if (evp_md == NULL) | ||
| 479 | { | ||
| 480 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_UNKNOWN_DIGEST_TYPE); | ||
| 481 | goto err; | ||
| 482 | } | ||
| 483 | |||
| 484 | BIO_set_md(btmp,evp_md); | ||
| 485 | if (out == NULL) | ||
| 486 | out=btmp; | ||
| 487 | else | ||
| 488 | BIO_push(out,btmp); | ||
| 489 | btmp=NULL; | ||
| 490 | } | ||
| 491 | } | ||
| 492 | |||
| 493 | if (evp_cipher != NULL) | ||
| 494 | { | ||
| 495 | #if 0 | ||
| 496 | unsigned char key[EVP_MAX_KEY_LENGTH]; | ||
| 497 | unsigned char iv[EVP_MAX_IV_LENGTH]; | ||
| 498 | unsigned char *p; | ||
| 499 | int keylen,ivlen; | ||
| 500 | int max; | ||
| 501 | X509_OBJECT ret; | ||
| 502 | #endif | ||
| 503 | unsigned char *ek = NULL; | ||
| 504 | int eklen; | ||
| 505 | |||
| 506 | if ((etmp=BIO_new(BIO_f_cipher())) == NULL) | ||
| 507 | { | ||
| 508 | PKCS7err(PKCS7_F_PKCS7_DATADECODE,ERR_R_BIO_LIB); | ||
| 509 | goto err; | ||
| 510 | } | ||
| 511 | |||
| 512 | /* It was encrypted, we need to decrypt the secret key | ||
| 513 | * with the private key */ | ||
| 514 | |||
| 515 | /* Find the recipientInfo which matches the passed certificate | ||
| 516 | * (if any) | ||
| 517 | */ | ||
| 518 | |||
| 519 | if (pcert) | ||
| 520 | { | ||
| 521 | for (i=0; i<sk_PKCS7_RECIP_INFO_num(rsk); i++) | ||
| 522 | { | ||
| 523 | ri=sk_PKCS7_RECIP_INFO_value(rsk,i); | ||
| 524 | if (!pkcs7_cmp_ri(ri, pcert)) | ||
| 525 | break; | ||
| 526 | ri=NULL; | ||
| 527 | } | ||
| 528 | if (ri == NULL) | ||
| 529 | { | ||
| 530 | PKCS7err(PKCS7_F_PKCS7_DATADECODE, | ||
| 531 | PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE); | ||
| 532 | goto err; | ||
| 533 | } | ||
| 534 | } | ||
| 535 | |||
| 536 | /* If we haven't got a certificate try each ri in turn */ | ||
| 537 | |||
| 538 | if (pcert == NULL) | ||
| 539 | { | ||
| 540 | for (i=0; i<sk_PKCS7_RECIP_INFO_num(rsk); i++) | ||
| 541 | { | ||
| 542 | ri=sk_PKCS7_RECIP_INFO_value(rsk,i); | ||
| 543 | if (pkcs7_decrypt_rinfo(&ek, &eklen, | ||
| 544 | ri, pkey) > 0) | ||
| 545 | break; | ||
| 546 | ERR_clear_error(); | ||
| 547 | ri = NULL; | ||
| 548 | } | ||
| 549 | if (ri == NULL) | ||
| 550 | { | ||
| 551 | PKCS7err(PKCS7_F_PKCS7_DATADECODE, | ||
| 552 | PKCS7_R_NO_RECIPIENT_MATCHES_KEY); | ||
| 553 | goto err; | ||
| 554 | } | ||
| 555 | } | ||
| 556 | else | ||
| 557 | { | ||
| 558 | if (pkcs7_decrypt_rinfo(&ek, &eklen, ri, pkey) <= 0) | ||
| 559 | goto err; | ||
| 560 | } | ||
| 561 | |||
| 562 | evp_ctx=NULL; | ||
| 563 | BIO_get_cipher_ctx(etmp,&evp_ctx); | ||
| 564 | if (EVP_CipherInit_ex(evp_ctx,evp_cipher,NULL,NULL,NULL,0) <= 0) | ||
| 565 | goto err; | ||
| 566 | if (EVP_CIPHER_asn1_to_param(evp_ctx,enc_alg->parameter) < 0) | ||
| 567 | goto err; | ||
| 568 | |||
| 569 | if (eklen != EVP_CIPHER_CTX_key_length(evp_ctx)) { | ||
| 570 | /* Some S/MIME clients don't use the same key | ||
| 571 | * and effective key length. The key length is | ||
| 572 | * determined by the size of the decrypted RSA key. | ||
| 573 | */ | ||
| 574 | if(!EVP_CIPHER_CTX_set_key_length(evp_ctx, eklen)) | ||
| 575 | { | ||
| 576 | PKCS7err(PKCS7_F_PKCS7_DATADECODE, | ||
| 577 | PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH); | ||
| 578 | goto err; | ||
| 579 | } | ||
| 580 | } | ||
| 581 | if (EVP_CipherInit_ex(evp_ctx,NULL,NULL,ek,NULL,0) <= 0) | ||
| 582 | goto err; | ||
| 583 | |||
| 584 | if (ek) | ||
| 585 | { | ||
| 586 | OPENSSL_cleanse(ek,eklen); | ||
| 587 | OPENSSL_free(ek); | ||
| 588 | } | ||
| 589 | |||
| 590 | if (out == NULL) | ||
| 591 | out=etmp; | ||
| 592 | else | ||
| 593 | BIO_push(out,etmp); | ||
| 594 | etmp=NULL; | ||
| 595 | } | ||
| 596 | |||
| 597 | #if 1 | ||
| 598 | if (PKCS7_is_detached(p7) || (in_bio != NULL)) | ||
| 599 | { | ||
| 600 | bio=in_bio; | ||
| 601 | } | ||
| 602 | else | ||
| 603 | { | ||
| 604 | #if 0 | ||
| 605 | bio=BIO_new(BIO_s_mem()); | ||
| 606 | /* We need to set this so that when we have read all | ||
| 607 | * the data, the encrypt BIO, if present, will read | ||
| 608 | * EOF and encode the last few bytes */ | ||
| 609 | BIO_set_mem_eof_return(bio,0); | ||
| 610 | |||
| 611 | if (data_body->length > 0) | ||
| 612 | BIO_write(bio,(char *)data_body->data,data_body->length); | ||
| 613 | #else | ||
| 614 | if (data_body->length > 0) | ||
| 615 | bio = BIO_new_mem_buf(data_body->data,data_body->length); | ||
| 616 | else { | ||
| 617 | bio=BIO_new(BIO_s_mem()); | ||
| 618 | BIO_set_mem_eof_return(bio,0); | ||
| 619 | } | ||
| 620 | if (bio == NULL) | ||
| 621 | goto err; | ||
| 622 | #endif | ||
| 623 | } | ||
| 624 | BIO_push(out,bio); | ||
| 625 | bio=NULL; | ||
| 626 | #endif | ||
| 627 | if (0) | ||
| 628 | { | ||
| 629 | err: | ||
| 630 | if (out != NULL) BIO_free_all(out); | ||
| 631 | if (btmp != NULL) BIO_free_all(btmp); | ||
| 632 | if (etmp != NULL) BIO_free_all(etmp); | ||
| 633 | if (bio != NULL) BIO_free_all(bio); | ||
| 634 | out=NULL; | ||
| 635 | } | ||
| 636 | return(out); | ||
| 637 | } | ||
| 638 | |||
| 639 | static BIO *PKCS7_find_digest(EVP_MD_CTX **pmd, BIO *bio, int nid) | ||
| 640 | { | ||
| 641 | for (;;) | ||
| 642 | { | ||
| 643 | bio=BIO_find_type(bio,BIO_TYPE_MD); | ||
| 644 | if (bio == NULL) | ||
| 645 | { | ||
| 646 | PKCS7err(PKCS7_F_PKCS7_FIND_DIGEST,PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST); | ||
| 647 | return NULL; | ||
| 648 | } | ||
| 649 | BIO_get_md_ctx(bio,pmd); | ||
| 650 | if (*pmd == NULL) | ||
| 651 | { | ||
| 652 | PKCS7err(PKCS7_F_PKCS7_FIND_DIGEST,ERR_R_INTERNAL_ERROR); | ||
| 653 | return NULL; | ||
| 654 | } | ||
| 655 | if (EVP_MD_CTX_type(*pmd) == nid) | ||
| 656 | return bio; | ||
| 657 | bio=BIO_next(bio); | ||
| 658 | } | ||
| 659 | return NULL; | ||
| 660 | } | ||
| 661 | |||
| 662 | static int do_pkcs7_signed_attrib(PKCS7_SIGNER_INFO *si, EVP_MD_CTX *mctx) | ||
| 663 | { | ||
| 664 | unsigned char md_data[EVP_MAX_MD_SIZE]; | ||
| 665 | unsigned int md_len; | ||
| 666 | |||
| 667 | /* Add signing time if not already present */ | ||
| 668 | if (!PKCS7_get_signed_attribute(si, NID_pkcs9_signingTime)) | ||
| 669 | { | ||
| 670 | if (!PKCS7_add0_attrib_signing_time(si, NULL)) | ||
| 671 | { | ||
| 672 | PKCS7err(PKCS7_F_DO_PKCS7_SIGNED_ATTRIB, | ||
| 673 | ERR_R_MALLOC_FAILURE); | ||
| 674 | return 0; | ||
| 675 | } | ||
| 676 | } | ||
| 677 | |||
| 678 | /* Add digest */ | ||
| 679 | EVP_DigestFinal_ex(mctx, md_data,&md_len); | ||
| 680 | if (!PKCS7_add1_attrib_digest(si, md_data, md_len)) | ||
| 681 | { | ||
| 682 | PKCS7err(PKCS7_F_DO_PKCS7_SIGNED_ATTRIB, ERR_R_MALLOC_FAILURE); | ||
| 683 | return 0; | ||
| 684 | } | ||
| 685 | |||
| 686 | /* Now sign the attributes */ | ||
| 687 | if (!PKCS7_SIGNER_INFO_sign(si)) | ||
| 688 | return 0; | ||
| 689 | |||
| 690 | return 1; | ||
| 691 | } | ||
| 692 | |||
| 693 | |||
| 694 | int PKCS7_dataFinal(PKCS7 *p7, BIO *bio) | ||
| 695 | { | ||
| 696 | int ret=0; | ||
| 697 | int i,j; | ||
| 698 | BIO *btmp; | ||
| 699 | PKCS7_SIGNER_INFO *si; | ||
| 700 | EVP_MD_CTX *mdc,ctx_tmp; | ||
| 701 | STACK_OF(X509_ATTRIBUTE) *sk; | ||
| 702 | STACK_OF(PKCS7_SIGNER_INFO) *si_sk=NULL; | ||
| 703 | ASN1_OCTET_STRING *os=NULL; | ||
| 704 | |||
| 705 | EVP_MD_CTX_init(&ctx_tmp); | ||
| 706 | i=OBJ_obj2nid(p7->type); | ||
| 707 | p7->state=PKCS7_S_HEADER; | ||
| 708 | |||
| 709 | switch (i) | ||
| 710 | { | ||
| 711 | case NID_pkcs7_data: | ||
| 712 | os = p7->d.data; | ||
| 713 | break; | ||
| 714 | case NID_pkcs7_signedAndEnveloped: | ||
| 715 | /* XXXXXXXXXXXXXXXX */ | ||
| 716 | si_sk=p7->d.signed_and_enveloped->signer_info; | ||
| 717 | os = p7->d.signed_and_enveloped->enc_data->enc_data; | ||
| 718 | if (!os) | ||
| 719 | { | ||
| 720 | os=M_ASN1_OCTET_STRING_new(); | ||
| 721 | if (!os) | ||
| 722 | { | ||
| 723 | PKCS7err(PKCS7_F_PKCS7_DATAFINAL,ERR_R_MALLOC_FAILURE); | ||
| 724 | goto err; | ||
| 725 | } | ||
| 726 | p7->d.signed_and_enveloped->enc_data->enc_data=os; | ||
| 727 | } | ||
| 728 | break; | ||
| 729 | case NID_pkcs7_enveloped: | ||
| 730 | /* XXXXXXXXXXXXXXXX */ | ||
| 731 | os = p7->d.enveloped->enc_data->enc_data; | ||
| 732 | if (!os) | ||
| 733 | { | ||
| 734 | os=M_ASN1_OCTET_STRING_new(); | ||
| 735 | if (!os) | ||
| 736 | { | ||
| 737 | PKCS7err(PKCS7_F_PKCS7_DATAFINAL,ERR_R_MALLOC_FAILURE); | ||
| 738 | goto err; | ||
| 739 | } | ||
| 740 | p7->d.enveloped->enc_data->enc_data=os; | ||
| 741 | } | ||
| 742 | break; | ||
| 743 | case NID_pkcs7_signed: | ||
| 744 | si_sk=p7->d.sign->signer_info; | ||
| 745 | os=PKCS7_get_octet_string(p7->d.sign->contents); | ||
| 746 | /* If detached data then the content is excluded */ | ||
| 747 | if(PKCS7_type_is_data(p7->d.sign->contents) && p7->detached) { | ||
| 748 | M_ASN1_OCTET_STRING_free(os); | ||
| 749 | p7->d.sign->contents->d.data = NULL; | ||
| 750 | } | ||
| 751 | break; | ||
| 752 | |||
| 753 | case NID_pkcs7_digest: | ||
| 754 | os=PKCS7_get_octet_string(p7->d.digest->contents); | ||
| 755 | /* If detached data then the content is excluded */ | ||
| 756 | if(PKCS7_type_is_data(p7->d.digest->contents) && p7->detached) | ||
| 757 | { | ||
| 758 | M_ASN1_OCTET_STRING_free(os); | ||
| 759 | p7->d.digest->contents->d.data = NULL; | ||
| 760 | } | ||
| 761 | break; | ||
| 762 | |||
| 763 | default: | ||
| 764 | PKCS7err(PKCS7_F_PKCS7_DATAFINAL,PKCS7_R_UNSUPPORTED_CONTENT_TYPE); | ||
| 765 | goto err; | ||
| 766 | } | ||
| 767 | |||
| 768 | if (si_sk != NULL) | ||
| 769 | { | ||
| 770 | for (i=0; i<sk_PKCS7_SIGNER_INFO_num(si_sk); i++) | ||
| 771 | { | ||
| 772 | si=sk_PKCS7_SIGNER_INFO_value(si_sk,i); | ||
| 773 | if (si->pkey == NULL) | ||
| 774 | continue; | ||
| 775 | |||
| 776 | j = OBJ_obj2nid(si->digest_alg->algorithm); | ||
| 777 | |||
| 778 | btmp=bio; | ||
| 779 | |||
| 780 | btmp = PKCS7_find_digest(&mdc, btmp, j); | ||
| 781 | |||
| 782 | if (btmp == NULL) | ||
| 783 | goto err; | ||
| 784 | |||
| 785 | /* We now have the EVP_MD_CTX, lets do the | ||
| 786 | * signing. */ | ||
| 787 | EVP_MD_CTX_copy_ex(&ctx_tmp,mdc); | ||
| 788 | |||
| 789 | sk=si->auth_attr; | ||
| 790 | |||
| 791 | /* If there are attributes, we add the digest | ||
| 792 | * attribute and only sign the attributes */ | ||
| 793 | if (sk_X509_ATTRIBUTE_num(sk) > 0) | ||
| 794 | { | ||
| 795 | if (!do_pkcs7_signed_attrib(si, &ctx_tmp)) | ||
| 796 | goto err; | ||
| 797 | } | ||
| 798 | else | ||
| 799 | { | ||
| 800 | unsigned char *abuf = NULL; | ||
| 801 | unsigned int abuflen; | ||
| 802 | abuflen = EVP_PKEY_size(si->pkey); | ||
| 803 | abuf = OPENSSL_malloc(abuflen); | ||
| 804 | if (!abuf) | ||
| 805 | goto err; | ||
| 806 | |||
| 807 | if (!EVP_SignFinal(&ctx_tmp, abuf, &abuflen, | ||
| 808 | si->pkey)) | ||
| 809 | { | ||
| 810 | PKCS7err(PKCS7_F_PKCS7_DATAFINAL, | ||
| 811 | ERR_R_EVP_LIB); | ||
| 812 | goto err; | ||
| 813 | } | ||
| 814 | ASN1_STRING_set0(si->enc_digest, abuf, abuflen); | ||
| 815 | } | ||
| 816 | } | ||
| 817 | } | ||
| 818 | else if (i == NID_pkcs7_digest) | ||
| 819 | { | ||
| 820 | unsigned char md_data[EVP_MAX_MD_SIZE]; | ||
| 821 | unsigned int md_len; | ||
| 822 | if (!PKCS7_find_digest(&mdc, bio, | ||
| 823 | OBJ_obj2nid(p7->d.digest->md->algorithm))) | ||
| 824 | goto err; | ||
| 825 | EVP_DigestFinal_ex(mdc,md_data,&md_len); | ||
| 826 | M_ASN1_OCTET_STRING_set(p7->d.digest->digest, md_data, md_len); | ||
| 827 | } | ||
| 828 | |||
| 829 | if (!PKCS7_is_detached(p7) && !(os->flags & ASN1_STRING_FLAG_NDEF)) | ||
| 830 | { | ||
| 831 | char *cont; | ||
| 832 | long contlen; | ||
| 833 | btmp=BIO_find_type(bio,BIO_TYPE_MEM); | ||
| 834 | if (btmp == NULL) | ||
| 835 | { | ||
| 836 | PKCS7err(PKCS7_F_PKCS7_DATAFINAL,PKCS7_R_UNABLE_TO_FIND_MEM_BIO); | ||
| 837 | goto err; | ||
| 838 | } | ||
| 839 | contlen = BIO_get_mem_data(btmp, &cont); | ||
| 840 | /* Mark the BIO read only then we can use its copy of the data | ||
| 841 | * instead of making an extra copy. | ||
| 842 | */ | ||
| 843 | BIO_set_flags(btmp, BIO_FLAGS_MEM_RDONLY); | ||
| 844 | BIO_set_mem_eof_return(btmp, 0); | ||
| 845 | ASN1_STRING_set0(os, (unsigned char *)cont, contlen); | ||
| 846 | } | ||
| 847 | ret=1; | ||
| 848 | err: | ||
| 849 | EVP_MD_CTX_cleanup(&ctx_tmp); | ||
| 850 | return(ret); | ||
| 851 | } | ||
| 852 | |||
| 853 | int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si) | ||
| 854 | { | ||
| 855 | EVP_MD_CTX mctx; | ||
| 856 | EVP_PKEY_CTX *pctx; | ||
| 857 | unsigned char *abuf = NULL; | ||
| 858 | int alen; | ||
| 859 | size_t siglen; | ||
| 860 | const EVP_MD *md = NULL; | ||
| 861 | |||
| 862 | md = EVP_get_digestbyobj(si->digest_alg->algorithm); | ||
| 863 | if (md == NULL) | ||
| 864 | return 0; | ||
| 865 | |||
| 866 | EVP_MD_CTX_init(&mctx); | ||
| 867 | if (EVP_DigestSignInit(&mctx, &pctx, md,NULL, si->pkey) <= 0) | ||
| 868 | goto err; | ||
| 869 | |||
| 870 | if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN, | ||
| 871 | EVP_PKEY_CTRL_PKCS7_SIGN, 0, si) <= 0) | ||
| 872 | { | ||
| 873 | PKCS7err(PKCS7_F_PKCS7_SIGNER_INFO_SIGN, PKCS7_R_CTRL_ERROR); | ||
| 874 | goto err; | ||
| 875 | } | ||
| 876 | |||
| 877 | alen = ASN1_item_i2d((ASN1_VALUE *)si->auth_attr,&abuf, | ||
| 878 | ASN1_ITEM_rptr(PKCS7_ATTR_SIGN)); | ||
| 879 | if(!abuf) | ||
| 880 | goto err; | ||
| 881 | if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0) | ||
| 882 | goto err; | ||
| 883 | OPENSSL_free(abuf); | ||
| 884 | if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0) | ||
| 885 | goto err; | ||
| 886 | abuf = OPENSSL_malloc(siglen); | ||
| 887 | if(!abuf) | ||
| 888 | goto err; | ||
| 889 | if (EVP_DigestSignFinal(&mctx, abuf, &siglen) <= 0) | ||
| 890 | goto err; | ||
| 891 | |||
| 892 | if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN, | ||
| 893 | EVP_PKEY_CTRL_PKCS7_SIGN, 1, si) <= 0) | ||
| 894 | { | ||
| 895 | PKCS7err(PKCS7_F_PKCS7_SIGNER_INFO_SIGN, PKCS7_R_CTRL_ERROR); | ||
| 896 | goto err; | ||
| 897 | } | ||
| 898 | |||
| 899 | EVP_MD_CTX_cleanup(&mctx); | ||
| 900 | |||
| 901 | ASN1_STRING_set0(si->enc_digest, abuf, siglen); | ||
| 902 | |||
| 903 | return 1; | ||
| 904 | |||
| 905 | err: | ||
| 906 | if (abuf) | ||
| 907 | OPENSSL_free(abuf); | ||
| 908 | EVP_MD_CTX_cleanup(&mctx); | ||
| 909 | return 0; | ||
| 910 | |||
| 911 | } | ||
| 912 | |||
| 913 | int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, | ||
| 914 | PKCS7 *p7, PKCS7_SIGNER_INFO *si) | ||
| 915 | { | ||
| 916 | PKCS7_ISSUER_AND_SERIAL *ias; | ||
| 917 | int ret=0,i; | ||
| 918 | STACK_OF(X509) *cert; | ||
| 919 | X509 *x509; | ||
| 920 | |||
| 921 | if (PKCS7_type_is_signed(p7)) | ||
| 922 | { | ||
| 923 | cert=p7->d.sign->cert; | ||
| 924 | } | ||
| 925 | else if (PKCS7_type_is_signedAndEnveloped(p7)) | ||
| 926 | { | ||
| 927 | cert=p7->d.signed_and_enveloped->cert; | ||
| 928 | } | ||
| 929 | else | ||
| 930 | { | ||
| 931 | PKCS7err(PKCS7_F_PKCS7_DATAVERIFY,PKCS7_R_WRONG_PKCS7_TYPE); | ||
| 932 | goto err; | ||
| 933 | } | ||
| 934 | /* XXXXXXXXXXXXXXXXXXXXXXX */ | ||
| 935 | ias=si->issuer_and_serial; | ||
| 936 | |||
| 937 | x509=X509_find_by_issuer_and_serial(cert,ias->issuer,ias->serial); | ||
| 938 | |||
| 939 | /* were we able to find the cert in passed to us */ | ||
| 940 | if (x509 == NULL) | ||
| 941 | { | ||
| 942 | PKCS7err(PKCS7_F_PKCS7_DATAVERIFY,PKCS7_R_UNABLE_TO_FIND_CERTIFICATE); | ||
| 943 | goto err; | ||
| 944 | } | ||
| 945 | |||
| 946 | /* Lets verify */ | ||
| 947 | if(!X509_STORE_CTX_init(ctx,cert_store,x509,cert)) | ||
| 948 | { | ||
| 949 | PKCS7err(PKCS7_F_PKCS7_DATAVERIFY,ERR_R_X509_LIB); | ||
| 950 | goto err; | ||
| 951 | } | ||
| 952 | X509_STORE_CTX_set_purpose(ctx, X509_PURPOSE_SMIME_SIGN); | ||
| 953 | i=X509_verify_cert(ctx); | ||
| 954 | if (i <= 0) | ||
| 955 | { | ||
| 956 | PKCS7err(PKCS7_F_PKCS7_DATAVERIFY,ERR_R_X509_LIB); | ||
| 957 | X509_STORE_CTX_cleanup(ctx); | ||
| 958 | goto err; | ||
| 959 | } | ||
| 960 | X509_STORE_CTX_cleanup(ctx); | ||
| 961 | |||
| 962 | return PKCS7_signatureVerify(bio, p7, si, x509); | ||
| 963 | err: | ||
| 964 | return ret; | ||
| 965 | } | ||
| 966 | |||
| 967 | int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, | ||
| 968 | X509 *x509) | ||
| 969 | { | ||
| 970 | ASN1_OCTET_STRING *os; | ||
| 971 | EVP_MD_CTX mdc_tmp,*mdc; | ||
| 972 | int ret=0,i; | ||
| 973 | int md_type; | ||
| 974 | STACK_OF(X509_ATTRIBUTE) *sk; | ||
| 975 | BIO *btmp; | ||
| 976 | EVP_PKEY *pkey; | ||
| 977 | |||
| 978 | EVP_MD_CTX_init(&mdc_tmp); | ||
| 979 | |||
| 980 | if (!PKCS7_type_is_signed(p7) && | ||
| 981 | !PKCS7_type_is_signedAndEnveloped(p7)) { | ||
| 982 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 983 | PKCS7_R_WRONG_PKCS7_TYPE); | ||
| 984 | goto err; | ||
| 985 | } | ||
| 986 | |||
| 987 | md_type=OBJ_obj2nid(si->digest_alg->algorithm); | ||
| 988 | |||
| 989 | btmp=bio; | ||
| 990 | for (;;) | ||
| 991 | { | ||
| 992 | if ((btmp == NULL) || | ||
| 993 | ((btmp=BIO_find_type(btmp,BIO_TYPE_MD)) == NULL)) | ||
| 994 | { | ||
| 995 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 996 | PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST); | ||
| 997 | goto err; | ||
| 998 | } | ||
| 999 | BIO_get_md_ctx(btmp,&mdc); | ||
| 1000 | if (mdc == NULL) | ||
| 1001 | { | ||
| 1002 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 1003 | ERR_R_INTERNAL_ERROR); | ||
| 1004 | goto err; | ||
| 1005 | } | ||
| 1006 | if (EVP_MD_CTX_type(mdc) == md_type) | ||
| 1007 | break; | ||
| 1008 | /* Workaround for some broken clients that put the signature | ||
| 1009 | * OID instead of the digest OID in digest_alg->algorithm | ||
| 1010 | */ | ||
| 1011 | if (EVP_MD_pkey_type(EVP_MD_CTX_md(mdc)) == md_type) | ||
| 1012 | break; | ||
| 1013 | btmp=BIO_next(btmp); | ||
| 1014 | } | ||
| 1015 | |||
| 1016 | /* mdc is the digest ctx that we want, unless there are attributes, | ||
| 1017 | * in which case the digest is the signed attributes */ | ||
| 1018 | EVP_MD_CTX_copy_ex(&mdc_tmp,mdc); | ||
| 1019 | |||
| 1020 | sk=si->auth_attr; | ||
| 1021 | if ((sk != NULL) && (sk_X509_ATTRIBUTE_num(sk) != 0)) | ||
| 1022 | { | ||
| 1023 | unsigned char md_dat[EVP_MAX_MD_SIZE], *abuf = NULL; | ||
| 1024 | unsigned int md_len; | ||
| 1025 | int alen; | ||
| 1026 | ASN1_OCTET_STRING *message_digest; | ||
| 1027 | |||
| 1028 | EVP_DigestFinal_ex(&mdc_tmp,md_dat,&md_len); | ||
| 1029 | message_digest=PKCS7_digest_from_attributes(sk); | ||
| 1030 | if (!message_digest) | ||
| 1031 | { | ||
| 1032 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 1033 | PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST); | ||
| 1034 | goto err; | ||
| 1035 | } | ||
| 1036 | if ((message_digest->length != (int)md_len) || | ||
| 1037 | (memcmp(message_digest->data,md_dat,md_len))) | ||
| 1038 | { | ||
| 1039 | #if 0 | ||
| 1040 | { | ||
| 1041 | int ii; | ||
| 1042 | for (ii=0; ii<message_digest->length; ii++) | ||
| 1043 | printf("%02X",message_digest->data[ii]); printf(" sent\n"); | ||
| 1044 | for (ii=0; ii<md_len; ii++) printf("%02X",md_dat[ii]); printf(" calc\n"); | ||
| 1045 | } | ||
| 1046 | #endif | ||
| 1047 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 1048 | PKCS7_R_DIGEST_FAILURE); | ||
| 1049 | ret= -1; | ||
| 1050 | goto err; | ||
| 1051 | } | ||
| 1052 | |||
| 1053 | EVP_VerifyInit_ex(&mdc_tmp,EVP_get_digestbynid(md_type), NULL); | ||
| 1054 | |||
| 1055 | alen = ASN1_item_i2d((ASN1_VALUE *)sk, &abuf, | ||
| 1056 | ASN1_ITEM_rptr(PKCS7_ATTR_VERIFY)); | ||
| 1057 | if (alen <= 0) | ||
| 1058 | { | ||
| 1059 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY,ERR_R_ASN1_LIB); | ||
| 1060 | ret = -1; | ||
| 1061 | goto err; | ||
| 1062 | } | ||
| 1063 | EVP_VerifyUpdate(&mdc_tmp, abuf, alen); | ||
| 1064 | |||
| 1065 | OPENSSL_free(abuf); | ||
| 1066 | } | ||
| 1067 | |||
| 1068 | os=si->enc_digest; | ||
| 1069 | pkey = X509_get_pubkey(x509); | ||
| 1070 | if (!pkey) | ||
| 1071 | { | ||
| 1072 | ret = -1; | ||
| 1073 | goto err; | ||
| 1074 | } | ||
| 1075 | |||
| 1076 | i=EVP_VerifyFinal(&mdc_tmp,os->data,os->length, pkey); | ||
| 1077 | EVP_PKEY_free(pkey); | ||
| 1078 | if (i <= 0) | ||
| 1079 | { | ||
| 1080 | PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, | ||
| 1081 | PKCS7_R_SIGNATURE_FAILURE); | ||
| 1082 | ret= -1; | ||
| 1083 | goto err; | ||
| 1084 | } | ||
| 1085 | else | ||
| 1086 | ret=1; | ||
| 1087 | err: | ||
| 1088 | EVP_MD_CTX_cleanup(&mdc_tmp); | ||
| 1089 | return(ret); | ||
| 1090 | } | ||
| 1091 | |||
| 1092 | PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx) | ||
| 1093 | { | ||
| 1094 | STACK_OF(PKCS7_RECIP_INFO) *rsk; | ||
| 1095 | PKCS7_RECIP_INFO *ri; | ||
| 1096 | int i; | ||
| 1097 | |||
| 1098 | i=OBJ_obj2nid(p7->type); | ||
| 1099 | if (i != NID_pkcs7_signedAndEnveloped) | ||
| 1100 | return NULL; | ||
| 1101 | if (p7->d.signed_and_enveloped == NULL) | ||
| 1102 | return NULL; | ||
| 1103 | rsk=p7->d.signed_and_enveloped->recipientinfo; | ||
| 1104 | if (rsk == NULL) | ||
| 1105 | return NULL; | ||
| 1106 | ri=sk_PKCS7_RECIP_INFO_value(rsk,0); | ||
| 1107 | if (sk_PKCS7_RECIP_INFO_num(rsk) <= idx) return(NULL); | ||
| 1108 | ri=sk_PKCS7_RECIP_INFO_value(rsk,idx); | ||
| 1109 | return(ri->issuer_and_serial); | ||
| 1110 | } | ||
| 1111 | |||
| 1112 | ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid) | ||
| 1113 | { | ||
| 1114 | return(get_attribute(si->auth_attr,nid)); | ||
| 1115 | } | ||
| 1116 | |||
| 1117 | ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid) | ||
| 1118 | { | ||
| 1119 | return(get_attribute(si->unauth_attr,nid)); | ||
| 1120 | } | ||
| 1121 | |||
| 1122 | static ASN1_TYPE *get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid) | ||
| 1123 | { | ||
| 1124 | int i; | ||
| 1125 | X509_ATTRIBUTE *xa; | ||
| 1126 | ASN1_OBJECT *o; | ||
| 1127 | |||
| 1128 | o=OBJ_nid2obj(nid); | ||
| 1129 | if (!o || !sk) return(NULL); | ||
| 1130 | for (i=0; i<sk_X509_ATTRIBUTE_num(sk); i++) | ||
| 1131 | { | ||
| 1132 | xa=sk_X509_ATTRIBUTE_value(sk,i); | ||
| 1133 | if (OBJ_cmp(xa->object,o) == 0) | ||
| 1134 | { | ||
| 1135 | if (!xa->single && sk_ASN1_TYPE_num(xa->value.set)) | ||
| 1136 | return(sk_ASN1_TYPE_value(xa->value.set,0)); | ||
| 1137 | else | ||
| 1138 | return(NULL); | ||
| 1139 | } | ||
| 1140 | } | ||
| 1141 | return(NULL); | ||
| 1142 | } | ||
| 1143 | |||
| 1144 | ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk) | ||
| 1145 | { | ||
| 1146 | ASN1_TYPE *astype; | ||
| 1147 | if(!(astype = get_attribute(sk, NID_pkcs9_messageDigest))) return NULL; | ||
| 1148 | return astype->value.octet_string; | ||
| 1149 | } | ||
| 1150 | |||
| 1151 | int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, | ||
| 1152 | STACK_OF(X509_ATTRIBUTE) *sk) | ||
| 1153 | { | ||
| 1154 | int i; | ||
| 1155 | |||
| 1156 | if (p7si->auth_attr != NULL) | ||
| 1157 | sk_X509_ATTRIBUTE_pop_free(p7si->auth_attr,X509_ATTRIBUTE_free); | ||
| 1158 | p7si->auth_attr=sk_X509_ATTRIBUTE_dup(sk); | ||
| 1159 | if (p7si->auth_attr == NULL) | ||
| 1160 | return 0; | ||
| 1161 | for (i=0; i<sk_X509_ATTRIBUTE_num(sk); i++) | ||
| 1162 | { | ||
| 1163 | if ((sk_X509_ATTRIBUTE_set(p7si->auth_attr,i, | ||
| 1164 | X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk,i)))) | ||
| 1165 | == NULL) | ||
| 1166 | return(0); | ||
| 1167 | } | ||
| 1168 | return(1); | ||
| 1169 | } | ||
| 1170 | |||
| 1171 | int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, STACK_OF(X509_ATTRIBUTE) *sk) | ||
| 1172 | { | ||
| 1173 | int i; | ||
| 1174 | |||
| 1175 | if (p7si->unauth_attr != NULL) | ||
| 1176 | sk_X509_ATTRIBUTE_pop_free(p7si->unauth_attr, | ||
| 1177 | X509_ATTRIBUTE_free); | ||
| 1178 | p7si->unauth_attr=sk_X509_ATTRIBUTE_dup(sk); | ||
| 1179 | if (p7si->unauth_attr == NULL) | ||
| 1180 | return 0; | ||
| 1181 | for (i=0; i<sk_X509_ATTRIBUTE_num(sk); i++) | ||
| 1182 | { | ||
| 1183 | if ((sk_X509_ATTRIBUTE_set(p7si->unauth_attr,i, | ||
| 1184 | X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk,i)))) | ||
| 1185 | == NULL) | ||
| 1186 | return(0); | ||
| 1187 | } | ||
| 1188 | return(1); | ||
| 1189 | } | ||
| 1190 | |||
| 1191 | int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, | ||
| 1192 | void *value) | ||
| 1193 | { | ||
| 1194 | return(add_attribute(&(p7si->auth_attr),nid,atrtype,value)); | ||
| 1195 | } | ||
| 1196 | |||
| 1197 | int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, | ||
| 1198 | void *value) | ||
| 1199 | { | ||
| 1200 | return(add_attribute(&(p7si->unauth_attr),nid,atrtype,value)); | ||
| 1201 | } | ||
| 1202 | |||
| 1203 | static int add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype, | ||
| 1204 | void *value) | ||
| 1205 | { | ||
| 1206 | X509_ATTRIBUTE *attr=NULL; | ||
| 1207 | |||
| 1208 | if (*sk == NULL) | ||
| 1209 | { | ||
| 1210 | *sk = sk_X509_ATTRIBUTE_new_null(); | ||
| 1211 | if (*sk == NULL) | ||
| 1212 | return 0; | ||
| 1213 | new_attrib: | ||
| 1214 | if (!(attr=X509_ATTRIBUTE_create(nid,atrtype,value))) | ||
| 1215 | return 0; | ||
| 1216 | if (!sk_X509_ATTRIBUTE_push(*sk,attr)) | ||
| 1217 | { | ||
| 1218 | X509_ATTRIBUTE_free(attr); | ||
| 1219 | return 0; | ||
| 1220 | } | ||
| 1221 | } | ||
| 1222 | else | ||
| 1223 | { | ||
| 1224 | int i; | ||
| 1225 | |||
| 1226 | for (i=0; i<sk_X509_ATTRIBUTE_num(*sk); i++) | ||
| 1227 | { | ||
| 1228 | attr=sk_X509_ATTRIBUTE_value(*sk,i); | ||
| 1229 | if (OBJ_obj2nid(attr->object) == nid) | ||
| 1230 | { | ||
| 1231 | X509_ATTRIBUTE_free(attr); | ||
| 1232 | attr=X509_ATTRIBUTE_create(nid,atrtype,value); | ||
| 1233 | if (attr == NULL) | ||
| 1234 | return 0; | ||
| 1235 | if (!sk_X509_ATTRIBUTE_set(*sk,i,attr)) | ||
| 1236 | { | ||
| 1237 | X509_ATTRIBUTE_free(attr); | ||
| 1238 | return 0; | ||
| 1239 | } | ||
| 1240 | goto end; | ||
| 1241 | } | ||
| 1242 | } | ||
| 1243 | goto new_attrib; | ||
| 1244 | } | ||
| 1245 | end: | ||
| 1246 | return(1); | ||
| 1247 | } | ||
| 1248 | |||
diff --git a/src/lib/libcrypto/pkcs7/pk7_enc.c b/src/lib/libcrypto/pkcs7/pk7_enc.c deleted file mode 100644 index acbb189c59..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_enc.c +++ /dev/null | |||
| @@ -1,76 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pk7_enc.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include "cryptlib.h" | ||
| 61 | #include <openssl/evp.h> | ||
| 62 | #include <openssl/rand.h> | ||
| 63 | #include <openssl/objects.h> | ||
| 64 | #include <openssl/x509.h> | ||
| 65 | #include <openssl/pkcs7.h> | ||
| 66 | |||
| 67 | PKCS7_in_bio(PKCS7 *p7,BIO *in); | ||
| 68 | PKCS7_out_bio(PKCS7 *p7,BIO *out); | ||
| 69 | |||
| 70 | PKCS7_add_signer(PKCS7 *p7,X509 *cert,EVP_PKEY *key); | ||
| 71 | PKCS7_cipher(PKCS7 *p7,EVP_CIPHER *cipher); | ||
| 72 | |||
| 73 | PKCS7_Init(PKCS7 *p7); | ||
| 74 | PKCS7_Update(PKCS7 *p7); | ||
| 75 | PKCS7_Finish(PKCS7 *p7); | ||
| 76 | |||
diff --git a/src/lib/libcrypto/pkcs7/pk7_lib.c b/src/lib/libcrypto/pkcs7/pk7_lib.c deleted file mode 100644 index d411269b50..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_lib.c +++ /dev/null | |||
| @@ -1,665 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pk7_lib.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #include <stdio.h> | ||
| 60 | #include "cryptlib.h" | ||
| 61 | #include <openssl/objects.h> | ||
| 62 | #include <openssl/x509.h> | ||
| 63 | #include "asn1_locl.h" | ||
| 64 | |||
| 65 | long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg) | ||
| 66 | { | ||
| 67 | int nid; | ||
| 68 | long ret; | ||
| 69 | |||
| 70 | nid=OBJ_obj2nid(p7->type); | ||
| 71 | |||
| 72 | switch (cmd) | ||
| 73 | { | ||
| 74 | case PKCS7_OP_SET_DETACHED_SIGNATURE: | ||
| 75 | if (nid == NID_pkcs7_signed) | ||
| 76 | { | ||
| 77 | ret=p7->detached=(int)larg; | ||
| 78 | if (ret && PKCS7_type_is_data(p7->d.sign->contents)) | ||
| 79 | { | ||
| 80 | ASN1_OCTET_STRING *os; | ||
| 81 | os=p7->d.sign->contents->d.data; | ||
| 82 | ASN1_OCTET_STRING_free(os); | ||
| 83 | p7->d.sign->contents->d.data = NULL; | ||
| 84 | } | ||
| 85 | } | ||
| 86 | else | ||
| 87 | { | ||
| 88 | PKCS7err(PKCS7_F_PKCS7_CTRL,PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE); | ||
| 89 | ret=0; | ||
| 90 | } | ||
| 91 | break; | ||
| 92 | case PKCS7_OP_GET_DETACHED_SIGNATURE: | ||
| 93 | if (nid == NID_pkcs7_signed) | ||
| 94 | { | ||
| 95 | if(!p7->d.sign || !p7->d.sign->contents->d.ptr) | ||
| 96 | ret = 1; | ||
| 97 | else ret = 0; | ||
| 98 | |||
| 99 | p7->detached = ret; | ||
| 100 | } | ||
| 101 | else | ||
| 102 | { | ||
| 103 | PKCS7err(PKCS7_F_PKCS7_CTRL,PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE); | ||
| 104 | ret=0; | ||
| 105 | } | ||
| 106 | |||
| 107 | break; | ||
| 108 | default: | ||
| 109 | PKCS7err(PKCS7_F_PKCS7_CTRL,PKCS7_R_UNKNOWN_OPERATION); | ||
| 110 | ret=0; | ||
| 111 | } | ||
| 112 | return(ret); | ||
| 113 | } | ||
| 114 | |||
| 115 | int PKCS7_content_new(PKCS7 *p7, int type) | ||
| 116 | { | ||
| 117 | PKCS7 *ret=NULL; | ||
| 118 | |||
| 119 | if ((ret=PKCS7_new()) == NULL) goto err; | ||
| 120 | if (!PKCS7_set_type(ret,type)) goto err; | ||
| 121 | if (!PKCS7_set_content(p7,ret)) goto err; | ||
| 122 | |||
| 123 | return(1); | ||
| 124 | err: | ||
| 125 | if (ret != NULL) PKCS7_free(ret); | ||
| 126 | return(0); | ||
| 127 | } | ||
| 128 | |||
| 129 | int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data) | ||
| 130 | { | ||
| 131 | int i; | ||
| 132 | |||
| 133 | i=OBJ_obj2nid(p7->type); | ||
| 134 | switch (i) | ||
| 135 | { | ||
| 136 | case NID_pkcs7_signed: | ||
| 137 | if (p7->d.sign->contents != NULL) | ||
| 138 | PKCS7_free(p7->d.sign->contents); | ||
| 139 | p7->d.sign->contents=p7_data; | ||
| 140 | break; | ||
| 141 | case NID_pkcs7_digest: | ||
| 142 | if (p7->d.digest->contents != NULL) | ||
| 143 | PKCS7_free(p7->d.digest->contents); | ||
| 144 | p7->d.digest->contents=p7_data; | ||
| 145 | break; | ||
| 146 | case NID_pkcs7_data: | ||
| 147 | case NID_pkcs7_enveloped: | ||
| 148 | case NID_pkcs7_signedAndEnveloped: | ||
| 149 | case NID_pkcs7_encrypted: | ||
| 150 | default: | ||
| 151 | PKCS7err(PKCS7_F_PKCS7_SET_CONTENT,PKCS7_R_UNSUPPORTED_CONTENT_TYPE); | ||
| 152 | goto err; | ||
| 153 | } | ||
| 154 | return(1); | ||
| 155 | err: | ||
| 156 | return(0); | ||
| 157 | } | ||
| 158 | |||
| 159 | int PKCS7_set_type(PKCS7 *p7, int type) | ||
| 160 | { | ||
| 161 | ASN1_OBJECT *obj; | ||
| 162 | |||
| 163 | /*PKCS7_content_free(p7);*/ | ||
| 164 | obj=OBJ_nid2obj(type); /* will not fail */ | ||
| 165 | |||
| 166 | switch (type) | ||
| 167 | { | ||
| 168 | case NID_pkcs7_signed: | ||
| 169 | p7->type=obj; | ||
| 170 | if ((p7->d.sign=PKCS7_SIGNED_new()) == NULL) | ||
| 171 | goto err; | ||
| 172 | if (!ASN1_INTEGER_set(p7->d.sign->version,1)) | ||
| 173 | { | ||
| 174 | PKCS7_SIGNED_free(p7->d.sign); | ||
| 175 | p7->d.sign=NULL; | ||
| 176 | goto err; | ||
| 177 | } | ||
| 178 | break; | ||
| 179 | case NID_pkcs7_data: | ||
| 180 | p7->type=obj; | ||
| 181 | if ((p7->d.data=M_ASN1_OCTET_STRING_new()) == NULL) | ||
| 182 | goto err; | ||
| 183 | break; | ||
| 184 | case NID_pkcs7_signedAndEnveloped: | ||
| 185 | p7->type=obj; | ||
| 186 | if ((p7->d.signed_and_enveloped=PKCS7_SIGN_ENVELOPE_new()) | ||
| 187 | == NULL) goto err; | ||
| 188 | ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1); | ||
| 189 | if (!ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1)) | ||
| 190 | goto err; | ||
| 191 | p7->d.signed_and_enveloped->enc_data->content_type | ||
| 192 | = OBJ_nid2obj(NID_pkcs7_data); | ||
| 193 | break; | ||
| 194 | case NID_pkcs7_enveloped: | ||
| 195 | p7->type=obj; | ||
| 196 | if ((p7->d.enveloped=PKCS7_ENVELOPE_new()) | ||
| 197 | == NULL) goto err; | ||
| 198 | if (!ASN1_INTEGER_set(p7->d.enveloped->version,0)) | ||
| 199 | goto err; | ||
| 200 | p7->d.enveloped->enc_data->content_type | ||
| 201 | = OBJ_nid2obj(NID_pkcs7_data); | ||
| 202 | break; | ||
| 203 | case NID_pkcs7_encrypted: | ||
| 204 | p7->type=obj; | ||
| 205 | if ((p7->d.encrypted=PKCS7_ENCRYPT_new()) | ||
| 206 | == NULL) goto err; | ||
| 207 | if (!ASN1_INTEGER_set(p7->d.encrypted->version,0)) | ||
| 208 | goto err; | ||
| 209 | p7->d.encrypted->enc_data->content_type | ||
| 210 | = OBJ_nid2obj(NID_pkcs7_data); | ||
| 211 | break; | ||
| 212 | |||
| 213 | case NID_pkcs7_digest: | ||
| 214 | p7->type=obj; | ||
| 215 | if ((p7->d.digest=PKCS7_DIGEST_new()) | ||
| 216 | == NULL) goto err; | ||
| 217 | if (!ASN1_INTEGER_set(p7->d.digest->version,0)) | ||
| 218 | goto err; | ||
| 219 | break; | ||
| 220 | default: | ||
| 221 | PKCS7err(PKCS7_F_PKCS7_SET_TYPE,PKCS7_R_UNSUPPORTED_CONTENT_TYPE); | ||
| 222 | goto err; | ||
| 223 | } | ||
| 224 | return(1); | ||
| 225 | err: | ||
| 226 | return(0); | ||
| 227 | } | ||
| 228 | |||
| 229 | int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other) | ||
| 230 | { | ||
| 231 | p7->type = OBJ_nid2obj(type); | ||
| 232 | p7->d.other = other; | ||
| 233 | return 1; | ||
| 234 | } | ||
| 235 | |||
| 236 | int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi) | ||
| 237 | { | ||
| 238 | int i,j,nid; | ||
| 239 | X509_ALGOR *alg; | ||
| 240 | STACK_OF(PKCS7_SIGNER_INFO) *signer_sk; | ||
| 241 | STACK_OF(X509_ALGOR) *md_sk; | ||
| 242 | |||
| 243 | i=OBJ_obj2nid(p7->type); | ||
| 244 | switch (i) | ||
| 245 | { | ||
| 246 | case NID_pkcs7_signed: | ||
| 247 | signer_sk= p7->d.sign->signer_info; | ||
| 248 | md_sk= p7->d.sign->md_algs; | ||
| 249 | break; | ||
| 250 | case NID_pkcs7_signedAndEnveloped: | ||
| 251 | signer_sk= p7->d.signed_and_enveloped->signer_info; | ||
| 252 | md_sk= p7->d.signed_and_enveloped->md_algs; | ||
| 253 | break; | ||
| 254 | default: | ||
| 255 | PKCS7err(PKCS7_F_PKCS7_ADD_SIGNER,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 256 | return(0); | ||
| 257 | } | ||
| 258 | |||
| 259 | nid=OBJ_obj2nid(psi->digest_alg->algorithm); | ||
| 260 | |||
| 261 | /* If the digest is not currently listed, add it */ | ||
| 262 | j=0; | ||
| 263 | for (i=0; i<sk_X509_ALGOR_num(md_sk); i++) | ||
| 264 | { | ||
| 265 | alg=sk_X509_ALGOR_value(md_sk,i); | ||
| 266 | if (OBJ_obj2nid(alg->algorithm) == nid) | ||
| 267 | { | ||
| 268 | j=1; | ||
| 269 | break; | ||
| 270 | } | ||
| 271 | } | ||
| 272 | if (!j) /* we need to add another algorithm */ | ||
| 273 | { | ||
| 274 | if(!(alg=X509_ALGOR_new()) | ||
| 275 | || !(alg->parameter = ASN1_TYPE_new())) | ||
| 276 | { | ||
| 277 | X509_ALGOR_free(alg); | ||
| 278 | PKCS7err(PKCS7_F_PKCS7_ADD_SIGNER,ERR_R_MALLOC_FAILURE); | ||
| 279 | return(0); | ||
| 280 | } | ||
| 281 | alg->algorithm=OBJ_nid2obj(nid); | ||
| 282 | alg->parameter->type = V_ASN1_NULL; | ||
| 283 | if (!sk_X509_ALGOR_push(md_sk,alg)) | ||
| 284 | { | ||
| 285 | X509_ALGOR_free(alg); | ||
| 286 | return 0; | ||
| 287 | } | ||
| 288 | } | ||
| 289 | |||
| 290 | if (!sk_PKCS7_SIGNER_INFO_push(signer_sk,psi)) | ||
| 291 | return 0; | ||
| 292 | return(1); | ||
| 293 | } | ||
| 294 | |||
| 295 | int PKCS7_add_certificate(PKCS7 *p7, X509 *x509) | ||
| 296 | { | ||
| 297 | int i; | ||
| 298 | STACK_OF(X509) **sk; | ||
| 299 | |||
| 300 | i=OBJ_obj2nid(p7->type); | ||
| 301 | switch (i) | ||
| 302 | { | ||
| 303 | case NID_pkcs7_signed: | ||
| 304 | sk= &(p7->d.sign->cert); | ||
| 305 | break; | ||
| 306 | case NID_pkcs7_signedAndEnveloped: | ||
| 307 | sk= &(p7->d.signed_and_enveloped->cert); | ||
| 308 | break; | ||
| 309 | default: | ||
| 310 | PKCS7err(PKCS7_F_PKCS7_ADD_CERTIFICATE,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 311 | return(0); | ||
| 312 | } | ||
| 313 | |||
| 314 | if (*sk == NULL) | ||
| 315 | *sk=sk_X509_new_null(); | ||
| 316 | if (*sk == NULL) | ||
| 317 | { | ||
| 318 | PKCS7err(PKCS7_F_PKCS7_ADD_CERTIFICATE, ERR_R_MALLOC_FAILURE); | ||
| 319 | return 0; | ||
| 320 | } | ||
| 321 | CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509); | ||
| 322 | if (!sk_X509_push(*sk,x509)) | ||
| 323 | { | ||
| 324 | X509_free(x509); | ||
| 325 | return 0; | ||
| 326 | } | ||
| 327 | return(1); | ||
| 328 | } | ||
| 329 | |||
| 330 | int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl) | ||
| 331 | { | ||
| 332 | int i; | ||
| 333 | STACK_OF(X509_CRL) **sk; | ||
| 334 | |||
| 335 | i=OBJ_obj2nid(p7->type); | ||
| 336 | switch (i) | ||
| 337 | { | ||
| 338 | case NID_pkcs7_signed: | ||
| 339 | sk= &(p7->d.sign->crl); | ||
| 340 | break; | ||
| 341 | case NID_pkcs7_signedAndEnveloped: | ||
| 342 | sk= &(p7->d.signed_and_enveloped->crl); | ||
| 343 | break; | ||
| 344 | default: | ||
| 345 | PKCS7err(PKCS7_F_PKCS7_ADD_CRL,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 346 | return(0); | ||
| 347 | } | ||
| 348 | |||
| 349 | if (*sk == NULL) | ||
| 350 | *sk=sk_X509_CRL_new_null(); | ||
| 351 | if (*sk == NULL) | ||
| 352 | { | ||
| 353 | PKCS7err(PKCS7_F_PKCS7_ADD_CRL,ERR_R_MALLOC_FAILURE); | ||
| 354 | return 0; | ||
| 355 | } | ||
| 356 | |||
| 357 | CRYPTO_add(&crl->references,1,CRYPTO_LOCK_X509_CRL); | ||
| 358 | if (!sk_X509_CRL_push(*sk,crl)) | ||
| 359 | { | ||
| 360 | X509_CRL_free(crl); | ||
| 361 | return 0; | ||
| 362 | } | ||
| 363 | return(1); | ||
| 364 | } | ||
| 365 | |||
| 366 | int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, | ||
| 367 | const EVP_MD *dgst) | ||
| 368 | { | ||
| 369 | int ret; | ||
| 370 | |||
| 371 | /* We now need to add another PKCS7_SIGNER_INFO entry */ | ||
| 372 | if (!ASN1_INTEGER_set(p7i->version,1)) | ||
| 373 | goto err; | ||
| 374 | if (!X509_NAME_set(&p7i->issuer_and_serial->issuer, | ||
| 375 | X509_get_issuer_name(x509))) | ||
| 376 | goto err; | ||
| 377 | |||
| 378 | /* because ASN1_INTEGER_set is used to set a 'long' we will do | ||
| 379 | * things the ugly way. */ | ||
| 380 | M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial); | ||
| 381 | if (!(p7i->issuer_and_serial->serial= | ||
| 382 | M_ASN1_INTEGER_dup(X509_get_serialNumber(x509)))) | ||
| 383 | goto err; | ||
| 384 | |||
| 385 | /* lets keep the pkey around for a while */ | ||
| 386 | CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY); | ||
| 387 | p7i->pkey=pkey; | ||
| 388 | |||
| 389 | /* Set the algorithms */ | ||
| 390 | |||
| 391 | X509_ALGOR_set0(p7i->digest_alg, OBJ_nid2obj(EVP_MD_type(dgst)), | ||
| 392 | V_ASN1_NULL, NULL); | ||
| 393 | |||
| 394 | if (pkey->ameth && pkey->ameth->pkey_ctrl) | ||
| 395 | { | ||
| 396 | ret = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_PKCS7_SIGN, | ||
| 397 | 0, p7i); | ||
| 398 | if (ret > 0) | ||
| 399 | return 1; | ||
| 400 | if (ret != -2) | ||
| 401 | { | ||
| 402 | PKCS7err(PKCS7_F_PKCS7_SIGNER_INFO_SET, | ||
| 403 | PKCS7_R_SIGNING_CTRL_FAILURE); | ||
| 404 | return 0; | ||
| 405 | } | ||
| 406 | } | ||
| 407 | PKCS7err(PKCS7_F_PKCS7_SIGNER_INFO_SET, | ||
| 408 | PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); | ||
| 409 | err: | ||
| 410 | return 0; | ||
| 411 | } | ||
| 412 | |||
| 413 | PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY *pkey, | ||
| 414 | const EVP_MD *dgst) | ||
| 415 | { | ||
| 416 | PKCS7_SIGNER_INFO *si = NULL; | ||
| 417 | |||
| 418 | if (dgst == NULL) | ||
| 419 | { | ||
| 420 | int def_nid; | ||
| 421 | if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) <= 0) | ||
| 422 | goto err; | ||
| 423 | dgst = EVP_get_digestbynid(def_nid); | ||
| 424 | if (dgst == NULL) | ||
| 425 | { | ||
| 426 | PKCS7err(PKCS7_F_PKCS7_ADD_SIGNATURE, | ||
| 427 | PKCS7_R_NO_DEFAULT_DIGEST); | ||
| 428 | goto err; | ||
| 429 | } | ||
| 430 | } | ||
| 431 | |||
| 432 | if ((si=PKCS7_SIGNER_INFO_new()) == NULL) goto err; | ||
| 433 | if (!PKCS7_SIGNER_INFO_set(si,x509,pkey,dgst)) goto err; | ||
| 434 | if (!PKCS7_add_signer(p7,si)) goto err; | ||
| 435 | return(si); | ||
| 436 | err: | ||
| 437 | if (si) | ||
| 438 | PKCS7_SIGNER_INFO_free(si); | ||
| 439 | return(NULL); | ||
| 440 | } | ||
| 441 | |||
| 442 | int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md) | ||
| 443 | { | ||
| 444 | if (PKCS7_type_is_digest(p7)) | ||
| 445 | { | ||
| 446 | if(!(p7->d.digest->md->parameter = ASN1_TYPE_new())) | ||
| 447 | { | ||
| 448 | PKCS7err(PKCS7_F_PKCS7_SET_DIGEST,ERR_R_MALLOC_FAILURE); | ||
| 449 | return 0; | ||
| 450 | } | ||
| 451 | p7->d.digest->md->parameter->type = V_ASN1_NULL; | ||
| 452 | p7->d.digest->md->algorithm = OBJ_nid2obj(EVP_MD_nid(md)); | ||
| 453 | return 1; | ||
| 454 | } | ||
| 455 | |||
| 456 | PKCS7err(PKCS7_F_PKCS7_SET_DIGEST,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 457 | return 1; | ||
| 458 | } | ||
| 459 | |||
| 460 | STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7) | ||
| 461 | { | ||
| 462 | if (PKCS7_type_is_signed(p7)) | ||
| 463 | { | ||
| 464 | return(p7->d.sign->signer_info); | ||
| 465 | } | ||
| 466 | else if (PKCS7_type_is_signedAndEnveloped(p7)) | ||
| 467 | { | ||
| 468 | return(p7->d.signed_and_enveloped->signer_info); | ||
| 469 | } | ||
| 470 | else | ||
| 471 | return(NULL); | ||
| 472 | } | ||
| 473 | |||
| 474 | void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, | ||
| 475 | X509_ALGOR **pdig, X509_ALGOR **psig) | ||
| 476 | { | ||
| 477 | if (pk) | ||
| 478 | *pk = si->pkey; | ||
| 479 | if (pdig) | ||
| 480 | *pdig = si->digest_alg; | ||
| 481 | if (psig) | ||
| 482 | *psig = si->digest_enc_alg; | ||
| 483 | } | ||
| 484 | |||
| 485 | void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc) | ||
| 486 | { | ||
| 487 | if (penc) | ||
| 488 | *penc = ri->key_enc_algor; | ||
| 489 | } | ||
| 490 | |||
| 491 | PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509) | ||
| 492 | { | ||
| 493 | PKCS7_RECIP_INFO *ri; | ||
| 494 | |||
| 495 | if ((ri=PKCS7_RECIP_INFO_new()) == NULL) goto err; | ||
| 496 | if (!PKCS7_RECIP_INFO_set(ri,x509)) goto err; | ||
| 497 | if (!PKCS7_add_recipient_info(p7,ri)) goto err; | ||
| 498 | return ri; | ||
| 499 | err: | ||
| 500 | if (ri) | ||
| 501 | PKCS7_RECIP_INFO_free(ri); | ||
| 502 | return NULL; | ||
| 503 | } | ||
| 504 | |||
| 505 | int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri) | ||
| 506 | { | ||
| 507 | int i; | ||
| 508 | STACK_OF(PKCS7_RECIP_INFO) *sk; | ||
| 509 | |||
| 510 | i=OBJ_obj2nid(p7->type); | ||
| 511 | switch (i) | ||
| 512 | { | ||
| 513 | case NID_pkcs7_signedAndEnveloped: | ||
| 514 | sk= p7->d.signed_and_enveloped->recipientinfo; | ||
| 515 | break; | ||
| 516 | case NID_pkcs7_enveloped: | ||
| 517 | sk= p7->d.enveloped->recipientinfo; | ||
| 518 | break; | ||
| 519 | default: | ||
| 520 | PKCS7err(PKCS7_F_PKCS7_ADD_RECIPIENT_INFO,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 521 | return(0); | ||
| 522 | } | ||
| 523 | |||
| 524 | if (!sk_PKCS7_RECIP_INFO_push(sk,ri)) | ||
| 525 | return 0; | ||
| 526 | return(1); | ||
| 527 | } | ||
| 528 | |||
| 529 | int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509) | ||
| 530 | { | ||
| 531 | int ret; | ||
| 532 | EVP_PKEY *pkey = NULL; | ||
| 533 | if (!ASN1_INTEGER_set(p7i->version,0)) | ||
| 534 | return 0; | ||
| 535 | if (!X509_NAME_set(&p7i->issuer_and_serial->issuer, | ||
| 536 | X509_get_issuer_name(x509))) | ||
| 537 | return 0; | ||
| 538 | |||
| 539 | M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial); | ||
| 540 | if (!(p7i->issuer_and_serial->serial= | ||
| 541 | M_ASN1_INTEGER_dup(X509_get_serialNumber(x509)))) | ||
| 542 | return 0; | ||
| 543 | |||
| 544 | pkey = X509_get_pubkey(x509); | ||
| 545 | |||
| 546 | if (!pkey || !pkey->ameth || !pkey->ameth->pkey_ctrl) | ||
| 547 | { | ||
| 548 | PKCS7err(PKCS7_F_PKCS7_RECIP_INFO_SET, | ||
| 549 | PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); | ||
| 550 | goto err; | ||
| 551 | } | ||
| 552 | |||
| 553 | ret = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_PKCS7_ENCRYPT, | ||
| 554 | 0, p7i); | ||
| 555 | if (ret == -2) | ||
| 556 | { | ||
| 557 | PKCS7err(PKCS7_F_PKCS7_RECIP_INFO_SET, | ||
| 558 | PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); | ||
| 559 | goto err; | ||
| 560 | } | ||
| 561 | if (ret <= 0) | ||
| 562 | { | ||
| 563 | PKCS7err(PKCS7_F_PKCS7_RECIP_INFO_SET, | ||
| 564 | PKCS7_R_ENCRYPTION_CTRL_FAILURE); | ||
| 565 | goto err; | ||
| 566 | } | ||
| 567 | |||
| 568 | EVP_PKEY_free(pkey); | ||
| 569 | |||
| 570 | CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509); | ||
| 571 | p7i->cert=x509; | ||
| 572 | |||
| 573 | return 1; | ||
| 574 | |||
| 575 | err: | ||
| 576 | if (pkey) | ||
| 577 | EVP_PKEY_free(pkey); | ||
| 578 | return 0; | ||
| 579 | } | ||
| 580 | |||
| 581 | X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si) | ||
| 582 | { | ||
| 583 | if (PKCS7_type_is_signed(p7)) | ||
| 584 | return(X509_find_by_issuer_and_serial(p7->d.sign->cert, | ||
| 585 | si->issuer_and_serial->issuer, | ||
| 586 | si->issuer_and_serial->serial)); | ||
| 587 | else | ||
| 588 | return(NULL); | ||
| 589 | } | ||
| 590 | |||
| 591 | int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher) | ||
| 592 | { | ||
| 593 | int i; | ||
| 594 | PKCS7_ENC_CONTENT *ec; | ||
| 595 | |||
| 596 | i=OBJ_obj2nid(p7->type); | ||
| 597 | switch (i) | ||
| 598 | { | ||
| 599 | case NID_pkcs7_signedAndEnveloped: | ||
| 600 | ec=p7->d.signed_and_enveloped->enc_data; | ||
| 601 | break; | ||
| 602 | case NID_pkcs7_enveloped: | ||
| 603 | ec=p7->d.enveloped->enc_data; | ||
| 604 | break; | ||
| 605 | default: | ||
| 606 | PKCS7err(PKCS7_F_PKCS7_SET_CIPHER,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 607 | return(0); | ||
| 608 | } | ||
| 609 | |||
| 610 | /* Check cipher OID exists and has data in it*/ | ||
| 611 | i = EVP_CIPHER_type(cipher); | ||
| 612 | if(i == NID_undef) { | ||
| 613 | PKCS7err(PKCS7_F_PKCS7_SET_CIPHER,PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER); | ||
| 614 | return(0); | ||
| 615 | } | ||
| 616 | |||
| 617 | ec->cipher = cipher; | ||
| 618 | return 1; | ||
| 619 | } | ||
| 620 | |||
| 621 | int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7) | ||
| 622 | { | ||
| 623 | ASN1_OCTET_STRING *os = NULL; | ||
| 624 | |||
| 625 | switch (OBJ_obj2nid(p7->type)) | ||
| 626 | { | ||
| 627 | case NID_pkcs7_data: | ||
| 628 | os = p7->d.data; | ||
| 629 | break; | ||
| 630 | |||
| 631 | case NID_pkcs7_signedAndEnveloped: | ||
| 632 | os = p7->d.signed_and_enveloped->enc_data->enc_data; | ||
| 633 | if (os == NULL) | ||
| 634 | { | ||
| 635 | os=M_ASN1_OCTET_STRING_new(); | ||
| 636 | p7->d.signed_and_enveloped->enc_data->enc_data=os; | ||
| 637 | } | ||
| 638 | break; | ||
| 639 | |||
| 640 | case NID_pkcs7_enveloped: | ||
| 641 | os = p7->d.enveloped->enc_data->enc_data; | ||
| 642 | if (os == NULL) | ||
| 643 | { | ||
| 644 | os=M_ASN1_OCTET_STRING_new(); | ||
| 645 | p7->d.enveloped->enc_data->enc_data=os; | ||
| 646 | } | ||
| 647 | break; | ||
| 648 | |||
| 649 | case NID_pkcs7_signed: | ||
| 650 | os=p7->d.sign->contents->d.data; | ||
| 651 | break; | ||
| 652 | |||
| 653 | default: | ||
| 654 | os = NULL; | ||
| 655 | break; | ||
| 656 | } | ||
| 657 | |||
| 658 | if (os == NULL) | ||
| 659 | return 0; | ||
| 660 | |||
| 661 | os->flags |= ASN1_STRING_FLAG_NDEF; | ||
| 662 | *boundary = &os->data; | ||
| 663 | |||
| 664 | return 1; | ||
| 665 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/pk7_mime.c b/src/lib/libcrypto/pkcs7/pk7_mime.c deleted file mode 100644 index 938f79a646..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_mime.c +++ /dev/null | |||
| @@ -1,97 +0,0 @@ | |||
| 1 | /* pk7_mime.c */ | ||
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
| 3 | * project. | ||
| 4 | */ | ||
| 5 | /* ==================================================================== | ||
| 6 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in | ||
| 17 | * the documentation and/or other materials provided with the | ||
| 18 | * distribution. | ||
| 19 | * | ||
| 20 | * 3. All advertising materials mentioning features or use of this | ||
| 21 | * software must display the following acknowledgment: | ||
| 22 | * "This product includes software developed by the OpenSSL Project | ||
| 23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 24 | * | ||
| 25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 26 | * endorse or promote products derived from this software without | ||
| 27 | * prior written permission. For written permission, please contact | ||
| 28 | * licensing@OpenSSL.org. | ||
| 29 | * | ||
| 30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 31 | * nor may "OpenSSL" appear in their names without prior written | ||
| 32 | * permission of the OpenSSL Project. | ||
| 33 | * | ||
| 34 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 35 | * acknowledgment: | ||
| 36 | * "This product includes software developed by the OpenSSL Project | ||
| 37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 51 | * ==================================================================== | ||
| 52 | * | ||
| 53 | */ | ||
| 54 | |||
| 55 | #include <stdio.h> | ||
| 56 | #include <ctype.h> | ||
| 57 | #include "cryptlib.h" | ||
| 58 | #include <openssl/rand.h> | ||
| 59 | #include <openssl/x509.h> | ||
| 60 | #include <openssl/asn1.h> | ||
| 61 | |||
| 62 | /* PKCS#7 wrappers round generalised stream and MIME routines */ | ||
| 63 | |||
| 64 | int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags) | ||
| 65 | { | ||
| 66 | return i2d_ASN1_bio_stream(out, (ASN1_VALUE *)p7, in, flags, | ||
| 67 | ASN1_ITEM_rptr(PKCS7)); | ||
| 68 | } | ||
| 69 | |||
| 70 | int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags) | ||
| 71 | { | ||
| 72 | return PEM_write_bio_ASN1_stream(out, (ASN1_VALUE *) p7, in, flags, | ||
| 73 | "PKCS7", | ||
| 74 | ASN1_ITEM_rptr(PKCS7)); | ||
| 75 | } | ||
| 76 | |||
| 77 | int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) | ||
| 78 | { | ||
| 79 | STACK_OF(X509_ALGOR) *mdalgs; | ||
| 80 | int ctype_nid = OBJ_obj2nid(p7->type); | ||
| 81 | if (ctype_nid == NID_pkcs7_signed) | ||
| 82 | mdalgs = p7->d.sign->md_algs; | ||
| 83 | else | ||
| 84 | mdalgs = NULL; | ||
| 85 | |||
| 86 | flags ^= SMIME_OLDMIME; | ||
| 87 | |||
| 88 | |||
| 89 | return SMIME_write_ASN1(bio, (ASN1_VALUE *)p7, data, flags, | ||
| 90 | ctype_nid, NID_undef, mdalgs, | ||
| 91 | ASN1_ITEM_rptr(PKCS7)); | ||
| 92 | } | ||
| 93 | |||
| 94 | PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont) | ||
| 95 | { | ||
| 96 | return (PKCS7 *)SMIME_read_ASN1(bio, bcont, ASN1_ITEM_rptr(PKCS7)); | ||
| 97 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/pk7_smime.c b/src/lib/libcrypto/pkcs7/pk7_smime.c deleted file mode 100644 index 86742d0dcd..0000000000 --- a/src/lib/libcrypto/pkcs7/pk7_smime.c +++ /dev/null | |||
| @@ -1,587 +0,0 @@ | |||
| 1 | /* pk7_smime.c */ | ||
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
| 3 | * project. | ||
| 4 | */ | ||
| 5 | /* ==================================================================== | ||
| 6 | * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in | ||
| 17 | * the documentation and/or other materials provided with the | ||
| 18 | * distribution. | ||
| 19 | * | ||
| 20 | * 3. All advertising materials mentioning features or use of this | ||
| 21 | * software must display the following acknowledgment: | ||
| 22 | * "This product includes software developed by the OpenSSL Project | ||
| 23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 24 | * | ||
| 25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 26 | * endorse or promote products derived from this software without | ||
| 27 | * prior written permission. For written permission, please contact | ||
| 28 | * licensing@OpenSSL.org. | ||
| 29 | * | ||
| 30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 31 | * nor may "OpenSSL" appear in their names without prior written | ||
| 32 | * permission of the OpenSSL Project. | ||
| 33 | * | ||
| 34 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 35 | * acknowledgment: | ||
| 36 | * "This product includes software developed by the OpenSSL Project | ||
| 37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 51 | * ==================================================================== | ||
| 52 | * | ||
| 53 | * This product includes cryptographic software written by Eric Young | ||
| 54 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
| 55 | * Hudson (tjh@cryptsoft.com). | ||
| 56 | * | ||
| 57 | */ | ||
| 58 | |||
| 59 | /* Simple PKCS#7 processing functions */ | ||
| 60 | |||
| 61 | #include <stdio.h> | ||
| 62 | #include "cryptlib.h" | ||
| 63 | #include <openssl/x509.h> | ||
| 64 | #include <openssl/x509v3.h> | ||
| 65 | |||
| 66 | static int pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si); | ||
| 67 | |||
| 68 | PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, | ||
| 69 | BIO *data, int flags) | ||
| 70 | { | ||
| 71 | PKCS7 *p7; | ||
| 72 | int i; | ||
| 73 | |||
| 74 | if(!(p7 = PKCS7_new())) | ||
| 75 | { | ||
| 76 | PKCS7err(PKCS7_F_PKCS7_SIGN,ERR_R_MALLOC_FAILURE); | ||
| 77 | return NULL; | ||
| 78 | } | ||
| 79 | |||
| 80 | if (!PKCS7_set_type(p7, NID_pkcs7_signed)) | ||
| 81 | goto err; | ||
| 82 | |||
| 83 | if (!PKCS7_content_new(p7, NID_pkcs7_data)) | ||
| 84 | goto err; | ||
| 85 | |||
| 86 | if (pkey && !PKCS7_sign_add_signer(p7, signcert, pkey, NULL, flags)) | ||
| 87 | { | ||
| 88 | PKCS7err(PKCS7_F_PKCS7_SIGN,PKCS7_R_PKCS7_ADD_SIGNER_ERROR); | ||
| 89 | goto err; | ||
| 90 | } | ||
| 91 | |||
| 92 | if(!(flags & PKCS7_NOCERTS)) | ||
| 93 | { | ||
| 94 | for(i = 0; i < sk_X509_num(certs); i++) | ||
| 95 | { | ||
| 96 | if (!PKCS7_add_certificate(p7, sk_X509_value(certs, i))) | ||
| 97 | goto err; | ||
| 98 | } | ||
| 99 | } | ||
| 100 | |||
| 101 | if(flags & PKCS7_DETACHED) | ||
| 102 | PKCS7_set_detached(p7, 1); | ||
| 103 | |||
| 104 | if (flags & (PKCS7_STREAM|PKCS7_PARTIAL)) | ||
| 105 | return p7; | ||
| 106 | |||
| 107 | if (PKCS7_final(p7, data, flags)) | ||
| 108 | return p7; | ||
| 109 | |||
| 110 | err: | ||
| 111 | PKCS7_free(p7); | ||
| 112 | return NULL; | ||
| 113 | } | ||
| 114 | |||
| 115 | int PKCS7_final(PKCS7 *p7, BIO *data, int flags) | ||
| 116 | { | ||
| 117 | BIO *p7bio; | ||
| 118 | int ret = 0; | ||
| 119 | if (!(p7bio = PKCS7_dataInit(p7, NULL))) | ||
| 120 | { | ||
| 121 | PKCS7err(PKCS7_F_PKCS7_FINAL,ERR_R_MALLOC_FAILURE); | ||
| 122 | return 0; | ||
| 123 | } | ||
| 124 | |||
| 125 | SMIME_crlf_copy(data, p7bio, flags); | ||
| 126 | |||
| 127 | (void)BIO_flush(p7bio); | ||
| 128 | |||
| 129 | |||
| 130 | if (!PKCS7_dataFinal(p7,p7bio)) | ||
| 131 | { | ||
| 132 | PKCS7err(PKCS7_F_PKCS7_FINAL,PKCS7_R_PKCS7_DATASIGN); | ||
| 133 | goto err; | ||
| 134 | } | ||
| 135 | |||
| 136 | ret = 1; | ||
| 137 | |||
| 138 | err: | ||
| 139 | BIO_free_all(p7bio); | ||
| 140 | |||
| 141 | return ret; | ||
| 142 | |||
| 143 | } | ||
| 144 | |||
| 145 | /* Check to see if a cipher exists and if so add S/MIME capabilities */ | ||
| 146 | |||
| 147 | static int add_cipher_smcap(STACK_OF(X509_ALGOR) *sk, int nid, int arg) | ||
| 148 | { | ||
| 149 | if (EVP_get_cipherbynid(nid)) | ||
| 150 | return PKCS7_simple_smimecap(sk, nid, arg); | ||
| 151 | return 1; | ||
| 152 | } | ||
| 153 | |||
| 154 | static int add_digest_smcap(STACK_OF(X509_ALGOR) *sk, int nid, int arg) | ||
| 155 | { | ||
| 156 | if (EVP_get_digestbynid(nid)) | ||
| 157 | return PKCS7_simple_smimecap(sk, nid, arg); | ||
| 158 | return 1; | ||
| 159 | } | ||
| 160 | |||
| 161 | PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert, | ||
| 162 | EVP_PKEY *pkey, const EVP_MD *md, | ||
| 163 | int flags) | ||
| 164 | { | ||
| 165 | PKCS7_SIGNER_INFO *si = NULL; | ||
| 166 | STACK_OF(X509_ALGOR) *smcap = NULL; | ||
| 167 | if(!X509_check_private_key(signcert, pkey)) | ||
| 168 | { | ||
| 169 | PKCS7err(PKCS7_F_PKCS7_SIGN_ADD_SIGNER, | ||
| 170 | PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE); | ||
| 171 | return NULL; | ||
| 172 | } | ||
| 173 | |||
| 174 | if (!(si = PKCS7_add_signature(p7,signcert,pkey, md))) | ||
| 175 | { | ||
| 176 | PKCS7err(PKCS7_F_PKCS7_SIGN_ADD_SIGNER, | ||
| 177 | PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR); | ||
| 178 | return NULL; | ||
| 179 | } | ||
| 180 | |||
| 181 | if(!(flags & PKCS7_NOCERTS)) | ||
| 182 | { | ||
| 183 | if (!PKCS7_add_certificate(p7, signcert)) | ||
| 184 | goto err; | ||
| 185 | } | ||
| 186 | |||
| 187 | if(!(flags & PKCS7_NOATTR)) | ||
| 188 | { | ||
| 189 | if (!PKCS7_add_attrib_content_type(si, NULL)) | ||
| 190 | goto err; | ||
| 191 | /* Add SMIMECapabilities */ | ||
| 192 | if(!(flags & PKCS7_NOSMIMECAP)) | ||
| 193 | { | ||
| 194 | if(!(smcap = sk_X509_ALGOR_new_null())) | ||
| 195 | { | ||
| 196 | PKCS7err(PKCS7_F_PKCS7_SIGN_ADD_SIGNER, | ||
| 197 | ERR_R_MALLOC_FAILURE); | ||
| 198 | goto err; | ||
| 199 | } | ||
| 200 | if (!add_cipher_smcap(smcap, NID_aes_256_cbc, -1) | ||
| 201 | || !add_digest_smcap(smcap, NID_id_GostR3411_94, -1) | ||
| 202 | || !add_cipher_smcap(smcap, NID_id_Gost28147_89, -1) | ||
| 203 | || !add_cipher_smcap(smcap, NID_aes_192_cbc, -1) | ||
| 204 | || !add_cipher_smcap(smcap, NID_aes_128_cbc, -1) | ||
| 205 | || !add_cipher_smcap(smcap, NID_des_ede3_cbc, -1) | ||
| 206 | || !add_cipher_smcap(smcap, NID_rc2_cbc, 128) | ||
| 207 | || !add_cipher_smcap(smcap, NID_rc2_cbc, 64) | ||
| 208 | || !add_cipher_smcap(smcap, NID_des_cbc, -1) | ||
| 209 | || !add_cipher_smcap(smcap, NID_rc2_cbc, 40) | ||
| 210 | || !PKCS7_add_attrib_smimecap (si, smcap)) | ||
| 211 | goto err; | ||
| 212 | sk_X509_ALGOR_pop_free(smcap, X509_ALGOR_free); | ||
| 213 | smcap = NULL; | ||
| 214 | } | ||
| 215 | if (flags & PKCS7_REUSE_DIGEST) | ||
| 216 | { | ||
| 217 | if (!pkcs7_copy_existing_digest(p7, si)) | ||
| 218 | goto err; | ||
| 219 | if (!(flags & PKCS7_PARTIAL) && | ||
| 220 | !PKCS7_SIGNER_INFO_sign(si)) | ||
| 221 | goto err; | ||
| 222 | } | ||
| 223 | } | ||
| 224 | return si; | ||
| 225 | err: | ||
| 226 | if (smcap) | ||
| 227 | sk_X509_ALGOR_pop_free(smcap, X509_ALGOR_free); | ||
| 228 | return NULL; | ||
| 229 | } | ||
| 230 | |||
| 231 | /* Search for a digest matching SignerInfo digest type and if found | ||
| 232 | * copy across. | ||
| 233 | */ | ||
| 234 | |||
| 235 | static int pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si) | ||
| 236 | { | ||
| 237 | int i; | ||
| 238 | STACK_OF(PKCS7_SIGNER_INFO) *sinfos; | ||
| 239 | PKCS7_SIGNER_INFO *sitmp; | ||
| 240 | ASN1_OCTET_STRING *osdig = NULL; | ||
| 241 | sinfos = PKCS7_get_signer_info(p7); | ||
| 242 | for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(sinfos); i++) | ||
| 243 | { | ||
| 244 | sitmp = sk_PKCS7_SIGNER_INFO_value(sinfos, i); | ||
| 245 | if (si == sitmp) | ||
| 246 | break; | ||
| 247 | if (sk_X509_ATTRIBUTE_num(sitmp->auth_attr) <= 0) | ||
| 248 | continue; | ||
| 249 | if (!OBJ_cmp(si->digest_alg->algorithm, | ||
| 250 | sitmp->digest_alg->algorithm)) | ||
| 251 | { | ||
| 252 | osdig = PKCS7_digest_from_attributes(sitmp->auth_attr); | ||
| 253 | break; | ||
| 254 | } | ||
| 255 | |||
| 256 | } | ||
| 257 | |||
| 258 | if (osdig) | ||
| 259 | return PKCS7_add1_attrib_digest(si, osdig->data, osdig->length); | ||
| 260 | |||
| 261 | PKCS7err(PKCS7_F_PKCS7_COPY_EXISTING_DIGEST, | ||
| 262 | PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND); | ||
| 263 | return 0; | ||
| 264 | } | ||
| 265 | |||
| 266 | int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, | ||
| 267 | BIO *indata, BIO *out, int flags) | ||
| 268 | { | ||
| 269 | STACK_OF(X509) *signers; | ||
| 270 | X509 *signer; | ||
| 271 | STACK_OF(PKCS7_SIGNER_INFO) *sinfos; | ||
| 272 | PKCS7_SIGNER_INFO *si; | ||
| 273 | X509_STORE_CTX cert_ctx; | ||
| 274 | char buf[4096]; | ||
| 275 | int i, j=0, k, ret = 0; | ||
| 276 | BIO *p7bio; | ||
| 277 | BIO *tmpin, *tmpout; | ||
| 278 | |||
| 279 | if(!p7) { | ||
| 280 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_INVALID_NULL_POINTER); | ||
| 281 | return 0; | ||
| 282 | } | ||
| 283 | |||
| 284 | if(!PKCS7_type_is_signed(p7)) { | ||
| 285 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 286 | return 0; | ||
| 287 | } | ||
| 288 | |||
| 289 | /* Check for no data and no content: no data to verify signature */ | ||
| 290 | if(PKCS7_get_detached(p7) && !indata) { | ||
| 291 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_NO_CONTENT); | ||
| 292 | return 0; | ||
| 293 | } | ||
| 294 | #if 0 | ||
| 295 | /* NB: this test commented out because some versions of Netscape | ||
| 296 | * illegally include zero length content when signing data. | ||
| 297 | */ | ||
| 298 | |||
| 299 | /* Check for data and content: two sets of data */ | ||
| 300 | if(!PKCS7_get_detached(p7) && indata) { | ||
| 301 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_CONTENT_AND_DATA_PRESENT); | ||
| 302 | return 0; | ||
| 303 | } | ||
| 304 | #endif | ||
| 305 | |||
| 306 | sinfos = PKCS7_get_signer_info(p7); | ||
| 307 | |||
| 308 | if(!sinfos || !sk_PKCS7_SIGNER_INFO_num(sinfos)) { | ||
| 309 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_NO_SIGNATURES_ON_DATA); | ||
| 310 | return 0; | ||
| 311 | } | ||
| 312 | |||
| 313 | |||
| 314 | signers = PKCS7_get0_signers(p7, certs, flags); | ||
| 315 | |||
| 316 | if(!signers) return 0; | ||
| 317 | |||
| 318 | /* Now verify the certificates */ | ||
| 319 | |||
| 320 | if (!(flags & PKCS7_NOVERIFY)) for (k = 0; k < sk_X509_num(signers); k++) { | ||
| 321 | signer = sk_X509_value (signers, k); | ||
| 322 | if (!(flags & PKCS7_NOCHAIN)) { | ||
| 323 | if(!X509_STORE_CTX_init(&cert_ctx, store, signer, | ||
| 324 | p7->d.sign->cert)) | ||
| 325 | { | ||
| 326 | PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_X509_LIB); | ||
| 327 | sk_X509_free(signers); | ||
| 328 | return 0; | ||
| 329 | } | ||
| 330 | X509_STORE_CTX_set_default(&cert_ctx, "smime_sign"); | ||
| 331 | } else if(!X509_STORE_CTX_init (&cert_ctx, store, signer, NULL)) { | ||
| 332 | PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_X509_LIB); | ||
| 333 | sk_X509_free(signers); | ||
| 334 | return 0; | ||
| 335 | } | ||
| 336 | if (!(flags & PKCS7_NOCRL)) | ||
| 337 | X509_STORE_CTX_set0_crls(&cert_ctx, p7->d.sign->crl); | ||
| 338 | i = X509_verify_cert(&cert_ctx); | ||
| 339 | if (i <= 0) j = X509_STORE_CTX_get_error(&cert_ctx); | ||
| 340 | X509_STORE_CTX_cleanup(&cert_ctx); | ||
| 341 | if (i <= 0) { | ||
| 342 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_CERTIFICATE_VERIFY_ERROR); | ||
| 343 | ERR_add_error_data(2, "Verify error:", | ||
| 344 | X509_verify_cert_error_string(j)); | ||
| 345 | sk_X509_free(signers); | ||
| 346 | return 0; | ||
| 347 | } | ||
| 348 | /* Check for revocation status here */ | ||
| 349 | } | ||
| 350 | |||
| 351 | /* Performance optimization: if the content is a memory BIO then | ||
| 352 | * store its contents in a temporary read only memory BIO. This | ||
| 353 | * avoids potentially large numbers of slow copies of data which will | ||
| 354 | * occur when reading from a read write memory BIO when signatures | ||
| 355 | * are calculated. | ||
| 356 | */ | ||
| 357 | |||
| 358 | if (indata && (BIO_method_type(indata) == BIO_TYPE_MEM)) | ||
| 359 | { | ||
| 360 | char *ptr; | ||
| 361 | long len; | ||
| 362 | len = BIO_get_mem_data(indata, &ptr); | ||
| 363 | tmpin = BIO_new_mem_buf(ptr, len); | ||
| 364 | if (tmpin == NULL) | ||
| 365 | { | ||
| 366 | PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_MALLOC_FAILURE); | ||
| 367 | return 0; | ||
| 368 | } | ||
| 369 | } | ||
| 370 | else | ||
| 371 | tmpin = indata; | ||
| 372 | |||
| 373 | |||
| 374 | if (!(p7bio=PKCS7_dataInit(p7,tmpin))) | ||
| 375 | goto err; | ||
| 376 | |||
| 377 | if(flags & PKCS7_TEXT) { | ||
| 378 | if(!(tmpout = BIO_new(BIO_s_mem()))) { | ||
| 379 | PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_MALLOC_FAILURE); | ||
| 380 | goto err; | ||
| 381 | } | ||
| 382 | BIO_set_mem_eof_return(tmpout, 0); | ||
| 383 | } else tmpout = out; | ||
| 384 | |||
| 385 | /* We now have to 'read' from p7bio to calculate digests etc. */ | ||
| 386 | for (;;) | ||
| 387 | { | ||
| 388 | i=BIO_read(p7bio,buf,sizeof(buf)); | ||
| 389 | if (i <= 0) break; | ||
| 390 | if (tmpout) BIO_write(tmpout, buf, i); | ||
| 391 | } | ||
| 392 | |||
| 393 | if(flags & PKCS7_TEXT) { | ||
| 394 | if(!SMIME_text(tmpout, out)) { | ||
| 395 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_SMIME_TEXT_ERROR); | ||
| 396 | BIO_free(tmpout); | ||
| 397 | goto err; | ||
| 398 | } | ||
| 399 | BIO_free(tmpout); | ||
| 400 | } | ||
| 401 | |||
| 402 | /* Now Verify All Signatures */ | ||
| 403 | if (!(flags & PKCS7_NOSIGS)) | ||
| 404 | for (i=0; i<sk_PKCS7_SIGNER_INFO_num(sinfos); i++) | ||
| 405 | { | ||
| 406 | si=sk_PKCS7_SIGNER_INFO_value(sinfos,i); | ||
| 407 | signer = sk_X509_value (signers, i); | ||
| 408 | j=PKCS7_signatureVerify(p7bio,p7,si, signer); | ||
| 409 | if (j <= 0) { | ||
| 410 | PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_SIGNATURE_FAILURE); | ||
| 411 | goto err; | ||
| 412 | } | ||
| 413 | } | ||
| 414 | |||
| 415 | ret = 1; | ||
| 416 | |||
| 417 | err: | ||
| 418 | |||
| 419 | if (tmpin == indata) | ||
| 420 | { | ||
| 421 | if (indata) BIO_pop(p7bio); | ||
| 422 | } | ||
| 423 | BIO_free_all(p7bio); | ||
| 424 | |||
| 425 | sk_X509_free(signers); | ||
| 426 | |||
| 427 | return ret; | ||
| 428 | } | ||
| 429 | |||
| 430 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags) | ||
| 431 | { | ||
| 432 | STACK_OF(X509) *signers; | ||
| 433 | STACK_OF(PKCS7_SIGNER_INFO) *sinfos; | ||
| 434 | PKCS7_SIGNER_INFO *si; | ||
| 435 | PKCS7_ISSUER_AND_SERIAL *ias; | ||
| 436 | X509 *signer; | ||
| 437 | int i; | ||
| 438 | |||
| 439 | if(!p7) { | ||
| 440 | PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_INVALID_NULL_POINTER); | ||
| 441 | return NULL; | ||
| 442 | } | ||
| 443 | |||
| 444 | if(!PKCS7_type_is_signed(p7)) { | ||
| 445 | PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 446 | return NULL; | ||
| 447 | } | ||
| 448 | |||
| 449 | /* Collect all the signers together */ | ||
| 450 | |||
| 451 | sinfos = PKCS7_get_signer_info(p7); | ||
| 452 | |||
| 453 | if(sk_PKCS7_SIGNER_INFO_num(sinfos) <= 0) { | ||
| 454 | PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_NO_SIGNERS); | ||
| 455 | return 0; | ||
| 456 | } | ||
| 457 | |||
| 458 | if(!(signers = sk_X509_new_null())) { | ||
| 459 | PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,ERR_R_MALLOC_FAILURE); | ||
| 460 | return NULL; | ||
| 461 | } | ||
| 462 | |||
| 463 | for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(sinfos); i++) | ||
| 464 | { | ||
| 465 | si = sk_PKCS7_SIGNER_INFO_value(sinfos, i); | ||
| 466 | ias = si->issuer_and_serial; | ||
| 467 | signer = NULL; | ||
| 468 | /* If any certificates passed they take priority */ | ||
| 469 | if (certs) signer = X509_find_by_issuer_and_serial (certs, | ||
| 470 | ias->issuer, ias->serial); | ||
| 471 | if (!signer && !(flags & PKCS7_NOINTERN) | ||
| 472 | && p7->d.sign->cert) signer = | ||
| 473 | X509_find_by_issuer_and_serial (p7->d.sign->cert, | ||
| 474 | ias->issuer, ias->serial); | ||
| 475 | if (!signer) { | ||
| 476 | PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND); | ||
| 477 | sk_X509_free(signers); | ||
| 478 | return 0; | ||
| 479 | } | ||
| 480 | |||
| 481 | if (!sk_X509_push(signers, signer)) { | ||
| 482 | sk_X509_free(signers); | ||
| 483 | return NULL; | ||
| 484 | } | ||
| 485 | } | ||
| 486 | return signers; | ||
| 487 | } | ||
| 488 | |||
| 489 | |||
| 490 | /* Build a complete PKCS#7 enveloped data */ | ||
| 491 | |||
| 492 | PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, | ||
| 493 | int flags) | ||
| 494 | { | ||
| 495 | PKCS7 *p7; | ||
| 496 | BIO *p7bio = NULL; | ||
| 497 | int i; | ||
| 498 | X509 *x509; | ||
| 499 | if(!(p7 = PKCS7_new())) { | ||
| 500 | PKCS7err(PKCS7_F_PKCS7_ENCRYPT,ERR_R_MALLOC_FAILURE); | ||
| 501 | return NULL; | ||
| 502 | } | ||
| 503 | |||
| 504 | if (!PKCS7_set_type(p7, NID_pkcs7_enveloped)) | ||
| 505 | goto err; | ||
| 506 | if (!PKCS7_set_cipher(p7, cipher)) { | ||
| 507 | PKCS7err(PKCS7_F_PKCS7_ENCRYPT,PKCS7_R_ERROR_SETTING_CIPHER); | ||
| 508 | goto err; | ||
| 509 | } | ||
| 510 | |||
| 511 | for(i = 0; i < sk_X509_num(certs); i++) { | ||
| 512 | x509 = sk_X509_value(certs, i); | ||
| 513 | if(!PKCS7_add_recipient(p7, x509)) { | ||
| 514 | PKCS7err(PKCS7_F_PKCS7_ENCRYPT, | ||
| 515 | PKCS7_R_ERROR_ADDING_RECIPIENT); | ||
| 516 | goto err; | ||
| 517 | } | ||
| 518 | } | ||
| 519 | |||
| 520 | if (flags & PKCS7_STREAM) | ||
| 521 | return p7; | ||
| 522 | |||
| 523 | if (PKCS7_final(p7, in, flags)) | ||
| 524 | return p7; | ||
| 525 | |||
| 526 | err: | ||
| 527 | |||
| 528 | BIO_free_all(p7bio); | ||
| 529 | PKCS7_free(p7); | ||
| 530 | return NULL; | ||
| 531 | |||
| 532 | } | ||
| 533 | |||
| 534 | int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags) | ||
| 535 | { | ||
| 536 | BIO *tmpmem; | ||
| 537 | int ret, i; | ||
| 538 | char buf[4096]; | ||
| 539 | |||
| 540 | if(!p7) { | ||
| 541 | PKCS7err(PKCS7_F_PKCS7_DECRYPT,PKCS7_R_INVALID_NULL_POINTER); | ||
| 542 | return 0; | ||
| 543 | } | ||
| 544 | |||
| 545 | if(!PKCS7_type_is_enveloped(p7)) { | ||
| 546 | PKCS7err(PKCS7_F_PKCS7_DECRYPT,PKCS7_R_WRONG_CONTENT_TYPE); | ||
| 547 | return 0; | ||
| 548 | } | ||
| 549 | |||
| 550 | if(cert && !X509_check_private_key(cert, pkey)) { | ||
| 551 | PKCS7err(PKCS7_F_PKCS7_DECRYPT, | ||
| 552 | PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE); | ||
| 553 | return 0; | ||
| 554 | } | ||
| 555 | |||
| 556 | if(!(tmpmem = PKCS7_dataDecode(p7, pkey, NULL, cert))) { | ||
| 557 | PKCS7err(PKCS7_F_PKCS7_DECRYPT, PKCS7_R_DECRYPT_ERROR); | ||
| 558 | return 0; | ||
| 559 | } | ||
| 560 | |||
| 561 | if (flags & PKCS7_TEXT) { | ||
| 562 | BIO *tmpbuf, *bread; | ||
| 563 | /* Encrypt BIOs can't do BIO_gets() so add a buffer BIO */ | ||
| 564 | if(!(tmpbuf = BIO_new(BIO_f_buffer()))) { | ||
| 565 | PKCS7err(PKCS7_F_PKCS7_DECRYPT, ERR_R_MALLOC_FAILURE); | ||
| 566 | BIO_free_all(tmpmem); | ||
| 567 | return 0; | ||
| 568 | } | ||
| 569 | if(!(bread = BIO_push(tmpbuf, tmpmem))) { | ||
| 570 | PKCS7err(PKCS7_F_PKCS7_DECRYPT, ERR_R_MALLOC_FAILURE); | ||
| 571 | BIO_free_all(tmpbuf); | ||
| 572 | BIO_free_all(tmpmem); | ||
| 573 | return 0; | ||
| 574 | } | ||
| 575 | ret = SMIME_text(bread, data); | ||
| 576 | BIO_free_all(bread); | ||
| 577 | return ret; | ||
| 578 | } else { | ||
| 579 | for(;;) { | ||
| 580 | i = BIO_read(tmpmem, buf, sizeof(buf)); | ||
| 581 | if(i <= 0) break; | ||
| 582 | BIO_write(data, buf, i); | ||
| 583 | } | ||
| 584 | BIO_free_all(tmpmem); | ||
| 585 | return 1; | ||
| 586 | } | ||
| 587 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/pkcs7.h b/src/lib/libcrypto/pkcs7/pkcs7.h deleted file mode 100644 index e4d443193c..0000000000 --- a/src/lib/libcrypto/pkcs7/pkcs7.h +++ /dev/null | |||
| @@ -1,499 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pkcs7.h */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | |||
| 59 | #ifndef HEADER_PKCS7_H | ||
| 60 | #define HEADER_PKCS7_H | ||
| 61 | |||
| 62 | #include <openssl/asn1.h> | ||
| 63 | #include <openssl/bio.h> | ||
| 64 | #include <openssl/e_os2.h> | ||
| 65 | |||
| 66 | #include <openssl/symhacks.h> | ||
| 67 | #include <openssl/ossl_typ.h> | ||
| 68 | |||
| 69 | #ifdef __cplusplus | ||
| 70 | extern "C" { | ||
| 71 | #endif | ||
| 72 | |||
| 73 | #ifdef OPENSSL_SYS_WIN32 | ||
| 74 | /* Under Win32 thes are defined in wincrypt.h */ | ||
| 75 | #undef PKCS7_ISSUER_AND_SERIAL | ||
| 76 | #undef PKCS7_SIGNER_INFO | ||
| 77 | #endif | ||
| 78 | |||
| 79 | /* | ||
| 80 | Encryption_ID DES-CBC | ||
| 81 | Digest_ID MD5 | ||
| 82 | Digest_Encryption_ID rsaEncryption | ||
| 83 | Key_Encryption_ID rsaEncryption | ||
| 84 | */ | ||
| 85 | |||
| 86 | typedef struct pkcs7_issuer_and_serial_st | ||
| 87 | { | ||
| 88 | X509_NAME *issuer; | ||
| 89 | ASN1_INTEGER *serial; | ||
| 90 | } PKCS7_ISSUER_AND_SERIAL; | ||
| 91 | |||
| 92 | typedef struct pkcs7_signer_info_st | ||
| 93 | { | ||
| 94 | ASN1_INTEGER *version; /* version 1 */ | ||
| 95 | PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; | ||
| 96 | X509_ALGOR *digest_alg; | ||
| 97 | STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ | ||
| 98 | X509_ALGOR *digest_enc_alg; | ||
| 99 | ASN1_OCTET_STRING *enc_digest; | ||
| 100 | STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ | ||
| 101 | |||
| 102 | /* The private key to sign with */ | ||
| 103 | EVP_PKEY *pkey; | ||
| 104 | } PKCS7_SIGNER_INFO; | ||
| 105 | |||
| 106 | DECLARE_STACK_OF(PKCS7_SIGNER_INFO) | ||
| 107 | DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) | ||
| 108 | |||
| 109 | typedef struct pkcs7_recip_info_st | ||
| 110 | { | ||
| 111 | ASN1_INTEGER *version; /* version 0 */ | ||
| 112 | PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; | ||
| 113 | X509_ALGOR *key_enc_algor; | ||
| 114 | ASN1_OCTET_STRING *enc_key; | ||
| 115 | X509 *cert; /* get the pub-key from this */ | ||
| 116 | } PKCS7_RECIP_INFO; | ||
| 117 | |||
| 118 | DECLARE_STACK_OF(PKCS7_RECIP_INFO) | ||
| 119 | DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) | ||
| 120 | |||
| 121 | typedef struct pkcs7_signed_st | ||
| 122 | { | ||
| 123 | ASN1_INTEGER *version; /* version 1 */ | ||
| 124 | STACK_OF(X509_ALGOR) *md_algs; /* md used */ | ||
| 125 | STACK_OF(X509) *cert; /* [ 0 ] */ | ||
| 126 | STACK_OF(X509_CRL) *crl; /* [ 1 ] */ | ||
| 127 | STACK_OF(PKCS7_SIGNER_INFO) *signer_info; | ||
| 128 | |||
| 129 | struct pkcs7_st *contents; | ||
| 130 | } PKCS7_SIGNED; | ||
| 131 | /* The above structure is very very similar to PKCS7_SIGN_ENVELOPE. | ||
| 132 | * How about merging the two */ | ||
| 133 | |||
| 134 | typedef struct pkcs7_enc_content_st | ||
| 135 | { | ||
| 136 | ASN1_OBJECT *content_type; | ||
| 137 | X509_ALGOR *algorithm; | ||
| 138 | ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ | ||
| 139 | const EVP_CIPHER *cipher; | ||
| 140 | } PKCS7_ENC_CONTENT; | ||
| 141 | |||
| 142 | typedef struct pkcs7_enveloped_st | ||
| 143 | { | ||
| 144 | ASN1_INTEGER *version; /* version 0 */ | ||
| 145 | STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; | ||
| 146 | PKCS7_ENC_CONTENT *enc_data; | ||
| 147 | } PKCS7_ENVELOPE; | ||
| 148 | |||
| 149 | typedef struct pkcs7_signedandenveloped_st | ||
| 150 | { | ||
| 151 | ASN1_INTEGER *version; /* version 1 */ | ||
| 152 | STACK_OF(X509_ALGOR) *md_algs; /* md used */ | ||
| 153 | STACK_OF(X509) *cert; /* [ 0 ] */ | ||
| 154 | STACK_OF(X509_CRL) *crl; /* [ 1 ] */ | ||
| 155 | STACK_OF(PKCS7_SIGNER_INFO) *signer_info; | ||
| 156 | |||
| 157 | PKCS7_ENC_CONTENT *enc_data; | ||
| 158 | STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; | ||
| 159 | } PKCS7_SIGN_ENVELOPE; | ||
| 160 | |||
| 161 | typedef struct pkcs7_digest_st | ||
| 162 | { | ||
| 163 | ASN1_INTEGER *version; /* version 0 */ | ||
| 164 | X509_ALGOR *md; /* md used */ | ||
| 165 | struct pkcs7_st *contents; | ||
| 166 | ASN1_OCTET_STRING *digest; | ||
| 167 | } PKCS7_DIGEST; | ||
| 168 | |||
| 169 | typedef struct pkcs7_encrypted_st | ||
| 170 | { | ||
| 171 | ASN1_INTEGER *version; /* version 0 */ | ||
| 172 | PKCS7_ENC_CONTENT *enc_data; | ||
| 173 | } PKCS7_ENCRYPT; | ||
| 174 | |||
| 175 | typedef struct pkcs7_st | ||
| 176 | { | ||
| 177 | /* The following is non NULL if it contains ASN1 encoding of | ||
| 178 | * this structure */ | ||
| 179 | unsigned char *asn1; | ||
| 180 | long length; | ||
| 181 | |||
| 182 | #define PKCS7_S_HEADER 0 | ||
| 183 | #define PKCS7_S_BODY 1 | ||
| 184 | #define PKCS7_S_TAIL 2 | ||
| 185 | int state; /* used during processing */ | ||
| 186 | |||
| 187 | int detached; | ||
| 188 | |||
| 189 | ASN1_OBJECT *type; | ||
| 190 | /* content as defined by the type */ | ||
| 191 | /* all encryption/message digests are applied to the 'contents', | ||
| 192 | * leaving out the 'type' field. */ | ||
| 193 | union { | ||
| 194 | char *ptr; | ||
| 195 | |||
| 196 | /* NID_pkcs7_data */ | ||
| 197 | ASN1_OCTET_STRING *data; | ||
| 198 | |||
| 199 | /* NID_pkcs7_signed */ | ||
| 200 | PKCS7_SIGNED *sign; | ||
| 201 | |||
| 202 | /* NID_pkcs7_enveloped */ | ||
| 203 | PKCS7_ENVELOPE *enveloped; | ||
| 204 | |||
| 205 | /* NID_pkcs7_signedAndEnveloped */ | ||
| 206 | PKCS7_SIGN_ENVELOPE *signed_and_enveloped; | ||
| 207 | |||
| 208 | /* NID_pkcs7_digest */ | ||
| 209 | PKCS7_DIGEST *digest; | ||
| 210 | |||
| 211 | /* NID_pkcs7_encrypted */ | ||
| 212 | PKCS7_ENCRYPT *encrypted; | ||
| 213 | |||
| 214 | /* Anything else */ | ||
| 215 | ASN1_TYPE *other; | ||
| 216 | } d; | ||
| 217 | } PKCS7; | ||
| 218 | |||
| 219 | DECLARE_STACK_OF(PKCS7) | ||
| 220 | DECLARE_ASN1_SET_OF(PKCS7) | ||
| 221 | DECLARE_PKCS12_STACK_OF(PKCS7) | ||
| 222 | |||
| 223 | #define PKCS7_OP_SET_DETACHED_SIGNATURE 1 | ||
| 224 | #define PKCS7_OP_GET_DETACHED_SIGNATURE 2 | ||
| 225 | |||
| 226 | #define PKCS7_get_signed_attributes(si) ((si)->auth_attr) | ||
| 227 | #define PKCS7_get_attributes(si) ((si)->unauth_attr) | ||
| 228 | |||
| 229 | #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) | ||
| 230 | #define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) | ||
| 231 | #define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) | ||
| 232 | #define PKCS7_type_is_signedAndEnveloped(a) \ | ||
| 233 | (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) | ||
| 234 | #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) | ||
| 235 | #define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) | ||
| 236 | #define PKCS7_type_is_encrypted(a) \ | ||
| 237 | (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) | ||
| 238 | |||
| 239 | #define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) | ||
| 240 | |||
| 241 | #define PKCS7_set_detached(p,v) \ | ||
| 242 | PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) | ||
| 243 | #define PKCS7_get_detached(p) \ | ||
| 244 | PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) | ||
| 245 | |||
| 246 | #define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) | ||
| 247 | |||
| 248 | /* S/MIME related flags */ | ||
| 249 | |||
| 250 | #define PKCS7_TEXT 0x1 | ||
| 251 | #define PKCS7_NOCERTS 0x2 | ||
| 252 | #define PKCS7_NOSIGS 0x4 | ||
| 253 | #define PKCS7_NOCHAIN 0x8 | ||
| 254 | #define PKCS7_NOINTERN 0x10 | ||
| 255 | #define PKCS7_NOVERIFY 0x20 | ||
| 256 | #define PKCS7_DETACHED 0x40 | ||
| 257 | #define PKCS7_BINARY 0x80 | ||
| 258 | #define PKCS7_NOATTR 0x100 | ||
| 259 | #define PKCS7_NOSMIMECAP 0x200 | ||
| 260 | #define PKCS7_NOOLDMIMETYPE 0x400 | ||
| 261 | #define PKCS7_CRLFEOL 0x800 | ||
| 262 | #define PKCS7_STREAM 0x1000 | ||
| 263 | #define PKCS7_NOCRL 0x2000 | ||
| 264 | #define PKCS7_PARTIAL 0x4000 | ||
| 265 | #define PKCS7_REUSE_DIGEST 0x8000 | ||
| 266 | |||
| 267 | /* Flags: for compatibility with older code */ | ||
| 268 | |||
| 269 | #define SMIME_TEXT PKCS7_TEXT | ||
| 270 | #define SMIME_NOCERTS PKCS7_NOCERTS | ||
| 271 | #define SMIME_NOSIGS PKCS7_NOSIGS | ||
| 272 | #define SMIME_NOCHAIN PKCS7_NOCHAIN | ||
| 273 | #define SMIME_NOINTERN PKCS7_NOINTERN | ||
| 274 | #define SMIME_NOVERIFY PKCS7_NOVERIFY | ||
| 275 | #define SMIME_DETACHED PKCS7_DETACHED | ||
| 276 | #define SMIME_BINARY PKCS7_BINARY | ||
| 277 | #define SMIME_NOATTR PKCS7_NOATTR | ||
| 278 | |||
| 279 | DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) | ||
| 280 | |||
| 281 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type, | ||
| 282 | unsigned char *md,unsigned int *len); | ||
| 283 | #ifndef OPENSSL_NO_FP_API | ||
| 284 | PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); | ||
| 285 | int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7); | ||
| 286 | #endif | ||
| 287 | PKCS7 *PKCS7_dup(PKCS7 *p7); | ||
| 288 | PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7); | ||
| 289 | int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7); | ||
| 290 | int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); | ||
| 291 | int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); | ||
| 292 | |||
| 293 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) | ||
| 294 | DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) | ||
| 295 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) | ||
| 296 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) | ||
| 297 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) | ||
| 298 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) | ||
| 299 | DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) | ||
| 300 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) | ||
| 301 | DECLARE_ASN1_FUNCTIONS(PKCS7) | ||
| 302 | |||
| 303 | DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) | ||
| 304 | DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) | ||
| 305 | |||
| 306 | DECLARE_ASN1_NDEF_FUNCTION(PKCS7) | ||
| 307 | DECLARE_ASN1_PRINT_FUNCTION(PKCS7) | ||
| 308 | |||
| 309 | long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); | ||
| 310 | |||
| 311 | int PKCS7_set_type(PKCS7 *p7, int type); | ||
| 312 | int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); | ||
| 313 | int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); | ||
| 314 | int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, | ||
| 315 | const EVP_MD *dgst); | ||
| 316 | int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); | ||
| 317 | int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); | ||
| 318 | int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); | ||
| 319 | int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); | ||
| 320 | int PKCS7_content_new(PKCS7 *p7, int nid); | ||
| 321 | int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, | ||
| 322 | BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); | ||
| 323 | int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, | ||
| 324 | X509 *x509); | ||
| 325 | |||
| 326 | BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); | ||
| 327 | int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); | ||
| 328 | BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); | ||
| 329 | |||
| 330 | |||
| 331 | PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, | ||
| 332 | EVP_PKEY *pkey, const EVP_MD *dgst); | ||
| 333 | X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); | ||
| 334 | int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); | ||
| 335 | STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); | ||
| 336 | |||
| 337 | PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); | ||
| 338 | void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, | ||
| 339 | X509_ALGOR **pdig, X509_ALGOR **psig); | ||
| 340 | void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); | ||
| 341 | int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); | ||
| 342 | int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); | ||
| 343 | int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); | ||
| 344 | int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); | ||
| 345 | |||
| 346 | PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); | ||
| 347 | ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); | ||
| 348 | int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type, | ||
| 349 | void *data); | ||
| 350 | int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, | ||
| 351 | void *value); | ||
| 352 | ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); | ||
| 353 | ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); | ||
| 354 | int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, | ||
| 355 | STACK_OF(X509_ATTRIBUTE) *sk); | ||
| 356 | int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); | ||
| 357 | |||
| 358 | |||
| 359 | PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, | ||
| 360 | BIO *data, int flags); | ||
| 361 | |||
| 362 | PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, | ||
| 363 | X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md, | ||
| 364 | int flags); | ||
| 365 | |||
| 366 | int PKCS7_final(PKCS7 *p7, BIO *data, int flags); | ||
| 367 | int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, | ||
| 368 | BIO *indata, BIO *out, int flags); | ||
| 369 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); | ||
| 370 | PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, | ||
| 371 | int flags); | ||
| 372 | int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); | ||
| 373 | |||
| 374 | int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, | ||
| 375 | STACK_OF(X509_ALGOR) *cap); | ||
| 376 | STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); | ||
| 377 | int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); | ||
| 378 | |||
| 379 | int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); | ||
| 380 | int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); | ||
| 381 | int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, | ||
| 382 | const unsigned char *md, int mdlen); | ||
| 383 | |||
| 384 | int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); | ||
| 385 | PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); | ||
| 386 | |||
| 387 | BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); | ||
| 388 | |||
| 389 | |||
| 390 | /* BEGIN ERROR CODES */ | ||
| 391 | /* The following lines are auto generated by the script mkerr.pl. Any changes | ||
| 392 | * made after this point may be overwritten when the script is next run. | ||
| 393 | */ | ||
| 394 | void ERR_load_PKCS7_strings(void); | ||
| 395 | |||
| 396 | /* Error codes for the PKCS7 functions. */ | ||
| 397 | |||
| 398 | /* Function codes. */ | ||
| 399 | #define PKCS7_F_B64_READ_PKCS7 120 | ||
| 400 | #define PKCS7_F_B64_WRITE_PKCS7 121 | ||
| 401 | #define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 | ||
| 402 | #define PKCS7_F_I2D_PKCS7_BIO_STREAM 140 | ||
| 403 | #define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 | ||
| 404 | #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 | ||
| 405 | #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 | ||
| 406 | #define PKCS7_F_PKCS7_ADD_CRL 101 | ||
| 407 | #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 | ||
| 408 | #define PKCS7_F_PKCS7_ADD_SIGNATURE 131 | ||
| 409 | #define PKCS7_F_PKCS7_ADD_SIGNER 103 | ||
| 410 | #define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 | ||
| 411 | #define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 | ||
| 412 | #define PKCS7_F_PKCS7_CTRL 104 | ||
| 413 | #define PKCS7_F_PKCS7_DATADECODE 112 | ||
| 414 | #define PKCS7_F_PKCS7_DATAFINAL 128 | ||
| 415 | #define PKCS7_F_PKCS7_DATAINIT 105 | ||
| 416 | #define PKCS7_F_PKCS7_DATASIGN 106 | ||
| 417 | #define PKCS7_F_PKCS7_DATAVERIFY 107 | ||
| 418 | #define PKCS7_F_PKCS7_DECRYPT 114 | ||
| 419 | #define PKCS7_F_PKCS7_DECRYPT_RINFO 133 | ||
| 420 | #define PKCS7_F_PKCS7_ENCODE_RINFO 132 | ||
| 421 | #define PKCS7_F_PKCS7_ENCRYPT 115 | ||
| 422 | #define PKCS7_F_PKCS7_FINAL 134 | ||
| 423 | #define PKCS7_F_PKCS7_FIND_DIGEST 127 | ||
| 424 | #define PKCS7_F_PKCS7_GET0_SIGNERS 124 | ||
| 425 | #define PKCS7_F_PKCS7_RECIP_INFO_SET 130 | ||
| 426 | #define PKCS7_F_PKCS7_SET_CIPHER 108 | ||
| 427 | #define PKCS7_F_PKCS7_SET_CONTENT 109 | ||
| 428 | #define PKCS7_F_PKCS7_SET_DIGEST 126 | ||
| 429 | #define PKCS7_F_PKCS7_SET_TYPE 110 | ||
| 430 | #define PKCS7_F_PKCS7_SIGN 116 | ||
| 431 | #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 | ||
| 432 | #define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 | ||
| 433 | #define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 | ||
| 434 | #define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 | ||
| 435 | #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 | ||
| 436 | #define PKCS7_F_PKCS7_VERIFY 117 | ||
| 437 | #define PKCS7_F_SMIME_READ_PKCS7 122 | ||
| 438 | #define PKCS7_F_SMIME_TEXT 123 | ||
| 439 | |||
| 440 | /* Reason codes. */ | ||
| 441 | #define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 | ||
| 442 | #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 | ||
| 443 | #define PKCS7_R_CIPHER_NOT_INITIALIZED 116 | ||
| 444 | #define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 | ||
| 445 | #define PKCS7_R_CTRL_ERROR 152 | ||
| 446 | #define PKCS7_R_DECODE_ERROR 130 | ||
| 447 | #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 | ||
| 448 | #define PKCS7_R_DECRYPT_ERROR 119 | ||
| 449 | #define PKCS7_R_DIGEST_FAILURE 101 | ||
| 450 | #define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 | ||
| 451 | #define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 | ||
| 452 | #define PKCS7_R_ERROR_ADDING_RECIPIENT 120 | ||
| 453 | #define PKCS7_R_ERROR_SETTING_CIPHER 121 | ||
| 454 | #define PKCS7_R_INVALID_MIME_TYPE 131 | ||
| 455 | #define PKCS7_R_INVALID_NULL_POINTER 143 | ||
| 456 | #define PKCS7_R_MIME_NO_CONTENT_TYPE 132 | ||
| 457 | #define PKCS7_R_MIME_PARSE_ERROR 133 | ||
| 458 | #define PKCS7_R_MIME_SIG_PARSE_ERROR 134 | ||
| 459 | #define PKCS7_R_MISSING_CERIPEND_INFO 103 | ||
| 460 | #define PKCS7_R_NO_CONTENT 122 | ||
| 461 | #define PKCS7_R_NO_CONTENT_TYPE 135 | ||
| 462 | #define PKCS7_R_NO_DEFAULT_DIGEST 151 | ||
| 463 | #define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 | ||
| 464 | #define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 | ||
| 465 | #define PKCS7_R_NO_MULTIPART_BOUNDARY 137 | ||
| 466 | #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 | ||
| 467 | #define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146 | ||
| 468 | #define PKCS7_R_NO_SIGNATURES_ON_DATA 123 | ||
| 469 | #define PKCS7_R_NO_SIGNERS 142 | ||
| 470 | #define PKCS7_R_NO_SIG_CONTENT_TYPE 138 | ||
| 471 | #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 | ||
| 472 | #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 | ||
| 473 | #define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 | ||
| 474 | #define PKCS7_R_PKCS7_DATAFINAL 126 | ||
| 475 | #define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 | ||
| 476 | #define PKCS7_R_PKCS7_DATASIGN 145 | ||
| 477 | #define PKCS7_R_PKCS7_PARSE_ERROR 139 | ||
| 478 | #define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 | ||
| 479 | #define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 | ||
| 480 | #define PKCS7_R_SIGNATURE_FAILURE 105 | ||
| 481 | #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 | ||
| 482 | #define PKCS7_R_SIGNING_CTRL_FAILURE 147 | ||
| 483 | #define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 | ||
| 484 | #define PKCS7_R_SIG_INVALID_MIME_TYPE 141 | ||
| 485 | #define PKCS7_R_SMIME_TEXT_ERROR 129 | ||
| 486 | #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 | ||
| 487 | #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 | ||
| 488 | #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 | ||
| 489 | #define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 | ||
| 490 | #define PKCS7_R_UNKNOWN_OPERATION 110 | ||
| 491 | #define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 | ||
| 492 | #define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 | ||
| 493 | #define PKCS7_R_WRONG_CONTENT_TYPE 113 | ||
| 494 | #define PKCS7_R_WRONG_PKCS7_TYPE 114 | ||
| 495 | |||
| 496 | #ifdef __cplusplus | ||
| 497 | } | ||
| 498 | #endif | ||
| 499 | #endif | ||
diff --git a/src/lib/libcrypto/pkcs7/pkcs7err.c b/src/lib/libcrypto/pkcs7/pkcs7err.c deleted file mode 100644 index d0af32a265..0000000000 --- a/src/lib/libcrypto/pkcs7/pkcs7err.c +++ /dev/null | |||
| @@ -1,187 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/pkcs7err.c */ | ||
| 2 | /* ==================================================================== | ||
| 3 | * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. | ||
| 4 | * | ||
| 5 | * Redistribution and use in source and binary forms, with or without | ||
| 6 | * modification, are permitted provided that the following conditions | ||
| 7 | * are met: | ||
| 8 | * | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * | ||
| 12 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer in | ||
| 14 | * the documentation and/or other materials provided with the | ||
| 15 | * distribution. | ||
| 16 | * | ||
| 17 | * 3. All advertising materials mentioning features or use of this | ||
| 18 | * software must display the following acknowledgment: | ||
| 19 | * "This product includes software developed by the OpenSSL Project | ||
| 20 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
| 21 | * | ||
| 22 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
| 23 | * endorse or promote products derived from this software without | ||
| 24 | * prior written permission. For written permission, please contact | ||
| 25 | * openssl-core@OpenSSL.org. | ||
| 26 | * | ||
| 27 | * 5. Products derived from this software may not be called "OpenSSL" | ||
| 28 | * nor may "OpenSSL" appear in their names without prior written | ||
| 29 | * permission of the OpenSSL Project. | ||
| 30 | * | ||
| 31 | * 6. Redistributions of any form whatsoever must retain the following | ||
| 32 | * acknowledgment: | ||
| 33 | * "This product includes software developed by the OpenSSL Project | ||
| 34 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
| 35 | * | ||
| 36 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
| 37 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 38 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 39 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
| 40 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 41 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 42 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 43 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 44 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
| 45 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 46 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
| 47 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 48 | * ==================================================================== | ||
| 49 | * | ||
| 50 | * This product includes cryptographic software written by Eric Young | ||
| 51 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
| 52 | * Hudson (tjh@cryptsoft.com). | ||
| 53 | * | ||
| 54 | */ | ||
| 55 | |||
| 56 | /* NOTE: this file was auto generated by the mkerr.pl script: any changes | ||
| 57 | * made to it will be overwritten when the script next updates this file, | ||
| 58 | * only reason strings will be preserved. | ||
| 59 | */ | ||
| 60 | |||
| 61 | #include <stdio.h> | ||
| 62 | #include <openssl/err.h> | ||
| 63 | #include <openssl/pkcs7.h> | ||
| 64 | |||
| 65 | /* BEGIN ERROR CODES */ | ||
| 66 | #ifndef OPENSSL_NO_ERR | ||
| 67 | |||
| 68 | #define ERR_FUNC(func) ERR_PACK(ERR_LIB_PKCS7,func,0) | ||
| 69 | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_PKCS7,0,reason) | ||
| 70 | |||
| 71 | static ERR_STRING_DATA PKCS7_str_functs[]= | ||
| 72 | { | ||
| 73 | {ERR_FUNC(PKCS7_F_B64_READ_PKCS7), "B64_READ_PKCS7"}, | ||
| 74 | {ERR_FUNC(PKCS7_F_B64_WRITE_PKCS7), "B64_WRITE_PKCS7"}, | ||
| 75 | {ERR_FUNC(PKCS7_F_DO_PKCS7_SIGNED_ATTRIB), "DO_PKCS7_SIGNED_ATTRIB"}, | ||
| 76 | {ERR_FUNC(PKCS7_F_I2D_PKCS7_BIO_STREAM), "i2d_PKCS7_bio_stream"}, | ||
| 77 | {ERR_FUNC(PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME), "PKCS7_add0_attrib_signing_time"}, | ||
| 78 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP), "PKCS7_add_attrib_smimecap"}, | ||
| 79 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_CERTIFICATE), "PKCS7_add_certificate"}, | ||
| 80 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_CRL), "PKCS7_add_crl"}, | ||
| 81 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_RECIPIENT_INFO), "PKCS7_add_recipient_info"}, | ||
| 82 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_SIGNATURE), "PKCS7_add_signature"}, | ||
| 83 | {ERR_FUNC(PKCS7_F_PKCS7_ADD_SIGNER), "PKCS7_add_signer"}, | ||
| 84 | {ERR_FUNC(PKCS7_F_PKCS7_BIO_ADD_DIGEST), "PKCS7_BIO_ADD_DIGEST"}, | ||
| 85 | {ERR_FUNC(PKCS7_F_PKCS7_COPY_EXISTING_DIGEST), "PKCS7_COPY_EXISTING_DIGEST"}, | ||
| 86 | {ERR_FUNC(PKCS7_F_PKCS7_CTRL), "PKCS7_ctrl"}, | ||
| 87 | {ERR_FUNC(PKCS7_F_PKCS7_DATADECODE), "PKCS7_dataDecode"}, | ||
| 88 | {ERR_FUNC(PKCS7_F_PKCS7_DATAFINAL), "PKCS7_dataFinal"}, | ||
| 89 | {ERR_FUNC(PKCS7_F_PKCS7_DATAINIT), "PKCS7_dataInit"}, | ||
| 90 | {ERR_FUNC(PKCS7_F_PKCS7_DATASIGN), "PKCS7_DATASIGN"}, | ||
| 91 | {ERR_FUNC(PKCS7_F_PKCS7_DATAVERIFY), "PKCS7_dataVerify"}, | ||
| 92 | {ERR_FUNC(PKCS7_F_PKCS7_DECRYPT), "PKCS7_decrypt"}, | ||
| 93 | {ERR_FUNC(PKCS7_F_PKCS7_DECRYPT_RINFO), "PKCS7_DECRYPT_RINFO"}, | ||
| 94 | {ERR_FUNC(PKCS7_F_PKCS7_ENCODE_RINFO), "PKCS7_ENCODE_RINFO"}, | ||
| 95 | {ERR_FUNC(PKCS7_F_PKCS7_ENCRYPT), "PKCS7_encrypt"}, | ||
| 96 | {ERR_FUNC(PKCS7_F_PKCS7_FINAL), "PKCS7_final"}, | ||
| 97 | {ERR_FUNC(PKCS7_F_PKCS7_FIND_DIGEST), "PKCS7_FIND_DIGEST"}, | ||
| 98 | {ERR_FUNC(PKCS7_F_PKCS7_GET0_SIGNERS), "PKCS7_get0_signers"}, | ||
| 99 | {ERR_FUNC(PKCS7_F_PKCS7_RECIP_INFO_SET), "PKCS7_RECIP_INFO_set"}, | ||
| 100 | {ERR_FUNC(PKCS7_F_PKCS7_SET_CIPHER), "PKCS7_set_cipher"}, | ||
| 101 | {ERR_FUNC(PKCS7_F_PKCS7_SET_CONTENT), "PKCS7_set_content"}, | ||
| 102 | {ERR_FUNC(PKCS7_F_PKCS7_SET_DIGEST), "PKCS7_set_digest"}, | ||
| 103 | {ERR_FUNC(PKCS7_F_PKCS7_SET_TYPE), "PKCS7_set_type"}, | ||
| 104 | {ERR_FUNC(PKCS7_F_PKCS7_SIGN), "PKCS7_sign"}, | ||
| 105 | {ERR_FUNC(PKCS7_F_PKCS7_SIGNATUREVERIFY), "PKCS7_signatureVerify"}, | ||
| 106 | {ERR_FUNC(PKCS7_F_PKCS7_SIGNER_INFO_SET), "PKCS7_SIGNER_INFO_set"}, | ||
| 107 | {ERR_FUNC(PKCS7_F_PKCS7_SIGNER_INFO_SIGN), "PKCS7_SIGNER_INFO_sign"}, | ||
| 108 | {ERR_FUNC(PKCS7_F_PKCS7_SIGN_ADD_SIGNER), "PKCS7_sign_add_signer"}, | ||
| 109 | {ERR_FUNC(PKCS7_F_PKCS7_SIMPLE_SMIMECAP), "PKCS7_simple_smimecap"}, | ||
| 110 | {ERR_FUNC(PKCS7_F_PKCS7_VERIFY), "PKCS7_verify"}, | ||
| 111 | {ERR_FUNC(PKCS7_F_SMIME_READ_PKCS7), "SMIME_read_PKCS7"}, | ||
| 112 | {ERR_FUNC(PKCS7_F_SMIME_TEXT), "SMIME_text"}, | ||
| 113 | {0,NULL} | ||
| 114 | }; | ||
| 115 | |||
| 116 | static ERR_STRING_DATA PKCS7_str_reasons[]= | ||
| 117 | { | ||
| 118 | {ERR_REASON(PKCS7_R_CERTIFICATE_VERIFY_ERROR),"certificate verify error"}, | ||
| 119 | {ERR_REASON(PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER),"cipher has no object identifier"}, | ||
| 120 | {ERR_REASON(PKCS7_R_CIPHER_NOT_INITIALIZED),"cipher not initialized"}, | ||
| 121 | {ERR_REASON(PKCS7_R_CONTENT_AND_DATA_PRESENT),"content and data present"}, | ||
| 122 | {ERR_REASON(PKCS7_R_CTRL_ERROR) ,"ctrl error"}, | ||
| 123 | {ERR_REASON(PKCS7_R_DECODE_ERROR) ,"decode error"}, | ||
| 124 | {ERR_REASON(PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH),"decrypted key is wrong length"}, | ||
| 125 | {ERR_REASON(PKCS7_R_DECRYPT_ERROR) ,"decrypt error"}, | ||
| 126 | {ERR_REASON(PKCS7_R_DIGEST_FAILURE) ,"digest failure"}, | ||
| 127 | {ERR_REASON(PKCS7_R_ENCRYPTION_CTRL_FAILURE),"encryption ctrl failure"}, | ||
| 128 | {ERR_REASON(PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE),"encryption not supported for this key type"}, | ||
| 129 | {ERR_REASON(PKCS7_R_ERROR_ADDING_RECIPIENT),"error adding recipient"}, | ||
| 130 | {ERR_REASON(PKCS7_R_ERROR_SETTING_CIPHER),"error setting cipher"}, | ||
| 131 | {ERR_REASON(PKCS7_R_INVALID_MIME_TYPE) ,"invalid mime type"}, | ||
| 132 | {ERR_REASON(PKCS7_R_INVALID_NULL_POINTER),"invalid null pointer"}, | ||
| 133 | {ERR_REASON(PKCS7_R_MIME_NO_CONTENT_TYPE),"mime no content type"}, | ||
| 134 | {ERR_REASON(PKCS7_R_MIME_PARSE_ERROR) ,"mime parse error"}, | ||
| 135 | {ERR_REASON(PKCS7_R_MIME_SIG_PARSE_ERROR),"mime sig parse error"}, | ||
| 136 | {ERR_REASON(PKCS7_R_MISSING_CERIPEND_INFO),"missing ceripend info"}, | ||
| 137 | {ERR_REASON(PKCS7_R_NO_CONTENT) ,"no content"}, | ||
| 138 | {ERR_REASON(PKCS7_R_NO_CONTENT_TYPE) ,"no content type"}, | ||
| 139 | {ERR_REASON(PKCS7_R_NO_DEFAULT_DIGEST) ,"no default digest"}, | ||
| 140 | {ERR_REASON(PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND),"no matching digest type found"}, | ||
| 141 | {ERR_REASON(PKCS7_R_NO_MULTIPART_BODY_FAILURE),"no multipart body failure"}, | ||
| 142 | {ERR_REASON(PKCS7_R_NO_MULTIPART_BOUNDARY),"no multipart boundary"}, | ||
| 143 | {ERR_REASON(PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE),"no recipient matches certificate"}, | ||
| 144 | {ERR_REASON(PKCS7_R_NO_RECIPIENT_MATCHES_KEY),"no recipient matches key"}, | ||
| 145 | {ERR_REASON(PKCS7_R_NO_SIGNATURES_ON_DATA),"no signatures on data"}, | ||
| 146 | {ERR_REASON(PKCS7_R_NO_SIGNERS) ,"no signers"}, | ||
| 147 | {ERR_REASON(PKCS7_R_NO_SIG_CONTENT_TYPE) ,"no sig content type"}, | ||
| 148 | {ERR_REASON(PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE),"operation not supported on this type"}, | ||
| 149 | {ERR_REASON(PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR),"pkcs7 add signature error"}, | ||
| 150 | {ERR_REASON(PKCS7_R_PKCS7_ADD_SIGNER_ERROR),"pkcs7 add signer error"}, | ||
| 151 | {ERR_REASON(PKCS7_R_PKCS7_DATAFINAL) ,"pkcs7 datafinal"}, | ||
| 152 | {ERR_REASON(PKCS7_R_PKCS7_DATAFINAL_ERROR),"pkcs7 datafinal error"}, | ||
| 153 | {ERR_REASON(PKCS7_R_PKCS7_DATASIGN) ,"pkcs7 datasign"}, | ||
| 154 | {ERR_REASON(PKCS7_R_PKCS7_PARSE_ERROR) ,"pkcs7 parse error"}, | ||
| 155 | {ERR_REASON(PKCS7_R_PKCS7_SIG_PARSE_ERROR),"pkcs7 sig parse error"}, | ||
| 156 | {ERR_REASON(PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE),"private key does not match certificate"}, | ||
| 157 | {ERR_REASON(PKCS7_R_SIGNATURE_FAILURE) ,"signature failure"}, | ||
| 158 | {ERR_REASON(PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND),"signer certificate not found"}, | ||
| 159 | {ERR_REASON(PKCS7_R_SIGNING_CTRL_FAILURE),"signing ctrl failure"}, | ||
| 160 | {ERR_REASON(PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE),"signing not supported for this key type"}, | ||
| 161 | {ERR_REASON(PKCS7_R_SIG_INVALID_MIME_TYPE),"sig invalid mime type"}, | ||
| 162 | {ERR_REASON(PKCS7_R_SMIME_TEXT_ERROR) ,"smime text error"}, | ||
| 163 | {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_CERTIFICATE),"unable to find certificate"}, | ||
| 164 | {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_MEM_BIO),"unable to find mem bio"}, | ||
| 165 | {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST),"unable to find message digest"}, | ||
| 166 | {ERR_REASON(PKCS7_R_UNKNOWN_DIGEST_TYPE) ,"unknown digest type"}, | ||
| 167 | {ERR_REASON(PKCS7_R_UNKNOWN_OPERATION) ,"unknown operation"}, | ||
| 168 | {ERR_REASON(PKCS7_R_UNSUPPORTED_CIPHER_TYPE),"unsupported cipher type"}, | ||
| 169 | {ERR_REASON(PKCS7_R_UNSUPPORTED_CONTENT_TYPE),"unsupported content type"}, | ||
| 170 | {ERR_REASON(PKCS7_R_WRONG_CONTENT_TYPE) ,"wrong content type"}, | ||
| 171 | {ERR_REASON(PKCS7_R_WRONG_PKCS7_TYPE) ,"wrong pkcs7 type"}, | ||
| 172 | {0,NULL} | ||
| 173 | }; | ||
| 174 | |||
| 175 | #endif | ||
| 176 | |||
| 177 | void ERR_load_PKCS7_strings(void) | ||
| 178 | { | ||
| 179 | #ifndef OPENSSL_NO_ERR | ||
| 180 | |||
| 181 | if (ERR_func_error_string(PKCS7_str_functs[0].error) == NULL) | ||
| 182 | { | ||
| 183 | ERR_load_strings(0,PKCS7_str_functs); | ||
| 184 | ERR_load_strings(0,PKCS7_str_reasons); | ||
| 185 | } | ||
| 186 | #endif | ||
| 187 | } | ||
diff --git a/src/lib/libcrypto/pkcs7/server.pem b/src/lib/libcrypto/pkcs7/server.pem deleted file mode 100644 index 750aac2094..0000000000 --- a/src/lib/libcrypto/pkcs7/server.pem +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) | ||
| 2 | subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit) | ||
| 3 | -----BEGIN CERTIFICATE----- | ||
| 4 | MIIB6TCCAVICAQAwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV | ||
| 5 | BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD | ||
| 6 | VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTcwNjA5MTM1NzQ2WhcNOTgwNjA5 | ||
| 7 | MTM1NzQ2WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG | ||
| 8 | A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl | ||
| 9 | cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP | ||
| 10 | Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2// | ||
| 11 | Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB4TMR2CvacKE9wAsu9jyCX8YiW | ||
| 12 | mgCM+YoP6kt4Zkj2z5IRfm7WrycKsnpnOR+tGeqAjkCeZ6/36o9l91RvPnN1VJ/i | ||
| 13 | xQv2df0KFeMr00IkDdTNAdIWqFkSsZTAY2QAdgenb7MB1joejquYzO2DQIO7+wpH | ||
| 14 | irObpESxAZLySCmPPg== | ||
| 15 | -----END CERTIFICATE----- | ||
| 16 | -----BEGIN RSA PRIVATE KEY----- | ||
| 17 | MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD | ||
| 18 | TGiXav6ooKXfX3j/7tdkuD8Ey2//Kv7+ue0CAwEAAQJAN6W31vDEP2DjdqhzCDDu | ||
| 19 | OA4NACqoiFqyblo7yc2tM4h4xMbC3Yx5UKMN9ZkCtX0gzrz6DyF47bdKcWBzNWCj | ||
| 20 | gQIhANEoojVt7hq+SQ6MCN6FTAysGgQf56Q3TYoJMoWvdiXVAiEAw3e3rc+VJpOz | ||
| 21 | rHuDo6bgpjUAAXM+v3fcpsfZSNO6V7kCIQCtbVjanpUwvZkMI9by02oUk9taki3b | ||
| 22 | PzPfAfNPYAbCJQIhAJXNQDWyqwn/lGmR11cqY2y9nZ1+5w3yHGatLrcDnQHxAiEA | ||
| 23 | vnlEGo8K85u+KwIOimM48ZG8oTk7iFdkqLJR1utT3aU= | ||
| 24 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libcrypto/pkcs7/sign.c b/src/lib/libcrypto/pkcs7/sign.c deleted file mode 100644 index 8b59885f7e..0000000000 --- a/src/lib/libcrypto/pkcs7/sign.c +++ /dev/null | |||
| @@ -1,154 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/sign.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | #include <stdio.h> | ||
| 59 | #include <string.h> | ||
| 60 | #include <openssl/bio.h> | ||
| 61 | #include <openssl/x509.h> | ||
| 62 | #include <openssl/pem.h> | ||
| 63 | #include <openssl/err.h> | ||
| 64 | |||
| 65 | int main(argc,argv) | ||
| 66 | int argc; | ||
| 67 | char *argv[]; | ||
| 68 | { | ||
| 69 | X509 *x509; | ||
| 70 | EVP_PKEY *pkey; | ||
| 71 | PKCS7 *p7; | ||
| 72 | PKCS7_SIGNER_INFO *si; | ||
| 73 | BIO *in; | ||
| 74 | BIO *data,*p7bio; | ||
| 75 | char buf[1024*4]; | ||
| 76 | int i; | ||
| 77 | int nodetach=0; | ||
| 78 | |||
| 79 | #ifndef OPENSSL_NO_MD2 | ||
| 80 | EVP_add_digest(EVP_md2()); | ||
| 81 | #endif | ||
| 82 | #ifndef OPENSSL_NO_MD5 | ||
| 83 | EVP_add_digest(EVP_md5()); | ||
| 84 | #endif | ||
| 85 | #ifndef OPENSSL_NO_SHA1 | ||
| 86 | EVP_add_digest(EVP_sha1()); | ||
| 87 | #endif | ||
| 88 | #ifndef OPENSSL_NO_MDC2 | ||
| 89 | EVP_add_digest(EVP_mdc2()); | ||
| 90 | #endif | ||
| 91 | |||
| 92 | data=BIO_new(BIO_s_file()); | ||
| 93 | again: | ||
| 94 | if (argc > 1) | ||
| 95 | { | ||
| 96 | if (strcmp(argv[1],"-nd") == 0) | ||
| 97 | { | ||
| 98 | nodetach=1; | ||
| 99 | argv++; argc--; | ||
| 100 | goto again; | ||
| 101 | } | ||
| 102 | if (!BIO_read_filename(data,argv[1])) | ||
| 103 | goto err; | ||
| 104 | } | ||
| 105 | else | ||
| 106 | BIO_set_fp(data,stdin,BIO_NOCLOSE); | ||
| 107 | |||
| 108 | if ((in=BIO_new_file("server.pem","r")) == NULL) goto err; | ||
| 109 | if ((x509=PEM_read_bio_X509(in,NULL,NULL,NULL)) == NULL) goto err; | ||
| 110 | BIO_reset(in); | ||
| 111 | if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL)) == NULL) goto err; | ||
| 112 | BIO_free(in); | ||
| 113 | |||
| 114 | p7=PKCS7_new(); | ||
| 115 | PKCS7_set_type(p7,NID_pkcs7_signed); | ||
| 116 | |||
| 117 | si=PKCS7_add_signature(p7,x509,pkey,EVP_sha1()); | ||
| 118 | if (si == NULL) goto err; | ||
| 119 | |||
| 120 | /* If you do this then you get signing time automatically added */ | ||
| 121 | PKCS7_add_signed_attribute(si, NID_pkcs9_contentType, V_ASN1_OBJECT, | ||
| 122 | OBJ_nid2obj(NID_pkcs7_data)); | ||
| 123 | |||
| 124 | /* we may want to add more */ | ||
| 125 | PKCS7_add_certificate(p7,x509); | ||
| 126 | |||
| 127 | /* Set the content of the signed to 'data' */ | ||
| 128 | PKCS7_content_new(p7,NID_pkcs7_data); | ||
| 129 | |||
| 130 | if (!nodetach) | ||
| 131 | PKCS7_set_detached(p7,1); | ||
| 132 | |||
| 133 | if ((p7bio=PKCS7_dataInit(p7,NULL)) == NULL) goto err; | ||
| 134 | |||
| 135 | for (;;) | ||
| 136 | { | ||
| 137 | i=BIO_read(data,buf,sizeof(buf)); | ||
| 138 | if (i <= 0) break; | ||
| 139 | BIO_write(p7bio,buf,i); | ||
| 140 | } | ||
| 141 | |||
| 142 | if (!PKCS7_dataFinal(p7,p7bio)) goto err; | ||
| 143 | BIO_free(p7bio); | ||
| 144 | |||
| 145 | PEM_write_PKCS7(stdout,p7); | ||
| 146 | PKCS7_free(p7); | ||
| 147 | |||
| 148 | exit(0); | ||
| 149 | err: | ||
| 150 | ERR_load_crypto_strings(); | ||
| 151 | ERR_print_errors_fp(stderr); | ||
| 152 | exit(1); | ||
| 153 | } | ||
| 154 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/3des.pem b/src/lib/libcrypto/pkcs7/t/3des.pem deleted file mode 100644 index b2b5081a10..0000000000 --- a/src/lib/libcrypto/pkcs7/t/3des.pem +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG | ||
| 3 | A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 4 | dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD | ||
| 5 | ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEC2vXI1xQDW6lUHM3zQ | ||
| 6 | /9uBEBOO5A3TtkrklAXq7v01gsIC21t52qSk36REXY+slhNZ0OQ349tgkTsoETHFLoEwMIHw | ||
| 7 | AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI | ||
| 8 | QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU | ||
| 9 | UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G | ||
| 10 | CSqGSIb3DQEBAQUABEB8ujxbabxXUYJhopuDm3oDq4JNqX6Io4p3ro+ShqfIndsXTZ1v5a2N | ||
| 11 | WtLLCWlHn/habjBwZ/DgQgcKASbZ7QxNMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA | ||
| 12 | oAQIbsL5v1wX98KggAQoAaJ4WHm68fXY1WE5OIjfVBIDpO1K+i8dmKhjnAjrjoyZ9Bwc8rDL | ||
| 13 | lgQg4CXb805h5xl+GfvSwUaHJayte1m2mcOhs3J2YyqbQ+MEIMIiJQccmhO3oDKm36CFvYR8 | ||
| 14 | 5PjpclVcZyX2ngbwPFMnBAgy0clOAE6UKAAAAAAAAAAAAAA= | ||
| 15 | -----END PKCS7----- | ||
| 16 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/3dess.pem b/src/lib/libcrypto/pkcs7/t/3dess.pem deleted file mode 100644 index 23f013516a..0000000000 --- a/src/lib/libcrypto/pkcs7/t/3dess.pem +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | 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 | ||
| 31 | 9CWR6g== | ||
| 32 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/c.pem b/src/lib/libcrypto/pkcs7/t/c.pem deleted file mode 100644 index a4b55e321a..0000000000 --- a/src/lib/libcrypto/pkcs7/t/c.pem +++ /dev/null | |||
| @@ -1,48 +0,0 @@ | |||
| 1 | issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA | ||
| 2 | subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com | ||
| 3 | serial :047D | ||
| 4 | |||
| 5 | Certificate: | ||
| 6 | Data: | ||
| 7 | Version: 3 (0x2) | ||
| 8 | Serial Number: 1149 (0x47d) | ||
| 9 | Signature Algorithm: md5withRSAEncryption | ||
| 10 | Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA | ||
| 11 | Validity | ||
| 12 | Not Before: May 13 05:40:58 1998 GMT | ||
| 13 | Not After : May 12 05:40:58 2000 GMT | ||
| 14 | Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com | ||
| 15 | Subject Public Key Info: | ||
| 16 | Public Key Algorithm: rsaEncryption | ||
| 17 | Modulus: | ||
| 18 | 00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: | ||
| 19 | 73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: | ||
| 20 | 89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: | ||
| 21 | fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: | ||
| 22 | e7:e7:0c:4d:0b | ||
| 23 | Exponent: 65537 (0x10001) | ||
| 24 | X509v3 extensions: | ||
| 25 | Netscape Comment: | ||
| 26 | Generated with SSLeay | ||
| 27 | Signature Algorithm: md5withRSAEncryption | ||
| 28 | 52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: | ||
| 29 | f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: | ||
| 30 | d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: | ||
| 31 | 50:74:ad:92:cb:4e:90:e5:fa:7d | ||
| 32 | |||
| 33 | -----BEGIN CERTIFICATE----- | ||
| 34 | MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV | ||
| 35 | MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE | ||
| 36 | ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E | ||
| 37 | IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw | ||
| 38 | NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK | ||
| 39 | UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 40 | dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 | ||
| 41 | aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG | ||
| 42 | 9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf | ||
| 43 | lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB | ||
| 44 | hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA | ||
| 45 | UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 | ||
| 46 | 4A3ZItobUHStkstOkOX6fQ== | ||
| 47 | -----END CERTIFICATE----- | ||
| 48 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/ff b/src/lib/libcrypto/pkcs7/t/ff deleted file mode 100644 index 23f013516a..0000000000 --- a/src/lib/libcrypto/pkcs7/t/ff +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | 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 | ||
| 31 | 9CWR6g== | ||
| 32 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-e b/src/lib/libcrypto/pkcs7/t/msie-e deleted file mode 100644 index aafae69fc9..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-e +++ /dev/null | |||
| @@ -1,20 +0,0 @@ | |||
| 1 | |||
| 2 | MIAGCSqGSIb3DQEHA6CAMIACAQAxggHCMIHMAgEAMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAV | ||
| 3 | BgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5k | ||
| 4 | aXZpZHVhbCBTdWJzY3JpYmVyAhBgQJiC3qfbCbjdj5INYLnKMA0GCSqGSIb3DQEBAQUABECMzu8y | ||
| 5 | wQ/qZbO8cAGMRBF+mPruv3+Dvb9aWNZ2k8njUgqF6mcdhVB2MkGcsG3memRXJBixvMYWVkU3qK4Z | ||
| 6 | VuKsMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UE | ||
| 7 | BxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU | ||
| 8 | UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0GCSqG | ||
| 9 | SIb3DQEBAQUABEBcWwYFHJbJGhiztt7lzue3Lc9CH5WAbyR+2BZ3uv+JxZfRs1PuaWPOwRa0Vgs3 | ||
| 10 | YwSJoRfxQj2Gk0wFqG1qt6d1MIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIAoAQI8vRlP/Nx | ||
| 11 | 2iSggASCAZhR5srxyspy7DfomRJ9ff8eMCtaNwEoEx7G25PZRonC57hBvGoScLtEPU3Wp9FEbPN7 | ||
| 12 | oJESeC+AqMTyTLNy8aQsyC5s53E9UkoIvg62ekYZBbXZqXsrxx4PhiiX3NH8GVh42phB0Chjw0nK | ||
| 13 | HZeRDmxGY3Cmk+J+l0uVKxbNIfJIKOguLBnhqmnKH/PrnzDt591u0ULy2aTLqRm+4/1Yat/QPb6J | ||
| 14 | eoKGwNPBbS9ogBdrCNCp9ZFg3Xar2AtQHzyTQIfYeH3SRQUpKmRm5U5o9p5emgEdT+ZfJm/J4tSH | ||
| 15 | OmbgAFsbHQakA4MBZ4J5qfDJhOA2g5lWk1hIeu5Dn/AaLRZd0yz3oY0Ieo/erPWx/bCqtBzYbMe9 | ||
| 16 | qSFTedKlbc9EGe3opOTdBZVzK8KH3w3zsy5luxKdOUG59YYb5F1IZiWGiDyuo/HuacX+griu5LeD | ||
| 17 | bEzOtZnko+TZXvWIko30fD79j3T4MRRhWXbgj2HKza+4vJ0mzcC/1+GPsJjAEAA/JgIEDU4w6/DI | ||
| 18 | /HQHhLAO3G+9xKD7MvmrzkoAAAAAAAAAAAAA | ||
| 19 | |||
| 20 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-e.pem b/src/lib/libcrypto/pkcs7/t/msie-e.pem deleted file mode 100644 index a2a5e24e74..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-e.pem +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | MIAGCSqGSIb3DQEHA6CAMIIDkAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ | ||
| 3 | bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT | ||
| 4 | aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ | ||
| 5 | uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQIzO7zLBD+pls7xwAYxEEX6Y+u6/f4O9 | ||
| 6 | v1pY1naTyeNSCoXqZx2FUHYyQZywbeZ6ZFckGLG8xhZWRTeorhlW4qwwgfACAQAw | ||
| 7 | gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH | ||
| 8 | EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT | ||
| 9 | GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW | ||
| 10 | QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQFxbBgUclskaGLO23uXO57ctz0If | ||
| 11 | lYBvJH7YFne6/4nFl9GzU+5pY87BFrRWCzdjBImhF/FCPYaTTAWobWq3p3UwggHD | ||
| 12 | BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECPL0ZT/zcdokgIIBmFHmyvHK | ||
| 13 | ynLsN+iZEn19/x4wK1o3ASgTHsbbk9lGicLnuEG8ahJwu0Q9Tdan0URs83ugkRJ4 | ||
| 14 | L4CoxPJMs3LxpCzILmzncT1SSgi+DrZ6RhkFtdmpeyvHHg+GKJfc0fwZWHjamEHQ | ||
| 15 | KGPDScodl5EObEZjcKaT4n6XS5UrFs0h8kgo6C4sGeGqacof8+ufMO3n3W7RQvLZ | ||
| 16 | pMupGb7j/Vhq39A9vol6gobA08FtL2iAF2sI0Kn1kWDddqvYC1AfPJNAh9h4fdJF | ||
| 17 | BSkqZGblTmj2nl6aAR1P5l8mb8ni1Ic6ZuAAWxsdBqQDgwFngnmp8MmE4DaDmVaT | ||
| 18 | WEh67kOf8BotFl3TLPehjQh6j96s9bH9sKq0HNhsx72pIVN50qVtz0QZ7eik5N0F | ||
| 19 | lXMrwoffDfOzLmW7Ep05Qbn1hhvkXUhmJYaIPK6j8e5pxf6CuK7kt4NsTM61meSj | ||
| 20 | 5Nle9YiSjfR8Pv2PdPgxFGFZduCPYcrNr7i8nSbNwL/X4Y+wmMAQAD8mAgQNTjDr | ||
| 21 | 8Mj8dAeEsA7cb73EoPsy+avOSgAAAAA= | ||
| 22 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-enc-01 b/src/lib/libcrypto/pkcs7/t/msie-enc-01 deleted file mode 100644 index 2c93ab6462..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-enc-01 +++ /dev/null | |||
| @@ -1,62 +0,0 @@ | |||
| 1 | |||
| 2 | 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 | ||
| 61 | AAAAAAAAAAAA | ||
| 62 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-enc-01.pem b/src/lib/libcrypto/pkcs7/t/msie-enc-01.pem deleted file mode 100644 index 9abf00b2f2..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-enc-01.pem +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | 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 | ||
| 65 | 6RLfsTyyPgJi0GsAAAAA | ||
| 66 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-enc-02 b/src/lib/libcrypto/pkcs7/t/msie-enc-02 deleted file mode 100644 index 7017055965..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-enc-02 +++ /dev/null | |||
| @@ -1,90 +0,0 @@ | |||
| 1 | |||
| 2 | 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 | ||
| 89 | rZgAAAAAAAAAAAAA | ||
| 90 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-enc-02.pem b/src/lib/libcrypto/pkcs7/t/msie-enc-02.pem deleted file mode 100644 index 279c5d830b..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-enc-02.pem +++ /dev/null | |||
| @@ -1,106 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | MIAGCSqGSIb3DQEHA6CAMIITQAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ | ||
| 3 | bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT | ||
| 4 | aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ | ||
| 5 | uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQAKvi2eRLO+jdoiUd8ksZt+iQ0JXoWN0 | ||
| 6 | M/W9CEv6R1c42pwUIR/1F4RMK9oeyUiv9Z6lzmPaGNmx6XOCoueszVkwgfACAQAw | ||
| 7 | gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH | ||
| 8 | EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT | ||
| 9 | GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW | ||
| 10 | QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQFqcHEo69ShGfcOIVjnmWXLZM+7Y | ||
| 11 | K/50j8YuvNbqq+dQxk9YY8ZpSU/JYsxmtcnEZdlSJEkpMHAO73V+eh1QQr0wghFz | ||
| 12 | BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECJsSmRA1jxLjgIIRSIGLVtf+ | ||
| 13 | pzeB6oXJ9GlfsnIij+DgIOvrYaXC9qywAaUg7zMnln9QMgiih5XpBLgPg5Y/KYp3 | ||
| 14 | RZeHBwkjTIFwlNYSjE0PbsszsJYUmkDTsCjFUJEdM4+Cbv3g3Kct5w1Q6pVMXJLg | ||
| 15 | JG4uFUY8CTScVkb9ETbIy3HisCRKJWA57ERLvCr/Fa6gNJKa5Mw1A5Nsp+QQqp0U | ||
| 16 | uQz93raAPbCdqmHu8qQ88rzbB1k/ysXedRQLlzhqFs2hryD7kHe0gX8nPdlkre8Y | ||
| 17 | tTQhY76LtbjnV2drXcyCUMONc56KQ2VcuxB0BWjSeyN8a75/rpt6wmiM/PKw0D4g | ||
| 18 | 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 | ||
| 105 | FK2YAAAAAA== | ||
| 106 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-s-a-e b/src/lib/libcrypto/pkcs7/t/msie-s-a-e deleted file mode 100644 index 0067794d70..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-s-a-e +++ /dev/null | |||
| @@ -1,91 +0,0 @@ | |||
| 1 | |||
| 2 | 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 | ||
| 89 | 5ify04ua9/t8SGrYZPm/l3MkAAAAAAAAAAAAAA== | ||
| 90 | |||
| 91 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/msie-s-a-e.pem b/src/lib/libcrypto/pkcs7/t/msie-s-a-e.pem deleted file mode 100644 index 55dbd8f80b..0000000000 --- a/src/lib/libcrypto/pkcs7/t/msie-s-a-e.pem +++ /dev/null | |||
| @@ -1,106 +0,0 @@ | |||
| 1 | -----BEGIN PKCS7----- | ||
| 2 | MIAGCSqGSIb3DQEHA6CAMIITUAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ | ||
| 3 | bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT | ||
| 4 | aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ | ||
| 5 | uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQKOxxpIbRTb31+qIQCBOpMVAGnwCLrPO | ||
| 6 | OXnntxVveTrPhBnsJuoGNJcCMtuHl7tLkd38WsVwOfGXUprTqFpUcY8wgfACAQAw | ||
| 7 | gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH | ||
| 8 | EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT | ||
| 9 | GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW | ||
| 10 | QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQKzIddnXFqK/RRBG86ZVixoXfwAv | ||
| 11 | ZdfvnDFsKzPn/A6DuDdE/hqJxnFpHiwGiDR/YbWj2ib+G74DSshgX8vj8ZQwghGD | ||
| 12 | BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECLKM0K58I3HNgIIRWBDP8s+g | ||
| 13 | l7/6JhZ5PBJ5vPpD1R4pnNDZRabsYu0Qzezdz1IK+maTAhF0SEuNZoEkzIgOIvu3 | ||
| 14 | UjW8x/2KcHwteABwgRiSk1JyNLwRED0RtvuJ40pIGDvDsHwBMcXEtKUMAOpGChms | ||
| 15 | HUK1+B/GKancSDFOCeG3JCFnFdbuQFDIVHC6amWslc6ntqVs/sii2Gs4qdzDfQgl | ||
| 16 | PV/A/FY0wi0j2O5cXRQJtZVKM/MYGjj5c1cy9Q7oymU5ATP/LARD0Tw5kBB7HVnD | ||
| 17 | 2qrmmmxcHakyxhXmwskaKS6Qxgqq6LPdgr603onxqEtwNSz5UbCq9mLXuCkFOVsQ | ||
| 18 | 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 | ||
| 105 | 7OYn8tOLmvf7fEhq2GT5v5dzJAAAAAA= | ||
| 106 | -----END PKCS7----- | ||
diff --git a/src/lib/libcrypto/pkcs7/t/nav-smime b/src/lib/libcrypto/pkcs7/t/nav-smime deleted file mode 100644 index 6ee4b597a1..0000000000 --- a/src/lib/libcrypto/pkcs7/t/nav-smime +++ /dev/null | |||
| @@ -1,157 +0,0 @@ | |||
| 1 | From angela@c2.net.au Thu May 14 13:32:27 1998 | ||
| 2 | X-UIDL: 83c94dd550e54329bf9571b72038b8c8 | ||
| 3 | Return-Path: angela@c2.net.au | ||
| 4 | Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id NAA27838 for <tjh@cryptsoft.com>; Thu, 14 May 1998 13:32:26 +1000 (EST) | ||
| 5 | Message-ID: <355A6779.4B63E64C@cryptsoft.com> | ||
| 6 | Date: Thu, 14 May 1998 13:39:37 +1000 | ||
| 7 | From: Angela van Lent <angela@c2.net.au> | ||
| 8 | X-Mailer: Mozilla 4.03 [en] (Win95; U) | ||
| 9 | MIME-Version: 1.0 | ||
| 10 | To: tjh@cryptsoft.com | ||
| 11 | Subject: signed | ||
| 12 | Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms9A58844C95949ECC78A1C54C" | ||
| 13 | Content-Length: 2604 | ||
| 14 | Status: OR | ||
| 15 | |||
| 16 | This is a cryptographically signed message in MIME format. | ||
| 17 | |||
| 18 | --------------ms9A58844C95949ECC78A1C54C | ||
| 19 | Content-Type: text/plain; charset=us-ascii | ||
| 20 | Content-Transfer-Encoding: 7bit | ||
| 21 | |||
| 22 | signed body | ||
| 23 | |||
| 24 | --------------ms9A58844C95949ECC78A1C54C | ||
| 25 | Content-Type: application/x-pkcs7-signature; name="smime.p7s" | ||
| 26 | Content-Transfer-Encoding: base64 | ||
| 27 | Content-Disposition: attachment; filename="smime.p7s" | ||
| 28 | Content-Description: S/MIME Cryptographic Signature | ||
| 29 | |||
| 30 | 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 | ||
| 59 | 9CWR6g== | ||
| 60 | --------------ms9A58844C95949ECC78A1C54C-- | ||
| 61 | |||
| 62 | |||
| 63 | From angela@c2.net.au Thu May 14 13:33:16 1998 | ||
| 64 | X-UIDL: 8f076c44ff7c5967fd5b00c4588a8731 | ||
| 65 | Return-Path: angela@c2.net.au | ||
| 66 | Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id NAA27847 for <tjh@cryptsoft.com>; Thu, 14 May 1998 13:33:15 +1000 (EST) | ||
| 67 | Message-ID: <355A67AB.2AF38806@cryptsoft.com> | ||
| 68 | Date: Thu, 14 May 1998 13:40:27 +1000 | ||
| 69 | From: Angela van Lent <angela@c2.net.au> | ||
| 70 | X-Mailer: Mozilla 4.03 [en] (Win95; U) | ||
| 71 | MIME-Version: 1.0 | ||
| 72 | To: tjh@cryptsoft.com | ||
| 73 | Subject: signed | ||
| 74 | Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------msD7863B84BD61E02C407F2F5E" | ||
| 75 | Content-Length: 2679 | ||
| 76 | Status: OR | ||
| 77 | |||
| 78 | This is a cryptographically signed message in MIME format. | ||
| 79 | |||
| 80 | --------------msD7863B84BD61E02C407F2F5E | ||
| 81 | Content-Type: text/plain; charset=us-ascii | ||
| 82 | Content-Transfer-Encoding: 7bit | ||
| 83 | |||
| 84 | signed body 2 | ||
| 85 | |||
| 86 | --------------msD7863B84BD61E02C407F2F5E | ||
| 87 | Content-Type: application/x-pkcs7-signature; name="smime.p7s" | ||
| 88 | Content-Transfer-Encoding: base64 | ||
| 89 | Content-Disposition: attachment; filename="smime.p7s" | ||
| 90 | Content-Description: S/MIME Cryptographic Signature | ||
| 91 | |||
| 92 | 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 | ||
| 122 | Zp8SSVVY | ||
| 123 | --------------msD7863B84BD61E02C407F2F5E-- | ||
| 124 | |||
| 125 | |||
| 126 | From angela@c2.net.au Thu May 14 14:05:32 1998 | ||
| 127 | X-UIDL: a7d629b4b9acacaee8b39371b860a32a | ||
| 128 | Return-Path: angela@c2.net.au | ||
| 129 | Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id OAA28033 for <tjh@cryptsoft.com>; Thu, 14 May 1998 14:05:32 +1000 (EST) | ||
| 130 | Message-ID: <355A6F3B.AC385981@cryptsoft.com> | ||
| 131 | Date: Thu, 14 May 1998 14:12:43 +1000 | ||
| 132 | From: Angela van Lent <angela@c2.net.au> | ||
| 133 | X-Mailer: Mozilla 4.03 [en] (Win95; U) | ||
| 134 | MIME-Version: 1.0 | ||
| 135 | To: tjh@cryptsoft.com | ||
| 136 | Subject: encrypted | ||
| 137 | Content-Type: application/x-pkcs7-mime; name="smime.p7m" | ||
| 138 | Content-Transfer-Encoding: base64 | ||
| 139 | Content-Disposition: attachment; filename="smime.p7m" | ||
| 140 | Content-Description: S/MIME Encrypted Message | ||
| 141 | Content-Length: 905 | ||
| 142 | Status: OR | ||
| 143 | |||
| 144 | MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG | ||
| 145 | A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 146 | dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD | ||
| 147 | ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEA92N29Yk39RUY2tIVd | ||
| 148 | exGT2MFX3J6H8LB8aDRJjw7843ALgJ5zXpM5+f80QkAWwEN2A6Pl3VxiCeKLi435zXVyMIHw | ||
| 149 | AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI | ||
| 150 | QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU | ||
| 151 | UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0G | ||
| 152 | CSqGSIb3DQEBAQUABECR9IfyHtvnjFmZ8B2oUCEs1vxMsG0u1kxKE4RMPFyDqDCEARq7zXMg | ||
| 153 | nzSUI7Wgv5USSKDqcLRJeW+jvYURv/nJMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA | ||
| 154 | oAQIrLqrij2ZMpeggAQoibtn6reRZWuWk5Iv5IAhgitr8EYE4w4ySQ7EMB6mTlBoFpccUMWX | ||
| 155 | BwQgQn1UoWCvYAlhDzURdbui64Dc0rS2wtj+kE/InS6y25EEEPe4NUKaF8/UlE+lo3LtILQE | ||
| 156 | CL3uV8k7m0iqAAAAAAAAAAAAAA== | ||
| 157 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/s.pem b/src/lib/libcrypto/pkcs7/t/s.pem deleted file mode 100644 index 4fa925b182..0000000000 --- a/src/lib/libcrypto/pkcs7/t/s.pem +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | -----BEGIN RSA PRIVATE KEY----- | ||
| 2 | MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 | ||
| 3 | mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG | ||
| 4 | fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ | ||
| 5 | zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 | ||
| 6 | p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b | ||
| 7 | bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk | ||
| 8 | IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG | ||
| 9 | -----END RSA PRIVATE KEY----- | ||
| 10 | issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA | ||
| 11 | subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com | ||
| 12 | serial :047D | ||
| 13 | |||
| 14 | Certificate: | ||
| 15 | Data: | ||
| 16 | Version: 3 (0x2) | ||
| 17 | Serial Number: 1149 (0x47d) | ||
| 18 | Signature Algorithm: md5withRSAEncryption | ||
| 19 | Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA | ||
| 20 | Validity | ||
| 21 | Not Before: May 13 05:40:58 1998 GMT | ||
| 22 | Not After : May 12 05:40:58 2000 GMT | ||
| 23 | Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com | ||
| 24 | Subject Public Key Info: | ||
| 25 | Public Key Algorithm: rsaEncryption | ||
| 26 | Modulus: | ||
| 27 | 00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: | ||
| 28 | 73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: | ||
| 29 | 89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: | ||
| 30 | fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: | ||
| 31 | e7:e7:0c:4d:0b | ||
| 32 | Exponent: 65537 (0x10001) | ||
| 33 | X509v3 extensions: | ||
| 34 | Netscape Comment: | ||
| 35 | Generated with SSLeay | ||
| 36 | Signature Algorithm: md5withRSAEncryption | ||
| 37 | 52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: | ||
| 38 | f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: | ||
| 39 | d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: | ||
| 40 | 50:74:ad:92:cb:4e:90:e5:fa:7d | ||
| 41 | |||
| 42 | -----BEGIN CERTIFICATE----- | ||
| 43 | MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV | ||
| 44 | MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE | ||
| 45 | ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E | ||
| 46 | IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw | ||
| 47 | NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK | ||
| 48 | UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 49 | dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 | ||
| 50 | aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG | ||
| 51 | 9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf | ||
| 52 | lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB | ||
| 53 | hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA | ||
| 54 | UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 | ||
| 55 | 4A3ZItobUHStkstOkOX6fQ== | ||
| 56 | -----END CERTIFICATE----- | ||
| 57 | |||
diff --git a/src/lib/libcrypto/pkcs7/t/server.pem b/src/lib/libcrypto/pkcs7/t/server.pem deleted file mode 100644 index 989baf8709..0000000000 --- a/src/lib/libcrypto/pkcs7/t/server.pem +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA | ||
| 2 | subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com | ||
| 3 | serial :047D | ||
| 4 | |||
| 5 | Certificate: | ||
| 6 | Data: | ||
| 7 | Version: 3 (0x2) | ||
| 8 | Serial Number: 1149 (0x47d) | ||
| 9 | Signature Algorithm: md5withRSAEncryption | ||
| 10 | Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA | ||
| 11 | Validity | ||
| 12 | Not Before: May 13 05:40:58 1998 GMT | ||
| 13 | Not After : May 12 05:40:58 2000 GMT | ||
| 14 | Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com | ||
| 15 | Subject Public Key Info: | ||
| 16 | Public Key Algorithm: rsaEncryption | ||
| 17 | Modulus: | ||
| 18 | 00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: | ||
| 19 | 73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: | ||
| 20 | 89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: | ||
| 21 | fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: | ||
| 22 | e7:e7:0c:4d:0b | ||
| 23 | Exponent: 65537 (0x10001) | ||
| 24 | X509v3 extensions: | ||
| 25 | Netscape Comment: | ||
| 26 | Generated with SSLeay | ||
| 27 | Signature Algorithm: md5withRSAEncryption | ||
| 28 | 52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: | ||
| 29 | f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: | ||
| 30 | d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: | ||
| 31 | 50:74:ad:92:cb:4e:90:e5:fa:7d | ||
| 32 | |||
| 33 | -----BEGIN CERTIFICATE----- | ||
| 34 | MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV | ||
| 35 | MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE | ||
| 36 | ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E | ||
| 37 | IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw | ||
| 38 | NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK | ||
| 39 | UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m | ||
| 40 | dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 | ||
| 41 | aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG | ||
| 42 | 9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf | ||
| 43 | lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB | ||
| 44 | hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA | ||
| 45 | UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 | ||
| 46 | 4A3ZItobUHStkstOkOX6fQ== | ||
| 47 | -----END CERTIFICATE----- | ||
| 48 | |||
| 49 | -----BEGIN RSA PRIVATE KEY----- | ||
| 50 | MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 | ||
| 51 | mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG | ||
| 52 | fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ | ||
| 53 | zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 | ||
| 54 | p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b | ||
| 55 | bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk | ||
| 56 | IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG | ||
| 57 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libcrypto/pkcs7/verify.c b/src/lib/libcrypto/pkcs7/verify.c deleted file mode 100644 index b40f26032e..0000000000 --- a/src/lib/libcrypto/pkcs7/verify.c +++ /dev/null | |||
| @@ -1,263 +0,0 @@ | |||
| 1 | /* crypto/pkcs7/verify.c */ | ||
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
| 3 | * All rights reserved. | ||
| 4 | * | ||
| 5 | * This package is an SSL implementation written | ||
| 6 | * by Eric Young (eay@cryptsoft.com). | ||
| 7 | * The implementation was written so as to conform with Netscapes SSL. | ||
| 8 | * | ||
| 9 | * This library is free for commercial and non-commercial use as long as | ||
| 10 | * the following conditions are aheared to. The following conditions | ||
| 11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
| 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
| 13 | * included with this distribution is covered by the same copyright terms | ||
| 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
| 15 | * | ||
| 16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
| 17 | * the code are not to be removed. | ||
| 18 | * If this package is used in a product, Eric Young should be given attribution | ||
| 19 | * as the author of the parts of the library used. | ||
| 20 | * This can be in the form of a textual message at program startup or | ||
| 21 | * in documentation (online or textual) provided with the package. | ||
| 22 | * | ||
| 23 | * Redistribution and use in source and binary forms, with or without | ||
| 24 | * modification, are permitted provided that the following conditions | ||
| 25 | * are met: | ||
| 26 | * 1. Redistributions of source code must retain the copyright | ||
| 27 | * notice, this list of conditions and the following disclaimer. | ||
| 28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 29 | * notice, this list of conditions and the following disclaimer in the | ||
| 30 | * documentation and/or other materials provided with the distribution. | ||
| 31 | * 3. All advertising materials mentioning features or use of this software | ||
| 32 | * must display the following acknowledgement: | ||
| 33 | * "This product includes cryptographic software written by | ||
| 34 | * Eric Young (eay@cryptsoft.com)" | ||
| 35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
| 36 | * being used are not cryptographic related :-). | ||
| 37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
| 38 | * the apps directory (application code) you must include an acknowledgement: | ||
| 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
| 40 | * | ||
| 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
| 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| 45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 51 | * SUCH DAMAGE. | ||
| 52 | * | ||
| 53 | * The licence and distribution terms for any publically available version or | ||
| 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
| 55 | * copied and put under another distribution licence | ||
| 56 | * [including the GNU Public Licence.] | ||
| 57 | */ | ||
| 58 | #include <stdio.h> | ||
| 59 | #include <string.h> | ||
| 60 | #include <openssl/bio.h> | ||
| 61 | #include <openssl/asn1.h> | ||
| 62 | #include <openssl/x509.h> | ||
| 63 | #include <openssl/pem.h> | ||
| 64 | #include <openssl/err.h> | ||
| 65 | #include "example.h" | ||
| 66 | |||
| 67 | int verify_callback(int ok, X509_STORE_CTX *ctx); | ||
| 68 | |||
| 69 | BIO *bio_err=NULL; | ||
| 70 | BIO *bio_out=NULL; | ||
| 71 | |||
| 72 | int main(argc,argv) | ||
| 73 | int argc; | ||
| 74 | char *argv[]; | ||
| 75 | { | ||
| 76 | PKCS7 *p7; | ||
| 77 | PKCS7_SIGNER_INFO *si; | ||
| 78 | X509_STORE_CTX cert_ctx; | ||
| 79 | X509_STORE *cert_store=NULL; | ||
| 80 | BIO *data,*detached=NULL,*p7bio=NULL; | ||
| 81 | char buf[1024*4]; | ||
| 82 | char *pp; | ||
| 83 | int i,printit=0; | ||
| 84 | STACK_OF(PKCS7_SIGNER_INFO) *sk; | ||
| 85 | |||
| 86 | bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); | ||
| 87 | bio_out=BIO_new_fp(stdout,BIO_NOCLOSE); | ||
| 88 | #ifndef OPENSSL_NO_MD2 | ||
| 89 | EVP_add_digest(EVP_md2()); | ||
| 90 | #endif | ||
| 91 | #ifndef OPENSSL_NO_MD5 | ||
| 92 | EVP_add_digest(EVP_md5()); | ||
| 93 | #endif | ||
| 94 | #ifndef OPENSSL_NO_SHA1 | ||
| 95 | EVP_add_digest(EVP_sha1()); | ||
| 96 | #endif | ||
| 97 | #ifndef OPENSSL_NO_MDC2 | ||
| 98 | EVP_add_digest(EVP_mdc2()); | ||
| 99 | #endif | ||
| 100 | |||
| 101 | data=BIO_new(BIO_s_file()); | ||
| 102 | |||
| 103 | pp=NULL; | ||
| 104 | while (argc > 1) | ||
| 105 | { | ||
| 106 | argc--; | ||
| 107 | argv++; | ||
| 108 | if (strcmp(argv[0],"-p") == 0) | ||
| 109 | { | ||
| 110 | printit=1; | ||
| 111 | } | ||
| 112 | else if ((strcmp(argv[0],"-d") == 0) && (argc >= 2)) | ||
| 113 | { | ||
| 114 | detached=BIO_new(BIO_s_file()); | ||
| 115 | if (!BIO_read_filename(detached,argv[1])) | ||
| 116 | goto err; | ||
| 117 | argc--; | ||
| 118 | argv++; | ||
| 119 | } | ||
| 120 | else | ||
| 121 | { | ||
| 122 | pp=argv[0]; | ||
| 123 | if (!BIO_read_filename(data,argv[0])) | ||
| 124 | goto err; | ||
| 125 | } | ||
| 126 | } | ||
| 127 | |||
| 128 | if (pp == NULL) | ||
| 129 | BIO_set_fp(data,stdin,BIO_NOCLOSE); | ||
| 130 | |||
| 131 | |||
| 132 | /* Load the PKCS7 object from a file */ | ||
| 133 | if ((p7=PEM_read_bio_PKCS7(data,NULL,NULL,NULL)) == NULL) goto err; | ||
| 134 | |||
| 135 | /* This stuff is being setup for certificate verification. | ||
| 136 | * When using SSL, it could be replaced with a | ||
| 137 | * cert_stre=SSL_CTX_get_cert_store(ssl_ctx); */ | ||
| 138 | cert_store=X509_STORE_new(); | ||
| 139 | X509_STORE_set_default_paths(cert_store); | ||
| 140 | X509_STORE_load_locations(cert_store,NULL,"../../certs"); | ||
| 141 | X509_STORE_set_verify_cb_func(cert_store,verify_callback); | ||
| 142 | |||
| 143 | ERR_clear_error(); | ||
| 144 | |||
| 145 | /* We need to process the data */ | ||
| 146 | if ((PKCS7_get_detached(p7) || detached)) | ||
| 147 | { | ||
| 148 | if (detached == NULL) | ||
| 149 | { | ||
| 150 | printf("no data to verify the signature on\n"); | ||
| 151 | exit(1); | ||
| 152 | } | ||
| 153 | else | ||
| 154 | p7bio=PKCS7_dataInit(p7,detached); | ||
| 155 | } | ||
| 156 | else | ||
| 157 | { | ||
| 158 | p7bio=PKCS7_dataInit(p7,NULL); | ||
| 159 | } | ||
| 160 | |||
| 161 | /* We now have to 'read' from p7bio to calculate digests etc. */ | ||
| 162 | for (;;) | ||
| 163 | { | ||
| 164 | i=BIO_read(p7bio,buf,sizeof(buf)); | ||
| 165 | /* print it? */ | ||
| 166 | if (i <= 0) break; | ||
| 167 | } | ||
| 168 | |||
| 169 | /* We can now verify signatures */ | ||
| 170 | sk=PKCS7_get_signer_info(p7); | ||
| 171 | if (sk == NULL) | ||
| 172 | { | ||
| 173 | printf("there are no signatures on this data\n"); | ||
| 174 | exit(1); | ||
| 175 | } | ||
| 176 | |||
| 177 | /* Ok, first we need to, for each subject entry, see if we can verify */ | ||
| 178 | for (i=0; i<sk_PKCS7_SIGNER_INFO_num(sk); i++) | ||
| 179 | { | ||
| 180 | ASN1_UTCTIME *tm; | ||
| 181 | char *str1,*str2; | ||
| 182 | int rc; | ||
| 183 | |||
| 184 | si=sk_PKCS7_SIGNER_INFO_value(sk,i); | ||
| 185 | rc=PKCS7_dataVerify(cert_store,&cert_ctx,p7bio,p7,si); | ||
| 186 | if (rc <= 0) | ||
| 187 | goto err; | ||
| 188 | printf("signer info\n"); | ||
| 189 | if ((tm=get_signed_time(si)) != NULL) | ||
| 190 | { | ||
| 191 | BIO_printf(bio_out,"Signed time:"); | ||
| 192 | ASN1_UTCTIME_print(bio_out,tm); | ||
| 193 | ASN1_UTCTIME_free(tm); | ||
| 194 | BIO_printf(bio_out,"\n"); | ||
| 195 | } | ||
| 196 | if (get_signed_seq2string(si,&str1,&str2)) | ||
| 197 | { | ||
| 198 | BIO_printf(bio_out,"String 1 is %s\n",str1); | ||
| 199 | BIO_printf(bio_out,"String 2 is %s\n",str2); | ||
| 200 | } | ||
| 201 | |||
| 202 | } | ||
| 203 | |||
| 204 | X509_STORE_free(cert_store); | ||
| 205 | |||
| 206 | printf("done\n"); | ||
| 207 | exit(0); | ||
| 208 | err: | ||
| 209 | ERR_load_crypto_strings(); | ||
| 210 | ERR_print_errors_fp(stderr); | ||
| 211 | exit(1); | ||
| 212 | } | ||
| 213 | |||
| 214 | /* should be X509 * but we can just have them as char *. */ | ||
| 215 | int verify_callback(int ok, X509_STORE_CTX *ctx) | ||
| 216 | { | ||
| 217 | char buf[256]; | ||
| 218 | X509 *err_cert; | ||
| 219 | int err,depth; | ||
| 220 | |||
| 221 | err_cert=X509_STORE_CTX_get_current_cert(ctx); | ||
| 222 | err= X509_STORE_CTX_get_error(ctx); | ||
| 223 | depth= X509_STORE_CTX_get_error_depth(ctx); | ||
| 224 | |||
| 225 | X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256); | ||
| 226 | BIO_printf(bio_err,"depth=%d %s\n",depth,buf); | ||
| 227 | if (!ok) | ||
| 228 | { | ||
| 229 | BIO_printf(bio_err,"verify error:num=%d:%s\n",err, | ||
| 230 | X509_verify_cert_error_string(err)); | ||
| 231 | if (depth < 6) | ||
| 232 | { | ||
| 233 | ok=1; | ||
| 234 | X509_STORE_CTX_set_error(ctx,X509_V_OK); | ||
| 235 | } | ||
| 236 | else | ||
| 237 | { | ||
| 238 | ok=0; | ||
| 239 | X509_STORE_CTX_set_error(ctx,X509_V_ERR_CERT_CHAIN_TOO_LONG); | ||
| 240 | } | ||
| 241 | } | ||
| 242 | switch (ctx->error) | ||
| 243 | { | ||
| 244 | case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: | ||
| 245 | X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,256); | ||
| 246 | BIO_printf(bio_err,"issuer= %s\n",buf); | ||
| 247 | break; | ||
| 248 | case X509_V_ERR_CERT_NOT_YET_VALID: | ||
| 249 | case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: | ||
| 250 | BIO_printf(bio_err,"notBefore="); | ||
| 251 | ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); | ||
| 252 | BIO_printf(bio_err,"\n"); | ||
| 253 | break; | ||
| 254 | case X509_V_ERR_CERT_HAS_EXPIRED: | ||
| 255 | case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: | ||
| 256 | BIO_printf(bio_err,"notAfter="); | ||
| 257 | ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); | ||
| 258 | BIO_printf(bio_err,"\n"); | ||
| 259 | break; | ||
| 260 | } | ||
| 261 | BIO_printf(bio_err,"verify return:%d\n",ok); | ||
| 262 | return(ok); | ||
| 263 | } | ||
