summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/p7_signd.c
diff options
context:
space:
mode:
authorbeck <>1999-09-29 04:37:45 +0000
committerbeck <>1999-09-29 04:37:45 +0000
commitde8f24ea083384bb66b32ec105dc4743c5663cdf (patch)
tree1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/asn1/p7_signd.c
parentcb929d29896bcb87c2a97417fbd03e50078fc178 (diff)
downloadopenbsd-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.c69
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/* 64int 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
69int i2d_PKCS7_SIGNED(a,pp)
70PKCS7_SIGNED *a;
71unsigned 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
94PKCS7_SIGNED *d2i_PKCS7_SIGNED(a,pp,length) 89PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, unsigned char **pp,
95PKCS7_SIGNED **a; 90 long length)
96unsigned char **pp;
97long 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
113PKCS7_SIGNED *PKCS7_SIGNED_new() 109PKCS7_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
128void PKCS7_SIGNED_free(a) 125void PKCS7_SIGNED_free(PKCS7_SIGNED *a)
129PKCS7_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