diff options
author | beck <> | 1999-09-29 04:37:45 +0000 |
---|---|---|
committer | beck <> | 1999-09-29 04:37:45 +0000 |
commit | de8f24ea083384bb66b32ec105dc4743c5663cdf (patch) | |
tree | 1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/asn1/p7_signd.c | |
parent | cb929d29896bcb87c2a97417fbd03e50078fc178 (diff) | |
download | openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2 openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip |
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/asn1/p7_signd.c')
-rw-r--r-- | src/lib/libcrypto/asn1/p7_signd.c | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/src/lib/libcrypto/asn1/p7_signd.c b/src/lib/libcrypto/asn1/p7_signd.c index 40f9a44fa8..74f0f522e1 100644 --- a/src/lib/libcrypto/asn1/p7_signd.c +++ b/src/lib/libcrypto/asn1/p7_signd.c | |||
@@ -58,83 +58,78 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
61 | #include "asn1_mac.h" | 61 | #include <openssl/asn1_mac.h> |
62 | #include "x509.h" | 62 | #include <openssl/x509.h> |
63 | 63 | ||
64 | /* | 64 | int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **pp) |
65 | * ASN1err(ASN1_F_PKCS7_SIGNED_NEW,ASN1_R_LENGTH_MISMATCH); | ||
66 | * ASN1err(ASN1_F_D2I_PKCS7_SIGNED,ASN1_R_LENGTH_MISMATCH); | ||
67 | */ | ||
68 | |||
69 | int i2d_PKCS7_SIGNED(a,pp) | ||
70 | PKCS7_SIGNED *a; | ||
71 | unsigned char **pp; | ||
72 | { | 65 | { |
73 | M_ASN1_I2D_vars(a); | 66 | M_ASN1_I2D_vars(a); |
74 | 67 | ||
75 | M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER); | 68 | M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER); |
76 | M_ASN1_I2D_len_SET(a->md_algs,i2d_X509_ALGOR); | 69 | M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR); |
77 | M_ASN1_I2D_len(a->contents,i2d_PKCS7); | 70 | M_ASN1_I2D_len(a->contents,i2d_PKCS7); |
78 | M_ASN1_I2D_len_IMP_set_opt(a->cert,i2d_X509,0); | 71 | M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0); |
79 | M_ASN1_I2D_len_IMP_set_opt(a->crl,i2d_X509_CRL,1); | 72 | M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1); |
80 | M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO); | 73 | M_ASN1_I2D_len_SET_type(PKCS7_SIGNER_INFO,a->signer_info, |
74 | i2d_PKCS7_SIGNER_INFO); | ||
81 | 75 | ||
82 | M_ASN1_I2D_seq_total(); | 76 | M_ASN1_I2D_seq_total(); |
83 | 77 | ||
84 | M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER); | 78 | M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER); |
85 | M_ASN1_I2D_put_SET(a->md_algs,i2d_X509_ALGOR); | 79 | M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR); |
86 | M_ASN1_I2D_put(a->contents,i2d_PKCS7); | 80 | M_ASN1_I2D_put(a->contents,i2d_PKCS7); |
87 | M_ASN1_I2D_put_IMP_set_opt(a->cert,i2d_X509,0); | 81 | M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0); |
88 | M_ASN1_I2D_put_IMP_set_opt(a->crl,i2d_X509_CRL,1); | 82 | M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1); |
89 | M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO); | 83 | M_ASN1_I2D_put_SET_type(PKCS7_SIGNER_INFO,a->signer_info, |
84 | i2d_PKCS7_SIGNER_INFO); | ||
90 | 85 | ||
91 | M_ASN1_I2D_finish(); | 86 | M_ASN1_I2D_finish(); |
92 | } | 87 | } |
93 | 88 | ||
94 | PKCS7_SIGNED *d2i_PKCS7_SIGNED(a,pp,length) | 89 | PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, unsigned char **pp, |
95 | PKCS7_SIGNED **a; | 90 | long length) |
96 | unsigned char **pp; | ||
97 | long length; | ||
98 | { | 91 | { |
99 | M_ASN1_D2I_vars(a,PKCS7_SIGNED *,PKCS7_SIGNED_new); | 92 | M_ASN1_D2I_vars(a,PKCS7_SIGNED *,PKCS7_SIGNED_new); |
100 | 93 | ||
101 | M_ASN1_D2I_Init(); | 94 | M_ASN1_D2I_Init(); |
102 | M_ASN1_D2I_start_sequence(); | 95 | M_ASN1_D2I_start_sequence(); |
103 | M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER); | 96 | M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER); |
104 | M_ASN1_D2I_get_set(ret->md_algs,d2i_X509_ALGOR); | 97 | M_ASN1_D2I_get_set_type(X509_ALGOR,ret->md_algs,d2i_X509_ALGOR, |
98 | X509_ALGOR_free); | ||
105 | M_ASN1_D2I_get(ret->contents,d2i_PKCS7); | 99 | M_ASN1_D2I_get(ret->contents,d2i_PKCS7); |
106 | M_ASN1_D2I_get_IMP_set_opt(ret->cert,d2i_X509,0); | 100 | M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0); |
107 | M_ASN1_D2I_get_IMP_set_opt(ret->crl,d2i_X509_CRL,1); | 101 | M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL, |
108 | M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO); | 102 | X509_CRL_free,1); |
103 | M_ASN1_D2I_get_set_type(PKCS7_SIGNER_INFO,ret->signer_info, | ||
104 | d2i_PKCS7_SIGNER_INFO,PKCS7_SIGNER_INFO_free); | ||
109 | 105 | ||
110 | M_ASN1_D2I_Finish(a,PKCS7_SIGNED_free,ASN1_F_D2I_PKCS7_SIGNED); | 106 | M_ASN1_D2I_Finish(a,PKCS7_SIGNED_free,ASN1_F_D2I_PKCS7_SIGNED); |
111 | } | 107 | } |
112 | 108 | ||
113 | PKCS7_SIGNED *PKCS7_SIGNED_new() | 109 | PKCS7_SIGNED *PKCS7_SIGNED_new(void) |
114 | { | 110 | { |
115 | PKCS7_SIGNED *ret=NULL; | 111 | PKCS7_SIGNED *ret=NULL; |
112 | ASN1_CTX c; | ||
116 | 113 | ||
117 | M_ASN1_New_Malloc(ret,PKCS7_SIGNED); | 114 | M_ASN1_New_Malloc(ret,PKCS7_SIGNED); |
118 | M_ASN1_New(ret->version,ASN1_INTEGER_new); | 115 | M_ASN1_New(ret->version,ASN1_INTEGER_new); |
119 | M_ASN1_New(ret->md_algs,sk_new_null); | 116 | M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null); |
120 | M_ASN1_New(ret->contents,PKCS7_new); | 117 | M_ASN1_New(ret->contents,PKCS7_new); |
121 | ret->cert=NULL; | 118 | ret->cert=NULL; |
122 | ret->crl=NULL; | 119 | ret->crl=NULL; |
123 | M_ASN1_New(ret->signer_info,sk_new_null); | 120 | M_ASN1_New(ret->signer_info,sk_PKCS7_SIGNER_INFO_new_null); |
124 | return(ret); | 121 | return(ret); |
125 | M_ASN1_New_Error(ASN1_F_PKCS7_SIGNED_NEW); | 122 | M_ASN1_New_Error(ASN1_F_PKCS7_SIGNED_NEW); |
126 | } | 123 | } |
127 | 124 | ||
128 | void PKCS7_SIGNED_free(a) | 125 | void PKCS7_SIGNED_free(PKCS7_SIGNED *a) |
129 | PKCS7_SIGNED *a; | ||
130 | { | 126 | { |
131 | if (a == NULL) return; | 127 | if (a == NULL) return; |
132 | ASN1_INTEGER_free(a->version); | 128 | ASN1_INTEGER_free(a->version); |
133 | sk_pop_free(a->md_algs,X509_ALGOR_free); | 129 | sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free); |
134 | PKCS7_free(a->contents); | 130 | PKCS7_free(a->contents); |
135 | sk_pop_free(a->cert,X509_free); | 131 | sk_X509_pop_free(a->cert,X509_free); |
136 | sk_pop_free(a->crl,X509_CRL_free); | 132 | sk_X509_CRL_pop_free(a->crl,X509_CRL_free); |
137 | sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free); | 133 | sk_PKCS7_SIGNER_INFO_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free); |
138 | Free((char *)a); | 134 | Free(a); |
139 | } | 135 | } |
140 | |||