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.c54
1 files changed, 51 insertions, 3 deletions
diff --git a/src/lib/libcrypto/asn1/x_x509.c b/src/lib/libcrypto/asn1/x_x509.c
index 0236a0faa2..8fd2d7684b 100644
--- a/src/lib/libcrypto/asn1/x_x509.c
+++ b/src/lib/libcrypto/asn1/x_x509.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509.c,v 1.17 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_x509.c,v 1.18 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -78,7 +78,31 @@ ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3) 78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3)
79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF) 79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF)
80 80
81IMPLEMENT_ASN1_FUNCTIONS(X509_CINF) 81
82X509_CINF *
83d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len)
84{
85 return (X509_CINF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
86 &X509_CINF_it);
87}
88
89int
90i2d_X509_CINF(X509_CINF *a, unsigned char **out)
91{
92 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CINF_it);
93}
94
95X509_CINF *
96X509_CINF_new(void)
97{
98 return (X509_CINF *)ASN1_item_new(&X509_CINF_it);
99}
100
101void
102X509_CINF_free(X509_CINF *a)
103{
104 ASN1_item_free((ASN1_VALUE *)a, &X509_CINF_it);
105}
82/* X509 top level structure needs a bit of customisation */ 106/* X509 top level structure needs a bit of customisation */
83 107
84extern void policy_cache_free(X509_POLICY_CACHE *cache); 108extern void policy_cache_free(X509_POLICY_CACHE *cache);
@@ -138,7 +162,31 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
138 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING) 162 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING)
139} ASN1_SEQUENCE_END_ref(X509, X509) 163} ASN1_SEQUENCE_END_ref(X509, X509)
140 164
141IMPLEMENT_ASN1_FUNCTIONS(X509) 165
166X509 *
167d2i_X509(X509 **a, const unsigned char **in, long len)
168{
169 return (X509 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
170 &X509_it);
171}
172
173int
174i2d_X509(X509 *a, unsigned char **out)
175{
176 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_it);
177}
178
179X509 *
180X509_new(void)
181{
182 return (X509 *)ASN1_item_new(&X509_it);
183}
184
185void
186X509_free(X509 *a)
187{
188 ASN1_item_free((ASN1_VALUE *)a, &X509_it);
189}
142IMPLEMENT_ASN1_DUP_FUNCTION(X509) 190IMPLEMENT_ASN1_DUP_FUNCTION(X509)
143 191
144int 192int