diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/x_x509a.c')
-rw-r--r-- | src/lib/libcrypto/asn1/x_x509a.c | 75 |
1 files changed, 9 insertions, 66 deletions
diff --git a/src/lib/libcrypto/asn1/x_x509a.c b/src/lib/libcrypto/asn1/x_x509a.c index ebcce87bf2..f244768b7e 100644 --- a/src/lib/libcrypto/asn1/x_x509a.c +++ b/src/lib/libcrypto/asn1/x_x509a.c | |||
@@ -59,7 +59,7 @@ | |||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
61 | #include <openssl/evp.h> | 61 | #include <openssl/evp.h> |
62 | #include <openssl/asn1_mac.h> | 62 | #include <openssl/asn1t.h> |
63 | #include <openssl/x509.h> | 63 | #include <openssl/x509.h> |
64 | 64 | ||
65 | /* X509_CERT_AUX routines. These are used to encode additional | 65 | /* X509_CERT_AUX routines. These are used to encode additional |
@@ -71,72 +71,15 @@ | |||
71 | 71 | ||
72 | static X509_CERT_AUX *aux_get(X509 *x); | 72 | static X509_CERT_AUX *aux_get(X509 *x); |
73 | 73 | ||
74 | X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, unsigned char **pp, long length) | 74 | ASN1_SEQUENCE(X509_CERT_AUX) = { |
75 | { | 75 | ASN1_SEQUENCE_OF_OPT(X509_CERT_AUX, trust, ASN1_OBJECT), |
76 | M_ASN1_D2I_vars(a, X509_CERT_AUX *, X509_CERT_AUX_new); | 76 | ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, reject, ASN1_OBJECT, 0), |
77 | 77 | ASN1_OPT(X509_CERT_AUX, alias, ASN1_UTF8STRING), | |
78 | M_ASN1_D2I_Init(); | 78 | ASN1_OPT(X509_CERT_AUX, keyid, ASN1_OCTET_STRING), |
79 | M_ASN1_D2I_start_sequence(); | 79 | ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1) |
80 | 80 | } ASN1_SEQUENCE_END(X509_CERT_AUX) | |
81 | M_ASN1_D2I_get_seq_opt_type(ASN1_OBJECT, ret->trust, | ||
82 | d2i_ASN1_OBJECT, ASN1_OBJECT_free); | ||
83 | M_ASN1_D2I_get_IMP_set_opt_type(ASN1_OBJECT, ret->reject, | ||
84 | d2i_ASN1_OBJECT, ASN1_OBJECT_free, 0); | ||
85 | M_ASN1_D2I_get_opt(ret->alias, d2i_ASN1_UTF8STRING, V_ASN1_UTF8STRING); | ||
86 | M_ASN1_D2I_get_opt(ret->keyid, d2i_ASN1_OCTET_STRING, V_ASN1_OCTET_STRING); | ||
87 | M_ASN1_D2I_get_IMP_set_opt_type(X509_ALGOR, ret->other, | ||
88 | d2i_X509_ALGOR, X509_ALGOR_free, 1); | ||
89 | |||
90 | M_ASN1_D2I_Finish(a, X509_CERT_AUX_free, ASN1_F_D2I_X509_CERT_AUX); | ||
91 | } | ||
92 | |||
93 | X509_CERT_AUX *X509_CERT_AUX_new() | ||
94 | { | ||
95 | X509_CERT_AUX *ret = NULL; | ||
96 | ASN1_CTX c; | ||
97 | M_ASN1_New_Malloc(ret, X509_CERT_AUX); | ||
98 | ret->trust = NULL; | ||
99 | ret->reject = NULL; | ||
100 | ret->alias = NULL; | ||
101 | ret->keyid = NULL; | ||
102 | ret->other = NULL; | ||
103 | return(ret); | ||
104 | M_ASN1_New_Error(ASN1_F_X509_CERT_AUX_NEW); | ||
105 | } | ||
106 | |||
107 | void X509_CERT_AUX_free(X509_CERT_AUX *a) | ||
108 | { | ||
109 | if(a == NULL) return; | ||
110 | sk_ASN1_OBJECT_pop_free(a->trust, ASN1_OBJECT_free); | ||
111 | sk_ASN1_OBJECT_pop_free(a->reject, ASN1_OBJECT_free); | ||
112 | ASN1_UTF8STRING_free(a->alias); | ||
113 | ASN1_OCTET_STRING_free(a->keyid); | ||
114 | sk_X509_ALGOR_pop_free(a->other, X509_ALGOR_free); | ||
115 | OPENSSL_free(a); | ||
116 | } | ||
117 | |||
118 | int i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **pp) | ||
119 | { | ||
120 | M_ASN1_I2D_vars(a); | ||
121 | |||
122 | M_ASN1_I2D_len_SEQUENCE_opt_type(ASN1_OBJECT, a->trust, i2d_ASN1_OBJECT); | ||
123 | M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(ASN1_OBJECT, a->reject, i2d_ASN1_OBJECT, 0); | ||
124 | |||
125 | M_ASN1_I2D_len(a->alias, i2d_ASN1_UTF8STRING); | ||
126 | M_ASN1_I2D_len(a->keyid, i2d_ASN1_OCTET_STRING); | ||
127 | M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509_ALGOR, a->other, i2d_X509_ALGOR, 1); | ||
128 | 81 | ||
129 | M_ASN1_I2D_seq_total(); | 82 | IMPLEMENT_ASN1_FUNCTIONS(X509_CERT_AUX) |
130 | |||
131 | M_ASN1_I2D_put_SEQUENCE_opt_type(ASN1_OBJECT, a->trust, i2d_ASN1_OBJECT); | ||
132 | M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(ASN1_OBJECT, a->reject, i2d_ASN1_OBJECT, 0); | ||
133 | |||
134 | M_ASN1_I2D_put(a->alias, i2d_ASN1_UTF8STRING); | ||
135 | M_ASN1_I2D_put(a->keyid, i2d_ASN1_OCTET_STRING); | ||
136 | M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509_ALGOR, a->other, i2d_X509_ALGOR, 1); | ||
137 | |||
138 | M_ASN1_I2D_finish(); | ||
139 | } | ||
140 | 83 | ||
141 | static X509_CERT_AUX *aux_get(X509 *x) | 84 | static X509_CERT_AUX *aux_get(X509 *x) |
142 | { | 85 | { |