summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2015-02-10 04:01:26 +0000
committerjsing <>2015-02-10 04:01:26 +0000
commit0e4218e3e293b3085109f78bed8948a0bf9f1511 (patch)
tree86b03f16387ab89c274a564f80963cad767070f8 /src
parentef9e1f7eec0659c49a61db86c7a58ea19e13d6b1 (diff)
downloadopenbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.tar.gz
openbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.tar.bz2
openbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.zip
Expand the IMPLEMENT_ASN1_FUNCTIONS_{const,fname,name} macros 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@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/asn1/n_pkey.c54
-rw-r--r--src/lib/libcrypto/asn1/tasn_typ.c106
-rw-r--r--src/lib/libcrypto/ec/ec_asn1.c54
-rw-r--r--src/lib/libcrypto/ecdsa/ecs_asn1.c28
-rw-r--r--src/lib/libcrypto/ts/ts_asn1.c236
-rw-r--r--src/lib/libssl/src/crypto/asn1/n_pkey.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/tasn_typ.c106
-rw-r--r--src/lib/libssl/src/crypto/ec/ec_asn1.c54
-rw-r--r--src/lib/libssl/src/crypto/ecdsa/ecs_asn1.c28
-rw-r--r--src/lib/libssl/src/crypto/ts/ts_asn1.c236
10 files changed, 910 insertions, 46 deletions
diff --git a/src/lib/libcrypto/asn1/n_pkey.c b/src/lib/libcrypto/asn1/n_pkey.c
index 42431b6e24..198ca97c09 100644
--- a/src/lib/libcrypto/asn1/n_pkey.c
+++ b/src/lib/libcrypto/asn1/n_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: n_pkey.c,v 1.22 2014/07/12 22:26:01 miod Exp $ */ 1/* $OpenBSD: n_pkey.c,v 1.23 2015/02/10 04:01:26 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 *
@@ -94,7 +94,31 @@ ASN1_BROKEN_SEQUENCE(NETSCAPE_ENCRYPTED_PKEY) = {
94 94
95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY)
96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) 96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY)
97IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 97
98NETSCAPE_ENCRYPTED_PKEY *
99d2i_NETSCAPE_ENCRYPTED_PKEY(NETSCAPE_ENCRYPTED_PKEY **a, const unsigned char **in, long len)
100{
101 return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
102 &NETSCAPE_ENCRYPTED_PKEY_it);
103}
104
105int
106i2d_NETSCAPE_ENCRYPTED_PKEY(const NETSCAPE_ENCRYPTED_PKEY *a, unsigned char **out)
107{
108 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_ENCRYPTED_PKEY_it);
109}
110
111NETSCAPE_ENCRYPTED_PKEY *
112NETSCAPE_ENCRYPTED_PKEY_new(void)
113{
114 return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_new(&NETSCAPE_ENCRYPTED_PKEY_it);
115}
116
117void
118NETSCAPE_ENCRYPTED_PKEY_free(NETSCAPE_ENCRYPTED_PKEY *a)
119{
120 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it);
121}
98 122
99ASN1_SEQUENCE(NETSCAPE_PKEY) = { 123ASN1_SEQUENCE(NETSCAPE_PKEY) = {
100 ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG), 124 ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG),
@@ -104,7 +128,31 @@ ASN1_SEQUENCE(NETSCAPE_PKEY) = {
104 128
105DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 129DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY)
106DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) 130DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY)
107IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 131
132NETSCAPE_PKEY *
133d2i_NETSCAPE_PKEY(NETSCAPE_PKEY **a, const unsigned char **in, long len)
134{
135 return (NETSCAPE_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
136 &NETSCAPE_PKEY_it);
137}
138
139int
140i2d_NETSCAPE_PKEY(const NETSCAPE_PKEY *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_PKEY_it);
143}
144
145NETSCAPE_PKEY *
146NETSCAPE_PKEY_new(void)
147{
148 return (NETSCAPE_PKEY *)ASN1_item_new(&NETSCAPE_PKEY_it);
149}
150
151void
152NETSCAPE_PKEY_free(NETSCAPE_PKEY *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_PKEY_it);
155}
108 156
109static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os, 157static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
110 int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey); 158 int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey);
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c
index 2f44b4229b..6e4650c089 100644
--- a/src/lib/libcrypto/asn1/tasn_typ.c
+++ b/src/lib/libcrypto/asn1/tasn_typ.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tasn_typ.c,v 1.7 2015/02/09 15:05:59 jsing Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.8 2015/02/10 04:01:26 jsing Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2000. 3 * project 2000.
4 */ 4 */
@@ -474,18 +474,114 @@ IMPLEMENT_ASN1_TYPE(ASN1_ANY)
474/* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ 474/* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */
475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) 475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE)
476 476
477IMPLEMENT_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) 477
478ASN1_TYPE *
479d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len)
480{
481 return (ASN1_TYPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
482 &ASN1_ANY_it);
483}
484
485int
486i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out)
487{
488 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ANY_it);
489}
490
491ASN1_TYPE *
492ASN1_TYPE_new(void)
493{
494 return (ASN1_TYPE *)ASN1_item_new(&ASN1_ANY_it);
495}
496
497void
498ASN1_TYPE_free(ASN1_TYPE *a)
499{
500 ASN1_item_free((ASN1_VALUE *)a, &ASN1_ANY_it);
501}
478 502
479/* Multistring types */ 503/* Multistring types */
480 504
481IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE) 505IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE)
482IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) 506
507ASN1_STRING *
508d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len)
509{
510 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
511 &ASN1_PRINTABLE_it);
512}
513
514int
515i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out)
516{
517 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLE_it);
518}
519
520ASN1_STRING *
521ASN1_PRINTABLE_new(void)
522{
523 return (ASN1_STRING *)ASN1_item_new(&ASN1_PRINTABLE_it);
524}
525
526void
527ASN1_PRINTABLE_free(ASN1_STRING *a)
528{
529 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLE_it);
530}
483 531
484IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT) 532IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT)
485IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) 533
534ASN1_STRING *
535d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len)
536{
537 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
538 &DISPLAYTEXT_it);
539}
540
541int
542i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out)
543{
544 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DISPLAYTEXT_it);
545}
546
547ASN1_STRING *
548DISPLAYTEXT_new(void)
549{
550 return (ASN1_STRING *)ASN1_item_new(&DISPLAYTEXT_it);
551}
552
553void
554DISPLAYTEXT_free(ASN1_STRING *a)
555{
556 ASN1_item_free((ASN1_VALUE *)a, &DISPLAYTEXT_it);
557}
486 558
487IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING) 559IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING)
488IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) 560
561ASN1_STRING *
562d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len)
563{
564 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
565 &DIRECTORYSTRING_it);
566}
567
568int
569i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out)
570{
571 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIRECTORYSTRING_it);
572}
573
574ASN1_STRING *
575DIRECTORYSTRING_new(void)
576{
577 return (ASN1_STRING *)ASN1_item_new(&DIRECTORYSTRING_it);
578}
579
580void
581DIRECTORYSTRING_free(ASN1_STRING *a)
582{
583 ASN1_item_free((ASN1_VALUE *)a, &DIRECTORYSTRING_it);
584}
489 585
490/* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ 586/* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */
491IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) 587IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1)
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c
index c54f6593d5..11d924d30f 100644
--- a/src/lib/libcrypto/ec/ec_asn1.c
+++ b/src/lib/libcrypto/ec/ec_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ 1/* $OpenBSD: ec_asn1.c,v 1.11 2015/02/10 04:01:26 jsing Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -258,7 +258,31 @@ ASN1_CHOICE(ECPKPARAMETERS) = {
258} ASN1_CHOICE_END(ECPKPARAMETERS) 258} ASN1_CHOICE_END(ECPKPARAMETERS)
259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS)
260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS) 260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS)
261IMPLEMENT_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 261
262ECPKPARAMETERS *
263d2i_ECPKPARAMETERS(ECPKPARAMETERS **a, const unsigned char **in, long len)
264{
265 return (ECPKPARAMETERS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
266 &ECPKPARAMETERS_it);
267}
268
269int
270i2d_ECPKPARAMETERS(const ECPKPARAMETERS *a, unsigned char **out)
271{
272 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECPKPARAMETERS_it);
273}
274
275ECPKPARAMETERS *
276ECPKPARAMETERS_new(void)
277{
278 return (ECPKPARAMETERS *)ASN1_item_new(&ECPKPARAMETERS_it);
279}
280
281void
282ECPKPARAMETERS_free(ECPKPARAMETERS *a)
283{
284 ASN1_item_free((ASN1_VALUE *)a, &ECPKPARAMETERS_it);
285}
262 286
263ASN1_SEQUENCE(EC_PRIVATEKEY) = { 287ASN1_SEQUENCE(EC_PRIVATEKEY) = {
264 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG), 288 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
@@ -268,7 +292,31 @@ ASN1_SEQUENCE(EC_PRIVATEKEY) = {
268} ASN1_SEQUENCE_END(EC_PRIVATEKEY) 292} ASN1_SEQUENCE_END(EC_PRIVATEKEY)
269DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 293DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY)
270DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY) 294DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY)
271IMPLEMENT_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 295
296EC_PRIVATEKEY *
297d2i_EC_PRIVATEKEY(EC_PRIVATEKEY **a, const unsigned char **in, long len)
298{
299 return (EC_PRIVATEKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
300 &EC_PRIVATEKEY_it);
301}
302
303int
304i2d_EC_PRIVATEKEY(const EC_PRIVATEKEY *a, unsigned char **out)
305{
306 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EC_PRIVATEKEY_it);
307}
308
309EC_PRIVATEKEY *
310EC_PRIVATEKEY_new(void)
311{
312 return (EC_PRIVATEKEY *)ASN1_item_new(&EC_PRIVATEKEY_it);
313}
314
315void
316EC_PRIVATEKEY_free(EC_PRIVATEKEY *a)
317{
318 ASN1_item_free((ASN1_VALUE *)a, &EC_PRIVATEKEY_it);
319}
272/* some declarations of internal function */ 320/* some declarations of internal function */
273 321
274/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */ 322/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */
diff --git a/src/lib/libcrypto/ecdsa/ecs_asn1.c b/src/lib/libcrypto/ecdsa/ecs_asn1.c
index f62df3a817..4cd5c1bd21 100644
--- a/src/lib/libcrypto/ecdsa/ecs_asn1.c
+++ b/src/lib/libcrypto/ecdsa/ecs_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ecs_asn1.c,v 1.3 2015/02/08 13:35:07 jsing Exp $ */ 1/* $OpenBSD: ecs_asn1.c,v 1.4 2015/02/10 04:01:26 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -64,4 +64,28 @@ ASN1_SEQUENCE(ECDSA_SIG) = {
64 64
65DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG) 65DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG)
66DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG) 66DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG)
67IMPLEMENT_ASN1_FUNCTIONS_const(ECDSA_SIG) 67
68ECDSA_SIG *
69d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len)
70{
71 return (ECDSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
72 &ECDSA_SIG_it);
73}
74
75int
76i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out)
77{
78 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECDSA_SIG_it);
79}
80
81ECDSA_SIG *
82ECDSA_SIG_new(void)
83{
84 return (ECDSA_SIG *)ASN1_item_new(&ECDSA_SIG_it);
85}
86
87void
88ECDSA_SIG_free(ECDSA_SIG *a)
89{
90 ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
91}
diff --git a/src/lib/libcrypto/ts/ts_asn1.c b/src/lib/libcrypto/ts/ts_asn1.c
index bb87aa1d88..3ef882cf05 100644
--- a/src/lib/libcrypto/ts/ts_asn1.c
+++ b/src/lib/libcrypto/ts/ts_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ts_asn1.c,v 1.5 2014/07/10 22:45:58 jsing Exp $ */ 1/* $OpenBSD: ts_asn1.c,v 1.6 2015/02/10 04:01:26 jsing Exp $ */
2/* Written by Nils Larsch for the OpenSSL project 2004. 2/* Written by Nils Larsch for the OpenSSL project 2004.
3 */ 3 */
4/* ==================================================================== 4/* ====================================================================
@@ -66,7 +66,31 @@ ASN1_SEQUENCE(TS_MSG_IMPRINT) = {
66 ASN1_SIMPLE(TS_MSG_IMPRINT, hashed_msg, ASN1_OCTET_STRING) 66 ASN1_SIMPLE(TS_MSG_IMPRINT, hashed_msg, ASN1_OCTET_STRING)
67} ASN1_SEQUENCE_END(TS_MSG_IMPRINT) 67} ASN1_SEQUENCE_END(TS_MSG_IMPRINT)
68 68
69IMPLEMENT_ASN1_FUNCTIONS_const(TS_MSG_IMPRINT) 69
70TS_MSG_IMPRINT *
71d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, const unsigned char **in, long len)
72{
73 return (TS_MSG_IMPRINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &TS_MSG_IMPRINT_it);
75}
76
77int
78i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_MSG_IMPRINT_it);
81}
82
83TS_MSG_IMPRINT *
84TS_MSG_IMPRINT_new(void)
85{
86 return (TS_MSG_IMPRINT *)ASN1_item_new(&TS_MSG_IMPRINT_it);
87}
88
89void
90TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &TS_MSG_IMPRINT_it);
93}
70IMPLEMENT_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT) 94IMPLEMENT_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT)
71 95
72#ifndef OPENSSL_NO_BIO 96#ifndef OPENSSL_NO_BIO
@@ -106,7 +130,31 @@ ASN1_SEQUENCE(TS_REQ) = {
106 ASN1_IMP_SEQUENCE_OF_OPT(TS_REQ, extensions, X509_EXTENSION, 0) 130 ASN1_IMP_SEQUENCE_OF_OPT(TS_REQ, extensions, X509_EXTENSION, 0)
107} ASN1_SEQUENCE_END(TS_REQ) 131} ASN1_SEQUENCE_END(TS_REQ)
108 132
109IMPLEMENT_ASN1_FUNCTIONS_const(TS_REQ) 133
134TS_REQ *
135d2i_TS_REQ(TS_REQ **a, const unsigned char **in, long len)
136{
137 return (TS_REQ *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
138 &TS_REQ_it);
139}
140
141int
142i2d_TS_REQ(const TS_REQ *a, unsigned char **out)
143{
144 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_REQ_it);
145}
146
147TS_REQ *
148TS_REQ_new(void)
149{
150 return (TS_REQ *)ASN1_item_new(&TS_REQ_it);
151}
152
153void
154TS_REQ_free(TS_REQ *a)
155{
156 ASN1_item_free((ASN1_VALUE *)a, &TS_REQ_it);
157}
110IMPLEMENT_ASN1_DUP_FUNCTION(TS_REQ) 158IMPLEMENT_ASN1_DUP_FUNCTION(TS_REQ)
111 159
112#ifndef OPENSSL_NO_BIO 160#ifndef OPENSSL_NO_BIO
@@ -141,7 +189,31 @@ ASN1_SEQUENCE(TS_ACCURACY) = {
141 ASN1_IMP_OPT(TS_ACCURACY, micros, ASN1_INTEGER, 1) 189 ASN1_IMP_OPT(TS_ACCURACY, micros, ASN1_INTEGER, 1)
142} ASN1_SEQUENCE_END(TS_ACCURACY) 190} ASN1_SEQUENCE_END(TS_ACCURACY)
143 191
144IMPLEMENT_ASN1_FUNCTIONS_const(TS_ACCURACY) 192
193TS_ACCURACY *
194d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **in, long len)
195{
196 return (TS_ACCURACY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
197 &TS_ACCURACY_it);
198}
199
200int
201i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **out)
202{
203 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_ACCURACY_it);
204}
205
206TS_ACCURACY *
207TS_ACCURACY_new(void)
208{
209 return (TS_ACCURACY *)ASN1_item_new(&TS_ACCURACY_it);
210}
211
212void
213TS_ACCURACY_free(TS_ACCURACY *a)
214{
215 ASN1_item_free((ASN1_VALUE *)a, &TS_ACCURACY_it);
216}
145IMPLEMENT_ASN1_DUP_FUNCTION(TS_ACCURACY) 217IMPLEMENT_ASN1_DUP_FUNCTION(TS_ACCURACY)
146 218
147ASN1_SEQUENCE(TS_TST_INFO) = { 219ASN1_SEQUENCE(TS_TST_INFO) = {
@@ -157,7 +229,31 @@ ASN1_SEQUENCE(TS_TST_INFO) = {
157 ASN1_IMP_SEQUENCE_OF_OPT(TS_TST_INFO, extensions, X509_EXTENSION, 1) 229 ASN1_IMP_SEQUENCE_OF_OPT(TS_TST_INFO, extensions, X509_EXTENSION, 1)
158} ASN1_SEQUENCE_END(TS_TST_INFO) 230} ASN1_SEQUENCE_END(TS_TST_INFO)
159 231
160IMPLEMENT_ASN1_FUNCTIONS_const(TS_TST_INFO) 232
233TS_TST_INFO *
234d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **in, long len)
235{
236 return (TS_TST_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
237 &TS_TST_INFO_it);
238}
239
240int
241i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **out)
242{
243 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_TST_INFO_it);
244}
245
246TS_TST_INFO *
247TS_TST_INFO_new(void)
248{
249 return (TS_TST_INFO *)ASN1_item_new(&TS_TST_INFO_it);
250}
251
252void
253TS_TST_INFO_free(TS_TST_INFO *a)
254{
255 ASN1_item_free((ASN1_VALUE *)a, &TS_TST_INFO_it);
256}
161IMPLEMENT_ASN1_DUP_FUNCTION(TS_TST_INFO) 257IMPLEMENT_ASN1_DUP_FUNCTION(TS_TST_INFO)
162 258
163#ifndef OPENSSL_NO_BIO 259#ifndef OPENSSL_NO_BIO
@@ -194,7 +290,31 @@ ASN1_SEQUENCE(TS_STATUS_INFO) = {
194 ASN1_OPT(TS_STATUS_INFO, failure_info, ASN1_BIT_STRING) 290 ASN1_OPT(TS_STATUS_INFO, failure_info, ASN1_BIT_STRING)
195} ASN1_SEQUENCE_END(TS_STATUS_INFO) 291} ASN1_SEQUENCE_END(TS_STATUS_INFO)
196 292
197IMPLEMENT_ASN1_FUNCTIONS_const(TS_STATUS_INFO) 293
294TS_STATUS_INFO *
295d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, const unsigned char **in, long len)
296{
297 return (TS_STATUS_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
298 &TS_STATUS_INFO_it);
299}
300
301int
302i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **out)
303{
304 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_STATUS_INFO_it);
305}
306
307TS_STATUS_INFO *
308TS_STATUS_INFO_new(void)
309{
310 return (TS_STATUS_INFO *)ASN1_item_new(&TS_STATUS_INFO_it);
311}
312
313void
314TS_STATUS_INFO_free(TS_STATUS_INFO *a)
315{
316 ASN1_item_free((ASN1_VALUE *)a, &TS_STATUS_INFO_it);
317}
198IMPLEMENT_ASN1_DUP_FUNCTION(TS_STATUS_INFO) 318IMPLEMENT_ASN1_DUP_FUNCTION(TS_STATUS_INFO)
199 319
200static int 320static int
@@ -247,7 +367,31 @@ ASN1_SEQUENCE_cb(TS_RESP, ts_resp_cb) = {
247 ASN1_OPT(TS_RESP, token, PKCS7), 367 ASN1_OPT(TS_RESP, token, PKCS7),
248} ASN1_SEQUENCE_END_cb(TS_RESP, TS_RESP) 368} ASN1_SEQUENCE_END_cb(TS_RESP, TS_RESP)
249 369
250IMPLEMENT_ASN1_FUNCTIONS_const(TS_RESP) 370
371TS_RESP *
372d2i_TS_RESP(TS_RESP **a, const unsigned char **in, long len)
373{
374 return (TS_RESP *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
375 &TS_RESP_it);
376}
377
378int
379i2d_TS_RESP(const TS_RESP *a, unsigned char **out)
380{
381 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_RESP_it);
382}
383
384TS_RESP *
385TS_RESP_new(void)
386{
387 return (TS_RESP *)ASN1_item_new(&TS_RESP_it);
388}
389
390void
391TS_RESP_free(TS_RESP *a)
392{
393 ASN1_item_free((ASN1_VALUE *)a, &TS_RESP_it);
394}
251IMPLEMENT_ASN1_DUP_FUNCTION(TS_RESP) 395IMPLEMENT_ASN1_DUP_FUNCTION(TS_RESP)
252 396
253#ifndef OPENSSL_NO_BIO 397#ifndef OPENSSL_NO_BIO
@@ -281,7 +425,31 @@ ASN1_SEQUENCE(ESS_ISSUER_SERIAL) = {
281 ASN1_SIMPLE(ESS_ISSUER_SERIAL, serial, ASN1_INTEGER) 425 ASN1_SIMPLE(ESS_ISSUER_SERIAL, serial, ASN1_INTEGER)
282} ASN1_SEQUENCE_END(ESS_ISSUER_SERIAL) 426} ASN1_SEQUENCE_END(ESS_ISSUER_SERIAL)
283 427
284IMPLEMENT_ASN1_FUNCTIONS_const(ESS_ISSUER_SERIAL) 428
429ESS_ISSUER_SERIAL *
430d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, const unsigned char **in, long len)
431{
432 return (ESS_ISSUER_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
433 &ESS_ISSUER_SERIAL_it);
434}
435
436int
437i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **out)
438{
439 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_ISSUER_SERIAL_it);
440}
441
442ESS_ISSUER_SERIAL *
443ESS_ISSUER_SERIAL_new(void)
444{
445 return (ESS_ISSUER_SERIAL *)ASN1_item_new(&ESS_ISSUER_SERIAL_it);
446}
447
448void
449ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a)
450{
451 ASN1_item_free((ASN1_VALUE *)a, &ESS_ISSUER_SERIAL_it);
452}
285IMPLEMENT_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) 453IMPLEMENT_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL)
286 454
287ASN1_SEQUENCE(ESS_CERT_ID) = { 455ASN1_SEQUENCE(ESS_CERT_ID) = {
@@ -289,7 +457,31 @@ ASN1_SEQUENCE(ESS_CERT_ID) = {
289 ASN1_OPT(ESS_CERT_ID, issuer_serial, ESS_ISSUER_SERIAL) 457 ASN1_OPT(ESS_CERT_ID, issuer_serial, ESS_ISSUER_SERIAL)
290} ASN1_SEQUENCE_END(ESS_CERT_ID) 458} ASN1_SEQUENCE_END(ESS_CERT_ID)
291 459
292IMPLEMENT_ASN1_FUNCTIONS_const(ESS_CERT_ID) 460
461ESS_CERT_ID *
462d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **in, long len)
463{
464 return (ESS_CERT_ID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
465 &ESS_CERT_ID_it);
466}
467
468int
469i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **out)
470{
471 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_CERT_ID_it);
472}
473
474ESS_CERT_ID *
475ESS_CERT_ID_new(void)
476{
477 return (ESS_CERT_ID *)ASN1_item_new(&ESS_CERT_ID_it);
478}
479
480void
481ESS_CERT_ID_free(ESS_CERT_ID *a)
482{
483 ASN1_item_free((ASN1_VALUE *)a, &ESS_CERT_ID_it);
484}
293IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID) 485IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID)
294 486
295ASN1_SEQUENCE(ESS_SIGNING_CERT) = { 487ASN1_SEQUENCE(ESS_SIGNING_CERT) = {
@@ -297,7 +489,31 @@ ASN1_SEQUENCE(ESS_SIGNING_CERT) = {
297 ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT, policy_info, POLICYINFO) 489 ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT, policy_info, POLICYINFO)
298} ASN1_SEQUENCE_END(ESS_SIGNING_CERT) 490} ASN1_SEQUENCE_END(ESS_SIGNING_CERT)
299 491
300IMPLEMENT_ASN1_FUNCTIONS_const(ESS_SIGNING_CERT) 492
493ESS_SIGNING_CERT *
494d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, const unsigned char **in, long len)
495{
496 return (ESS_SIGNING_CERT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
497 &ESS_SIGNING_CERT_it);
498}
499
500int
501i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **out)
502{
503 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_SIGNING_CERT_it);
504}
505
506ESS_SIGNING_CERT *
507ESS_SIGNING_CERT_new(void)
508{
509 return (ESS_SIGNING_CERT *)ASN1_item_new(&ESS_SIGNING_CERT_it);
510}
511
512void
513ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a)
514{
515 ASN1_item_free((ASN1_VALUE *)a, &ESS_SIGNING_CERT_it);
516}
301IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) 517IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT)
302 518
303/* Getting encapsulated TS_TST_INFO object from PKCS7. */ 519/* Getting encapsulated TS_TST_INFO object from PKCS7. */
diff --git a/src/lib/libssl/src/crypto/asn1/n_pkey.c b/src/lib/libssl/src/crypto/asn1/n_pkey.c
index 42431b6e24..198ca97c09 100644
--- a/src/lib/libssl/src/crypto/asn1/n_pkey.c
+++ b/src/lib/libssl/src/crypto/asn1/n_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: n_pkey.c,v 1.22 2014/07/12 22:26:01 miod Exp $ */ 1/* $OpenBSD: n_pkey.c,v 1.23 2015/02/10 04:01:26 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 *
@@ -94,7 +94,31 @@ ASN1_BROKEN_SEQUENCE(NETSCAPE_ENCRYPTED_PKEY) = {
94 94
95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY)
96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) 96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY)
97IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 97
98NETSCAPE_ENCRYPTED_PKEY *
99d2i_NETSCAPE_ENCRYPTED_PKEY(NETSCAPE_ENCRYPTED_PKEY **a, const unsigned char **in, long len)
100{
101 return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
102 &NETSCAPE_ENCRYPTED_PKEY_it);
103}
104
105int
106i2d_NETSCAPE_ENCRYPTED_PKEY(const NETSCAPE_ENCRYPTED_PKEY *a, unsigned char **out)
107{
108 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_ENCRYPTED_PKEY_it);
109}
110
111NETSCAPE_ENCRYPTED_PKEY *
112NETSCAPE_ENCRYPTED_PKEY_new(void)
113{
114 return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_new(&NETSCAPE_ENCRYPTED_PKEY_it);
115}
116
117void
118NETSCAPE_ENCRYPTED_PKEY_free(NETSCAPE_ENCRYPTED_PKEY *a)
119{
120 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it);
121}
98 122
99ASN1_SEQUENCE(NETSCAPE_PKEY) = { 123ASN1_SEQUENCE(NETSCAPE_PKEY) = {
100 ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG), 124 ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG),
@@ -104,7 +128,31 @@ ASN1_SEQUENCE(NETSCAPE_PKEY) = {
104 128
105DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 129DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY)
106DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) 130DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY)
107IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 131
132NETSCAPE_PKEY *
133d2i_NETSCAPE_PKEY(NETSCAPE_PKEY **a, const unsigned char **in, long len)
134{
135 return (NETSCAPE_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
136 &NETSCAPE_PKEY_it);
137}
138
139int
140i2d_NETSCAPE_PKEY(const NETSCAPE_PKEY *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_PKEY_it);
143}
144
145NETSCAPE_PKEY *
146NETSCAPE_PKEY_new(void)
147{
148 return (NETSCAPE_PKEY *)ASN1_item_new(&NETSCAPE_PKEY_it);
149}
150
151void
152NETSCAPE_PKEY_free(NETSCAPE_PKEY *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_PKEY_it);
155}
108 156
109static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os, 157static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
110 int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey); 158 int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey);
diff --git a/src/lib/libssl/src/crypto/asn1/tasn_typ.c b/src/lib/libssl/src/crypto/asn1/tasn_typ.c
index 2f44b4229b..6e4650c089 100644
--- a/src/lib/libssl/src/crypto/asn1/tasn_typ.c
+++ b/src/lib/libssl/src/crypto/asn1/tasn_typ.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tasn_typ.c,v 1.7 2015/02/09 15:05:59 jsing Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.8 2015/02/10 04:01:26 jsing Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2000. 3 * project 2000.
4 */ 4 */
@@ -474,18 +474,114 @@ IMPLEMENT_ASN1_TYPE(ASN1_ANY)
474/* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ 474/* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */
475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) 475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE)
476 476
477IMPLEMENT_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) 477
478ASN1_TYPE *
479d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len)
480{
481 return (ASN1_TYPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
482 &ASN1_ANY_it);
483}
484
485int
486i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out)
487{
488 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ANY_it);
489}
490
491ASN1_TYPE *
492ASN1_TYPE_new(void)
493{
494 return (ASN1_TYPE *)ASN1_item_new(&ASN1_ANY_it);
495}
496
497void
498ASN1_TYPE_free(ASN1_TYPE *a)
499{
500 ASN1_item_free((ASN1_VALUE *)a, &ASN1_ANY_it);
501}
478 502
479/* Multistring types */ 503/* Multistring types */
480 504
481IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE) 505IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE)
482IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) 506
507ASN1_STRING *
508d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len)
509{
510 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
511 &ASN1_PRINTABLE_it);
512}
513
514int
515i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out)
516{
517 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLE_it);
518}
519
520ASN1_STRING *
521ASN1_PRINTABLE_new(void)
522{
523 return (ASN1_STRING *)ASN1_item_new(&ASN1_PRINTABLE_it);
524}
525
526void
527ASN1_PRINTABLE_free(ASN1_STRING *a)
528{
529 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLE_it);
530}
483 531
484IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT) 532IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT)
485IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) 533
534ASN1_STRING *
535d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len)
536{
537 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
538 &DISPLAYTEXT_it);
539}
540
541int
542i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out)
543{
544 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DISPLAYTEXT_it);
545}
546
547ASN1_STRING *
548DISPLAYTEXT_new(void)
549{
550 return (ASN1_STRING *)ASN1_item_new(&DISPLAYTEXT_it);
551}
552
553void
554DISPLAYTEXT_free(ASN1_STRING *a)
555{
556 ASN1_item_free((ASN1_VALUE *)a, &DISPLAYTEXT_it);
557}
486 558
487IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING) 559IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING)
488IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) 560
561ASN1_STRING *
562d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len)
563{
564 return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
565 &DIRECTORYSTRING_it);
566}
567
568int
569i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out)
570{
571 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIRECTORYSTRING_it);
572}
573
574ASN1_STRING *
575DIRECTORYSTRING_new(void)
576{
577 return (ASN1_STRING *)ASN1_item_new(&DIRECTORYSTRING_it);
578}
579
580void
581DIRECTORYSTRING_free(ASN1_STRING *a)
582{
583 ASN1_item_free((ASN1_VALUE *)a, &DIRECTORYSTRING_it);
584}
489 585
490/* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ 586/* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */
491IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) 587IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1)
diff --git a/src/lib/libssl/src/crypto/ec/ec_asn1.c b/src/lib/libssl/src/crypto/ec/ec_asn1.c
index c54f6593d5..11d924d30f 100644
--- a/src/lib/libssl/src/crypto/ec/ec_asn1.c
+++ b/src/lib/libssl/src/crypto/ec/ec_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ 1/* $OpenBSD: ec_asn1.c,v 1.11 2015/02/10 04:01:26 jsing Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -258,7 +258,31 @@ ASN1_CHOICE(ECPKPARAMETERS) = {
258} ASN1_CHOICE_END(ECPKPARAMETERS) 258} ASN1_CHOICE_END(ECPKPARAMETERS)
259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS)
260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS) 260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS)
261IMPLEMENT_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 261
262ECPKPARAMETERS *
263d2i_ECPKPARAMETERS(ECPKPARAMETERS **a, const unsigned char **in, long len)
264{
265 return (ECPKPARAMETERS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
266 &ECPKPARAMETERS_it);
267}
268
269int
270i2d_ECPKPARAMETERS(const ECPKPARAMETERS *a, unsigned char **out)
271{
272 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECPKPARAMETERS_it);
273}
274
275ECPKPARAMETERS *
276ECPKPARAMETERS_new(void)
277{
278 return (ECPKPARAMETERS *)ASN1_item_new(&ECPKPARAMETERS_it);
279}
280
281void
282ECPKPARAMETERS_free(ECPKPARAMETERS *a)
283{
284 ASN1_item_free((ASN1_VALUE *)a, &ECPKPARAMETERS_it);
285}
262 286
263ASN1_SEQUENCE(EC_PRIVATEKEY) = { 287ASN1_SEQUENCE(EC_PRIVATEKEY) = {
264 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG), 288 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
@@ -268,7 +292,31 @@ ASN1_SEQUENCE(EC_PRIVATEKEY) = {
268} ASN1_SEQUENCE_END(EC_PRIVATEKEY) 292} ASN1_SEQUENCE_END(EC_PRIVATEKEY)
269DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 293DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY)
270DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY) 294DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY)
271IMPLEMENT_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 295
296EC_PRIVATEKEY *
297d2i_EC_PRIVATEKEY(EC_PRIVATEKEY **a, const unsigned char **in, long len)
298{
299 return (EC_PRIVATEKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
300 &EC_PRIVATEKEY_it);
301}
302
303int
304i2d_EC_PRIVATEKEY(const EC_PRIVATEKEY *a, unsigned char **out)
305{
306 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EC_PRIVATEKEY_it);
307}
308
309EC_PRIVATEKEY *
310EC_PRIVATEKEY_new(void)
311{
312 return (EC_PRIVATEKEY *)ASN1_item_new(&EC_PRIVATEKEY_it);
313}
314
315void
316EC_PRIVATEKEY_free(EC_PRIVATEKEY *a)
317{
318 ASN1_item_free((ASN1_VALUE *)a, &EC_PRIVATEKEY_it);
319}
272/* some declarations of internal function */ 320/* some declarations of internal function */
273 321
274/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */ 322/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */
diff --git a/src/lib/libssl/src/crypto/ecdsa/ecs_asn1.c b/src/lib/libssl/src/crypto/ecdsa/ecs_asn1.c
index f62df3a817..4cd5c1bd21 100644
--- a/src/lib/libssl/src/crypto/ecdsa/ecs_asn1.c
+++ b/src/lib/libssl/src/crypto/ecdsa/ecs_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ecs_asn1.c,v 1.3 2015/02/08 13:35:07 jsing Exp $ */ 1/* $OpenBSD: ecs_asn1.c,v 1.4 2015/02/10 04:01:26 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -64,4 +64,28 @@ ASN1_SEQUENCE(ECDSA_SIG) = {
64 64
65DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG) 65DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG)
66DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG) 66DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG)
67IMPLEMENT_ASN1_FUNCTIONS_const(ECDSA_SIG) 67
68ECDSA_SIG *
69d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len)
70{
71 return (ECDSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
72 &ECDSA_SIG_it);
73}
74
75int
76i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out)
77{
78 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECDSA_SIG_it);
79}
80
81ECDSA_SIG *
82ECDSA_SIG_new(void)
83{
84 return (ECDSA_SIG *)ASN1_item_new(&ECDSA_SIG_it);
85}
86
87void
88ECDSA_SIG_free(ECDSA_SIG *a)
89{
90 ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
91}
diff --git a/src/lib/libssl/src/crypto/ts/ts_asn1.c b/src/lib/libssl/src/crypto/ts/ts_asn1.c
index bb87aa1d88..3ef882cf05 100644
--- a/src/lib/libssl/src/crypto/ts/ts_asn1.c
+++ b/src/lib/libssl/src/crypto/ts/ts_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ts_asn1.c,v 1.5 2014/07/10 22:45:58 jsing Exp $ */ 1/* $OpenBSD: ts_asn1.c,v 1.6 2015/02/10 04:01:26 jsing Exp $ */
2/* Written by Nils Larsch for the OpenSSL project 2004. 2/* Written by Nils Larsch for the OpenSSL project 2004.
3 */ 3 */
4/* ==================================================================== 4/* ====================================================================
@@ -66,7 +66,31 @@ ASN1_SEQUENCE(TS_MSG_IMPRINT) = {
66 ASN1_SIMPLE(TS_MSG_IMPRINT, hashed_msg, ASN1_OCTET_STRING) 66 ASN1_SIMPLE(TS_MSG_IMPRINT, hashed_msg, ASN1_OCTET_STRING)
67} ASN1_SEQUENCE_END(TS_MSG_IMPRINT) 67} ASN1_SEQUENCE_END(TS_MSG_IMPRINT)
68 68
69IMPLEMENT_ASN1_FUNCTIONS_const(TS_MSG_IMPRINT) 69
70TS_MSG_IMPRINT *
71d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, const unsigned char **in, long len)
72{
73 return (TS_MSG_IMPRINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &TS_MSG_IMPRINT_it);
75}
76
77int
78i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_MSG_IMPRINT_it);
81}
82
83TS_MSG_IMPRINT *
84TS_MSG_IMPRINT_new(void)
85{
86 return (TS_MSG_IMPRINT *)ASN1_item_new(&TS_MSG_IMPRINT_it);
87}
88
89void
90TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &TS_MSG_IMPRINT_it);
93}
70IMPLEMENT_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT) 94IMPLEMENT_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT)
71 95
72#ifndef OPENSSL_NO_BIO 96#ifndef OPENSSL_NO_BIO
@@ -106,7 +130,31 @@ ASN1_SEQUENCE(TS_REQ) = {
106 ASN1_IMP_SEQUENCE_OF_OPT(TS_REQ, extensions, X509_EXTENSION, 0) 130 ASN1_IMP_SEQUENCE_OF_OPT(TS_REQ, extensions, X509_EXTENSION, 0)
107} ASN1_SEQUENCE_END(TS_REQ) 131} ASN1_SEQUENCE_END(TS_REQ)
108 132
109IMPLEMENT_ASN1_FUNCTIONS_const(TS_REQ) 133
134TS_REQ *
135d2i_TS_REQ(TS_REQ **a, const unsigned char **in, long len)
136{
137 return (TS_REQ *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
138 &TS_REQ_it);
139}
140
141int
142i2d_TS_REQ(const TS_REQ *a, unsigned char **out)
143{
144 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_REQ_it);
145}
146
147TS_REQ *
148TS_REQ_new(void)
149{
150 return (TS_REQ *)ASN1_item_new(&TS_REQ_it);
151}
152
153void
154TS_REQ_free(TS_REQ *a)
155{
156 ASN1_item_free((ASN1_VALUE *)a, &TS_REQ_it);
157}
110IMPLEMENT_ASN1_DUP_FUNCTION(TS_REQ) 158IMPLEMENT_ASN1_DUP_FUNCTION(TS_REQ)
111 159
112#ifndef OPENSSL_NO_BIO 160#ifndef OPENSSL_NO_BIO
@@ -141,7 +189,31 @@ ASN1_SEQUENCE(TS_ACCURACY) = {
141 ASN1_IMP_OPT(TS_ACCURACY, micros, ASN1_INTEGER, 1) 189 ASN1_IMP_OPT(TS_ACCURACY, micros, ASN1_INTEGER, 1)
142} ASN1_SEQUENCE_END(TS_ACCURACY) 190} ASN1_SEQUENCE_END(TS_ACCURACY)
143 191
144IMPLEMENT_ASN1_FUNCTIONS_const(TS_ACCURACY) 192
193TS_ACCURACY *
194d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **in, long len)
195{
196 return (TS_ACCURACY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
197 &TS_ACCURACY_it);
198}
199
200int
201i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **out)
202{
203 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_ACCURACY_it);
204}
205
206TS_ACCURACY *
207TS_ACCURACY_new(void)
208{
209 return (TS_ACCURACY *)ASN1_item_new(&TS_ACCURACY_it);
210}
211
212void
213TS_ACCURACY_free(TS_ACCURACY *a)
214{
215 ASN1_item_free((ASN1_VALUE *)a, &TS_ACCURACY_it);
216}
145IMPLEMENT_ASN1_DUP_FUNCTION(TS_ACCURACY) 217IMPLEMENT_ASN1_DUP_FUNCTION(TS_ACCURACY)
146 218
147ASN1_SEQUENCE(TS_TST_INFO) = { 219ASN1_SEQUENCE(TS_TST_INFO) = {
@@ -157,7 +229,31 @@ ASN1_SEQUENCE(TS_TST_INFO) = {
157 ASN1_IMP_SEQUENCE_OF_OPT(TS_TST_INFO, extensions, X509_EXTENSION, 1) 229 ASN1_IMP_SEQUENCE_OF_OPT(TS_TST_INFO, extensions, X509_EXTENSION, 1)
158} ASN1_SEQUENCE_END(TS_TST_INFO) 230} ASN1_SEQUENCE_END(TS_TST_INFO)
159 231
160IMPLEMENT_ASN1_FUNCTIONS_const(TS_TST_INFO) 232
233TS_TST_INFO *
234d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **in, long len)
235{
236 return (TS_TST_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
237 &TS_TST_INFO_it);
238}
239
240int
241i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **out)
242{
243 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_TST_INFO_it);
244}
245
246TS_TST_INFO *
247TS_TST_INFO_new(void)
248{
249 return (TS_TST_INFO *)ASN1_item_new(&TS_TST_INFO_it);
250}
251
252void
253TS_TST_INFO_free(TS_TST_INFO *a)
254{
255 ASN1_item_free((ASN1_VALUE *)a, &TS_TST_INFO_it);
256}
161IMPLEMENT_ASN1_DUP_FUNCTION(TS_TST_INFO) 257IMPLEMENT_ASN1_DUP_FUNCTION(TS_TST_INFO)
162 258
163#ifndef OPENSSL_NO_BIO 259#ifndef OPENSSL_NO_BIO
@@ -194,7 +290,31 @@ ASN1_SEQUENCE(TS_STATUS_INFO) = {
194 ASN1_OPT(TS_STATUS_INFO, failure_info, ASN1_BIT_STRING) 290 ASN1_OPT(TS_STATUS_INFO, failure_info, ASN1_BIT_STRING)
195} ASN1_SEQUENCE_END(TS_STATUS_INFO) 291} ASN1_SEQUENCE_END(TS_STATUS_INFO)
196 292
197IMPLEMENT_ASN1_FUNCTIONS_const(TS_STATUS_INFO) 293
294TS_STATUS_INFO *
295d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, const unsigned char **in, long len)
296{
297 return (TS_STATUS_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
298 &TS_STATUS_INFO_it);
299}
300
301int
302i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **out)
303{
304 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_STATUS_INFO_it);
305}
306
307TS_STATUS_INFO *
308TS_STATUS_INFO_new(void)
309{
310 return (TS_STATUS_INFO *)ASN1_item_new(&TS_STATUS_INFO_it);
311}
312
313void
314TS_STATUS_INFO_free(TS_STATUS_INFO *a)
315{
316 ASN1_item_free((ASN1_VALUE *)a, &TS_STATUS_INFO_it);
317}
198IMPLEMENT_ASN1_DUP_FUNCTION(TS_STATUS_INFO) 318IMPLEMENT_ASN1_DUP_FUNCTION(TS_STATUS_INFO)
199 319
200static int 320static int
@@ -247,7 +367,31 @@ ASN1_SEQUENCE_cb(TS_RESP, ts_resp_cb) = {
247 ASN1_OPT(TS_RESP, token, PKCS7), 367 ASN1_OPT(TS_RESP, token, PKCS7),
248} ASN1_SEQUENCE_END_cb(TS_RESP, TS_RESP) 368} ASN1_SEQUENCE_END_cb(TS_RESP, TS_RESP)
249 369
250IMPLEMENT_ASN1_FUNCTIONS_const(TS_RESP) 370
371TS_RESP *
372d2i_TS_RESP(TS_RESP **a, const unsigned char **in, long len)
373{
374 return (TS_RESP *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
375 &TS_RESP_it);
376}
377
378int
379i2d_TS_RESP(const TS_RESP *a, unsigned char **out)
380{
381 return ASN1_item_i2d((ASN1_VALUE *)a, out, &TS_RESP_it);
382}
383
384TS_RESP *
385TS_RESP_new(void)
386{
387 return (TS_RESP *)ASN1_item_new(&TS_RESP_it);
388}
389
390void
391TS_RESP_free(TS_RESP *a)
392{
393 ASN1_item_free((ASN1_VALUE *)a, &TS_RESP_it);
394}
251IMPLEMENT_ASN1_DUP_FUNCTION(TS_RESP) 395IMPLEMENT_ASN1_DUP_FUNCTION(TS_RESP)
252 396
253#ifndef OPENSSL_NO_BIO 397#ifndef OPENSSL_NO_BIO
@@ -281,7 +425,31 @@ ASN1_SEQUENCE(ESS_ISSUER_SERIAL) = {
281 ASN1_SIMPLE(ESS_ISSUER_SERIAL, serial, ASN1_INTEGER) 425 ASN1_SIMPLE(ESS_ISSUER_SERIAL, serial, ASN1_INTEGER)
282} ASN1_SEQUENCE_END(ESS_ISSUER_SERIAL) 426} ASN1_SEQUENCE_END(ESS_ISSUER_SERIAL)
283 427
284IMPLEMENT_ASN1_FUNCTIONS_const(ESS_ISSUER_SERIAL) 428
429ESS_ISSUER_SERIAL *
430d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, const unsigned char **in, long len)
431{
432 return (ESS_ISSUER_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
433 &ESS_ISSUER_SERIAL_it);
434}
435
436int
437i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **out)
438{
439 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_ISSUER_SERIAL_it);
440}
441
442ESS_ISSUER_SERIAL *
443ESS_ISSUER_SERIAL_new(void)
444{
445 return (ESS_ISSUER_SERIAL *)ASN1_item_new(&ESS_ISSUER_SERIAL_it);
446}
447
448void
449ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a)
450{
451 ASN1_item_free((ASN1_VALUE *)a, &ESS_ISSUER_SERIAL_it);
452}
285IMPLEMENT_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) 453IMPLEMENT_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL)
286 454
287ASN1_SEQUENCE(ESS_CERT_ID) = { 455ASN1_SEQUENCE(ESS_CERT_ID) = {
@@ -289,7 +457,31 @@ ASN1_SEQUENCE(ESS_CERT_ID) = {
289 ASN1_OPT(ESS_CERT_ID, issuer_serial, ESS_ISSUER_SERIAL) 457 ASN1_OPT(ESS_CERT_ID, issuer_serial, ESS_ISSUER_SERIAL)
290} ASN1_SEQUENCE_END(ESS_CERT_ID) 458} ASN1_SEQUENCE_END(ESS_CERT_ID)
291 459
292IMPLEMENT_ASN1_FUNCTIONS_const(ESS_CERT_ID) 460
461ESS_CERT_ID *
462d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **in, long len)
463{
464 return (ESS_CERT_ID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
465 &ESS_CERT_ID_it);
466}
467
468int
469i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **out)
470{
471 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_CERT_ID_it);
472}
473
474ESS_CERT_ID *
475ESS_CERT_ID_new(void)
476{
477 return (ESS_CERT_ID *)ASN1_item_new(&ESS_CERT_ID_it);
478}
479
480void
481ESS_CERT_ID_free(ESS_CERT_ID *a)
482{
483 ASN1_item_free((ASN1_VALUE *)a, &ESS_CERT_ID_it);
484}
293IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID) 485IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID)
294 486
295ASN1_SEQUENCE(ESS_SIGNING_CERT) = { 487ASN1_SEQUENCE(ESS_SIGNING_CERT) = {
@@ -297,7 +489,31 @@ ASN1_SEQUENCE(ESS_SIGNING_CERT) = {
297 ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT, policy_info, POLICYINFO) 489 ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT, policy_info, POLICYINFO)
298} ASN1_SEQUENCE_END(ESS_SIGNING_CERT) 490} ASN1_SEQUENCE_END(ESS_SIGNING_CERT)
299 491
300IMPLEMENT_ASN1_FUNCTIONS_const(ESS_SIGNING_CERT) 492
493ESS_SIGNING_CERT *
494d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, const unsigned char **in, long len)
495{
496 return (ESS_SIGNING_CERT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
497 &ESS_SIGNING_CERT_it);
498}
499
500int
501i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **out)
502{
503 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ESS_SIGNING_CERT_it);
504}
505
506ESS_SIGNING_CERT *
507ESS_SIGNING_CERT_new(void)
508{
509 return (ESS_SIGNING_CERT *)ASN1_item_new(&ESS_SIGNING_CERT_it);
510}
511
512void
513ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a)
514{
515 ASN1_item_free((ASN1_VALUE *)a, &ESS_SIGNING_CERT_it);
516}
301IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) 517IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT)
302 518
303/* Getting encapsulated TS_TST_INFO object from PKCS7. */ 519/* Getting encapsulated TS_TST_INFO object from PKCS7. */