make X509_NAME opaque
Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
parent
70e5fd8778
commit
2743e38c2f
@ -1688,7 +1688,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
|
|||||||
|
|
||||||
if (msie_hack) {
|
if (msie_hack) {
|
||||||
/* assume all type should be strings */
|
/* assume all type should be strings */
|
||||||
nid = OBJ_obj2nid(ne->object);
|
nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne));
|
||||||
|
|
||||||
if (str->type == V_ASN1_UNIVERSALSTRING)
|
if (str->type == V_ASN1_UNIVERSALSTRING)
|
||||||
ASN1_UNIVERSALSTRING_to_string(str);
|
ASN1_UNIVERSALSTRING_to_string(str);
|
||||||
|
@ -21,7 +21,7 @@ LIBSRC= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
|
|||||||
a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
|
a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
|
||||||
a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c \
|
a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c \
|
||||||
x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_bignum.c \
|
x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_bignum.c \
|
||||||
x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c \
|
x_long.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c \
|
||||||
x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
|
x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
|
||||||
t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c \
|
t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c \
|
||||||
tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c \
|
tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c \
|
||||||
@ -35,7 +35,7 @@ LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
|
|||||||
a_print.o a_type.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
|
a_print.o a_type.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
|
||||||
a_enum.o a_utf8.o a_sign.o a_digest.o a_verify.o a_mbstr.o a_strex.o \
|
a_enum.o a_utf8.o a_sign.o a_digest.o a_verify.o a_mbstr.o a_strex.o \
|
||||||
x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_bignum.o \
|
x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_bignum.o \
|
||||||
x_long.o x_name.o x_x509.o x_x509a.o x_crl.o x_info.o x_spki.o nsseq.o \
|
x_long.o x_x509.o x_x509a.o x_crl.o x_info.o x_spki.o nsseq.o \
|
||||||
x_nx509.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
|
x_nx509.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
|
||||||
t_req.o t_x509.o t_x509a.o t_crl.o t_pkey.o t_spki.o t_bitst.o \
|
t_req.o t_x509.o t_x509a.o t_crl.o t_pkey.o t_spki.o t_bitst.o \
|
||||||
tasn_new.o tasn_fre.o tasn_enc.o tasn_dec.o tasn_utl.o tasn_typ.o \
|
tasn_new.o tasn_fre.o tasn_enc.o tasn_dec.o tasn_utl.o tasn_typ.o \
|
||||||
@ -781,19 +781,6 @@ x_long.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
|||||||
x_long.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
x_long.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||||
x_long.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
x_long.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||||
x_long.o: ../cryptlib.h x_long.c
|
x_long.o: ../cryptlib.h x_long.c
|
||||||
x_name.o: ../../e_os.h ../../include/openssl/asn1.h
|
|
||||||
x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
|
||||||
x_name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
|
||||||
x_name.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
|
||||||
x_name.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
|
||||||
x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
|
||||||
x_name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
|
||||||
x_name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
|
||||||
x_name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
|
||||||
x_name.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
|
||||||
x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
|
||||||
x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
|
||||||
x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h asn1_locl.h x_name.c
|
|
||||||
x_nx509.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
|
x_nx509.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
|
||||||
x_nx509.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
x_nx509.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||||
x_nx509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
x_nx509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||||
|
@ -501,7 +501,7 @@ static int do_name_ex(char_io *io_ch, void *arg, X509_NAME *n,
|
|||||||
else
|
else
|
||||||
ent = X509_NAME_get_entry(n, i);
|
ent = X509_NAME_get_entry(n, i);
|
||||||
if (prev != -1) {
|
if (prev != -1) {
|
||||||
if (prev == ent->set) {
|
if (prev == X509_NAME_ENTRY_set(ent)) {
|
||||||
if (!io_ch(arg, sep_mv, sep_mv_len))
|
if (!io_ch(arg, sep_mv, sep_mv_len))
|
||||||
return -1;
|
return -1;
|
||||||
outlen += sep_mv_len;
|
outlen += sep_mv_len;
|
||||||
@ -514,7 +514,7 @@ static int do_name_ex(char_io *io_ch, void *arg, X509_NAME *n,
|
|||||||
outlen += indent;
|
outlen += indent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prev = ent->set;
|
prev = X509_NAME_ENTRY_set(ent);
|
||||||
fn = X509_NAME_ENTRY_get_object(ent);
|
fn = X509_NAME_ENTRY_get_object(ent);
|
||||||
val = X509_NAME_ENTRY_get_data(ent);
|
val = X509_NAME_ENTRY_get_data(ent);
|
||||||
fn_nid = OBJ_obj2nid(fn);
|
fn_nid = OBJ_obj2nid(fn);
|
||||||
|
@ -62,16 +62,6 @@
|
|||||||
int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d);
|
int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d);
|
||||||
int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME *d);
|
int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME *d);
|
||||||
|
|
||||||
/* ASN1 print context structure */
|
|
||||||
|
|
||||||
struct asn1_pctx_st {
|
|
||||||
unsigned long flags;
|
|
||||||
unsigned long nm_flags;
|
|
||||||
unsigned long cert_flags;
|
|
||||||
unsigned long oid_flags;
|
|
||||||
unsigned long str_flags;
|
|
||||||
} /* ASN1_PCTX */ ;
|
|
||||||
|
|
||||||
/* ASN1 scan context structure */
|
/* ASN1 scan context structure */
|
||||||
|
|
||||||
struct asn1_sctx_st {
|
struct asn1_sctx_st {
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
#include <openssl/buffer.h>
|
#include <openssl/buffer.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include "asn1_locl.h"
|
#include "internal/asn1_int.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Print routines.
|
* Print routines.
|
||||||
|
@ -119,3 +119,13 @@ struct asn1_object_st {
|
|||||||
const unsigned char *data; /* data remains const after init */
|
const unsigned char *data; /* data remains const after init */
|
||||||
int flags; /* Should we free this one */
|
int flags; /* Should we free this one */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* ASN1 print context structure */
|
||||||
|
|
||||||
|
struct asn1_pctx_st {
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned long nm_flags;
|
||||||
|
unsigned long cert_flags;
|
||||||
|
unsigned long oid_flags;
|
||||||
|
unsigned long str_flags;
|
||||||
|
} /* ASN1_PCTX */ ;
|
||||||
|
77
crypto/include/internal/x509_int.h
Normal file
77
crypto/include/internal/x509_int.h
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/* x509_int.h */
|
||||||
|
/*
|
||||||
|
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
|
||||||
|
* 2015.
|
||||||
|
*/
|
||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2015 The OpenSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||||
|
* endorse or promote products derived from this software without
|
||||||
|
* prior written permission. For written permission, please contact
|
||||||
|
* licensing@OpenSSL.org.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "OpenSSL"
|
||||||
|
* nor may "OpenSSL" appear in their names without prior written
|
||||||
|
* permission of the OpenSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*
|
||||||
|
* This product includes cryptographic software written by Eric Young
|
||||||
|
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||||
|
* Hudson (tjh@cryptsoft.com).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Internal X509 structures and functions: not for application use */
|
||||||
|
|
||||||
|
struct X509_name_entry_st {
|
||||||
|
ASN1_OBJECT *object;
|
||||||
|
ASN1_STRING *value;
|
||||||
|
int set;
|
||||||
|
int size; /* temp variable */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* we always keep X509_NAMEs in 2 forms. */
|
||||||
|
struct X509_name_st {
|
||||||
|
STACK_OF(X509_NAME_ENTRY) *entries;
|
||||||
|
int modified; /* true if 'bytes' needs to be built */
|
||||||
|
BUF_MEM *bytes;
|
||||||
|
/* unsigned long hash; Keep the hash around for lookups */
|
||||||
|
unsigned char *canon_enc;
|
||||||
|
int canon_enclen;
|
||||||
|
} /* X509_NAME */ ;
|
@ -22,13 +22,15 @@ LIBSRC= x509_def.c x509_d2.c x509_r2x.c x509_cmp.c \
|
|||||||
x509_set.c x509cset.c x509rset.c x509_err.c \
|
x509_set.c x509cset.c x509rset.c x509_err.c \
|
||||||
x509name.c x509_v3.c x509_ext.c x509_att.c \
|
x509name.c x509_v3.c x509_ext.c x509_att.c \
|
||||||
x509type.c x509_lu.c x_all.c x509_txt.c \
|
x509type.c x509_lu.c x_all.c x509_txt.c \
|
||||||
x509_trs.c by_file.c by_dir.c x509_vpm.c x_attrib.c x_exten.c
|
x509_trs.c by_file.c by_dir.c x509_vpm.c \
|
||||||
|
x_attrib.c x_exten.c x_name.c
|
||||||
LIBOBJ= x509_def.o x509_d2.o x509_r2x.o x509_cmp.o \
|
LIBOBJ= x509_def.o x509_d2.o x509_r2x.o x509_cmp.o \
|
||||||
x509_obj.o x509_req.o x509spki.o x509_vfy.o \
|
x509_obj.o x509_req.o x509spki.o x509_vfy.o \
|
||||||
x509_set.o x509cset.o x509rset.o x509_err.o \
|
x509_set.o x509cset.o x509rset.o x509_err.o \
|
||||||
x509name.o x509_v3.o x509_ext.o x509_att.o \
|
x509name.o x509_v3.o x509_ext.o x509_att.o \
|
||||||
x509type.o x509_lu.o x_all.o x509_txt.o \
|
x509type.o x509_lu.o x_all.o x509_txt.o \
|
||||||
x509_trs.o by_file.o by_dir.o x509_vpm.o x_attrib.o x_exten.o
|
x509_trs.o by_file.o by_dir.o x509_vpm.o \
|
||||||
|
x_attrib.o x_exten.o x_name.o
|
||||||
|
|
||||||
SRC= $(LIBSRC)
|
SRC= $(LIBSRC)
|
||||||
|
|
||||||
|
@ -148,25 +148,10 @@ typedef struct X509_sig_st {
|
|||||||
ASN1_OCTET_STRING *digest;
|
ASN1_OCTET_STRING *digest;
|
||||||
} X509_SIG;
|
} X509_SIG;
|
||||||
|
|
||||||
typedef struct X509_name_entry_st {
|
typedef struct X509_name_entry_st X509_NAME_ENTRY;
|
||||||
ASN1_OBJECT *object;
|
|
||||||
ASN1_STRING *value;
|
|
||||||
int set;
|
|
||||||
int size; /* temp variable */
|
|
||||||
} X509_NAME_ENTRY;
|
|
||||||
|
|
||||||
DECLARE_STACK_OF(X509_NAME_ENTRY)
|
DECLARE_STACK_OF(X509_NAME_ENTRY)
|
||||||
|
|
||||||
/* we always keep X509_NAMEs in 2 forms. */
|
|
||||||
struct X509_name_st {
|
|
||||||
STACK_OF(X509_NAME_ENTRY) *entries;
|
|
||||||
int modified; /* true if 'bytes' needs to be built */
|
|
||||||
BUF_MEM *bytes;
|
|
||||||
/* unsigned long hash; Keep the hash around for lookups */
|
|
||||||
unsigned char *canon_enc;
|
|
||||||
int canon_enclen;
|
|
||||||
} /* X509_NAME */ ;
|
|
||||||
|
|
||||||
DECLARE_STACK_OF(X509_NAME)
|
DECLARE_STACK_OF(X509_NAME)
|
||||||
|
|
||||||
# define X509_EX_V_NETSCAPE_HACK 0x8000
|
# define X509_EX_V_NETSCAPE_HACK 0x8000
|
||||||
@ -980,6 +965,7 @@ int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
|
|||||||
const unsigned char *bytes, int len);
|
const unsigned char *bytes, int len);
|
||||||
ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
|
ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
|
||||||
ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
|
ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
|
||||||
|
int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne);
|
||||||
|
|
||||||
int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
|
int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
|
||||||
int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
|
int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)
|
int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)
|
||||||
{
|
{
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/buffer.h>
|
#include <openssl/buffer.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
char *X509_NAME_oneline(X509_NAME *a, char *buf, int len)
|
char *X509_NAME_oneline(X509_NAME *a, char *buf, int len)
|
||||||
{
|
{
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len)
|
int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len)
|
||||||
{
|
{
|
||||||
@ -395,3 +396,8 @@ ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
return (ne->value);
|
return (ne->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
|
||||||
|
{
|
||||||
|
return ne->set;
|
||||||
|
}
|
||||||
|
@ -61,7 +61,8 @@
|
|||||||
#include "cryptlib.h"
|
#include "cryptlib.h"
|
||||||
#include <openssl/asn1t.h>
|
#include <openssl/asn1t.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include "asn1_locl.h"
|
#include "internal/x509_int.h"
|
||||||
|
#include "internal/asn1_int.h"
|
||||||
|
|
||||||
typedef STACK_OF(X509_NAME_ENTRY) STACK_OF_X509_NAME_ENTRY;
|
typedef STACK_OF(X509_NAME_ENTRY) STACK_OF_X509_NAME_ENTRY;
|
||||||
DECLARE_STACK_OF(STACK_OF_X509_NAME_ENTRY)
|
DECLARE_STACK_OF(STACK_OF_X509_NAME_ENTRY)
|
@ -64,6 +64,8 @@
|
|||||||
#include <openssl/asn1t.h>
|
#include <openssl/asn1t.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
static void *v2i_crld(const X509V3_EXT_METHOD *method,
|
static void *v2i_crld(const X509V3_EXT_METHOD *method,
|
||||||
X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
|
X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
|
||||||
static int i2r_crldp(const X509V3_EXT_METHOD *method, void *pcrldp, BIO *out,
|
static int i2r_crldp(const X509V3_EXT_METHOD *method, void *pcrldp, BIO *out,
|
||||||
|
@ -63,6 +63,8 @@
|
|||||||
#include <openssl/conf.h>
|
#include <openssl/conf.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
static void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,
|
static void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,
|
||||||
X509V3_CTX *ctx,
|
X509V3_CTX *ctx,
|
||||||
STACK_OF(CONF_VALUE) *nval);
|
STACK_OF(CONF_VALUE) *nval);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user