summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsing <jsing@openbsd.org>2015-02-09 16:03:11 +0000
committerjsing <jsing@openbsd.org>2015-02-09 16:03:11 +0000
commite2201e9754111189abc2054ef9df119aae0389b9 (patch)
treef29471266e30d99cdaea389374c752fa9a617671
parentBN_CTX_get() can fail - consistently check its return value. (diff)
downloadwireguard-openbsd-e2201e9754111189abc2054ef9df119aae0389b9.tar.xz
wireguard-openbsd-e2201e9754111189abc2054ef9df119aae0389b9.zip
Expand the IMPLEMENT_ASN1_FUNCTIONS macro so that the code is visible and
functions can be readily located. Change has been scripted and the generated assembly only differs by changes to line numbers. Discussed with beck@ miod@ tedu@
-rw-r--r--lib/libcrypto/x509v3/v3_addr.c106
-rw-r--r--lib/libcrypto/x509v3/v3_akeya.c28
-rw-r--r--lib/libcrypto/x509v3/v3_asid.c106
-rw-r--r--lib/libcrypto/x509v3/v3_bcons.c28
-rw-r--r--lib/libcrypto/x509v3/v3_cpols.c132
-rw-r--r--lib/libcrypto/x509v3/v3_crld.c106
-rw-r--r--lib/libcrypto/x509v3/v3_extku.c28
-rw-r--r--lib/libcrypto/x509v3/v3_genn.c106
-rw-r--r--lib/libcrypto/x509v3/v3_info.c54
-rw-r--r--lib/libcrypto/x509v3/v3_pcia.c54
-rw-r--r--lib/libcrypto/x509v3/v3_pku.c28
-rw-r--r--lib/libcrypto/x509v3/v3_sxnet.c54
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_addr.c106
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_akeya.c28
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_asid.c106
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_bcons.c28
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_cpols.c132
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_crld.c106
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_extku.c28
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_genn.c106
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_info.c54
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_pcia.c54
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_pku.c28
-rw-r--r--lib/libssl/src/crypto/x509v3/v3_sxnet.c54
24 files changed, 1574 insertions, 86 deletions
diff --git a/lib/libcrypto/x509v3/v3_addr.c b/lib/libcrypto/x509v3/v3_addr.c
index 40efb1b9aca..4073aeeaa67 100644
--- a/lib/libcrypto/x509v3/v3_addr.c
+++ b/lib/libcrypto/x509v3/v3_addr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_addr.c,v 1.14 2014/11/18 03:28:05 tedu Exp $ */
+/* $OpenBSD: v3_addr.c,v 1.15 2015/02/09 16:03:11 jsing Exp $ */
/*
* Contributed to the OpenSSL Project by the American Registry for
* Internet Numbers ("ARIN").
@@ -102,10 +102,106 @@ ASN1_ITEM_TEMPLATE(IPAddrBlocks) =
IPAddrBlocks, IPAddressFamily)
ASN1_ITEM_TEMPLATE_END(IPAddrBlocks)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily)
+
+IPAddressRange *
+d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len)
+{
+ return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressRange_it);
+}
+
+int
+i2d_IPAddressRange(IPAddressRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it);
+}
+
+IPAddressRange *
+IPAddressRange_new(void)
+{
+ return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it);
+}
+
+void
+IPAddressRange_free(IPAddressRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it);
+}
+
+IPAddressOrRange *
+d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
+{
+ return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressOrRange_it);
+}
+
+int
+i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it);
+}
+
+IPAddressOrRange *
+IPAddressOrRange_new(void)
+{
+ return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it);
+}
+
+void
+IPAddressOrRange_free(IPAddressOrRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it);
+}
+
+IPAddressChoice *
+d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len)
+{
+ return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressChoice_it);
+}
+
+int
+i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it);
+}
+
+IPAddressChoice *
+IPAddressChoice_new(void)
+{
+ return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it);
+}
+
+void
+IPAddressChoice_free(IPAddressChoice *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it);
+}
+
+IPAddressFamily *
+d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len)
+{
+ return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressFamily_it);
+}
+
+int
+i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it);
+}
+
+IPAddressFamily *
+IPAddressFamily_new(void)
+{
+ return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it);
+}
+
+void
+IPAddressFamily_free(IPAddressFamily *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it);
+}
/*
* How much buffer space do we need for a raw address?
diff --git a/lib/libcrypto/x509v3/v3_akeya.c b/lib/libcrypto/x509v3/v3_akeya.c
index 247c9f48a9c..1848c0911ef 100644
--- a/lib/libcrypto/x509v3/v3_akeya.c
+++ b/lib/libcrypto/x509v3/v3_akeya.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_akeya.c,v 1.5 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_akeya.c,v 1.6 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -69,4 +69,28 @@ ASN1_SEQUENCE(AUTHORITY_KEYID) = {
ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
} ASN1_SEQUENCE_END(AUTHORITY_KEYID)
-IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID)
+
+AUTHORITY_KEYID *
+d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len)
+{
+ return (AUTHORITY_KEYID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &AUTHORITY_KEYID_it);
+}
+
+int
+i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_KEYID_it);
+}
+
+AUTHORITY_KEYID *
+AUTHORITY_KEYID_new(void)
+{
+ return (AUTHORITY_KEYID *)ASN1_item_new(&AUTHORITY_KEYID_it);
+}
+
+void
+AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_KEYID_it);
+}
diff --git a/lib/libcrypto/x509v3/v3_asid.c b/lib/libcrypto/x509v3/v3_asid.c
index 680eed31ec6..10f82c573dc 100644
--- a/lib/libcrypto/x509v3/v3_asid.c
+++ b/lib/libcrypto/x509v3/v3_asid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_asid.c,v 1.11 2014/07/13 16:03:10 beck Exp $ */
+/* $OpenBSD: v3_asid.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
/*
* Contributed to the OpenSSL Project by the American Registry for
* Internet Numbers ("ARIN").
@@ -98,10 +98,106 @@ ASN1_SEQUENCE(ASIdentifiers) = {
ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1)
} ASN1_SEQUENCE_END(ASIdentifiers)
-IMPLEMENT_ASN1_FUNCTIONS(ASRange)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdOrRange)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdentifierChoice)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdentifiers)
+
+ASRange *
+d2i_ASRange(ASRange **a, const unsigned char **in, long len)
+{
+ return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASRange_it);
+}
+
+int
+i2d_ASRange(ASRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASRange_it);
+}
+
+ASRange *
+ASRange_new(void)
+{
+ return (ASRange *)ASN1_item_new(&ASRange_it);
+}
+
+void
+ASRange_free(ASRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASRange_it);
+}
+
+ASIdOrRange *
+d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len)
+{
+ return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdOrRange_it);
+}
+
+int
+i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdOrRange_it);
+}
+
+ASIdOrRange *
+ASIdOrRange_new(void)
+{
+ return (ASIdOrRange *)ASN1_item_new(&ASIdOrRange_it);
+}
+
+void
+ASIdOrRange_free(ASIdOrRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdOrRange_it);
+}
+
+ASIdentifierChoice *
+d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len)
+{
+ return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdentifierChoice_it);
+}
+
+int
+i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifierChoice_it);
+}
+
+ASIdentifierChoice *
+ASIdentifierChoice_new(void)
+{
+ return (ASIdentifierChoice *)ASN1_item_new(&ASIdentifierChoice_it);
+}
+
+void
+ASIdentifierChoice_free(ASIdentifierChoice *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdentifierChoice_it);
+}
+
+ASIdentifiers *
+d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len)
+{
+ return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdentifiers_it);
+}
+
+int
+i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifiers_it);
+}
+
+ASIdentifiers *
+ASIdentifiers_new(void)
+{
+ return (ASIdentifiers *)ASN1_item_new(&ASIdentifiers_it);
+}
+
+void
+ASIdentifiers_free(ASIdentifiers *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdentifiers_it);
+}
/*
* i2r method for an ASIdentifierChoice.
diff --git a/lib/libcrypto/x509v3/v3_bcons.c b/lib/libcrypto/x509v3/v3_bcons.c
index 8e2632d3795..fb3f6c7619c 100644
--- a/lib/libcrypto/x509v3/v3_bcons.c
+++ b/lib/libcrypto/x509v3/v3_bcons.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_bcons.c,v 1.10 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_bcons.c,v 1.11 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -86,7 +86,31 @@ ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
-IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
+
+BASIC_CONSTRAINTS *
+d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len)
+{
+ return (BASIC_CONSTRAINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &BASIC_CONSTRAINTS_it);
+}
+
+int
+i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &BASIC_CONSTRAINTS_it);
+}
+
+BASIC_CONSTRAINTS *
+BASIC_CONSTRAINTS_new(void)
+{
+ return (BASIC_CONSTRAINTS *)ASN1_item_new(&BASIC_CONSTRAINTS_it);
+}
+
+void
+BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &BASIC_CONSTRAINTS_it);
+}
static STACK_OF(CONF_VALUE) *
diff --git a/lib/libcrypto/x509v3/v3_cpols.c b/lib/libcrypto/x509v3/v3_cpols.c
index d683db697ee..6ceb93d3724 100644
--- a/lib/libcrypto/x509v3/v3_cpols.c
+++ b/lib/libcrypto/x509v3/v3_cpols.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */
+/* $OpenBSD: v3_cpols.c,v 1.17 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
POLICYINFO)
ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES)
-IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
+
+CERTIFICATEPOLICIES *
+d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len)
+{
+ return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &CERTIFICATEPOLICIES_it);
+}
+
+int
+i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it);
+}
+
+CERTIFICATEPOLICIES *
+CERTIFICATEPOLICIES_new(void)
+{
+ return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it);
+}
+
+void
+CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it);
+}
ASN1_SEQUENCE(POLICYINFO) = {
ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
} ASN1_SEQUENCE_END(POLICYINFO)
-IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO)
+
+POLICYINFO *
+d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len)
+{
+ return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &POLICYINFO_it);
+}
+
+int
+i2d_POLICYINFO(POLICYINFO *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it);
+}
+
+POLICYINFO *
+POLICYINFO_new(void)
+{
+ return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it);
+}
+
+void
+POLICYINFO_free(POLICYINFO *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it);
+}
ASN1_ADB_TEMPLATE(policydefault) =
ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY);
@@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = {
ASN1_ADB_OBJECT(POLICYQUALINFO)
} ASN1_SEQUENCE_END(POLICYQUALINFO)
-IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO)
+
+POLICYQUALINFO *
+d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len)
+{
+ return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &POLICYQUALINFO_it);
+}
+
+int
+i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it);
+}
+
+POLICYQUALINFO *
+POLICYQUALINFO_new(void)
+{
+ return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it);
+}
+
+void
+POLICYQUALINFO_free(POLICYQUALINFO *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it);
+}
ASN1_SEQUENCE(USERNOTICE) = {
ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
} ASN1_SEQUENCE_END(USERNOTICE)
-IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE)
+
+USERNOTICE *
+d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len)
+{
+ return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &USERNOTICE_it);
+}
+
+int
+i2d_USERNOTICE(USERNOTICE *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it);
+}
+
+USERNOTICE *
+USERNOTICE_new(void)
+{
+ return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it);
+}
+
+void
+USERNOTICE_free(USERNOTICE *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it);
+}
ASN1_SEQUENCE(NOTICEREF) = {
ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
} ASN1_SEQUENCE_END(NOTICEREF)
-IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF)
+
+NOTICEREF *
+d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len)
+{
+ return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &NOTICEREF_it);
+}
+
+int
+i2d_NOTICEREF(NOTICEREF *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it);
+}
+
+NOTICEREF *
+NOTICEREF_new(void)
+{
+ return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it);
+}
+
+void
+NOTICEREF_free(NOTICEREF *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it);
+}
static
STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
diff --git a/lib/libcrypto/x509v3/v3_crld.c b/lib/libcrypto/x509v3/v3_crld.c
index 9586401da6e..2201b612648 100644
--- a/lib/libcrypto/x509v3/v3_crld.c
+++ b/lib/libcrypto/x509v3/v3_crld.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_crld.c,v 1.13 2014/10/05 18:27:58 miod Exp $ */
+/* $OpenBSD: v3_crld.c,v 1.14 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -383,7 +383,31 @@ ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
-IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME)
+
+DIST_POINT_NAME *
+d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len)
+{
+ return (DIST_POINT_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &DIST_POINT_NAME_it);
+}
+
+int
+i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_NAME_it);
+}
+
+DIST_POINT_NAME *
+DIST_POINT_NAME_new(void)
+{
+ return (DIST_POINT_NAME *)ASN1_item_new(&DIST_POINT_NAME_it);
+}
+
+void
+DIST_POINT_NAME_free(DIST_POINT_NAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it);
+}
ASN1_SEQUENCE(DIST_POINT) = {
ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -391,14 +415,62 @@ ASN1_SEQUENCE(DIST_POINT) = {
ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
} ASN1_SEQUENCE_END(DIST_POINT)
-IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT)
+
+DIST_POINT *
+d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len)
+{
+ return (DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &DIST_POINT_it);
+}
+
+int
+i2d_DIST_POINT(DIST_POINT *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_it);
+}
+
+DIST_POINT *
+DIST_POINT_new(void)
+{
+ return (DIST_POINT *)ASN1_item_new(&DIST_POINT_it);
+}
+
+void
+DIST_POINT_free(DIST_POINT *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it);
+}
ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints,
DIST_POINT)
ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS)
-IMPLEMENT_ASN1_FUNCTIONS(CRL_DIST_POINTS)
+
+CRL_DIST_POINTS *
+d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len)
+{
+ return (CRL_DIST_POINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &CRL_DIST_POINTS_it);
+}
+
+int
+i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &CRL_DIST_POINTS_it);
+}
+
+CRL_DIST_POINTS *
+CRL_DIST_POINTS_new(void)
+{
+ return (CRL_DIST_POINTS *)ASN1_item_new(&CRL_DIST_POINTS_it);
+}
+
+void
+CRL_DIST_POINTS_free(CRL_DIST_POINTS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it);
+}
ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -409,7 +481,31 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
} ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
-IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
+
+ISSUING_DIST_POINT *
+d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len)
+{
+ return (ISSUING_DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ISSUING_DIST_POINT_it);
+}
+
+int
+i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ISSUING_DIST_POINT_it);
+}
+
+ISSUING_DIST_POINT *
+ISSUING_DIST_POINT_new(void)
+{
+ return (ISSUING_DIST_POINT *)ASN1_item_new(&ISSUING_DIST_POINT_it);
+}
+
+void
+ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ISSUING_DIST_POINT_it);
+}
static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,
int indent);
diff --git a/lib/libcrypto/x509v3/v3_extku.c b/lib/libcrypto/x509v3/v3_extku.c
index a9f1d6da6e4..c37b65f7a5c 100644
--- a/lib/libcrypto/x509v3/v3_extku.c
+++ b/lib/libcrypto/x509v3/v3_extku.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_extku.c,v 1.10 2014/10/28 05:46:56 miod Exp $ */
+/* $OpenBSD: v3_extku.c,v 1.11 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -96,7 +96,31 @@ ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
ASN1_OBJECT)
ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE)
-IMPLEMENT_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
+
+EXTENDED_KEY_USAGE *
+d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len)
+{
+ return (EXTENDED_KEY_USAGE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &EXTENDED_KEY_USAGE_it);
+}
+
+int
+i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &EXTENDED_KEY_USAGE_it);
+}
+
+EXTENDED_KEY_USAGE *
+EXTENDED_KEY_USAGE_new(void)
+{
+ return (EXTENDED_KEY_USAGE *)ASN1_item_new(&EXTENDED_KEY_USAGE_it);
+}
+
+void
+EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &EXTENDED_KEY_USAGE_it);
+}
static STACK_OF(CONF_VALUE) *
i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a,
diff --git a/lib/libcrypto/x509v3/v3_genn.c b/lib/libcrypto/x509v3/v3_genn.c
index 716f4a7b990..25d7f447d25 100644
--- a/lib/libcrypto/x509v3/v3_genn.c
+++ b/lib/libcrypto/x509v3/v3_genn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_genn.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_genn.c,v 1.10 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -69,14 +69,62 @@ ASN1_SEQUENCE(OTHERNAME) = {
ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)
} ASN1_SEQUENCE_END(OTHERNAME)
-IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
+
+OTHERNAME *
+d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len)
+{
+ return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &OTHERNAME_it);
+}
+
+int
+i2d_OTHERNAME(OTHERNAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &OTHERNAME_it);
+}
+
+OTHERNAME *
+OTHERNAME_new(void)
+{
+ return (OTHERNAME *)ASN1_item_new(&OTHERNAME_it);
+}
+
+void
+OTHERNAME_free(OTHERNAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it);
+}
ASN1_SEQUENCE(EDIPARTYNAME) = {
ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),
ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)
} ASN1_SEQUENCE_END(EDIPARTYNAME)
-IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME)
+
+EDIPARTYNAME *
+d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len)
+{
+ return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &EDIPARTYNAME_it);
+}
+
+int
+i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &EDIPARTYNAME_it);
+}
+
+EDIPARTYNAME *
+EDIPARTYNAME_new(void)
+{
+ return (EDIPARTYNAME *)ASN1_item_new(&EDIPARTYNAME_it);
+}
+
+void
+EDIPARTYNAME_free(EDIPARTYNAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it);
+}
ASN1_CHOICE(GENERAL_NAME) = {
ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME),
@@ -92,13 +140,61 @@ ASN1_CHOICE(GENERAL_NAME) = {
ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)
} ASN1_CHOICE_END(GENERAL_NAME)
-IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME)
+
+GENERAL_NAME *
+d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len)
+{
+ return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &GENERAL_NAME_it);
+}
+
+int
+i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAME_it);
+}
+
+GENERAL_NAME *
+GENERAL_NAME_new(void)
+{
+ return (GENERAL_NAME *)ASN1_item_new(&GENERAL_NAME_it);
+}
+
+void
+GENERAL_NAME_free(GENERAL_NAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it);
+}
ASN1_ITEM_TEMPLATE(GENERAL_NAMES) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME)
ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES)
-IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES)
+
+GENERAL_NAMES *
+d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len)
+{
+ return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &GENERAL_NAMES_it);
+}
+
+int
+i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAMES_it);
+}
+
+GENERAL_NAMES *
+GENERAL_NAMES_new(void)
+{
+ return (GENERAL_NAMES *)ASN1_item_new(&GENERAL_NAMES_it);
+}
+
+void
+GENERAL_NAMES_free(GENERAL_NAMES *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAMES_it);
+}
GENERAL_NAME *
GENERAL_NAME_dup(GENERAL_NAME *a)
diff --git a/lib/libcrypto/x509v3/v3_info.c b/lib/libcrypto/x509v3/v3_info.c
index 0a4df34078d..d9fa1333082 100644
--- a/lib/libcrypto/x509v3/v3_info.c
+++ b/lib/libcrypto/x509v3/v3_info.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_info.c,v 1.20 2015/02/07 13:19:15 doug Exp $ */
+/* $OpenBSD: v3_info.c,v 1.21 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -98,14 +98,62 @@ ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
-IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
+
+ACCESS_DESCRIPTION *
+d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len)
+{
+ return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ACCESS_DESCRIPTION_it);
+}
+
+int
+i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it);
+}
+
+ACCESS_DESCRIPTION *
+ACCESS_DESCRIPTION_new(void)
+{
+ return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it);
+}
+
+void
+ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it);
+}
ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames,
ACCESS_DESCRIPTION)
ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS)
-IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)
+
+AUTHORITY_INFO_ACCESS *
+d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len)
+{
+ return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &AUTHORITY_INFO_ACCESS_it);
+}
+
+int
+i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it);
+}
+
+AUTHORITY_INFO_ACCESS *
+AUTHORITY_INFO_ACCESS_new(void)
+{
+ return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it);
+}
+
+void
+AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_INFO_ACCESS_it);
+}
static STACK_OF(CONF_VALUE) *
i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,
diff --git a/lib/libcrypto/x509v3/v3_pcia.c b/lib/libcrypto/x509v3/v3_pcia.c
index c7df2252906..07e294e6331 100644
--- a/lib/libcrypto/x509v3/v3_pcia.c
+++ b/lib/libcrypto/x509v3/v3_pcia.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_pcia.c,v 1.4 2014/06/12 15:49:31 deraadt Exp $ */
+/* $OpenBSD: v3_pcia.c,v 1.5 2015/02/09 16:03:11 jsing Exp $ */
/* Contributed to the OpenSSL Project 2004
* by Richard Levitte (richard@levitte.org)
*/
@@ -43,7 +43,31 @@ ASN1_SEQUENCE(PROXY_POLICY) = {
ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(PROXY_POLICY)
-IMPLEMENT_ASN1_FUNCTIONS(PROXY_POLICY)
+
+PROXY_POLICY *
+d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len)
+{
+ return (PROXY_POLICY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PROXY_POLICY_it);
+}
+
+int
+i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_POLICY_it);
+}
+
+PROXY_POLICY *
+PROXY_POLICY_new(void)
+{
+ return (PROXY_POLICY *)ASN1_item_new(&PROXY_POLICY_it);
+}
+
+void
+PROXY_POLICY_free(PROXY_POLICY *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it);
+}
ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint,
@@ -51,4 +75,28 @@ ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY)
} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION)
-IMPLEMENT_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
+
+PROXY_CERT_INFO_EXTENSION *
+d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len)
+{
+ return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PROXY_CERT_INFO_EXTENSION_it);
+}
+
+int
+i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_CERT_INFO_EXTENSION_it);
+}
+
+PROXY_CERT_INFO_EXTENSION *
+PROXY_CERT_INFO_EXTENSION_new(void)
+{
+ return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_new(&PROXY_CERT_INFO_EXTENSION_it);
+}
+
+void
+PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PROXY_CERT_INFO_EXTENSION_it);
+}
diff --git a/lib/libcrypto/x509v3/v3_pku.c b/lib/libcrypto/x509v3/v3_pku.c
index 6cfbc3bd3e7..4bce07f09ca 100644
--- a/lib/libcrypto/x509v3/v3_pku.c
+++ b/lib/libcrypto/x509v3/v3_pku.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_pku.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_pku.c,v 1.10 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -80,7 +80,31 @@ ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = {
ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1)
} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD)
-IMPLEMENT_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD)
+
+PKEY_USAGE_PERIOD *
+d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len)
+{
+ return (PKEY_USAGE_PERIOD *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PKEY_USAGE_PERIOD_it);
+}
+
+int
+i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKEY_USAGE_PERIOD_it);
+}
+
+PKEY_USAGE_PERIOD *
+PKEY_USAGE_PERIOD_new(void)
+{
+ return (PKEY_USAGE_PERIOD *)ASN1_item_new(&PKEY_USAGE_PERIOD_it);
+}
+
+void
+PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PKEY_USAGE_PERIOD_it);
+}
static int
i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage,
diff --git a/lib/libcrypto/x509v3/v3_sxnet.c b/lib/libcrypto/x509v3/v3_sxnet.c
index 81e8ab67ddd..dc8ee379c75 100644
--- a/lib/libcrypto/x509v3/v3_sxnet.c
+++ b/lib/libcrypto/x509v3/v3_sxnet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_sxnet.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_sxnet.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -95,14 +95,62 @@ ASN1_SEQUENCE(SXNETID) = {
ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(SXNETID)
-IMPLEMENT_ASN1_FUNCTIONS(SXNETID)
+
+SXNETID *
+d2i_SXNETID(SXNETID **a, const unsigned char **in, long len)
+{
+ return (SXNETID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &SXNETID_it);
+}
+
+int
+i2d_SXNETID(SXNETID *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNETID_it);
+}
+
+SXNETID *
+SXNETID_new(void)
+{
+ return (SXNETID *)ASN1_item_new(&SXNETID_it);
+}
+
+void
+SXNETID_free(SXNETID *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it);
+}
ASN1_SEQUENCE(SXNET) = {
ASN1_SIMPLE(SXNET, version, ASN1_INTEGER),
ASN1_SEQUENCE_OF(SXNET, ids, SXNETID)
} ASN1_SEQUENCE_END(SXNET)
-IMPLEMENT_ASN1_FUNCTIONS(SXNET)
+
+SXNET *
+d2i_SXNET(SXNET **a, const unsigned char **in, long len)
+{
+ return (SXNET *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &SXNET_it);
+}
+
+int
+i2d_SXNET(SXNET *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNET_it);
+}
+
+SXNET *
+SXNET_new(void)
+{
+ return (SXNET *)ASN1_item_new(&SXNET_it);
+}
+
+void
+SXNET_free(SXNET *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &SXNET_it);
+}
static int
sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent)
diff --git a/lib/libssl/src/crypto/x509v3/v3_addr.c b/lib/libssl/src/crypto/x509v3/v3_addr.c
index 40efb1b9aca..4073aeeaa67 100644
--- a/lib/libssl/src/crypto/x509v3/v3_addr.c
+++ b/lib/libssl/src/crypto/x509v3/v3_addr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_addr.c,v 1.14 2014/11/18 03:28:05 tedu Exp $ */
+/* $OpenBSD: v3_addr.c,v 1.15 2015/02/09 16:03:11 jsing Exp $ */
/*
* Contributed to the OpenSSL Project by the American Registry for
* Internet Numbers ("ARIN").
@@ -102,10 +102,106 @@ ASN1_ITEM_TEMPLATE(IPAddrBlocks) =
IPAddrBlocks, IPAddressFamily)
ASN1_ITEM_TEMPLATE_END(IPAddrBlocks)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily)
+
+IPAddressRange *
+d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len)
+{
+ return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressRange_it);
+}
+
+int
+i2d_IPAddressRange(IPAddressRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it);
+}
+
+IPAddressRange *
+IPAddressRange_new(void)
+{
+ return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it);
+}
+
+void
+IPAddressRange_free(IPAddressRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it);
+}
+
+IPAddressOrRange *
+d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
+{
+ return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressOrRange_it);
+}
+
+int
+i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it);
+}
+
+IPAddressOrRange *
+IPAddressOrRange_new(void)
+{
+ return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it);
+}
+
+void
+IPAddressOrRange_free(IPAddressOrRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it);
+}
+
+IPAddressChoice *
+d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len)
+{
+ return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressChoice_it);
+}
+
+int
+i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it);
+}
+
+IPAddressChoice *
+IPAddressChoice_new(void)
+{
+ return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it);
+}
+
+void
+IPAddressChoice_free(IPAddressChoice *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it);
+}
+
+IPAddressFamily *
+d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len)
+{
+ return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &IPAddressFamily_it);
+}
+
+int
+i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it);
+}
+
+IPAddressFamily *
+IPAddressFamily_new(void)
+{
+ return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it);
+}
+
+void
+IPAddressFamily_free(IPAddressFamily *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it);
+}
/*
* How much buffer space do we need for a raw address?
diff --git a/lib/libssl/src/crypto/x509v3/v3_akeya.c b/lib/libssl/src/crypto/x509v3/v3_akeya.c
index 247c9f48a9c..1848c0911ef 100644
--- a/lib/libssl/src/crypto/x509v3/v3_akeya.c
+++ b/lib/libssl/src/crypto/x509v3/v3_akeya.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_akeya.c,v 1.5 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_akeya.c,v 1.6 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -69,4 +69,28 @@ ASN1_SEQUENCE(AUTHORITY_KEYID) = {
ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
} ASN1_SEQUENCE_END(AUTHORITY_KEYID)
-IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID)
+
+AUTHORITY_KEYID *
+d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len)
+{
+ return (AUTHORITY_KEYID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &AUTHORITY_KEYID_it);
+}
+
+int
+i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_KEYID_it);
+}
+
+AUTHORITY_KEYID *
+AUTHORITY_KEYID_new(void)
+{
+ return (AUTHORITY_KEYID *)ASN1_item_new(&AUTHORITY_KEYID_it);
+}
+
+void
+AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_KEYID_it);
+}
diff --git a/lib/libssl/src/crypto/x509v3/v3_asid.c b/lib/libssl/src/crypto/x509v3/v3_asid.c
index 680eed31ec6..10f82c573dc 100644
--- a/lib/libssl/src/crypto/x509v3/v3_asid.c
+++ b/lib/libssl/src/crypto/x509v3/v3_asid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_asid.c,v 1.11 2014/07/13 16:03:10 beck Exp $ */
+/* $OpenBSD: v3_asid.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
/*
* Contributed to the OpenSSL Project by the American Registry for
* Internet Numbers ("ARIN").
@@ -98,10 +98,106 @@ ASN1_SEQUENCE(ASIdentifiers) = {
ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1)
} ASN1_SEQUENCE_END(ASIdentifiers)
-IMPLEMENT_ASN1_FUNCTIONS(ASRange)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdOrRange)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdentifierChoice)
-IMPLEMENT_ASN1_FUNCTIONS(ASIdentifiers)
+
+ASRange *
+d2i_ASRange(ASRange **a, const unsigned char **in, long len)
+{
+ return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASRange_it);
+}
+
+int
+i2d_ASRange(ASRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASRange_it);
+}
+
+ASRange *
+ASRange_new(void)
+{
+ return (ASRange *)ASN1_item_new(&ASRange_it);
+}
+
+void
+ASRange_free(ASRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASRange_it);
+}
+
+ASIdOrRange *
+d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len)
+{
+ return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdOrRange_it);
+}
+
+int
+i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdOrRange_it);
+}
+
+ASIdOrRange *
+ASIdOrRange_new(void)
+{
+ return (ASIdOrRange *)ASN1_item_new(&ASIdOrRange_it);
+}
+
+void
+ASIdOrRange_free(ASIdOrRange *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdOrRange_it);
+}
+
+ASIdentifierChoice *
+d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len)
+{
+ return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdentifierChoice_it);
+}
+
+int
+i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifierChoice_it);
+}
+
+ASIdentifierChoice *
+ASIdentifierChoice_new(void)
+{
+ return (ASIdentifierChoice *)ASN1_item_new(&ASIdentifierChoice_it);
+}
+
+void
+ASIdentifierChoice_free(ASIdentifierChoice *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdentifierChoice_it);
+}
+
+ASIdentifiers *
+d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len)
+{
+ return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ASIdentifiers_it);
+}
+
+int
+i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifiers_it);
+}
+
+ASIdentifiers *
+ASIdentifiers_new(void)
+{
+ return (ASIdentifiers *)ASN1_item_new(&ASIdentifiers_it);
+}
+
+void
+ASIdentifiers_free(ASIdentifiers *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ASIdentifiers_it);
+}
/*
* i2r method for an ASIdentifierChoice.
diff --git a/lib/libssl/src/crypto/x509v3/v3_bcons.c b/lib/libssl/src/crypto/x509v3/v3_bcons.c
index 8e2632d3795..fb3f6c7619c 100644
--- a/lib/libssl/src/crypto/x509v3/v3_bcons.c
+++ b/lib/libssl/src/crypto/x509v3/v3_bcons.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_bcons.c,v 1.10 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_bcons.c,v 1.11 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -86,7 +86,31 @@ ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
-IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
+
+BASIC_CONSTRAINTS *
+d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len)
+{
+ return (BASIC_CONSTRAINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &BASIC_CONSTRAINTS_it);
+}
+
+int
+i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &BASIC_CONSTRAINTS_it);
+}
+
+BASIC_CONSTRAINTS *
+BASIC_CONSTRAINTS_new(void)
+{
+ return (BASIC_CONSTRAINTS *)ASN1_item_new(&BASIC_CONSTRAINTS_it);
+}
+
+void
+BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &BASIC_CONSTRAINTS_it);
+}
static STACK_OF(CONF_VALUE) *
diff --git a/lib/libssl/src/crypto/x509v3/v3_cpols.c b/lib/libssl/src/crypto/x509v3/v3_cpols.c
index d683db697ee..6ceb93d3724 100644
--- a/lib/libssl/src/crypto/x509v3/v3_cpols.c
+++ b/lib/libssl/src/crypto/x509v3/v3_cpols.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */
+/* $OpenBSD: v3_cpols.c,v 1.17 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
POLICYINFO)
ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES)
-IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
+
+CERTIFICATEPOLICIES *
+d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len)
+{
+ return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &CERTIFICATEPOLICIES_it);
+}
+
+int
+i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it);
+}
+
+CERTIFICATEPOLICIES *
+CERTIFICATEPOLICIES_new(void)
+{
+ return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it);
+}
+
+void
+CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it);
+}
ASN1_SEQUENCE(POLICYINFO) = {
ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
} ASN1_SEQUENCE_END(POLICYINFO)
-IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO)
+
+POLICYINFO *
+d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len)
+{
+ return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &POLICYINFO_it);
+}
+
+int
+i2d_POLICYINFO(POLICYINFO *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it);
+}
+
+POLICYINFO *
+POLICYINFO_new(void)
+{
+ return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it);
+}
+
+void
+POLICYINFO_free(POLICYINFO *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it);
+}
ASN1_ADB_TEMPLATE(policydefault) =
ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY);
@@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = {
ASN1_ADB_OBJECT(POLICYQUALINFO)
} ASN1_SEQUENCE_END(POLICYQUALINFO)
-IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO)
+
+POLICYQUALINFO *
+d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len)
+{
+ return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &POLICYQUALINFO_it);
+}
+
+int
+i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it);
+}
+
+POLICYQUALINFO *
+POLICYQUALINFO_new(void)
+{
+ return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it);
+}
+
+void
+POLICYQUALINFO_free(POLICYQUALINFO *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it);
+}
ASN1_SEQUENCE(USERNOTICE) = {
ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
} ASN1_SEQUENCE_END(USERNOTICE)
-IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE)
+
+USERNOTICE *
+d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len)
+{
+ return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &USERNOTICE_it);
+}
+
+int
+i2d_USERNOTICE(USERNOTICE *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it);
+}
+
+USERNOTICE *
+USERNOTICE_new(void)
+{
+ return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it);
+}
+
+void
+USERNOTICE_free(USERNOTICE *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it);
+}
ASN1_SEQUENCE(NOTICEREF) = {
ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
} ASN1_SEQUENCE_END(NOTICEREF)
-IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF)
+
+NOTICEREF *
+d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len)
+{
+ return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &NOTICEREF_it);
+}
+
+int
+i2d_NOTICEREF(NOTICEREF *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it);
+}
+
+NOTICEREF *
+NOTICEREF_new(void)
+{
+ return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it);
+}
+
+void
+NOTICEREF_free(NOTICEREF *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it);
+}
static
STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
diff --git a/lib/libssl/src/crypto/x509v3/v3_crld.c b/lib/libssl/src/crypto/x509v3/v3_crld.c
index 9586401da6e..2201b612648 100644
--- a/lib/libssl/src/crypto/x509v3/v3_crld.c
+++ b/lib/libssl/src/crypto/x509v3/v3_crld.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_crld.c,v 1.13 2014/10/05 18:27:58 miod Exp $ */
+/* $OpenBSD: v3_crld.c,v 1.14 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -383,7 +383,31 @@ ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
-IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME)
+
+DIST_POINT_NAME *
+d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len)
+{
+ return (DIST_POINT_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &DIST_POINT_NAME_it);
+}
+
+int
+i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_NAME_it);
+}
+
+DIST_POINT_NAME *
+DIST_POINT_NAME_new(void)
+{
+ return (DIST_POINT_NAME *)ASN1_item_new(&DIST_POINT_NAME_it);
+}
+
+void
+DIST_POINT_NAME_free(DIST_POINT_NAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it);
+}
ASN1_SEQUENCE(DIST_POINT) = {
ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -391,14 +415,62 @@ ASN1_SEQUENCE(DIST_POINT) = {
ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
} ASN1_SEQUENCE_END(DIST_POINT)
-IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT)
+
+DIST_POINT *
+d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len)
+{
+ return (DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &DIST_POINT_it);
+}
+
+int
+i2d_DIST_POINT(DIST_POINT *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_it);
+}
+
+DIST_POINT *
+DIST_POINT_new(void)
+{
+ return (DIST_POINT *)ASN1_item_new(&DIST_POINT_it);
+}
+
+void
+DIST_POINT_free(DIST_POINT *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it);
+}
ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints,
DIST_POINT)
ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS)
-IMPLEMENT_ASN1_FUNCTIONS(CRL_DIST_POINTS)
+
+CRL_DIST_POINTS *
+d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len)
+{
+ return (CRL_DIST_POINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &CRL_DIST_POINTS_it);
+}
+
+int
+i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &CRL_DIST_POINTS_it);
+}
+
+CRL_DIST_POINTS *
+CRL_DIST_POINTS_new(void)
+{
+ return (CRL_DIST_POINTS *)ASN1_item_new(&CRL_DIST_POINTS_it);
+}
+
+void
+CRL_DIST_POINTS_free(CRL_DIST_POINTS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it);
+}
ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -409,7 +481,31 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
} ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
-IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
+
+ISSUING_DIST_POINT *
+d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len)
+{
+ return (ISSUING_DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ISSUING_DIST_POINT_it);
+}
+
+int
+i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ISSUING_DIST_POINT_it);
+}
+
+ISSUING_DIST_POINT *
+ISSUING_DIST_POINT_new(void)
+{
+ return (ISSUING_DIST_POINT *)ASN1_item_new(&ISSUING_DIST_POINT_it);
+}
+
+void
+ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ISSUING_DIST_POINT_it);
+}
static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,
int indent);
diff --git a/lib/libssl/src/crypto/x509v3/v3_extku.c b/lib/libssl/src/crypto/x509v3/v3_extku.c
index a9f1d6da6e4..c37b65f7a5c 100644
--- a/lib/libssl/src/crypto/x509v3/v3_extku.c
+++ b/lib/libssl/src/crypto/x509v3/v3_extku.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_extku.c,v 1.10 2014/10/28 05:46:56 miod Exp $ */
+/* $OpenBSD: v3_extku.c,v 1.11 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -96,7 +96,31 @@ ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
ASN1_OBJECT)
ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE)
-IMPLEMENT_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
+
+EXTENDED_KEY_USAGE *
+d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len)
+{
+ return (EXTENDED_KEY_USAGE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &EXTENDED_KEY_USAGE_it);
+}
+
+int
+i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &EXTENDED_KEY_USAGE_it);
+}
+
+EXTENDED_KEY_USAGE *
+EXTENDED_KEY_USAGE_new(void)
+{
+ return (EXTENDED_KEY_USAGE *)ASN1_item_new(&EXTENDED_KEY_USAGE_it);
+}
+
+void
+EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &EXTENDED_KEY_USAGE_it);
+}
static STACK_OF(CONF_VALUE) *
i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a,
diff --git a/lib/libssl/src/crypto/x509v3/v3_genn.c b/lib/libssl/src/crypto/x509v3/v3_genn.c
index 716f4a7b990..25d7f447d25 100644
--- a/lib/libssl/src/crypto/x509v3/v3_genn.c
+++ b/lib/libssl/src/crypto/x509v3/v3_genn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_genn.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_genn.c,v 1.10 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -69,14 +69,62 @@ ASN1_SEQUENCE(OTHERNAME) = {
ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)
} ASN1_SEQUENCE_END(OTHERNAME)
-IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
+
+OTHERNAME *
+d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len)
+{
+ return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &OTHERNAME_it);
+}
+
+int
+i2d_OTHERNAME(OTHERNAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &OTHERNAME_it);
+}
+
+OTHERNAME *
+OTHERNAME_new(void)
+{
+ return (OTHERNAME *)ASN1_item_new(&OTHERNAME_it);
+}
+
+void
+OTHERNAME_free(OTHERNAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it);
+}
ASN1_SEQUENCE(EDIPARTYNAME) = {
ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),
ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)
} ASN1_SEQUENCE_END(EDIPARTYNAME)
-IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME)
+
+EDIPARTYNAME *
+d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len)
+{
+ return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &EDIPARTYNAME_it);
+}
+
+int
+i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &EDIPARTYNAME_it);
+}
+
+EDIPARTYNAME *
+EDIPARTYNAME_new(void)
+{
+ return (EDIPARTYNAME *)ASN1_item_new(&EDIPARTYNAME_it);
+}
+
+void
+EDIPARTYNAME_free(EDIPARTYNAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it);
+}
ASN1_CHOICE(GENERAL_NAME) = {
ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME),
@@ -92,13 +140,61 @@ ASN1_CHOICE(GENERAL_NAME) = {
ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)
} ASN1_CHOICE_END(GENERAL_NAME)
-IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME)
+
+GENERAL_NAME *
+d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len)
+{
+ return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &GENERAL_NAME_it);
+}
+
+int
+i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAME_it);
+}
+
+GENERAL_NAME *
+GENERAL_NAME_new(void)
+{
+ return (GENERAL_NAME *)ASN1_item_new(&GENERAL_NAME_it);
+}
+
+void
+GENERAL_NAME_free(GENERAL_NAME *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it);
+}
ASN1_ITEM_TEMPLATE(GENERAL_NAMES) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME)
ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES)
-IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES)
+
+GENERAL_NAMES *
+d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len)
+{
+ return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &GENERAL_NAMES_it);
+}
+
+int
+i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAMES_it);
+}
+
+GENERAL_NAMES *
+GENERAL_NAMES_new(void)
+{
+ return (GENERAL_NAMES *)ASN1_item_new(&GENERAL_NAMES_it);
+}
+
+void
+GENERAL_NAMES_free(GENERAL_NAMES *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAMES_it);
+}
GENERAL_NAME *
GENERAL_NAME_dup(GENERAL_NAME *a)
diff --git a/lib/libssl/src/crypto/x509v3/v3_info.c b/lib/libssl/src/crypto/x509v3/v3_info.c
index 0a4df34078d..d9fa1333082 100644
--- a/lib/libssl/src/crypto/x509v3/v3_info.c
+++ b/lib/libssl/src/crypto/x509v3/v3_info.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_info.c,v 1.20 2015/02/07 13:19:15 doug Exp $ */
+/* $OpenBSD: v3_info.c,v 1.21 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -98,14 +98,62 @@ ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
-IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
+
+ACCESS_DESCRIPTION *
+d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len)
+{
+ return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ACCESS_DESCRIPTION_it);
+}
+
+int
+i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it);
+}
+
+ACCESS_DESCRIPTION *
+ACCESS_DESCRIPTION_new(void)
+{
+ return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it);
+}
+
+void
+ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it);
+}
ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames,
ACCESS_DESCRIPTION)
ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS)
-IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)
+
+AUTHORITY_INFO_ACCESS *
+d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len)
+{
+ return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &AUTHORITY_INFO_ACCESS_it);
+}
+
+int
+i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it);
+}
+
+AUTHORITY_INFO_ACCESS *
+AUTHORITY_INFO_ACCESS_new(void)
+{
+ return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it);
+}
+
+void
+AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_INFO_ACCESS_it);
+}
static STACK_OF(CONF_VALUE) *
i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,
diff --git a/lib/libssl/src/crypto/x509v3/v3_pcia.c b/lib/libssl/src/crypto/x509v3/v3_pcia.c
index c7df2252906..07e294e6331 100644
--- a/lib/libssl/src/crypto/x509v3/v3_pcia.c
+++ b/lib/libssl/src/crypto/x509v3/v3_pcia.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_pcia.c,v 1.4 2014/06/12 15:49:31 deraadt Exp $ */
+/* $OpenBSD: v3_pcia.c,v 1.5 2015/02/09 16:03:11 jsing Exp $ */
/* Contributed to the OpenSSL Project 2004
* by Richard Levitte (richard@levitte.org)
*/
@@ -43,7 +43,31 @@ ASN1_SEQUENCE(PROXY_POLICY) = {
ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(PROXY_POLICY)
-IMPLEMENT_ASN1_FUNCTIONS(PROXY_POLICY)
+
+PROXY_POLICY *
+d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len)
+{
+ return (PROXY_POLICY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PROXY_POLICY_it);
+}
+
+int
+i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_POLICY_it);
+}
+
+PROXY_POLICY *
+PROXY_POLICY_new(void)
+{
+ return (PROXY_POLICY *)ASN1_item_new(&PROXY_POLICY_it);
+}
+
+void
+PROXY_POLICY_free(PROXY_POLICY *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it);
+}
ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint,
@@ -51,4 +75,28 @@ ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY)
} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION)
-IMPLEMENT_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
+
+PROXY_CERT_INFO_EXTENSION *
+d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len)
+{
+ return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PROXY_CERT_INFO_EXTENSION_it);
+}
+
+int
+i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_CERT_INFO_EXTENSION_it);
+}
+
+PROXY_CERT_INFO_EXTENSION *
+PROXY_CERT_INFO_EXTENSION_new(void)
+{
+ return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_new(&PROXY_CERT_INFO_EXTENSION_it);
+}
+
+void
+PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PROXY_CERT_INFO_EXTENSION_it);
+}
diff --git a/lib/libssl/src/crypto/x509v3/v3_pku.c b/lib/libssl/src/crypto/x509v3/v3_pku.c
index 6cfbc3bd3e7..4bce07f09ca 100644
--- a/lib/libssl/src/crypto/x509v3/v3_pku.c
+++ b/lib/libssl/src/crypto/x509v3/v3_pku.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_pku.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_pku.c,v 1.10 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -80,7 +80,31 @@ ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = {
ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1)
} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD)
-IMPLEMENT_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD)
+
+PKEY_USAGE_PERIOD *
+d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len)
+{
+ return (PKEY_USAGE_PERIOD *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &PKEY_USAGE_PERIOD_it);
+}
+
+int
+i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKEY_USAGE_PERIOD_it);
+}
+
+PKEY_USAGE_PERIOD *
+PKEY_USAGE_PERIOD_new(void)
+{
+ return (PKEY_USAGE_PERIOD *)ASN1_item_new(&PKEY_USAGE_PERIOD_it);
+}
+
+void
+PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &PKEY_USAGE_PERIOD_it);
+}
static int
i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage,
diff --git a/lib/libssl/src/crypto/x509v3/v3_sxnet.c b/lib/libssl/src/crypto/x509v3/v3_sxnet.c
index 81e8ab67ddd..dc8ee379c75 100644
--- a/lib/libssl/src/crypto/x509v3/v3_sxnet.c
+++ b/lib/libssl/src/crypto/x509v3/v3_sxnet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: v3_sxnet.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */
+/* $OpenBSD: v3_sxnet.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 1999.
*/
@@ -95,14 +95,62 @@ ASN1_SEQUENCE(SXNETID) = {
ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(SXNETID)
-IMPLEMENT_ASN1_FUNCTIONS(SXNETID)
+
+SXNETID *
+d2i_SXNETID(SXNETID **a, const unsigned char **in, long len)
+{
+ return (SXNETID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &SXNETID_it);
+}
+
+int
+i2d_SXNETID(SXNETID *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNETID_it);
+}
+
+SXNETID *
+SXNETID_new(void)
+{
+ return (SXNETID *)ASN1_item_new(&SXNETID_it);
+}
+
+void
+SXNETID_free(SXNETID *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it);
+}
ASN1_SEQUENCE(SXNET) = {
ASN1_SIMPLE(SXNET, version, ASN1_INTEGER),
ASN1_SEQUENCE_OF(SXNET, ids, SXNETID)
} ASN1_SEQUENCE_END(SXNET)
-IMPLEMENT_ASN1_FUNCTIONS(SXNET)
+
+SXNET *
+d2i_SXNET(SXNET **a, const unsigned char **in, long len)
+{
+ return (SXNET *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &SXNET_it);
+}
+
+int
+i2d_SXNET(SXNET *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNET_it);
+}
+
+SXNET *
+SXNET_new(void)
+{
+ return (SXNET *)ASN1_item_new(&SXNET_it);
+}
+
+void
+SXNET_free(SXNET *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &SXNET_it);
+}
static int
sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent)