summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/p7_signi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/p7_signi.c')
-rw-r--r--src/lib/libcrypto/asn1/p7_signi.c51
1 files changed, 26 insertions, 25 deletions
diff --git a/src/lib/libcrypto/asn1/p7_signi.c b/src/lib/libcrypto/asn1/p7_signi.c
index 0da92169fc..21132ef4dd 100644
--- a/src/lib/libcrypto/asn1/p7_signi.c
+++ b/src/lib/libcrypto/asn1/p7_signi.c
@@ -58,45 +58,40 @@
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_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **pp)
65 * ASN1err(ASN1_F_PKCS7_SIGNER_INFO_NEW,ASN1_R_LENGTH_MISMATCH);
66 * ASN1err(ASN1_F_D2I_PKCS7_SIGNER_INFO,ASN1_R_LENGTH_MISMATCH);
67 */
68
69int i2d_PKCS7_SIGNER_INFO(a,pp)
70PKCS7_SIGNER_INFO *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(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL); 69 M_ASN1_I2D_len(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
77 M_ASN1_I2D_len(a->digest_alg,i2d_X509_ALGOR); 70 M_ASN1_I2D_len(a->digest_alg,i2d_X509_ALGOR);
78 M_ASN1_I2D_len_IMP_set_opt(a->auth_attr,i2d_X509_ATTRIBUTE,0); 71 M_ASN1_I2D_len_IMP_SET_opt_type(X509_ATTRIBUTE,a->auth_attr,
72 i2d_X509_ATTRIBUTE,0);
79 M_ASN1_I2D_len(a->digest_enc_alg,i2d_X509_ALGOR); 73 M_ASN1_I2D_len(a->digest_enc_alg,i2d_X509_ALGOR);
80 M_ASN1_I2D_len(a->enc_digest,i2d_ASN1_OCTET_STRING); 74 M_ASN1_I2D_len(a->enc_digest,i2d_ASN1_OCTET_STRING);
81 M_ASN1_I2D_len_IMP_set_opt(a->unauth_attr,i2d_X509_ATTRIBUTE,1); 75 M_ASN1_I2D_len_IMP_SET_opt_type(X509_ATTRIBUTE,a->unauth_attr,
76 i2d_X509_ATTRIBUTE,1);
82 77
83 M_ASN1_I2D_seq_total(); 78 M_ASN1_I2D_seq_total();
84 79
85 M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER); 80 M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
86 M_ASN1_I2D_put(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL); 81 M_ASN1_I2D_put(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
87 M_ASN1_I2D_put(a->digest_alg,i2d_X509_ALGOR); 82 M_ASN1_I2D_put(a->digest_alg,i2d_X509_ALGOR);
88 M_ASN1_I2D_put_IMP_set_opt(a->auth_attr,i2d_X509_ATTRIBUTE,0); 83 M_ASN1_I2D_put_IMP_SET_opt_type(X509_ATTRIBUTE,a->auth_attr,
84 i2d_X509_ATTRIBUTE,0);
89 M_ASN1_I2D_put(a->digest_enc_alg,i2d_X509_ALGOR); 85 M_ASN1_I2D_put(a->digest_enc_alg,i2d_X509_ALGOR);
90 M_ASN1_I2D_put(a->enc_digest,i2d_ASN1_OCTET_STRING); 86 M_ASN1_I2D_put(a->enc_digest,i2d_ASN1_OCTET_STRING);
91 M_ASN1_I2D_put_IMP_set_opt(a->unauth_attr,i2d_X509_ATTRIBUTE,1); 87 M_ASN1_I2D_put_IMP_SET_opt_type(X509_ATTRIBUTE,a->unauth_attr,
88 i2d_X509_ATTRIBUTE,1);
92 89
93 M_ASN1_I2D_finish(); 90 M_ASN1_I2D_finish();
94 } 91 }
95 92
96PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(a,pp,length) 93PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a,
97PKCS7_SIGNER_INFO **a; 94 unsigned char **pp, long length)
98unsigned char **pp;
99long length;
100 { 95 {
101 M_ASN1_D2I_vars(a,PKCS7_SIGNER_INFO *,PKCS7_SIGNER_INFO_new); 96 M_ASN1_D2I_vars(a,PKCS7_SIGNER_INFO *,PKCS7_SIGNER_INFO_new);
102 97
@@ -105,18 +100,23 @@ long length;
105 M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER); 100 M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
106 M_ASN1_D2I_get(ret->issuer_and_serial,d2i_PKCS7_ISSUER_AND_SERIAL); 101 M_ASN1_D2I_get(ret->issuer_and_serial,d2i_PKCS7_ISSUER_AND_SERIAL);
107 M_ASN1_D2I_get(ret->digest_alg,d2i_X509_ALGOR); 102 M_ASN1_D2I_get(ret->digest_alg,d2i_X509_ALGOR);
108 M_ASN1_D2I_get_IMP_set_opt(ret->auth_attr,d2i_X509_ATTRIBUTE,0); 103 M_ASN1_D2I_get_IMP_set_opt_type(X509_ATTRIBUTE,ret->auth_attr,
104 d2i_X509_ATTRIBUTE,X509_ATTRIBUTE_free,
105 0);
109 M_ASN1_D2I_get(ret->digest_enc_alg,d2i_X509_ALGOR); 106 M_ASN1_D2I_get(ret->digest_enc_alg,d2i_X509_ALGOR);
110 M_ASN1_D2I_get(ret->enc_digest,d2i_ASN1_OCTET_STRING); 107 M_ASN1_D2I_get(ret->enc_digest,d2i_ASN1_OCTET_STRING);
111 M_ASN1_D2I_get_IMP_set_opt(ret->unauth_attr,d2i_X509_ATTRIBUTE,1); 108 M_ASN1_D2I_get_IMP_set_opt_type(X509_ATTRIBUTE,ret->unauth_attr,
109 d2i_X509_ATTRIBUTE,
110 X509_ATTRIBUTE_free,1);
112 111
113 M_ASN1_D2I_Finish(a,PKCS7_SIGNER_INFO_free, 112 M_ASN1_D2I_Finish(a,PKCS7_SIGNER_INFO_free,
114 ASN1_F_D2I_PKCS7_SIGNER_INFO); 113 ASN1_F_D2I_PKCS7_SIGNER_INFO);
115 } 114 }
116 115
117PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new() 116PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void)
118 { 117 {
119 PKCS7_SIGNER_INFO *ret=NULL; 118 PKCS7_SIGNER_INFO *ret=NULL;
119 ASN1_CTX c;
120 120
121 M_ASN1_New_Malloc(ret,PKCS7_SIGNER_INFO); 121 M_ASN1_New_Malloc(ret,PKCS7_SIGNER_INFO);
122 M_ASN1_New(ret->version,ASN1_INTEGER_new); 122 M_ASN1_New(ret->version,ASN1_INTEGER_new);
@@ -131,19 +131,20 @@ PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new()
131 M_ASN1_New_Error(ASN1_F_PKCS7_SIGNER_INFO_NEW); 131 M_ASN1_New_Error(ASN1_F_PKCS7_SIGNER_INFO_NEW);
132 } 132 }
133 133
134void PKCS7_SIGNER_INFO_free(a) 134void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a)
135PKCS7_SIGNER_INFO *a;
136 { 135 {
137 if (a == NULL) return; 136 if (a == NULL) return;
138 ASN1_INTEGER_free(a->version); 137 ASN1_INTEGER_free(a->version);
139 PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial); 138 PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial);
140 X509_ALGOR_free(a->digest_alg); 139 X509_ALGOR_free(a->digest_alg);
141 sk_pop_free(a->auth_attr,X509_ATTRIBUTE_free); 140 sk_X509_ATTRIBUTE_pop_free(a->auth_attr,X509_ATTRIBUTE_free);
142 X509_ALGOR_free(a->digest_enc_alg); 141 X509_ALGOR_free(a->digest_enc_alg);
143 ASN1_OCTET_STRING_free(a->enc_digest); 142 ASN1_OCTET_STRING_free(a->enc_digest);
144 sk_pop_free(a->unauth_attr,X509_ATTRIBUTE_free); 143 sk_X509_ATTRIBUTE_pop_free(a->unauth_attr,X509_ATTRIBUTE_free);
145 if (a->pkey != NULL) 144 if (a->pkey != NULL)
146 EVP_PKEY_free(a->pkey); 145 EVP_PKEY_free(a->pkey);
147 Free((char *)a); 146 Free((char *)a);
148 } 147 }
149 148
149IMPLEMENT_STACK_OF(PKCS7_SIGNER_INFO)
150IMPLEMENT_ASN1_SET_OF(PKCS7_SIGNER_INFO)