summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/x_x509.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/x_x509.c')
-rw-r--r--src/lib/libcrypto/asn1/x_x509.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/src/lib/libcrypto/asn1/x_x509.c b/src/lib/libcrypto/asn1/x_x509.c
index bc466ce0f6..7abf6b2a6b 100644
--- a/src/lib/libcrypto/asn1/x_x509.c
+++ b/src/lib/libcrypto/asn1/x_x509.c
@@ -58,13 +58,9 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#include "cryptlib.h" 60#include "cryptlib.h"
61#include "evp.h" 61#include <openssl/evp.h>
62#include "asn1_mac.h" 62#include <openssl/asn1_mac.h>
63 63#include <openssl/x509.h>
64/*
65 * ASN1err(ASN1_F_D2I_X509,ASN1_R_LENGTH_MISMATCH);
66 * ASN1err(ASN1_F_X509_NEW,ASN1_R_BAD_GET_OBJECT);
67 */
68 64
69static ASN1_METHOD meth={ 65static ASN1_METHOD meth={
70 (int (*)()) i2d_X509, 66 (int (*)()) i2d_X509,
@@ -72,14 +68,12 @@ static ASN1_METHOD meth={
72 (char *(*)())X509_new, 68 (char *(*)())X509_new,
73 (void (*)()) X509_free}; 69 (void (*)()) X509_free};
74 70
75ASN1_METHOD *X509_asn1_meth() 71ASN1_METHOD *X509_asn1_meth(void)
76 { 72 {
77 return(&meth); 73 return(&meth);
78 } 74 }
79 75
80int i2d_X509(a,pp) 76int i2d_X509(X509 *a, unsigned char **pp)
81X509 *a;
82unsigned char **pp;
83 { 77 {
84 M_ASN1_I2D_vars(a); 78 M_ASN1_I2D_vars(a);
85 79
@@ -96,10 +90,7 @@ unsigned char **pp;
96 M_ASN1_I2D_finish(); 90 M_ASN1_I2D_finish();
97 } 91 }
98 92
99X509 *d2i_X509(a,pp,length) 93X509 *d2i_X509(X509 **a, unsigned char **pp, long length)
100X509 **a;
101unsigned char **pp;
102long length;
103 { 94 {
104 M_ASN1_D2I_vars(a,X509 *,X509_new); 95 M_ASN1_D2I_vars(a,X509 *,X509_new);
105 96
@@ -108,15 +99,16 @@ long length;
108 M_ASN1_D2I_get(ret->cert_info,d2i_X509_CINF); 99 M_ASN1_D2I_get(ret->cert_info,d2i_X509_CINF);
109 M_ASN1_D2I_get(ret->sig_alg,d2i_X509_ALGOR); 100 M_ASN1_D2I_get(ret->sig_alg,d2i_X509_ALGOR);
110 M_ASN1_D2I_get(ret->signature,d2i_ASN1_BIT_STRING); 101 M_ASN1_D2I_get(ret->signature,d2i_ASN1_BIT_STRING);
111if (ret->name != NULL) Free(ret->name); 102 if (ret->name != NULL) Free(ret->name);
112ret->name=X509_NAME_oneline(ret->cert_info->subject,NULL,0); 103 ret->name=X509_NAME_oneline(ret->cert_info->subject,NULL,0);
113 104
114 M_ASN1_D2I_Finish(a,X509_free,ASN1_F_D2I_X509); 105 M_ASN1_D2I_Finish(a,X509_free,ASN1_F_D2I_X509);
115 } 106 }
116 107
117X509 *X509_new() 108X509 *X509_new(void)
118 { 109 {
119 X509 *ret=NULL; 110 X509 *ret=NULL;
111 ASN1_CTX c;
120 112
121 M_ASN1_New_Malloc(ret,X509); 113 M_ASN1_New_Malloc(ret,X509);
122 ret->references=1; 114 ret->references=1;
@@ -129,8 +121,7 @@ X509 *X509_new()
129 M_ASN1_New_Error(ASN1_F_X509_NEW); 121 M_ASN1_New_Error(ASN1_F_X509_NEW);
130 } 122 }
131 123
132void X509_free(a) 124void X509_free(X509 *a)
133X509 *a;
134 { 125 {
135 int i; 126 int i;
136 127
@@ -149,9 +140,11 @@ X509 *a;
149 } 140 }
150#endif 141#endif
151 142
143 /* CRYPTO_free_ex_data(bio_meth,(char *)a,&a->ex_data); */
152 X509_CINF_free(a->cert_info); 144 X509_CINF_free(a->cert_info);
153 X509_ALGOR_free(a->sig_alg); 145 X509_ALGOR_free(a->sig_alg);
154 ASN1_BIT_STRING_free(a->signature); 146 ASN1_BIT_STRING_free(a->signature);
147
155 if (a->name != NULL) Free(a->name); 148 if (a->name != NULL) Free(a->name);
156 Free((char *)a); 149 Free((char *)a);
157 } 150 }