summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2016-09-04 17:25:27 +0000
committerjsing <>2016-09-04 17:25:27 +0000
commit23f120b5927d14f86b2daf4c65a8fced64ec72f5 (patch)
treeb7ccf24a8e700263a05479f62f49023f6e9b0d5c /src
parent1e2e5aafd863a7c161e7e2c6a2cf07d4de642d95 (diff)
downloadopenbsd-23f120b5927d14f86b2daf4c65a8fced64ec72f5.tar.gz
openbsd-23f120b5927d14f86b2daf4c65a8fced64ec72f5.tar.bz2
openbsd-23f120b5927d14f86b2daf4c65a8fced64ec72f5.zip
Expand DECLARE_ASN1_.*FUNCTIONS macros.
No change in preprocessed output, ignoring whitespace and line numbers.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/ocsp/ocsp.h98
-rw-r--r--src/lib/libcrypto/pkcs12/pkcs12.h26
-rw-r--r--src/lib/libcrypto/pkcs7/pkcs7.h62
-rw-r--r--src/lib/libcrypto/rsa/rsa.h16
-rw-r--r--src/lib/libcrypto/x509v3/x509v3.h160
5 files changed, 293 insertions, 69 deletions
diff --git a/src/lib/libcrypto/ocsp/ocsp.h b/src/lib/libcrypto/ocsp/ocsp.h
index eb65309981..90f0edf289 100644
--- a/src/lib/libcrypto/ocsp/ocsp.h
+++ b/src/lib/libcrypto/ocsp/ocsp.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ocsp.h,v 1.7 2015/09/26 17:38:41 jsing Exp $ */ 1/* $OpenBSD: ocsp.h,v 1.8 2016/09/04 17:18:18 jsing Exp $ */
2/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL 2/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
3 * project. */ 3 * project. */
4 4
@@ -201,7 +201,11 @@ struct ocsp_responder_id_st {
201}; 201};
202 202
203DECLARE_STACK_OF(OCSP_RESPID) 203DECLARE_STACK_OF(OCSP_RESPID)
204DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) 204OCSP_RESPID *OCSP_RESPID_new(void);
205void OCSP_RESPID_free(OCSP_RESPID *a);
206OCSP_RESPID *d2i_OCSP_RESPID(OCSP_RESPID **a, const unsigned char **in, long len);
207int i2d_OCSP_RESPID(OCSP_RESPID *a, unsigned char **out);
208extern const ASN1_ITEM OCSP_RESPID_it;
205 209
206/* KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key 210/* KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key
207 * --(excluding the tag and length fields) 211 * --(excluding the tag and length fields)
@@ -522,21 +526,81 @@ int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
522int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, 526int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex,
523 int loc); 527 int loc);
524 528
525DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) 529OCSP_SINGLERESP *OCSP_SINGLERESP_new(void);
526DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) 530void OCSP_SINGLERESP_free(OCSP_SINGLERESP *a);
527DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) 531OCSP_SINGLERESP *d2i_OCSP_SINGLERESP(OCSP_SINGLERESP **a, const unsigned char **in, long len);
528DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) 532int i2d_OCSP_SINGLERESP(OCSP_SINGLERESP *a, unsigned char **out);
529DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) 533extern const ASN1_ITEM OCSP_SINGLERESP_it;
530DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) 534OCSP_CERTSTATUS *OCSP_CERTSTATUS_new(void);
531DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) 535void OCSP_CERTSTATUS_free(OCSP_CERTSTATUS *a);
532DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) 536OCSP_CERTSTATUS *d2i_OCSP_CERTSTATUS(OCSP_CERTSTATUS **a, const unsigned char **in, long len);
533DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) 537int i2d_OCSP_CERTSTATUS(OCSP_CERTSTATUS *a, unsigned char **out);
534DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) 538extern const ASN1_ITEM OCSP_CERTSTATUS_it;
535DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) 539OCSP_REVOKEDINFO *OCSP_REVOKEDINFO_new(void);
536DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) 540void OCSP_REVOKEDINFO_free(OCSP_REVOKEDINFO *a);
537DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) 541OCSP_REVOKEDINFO *d2i_OCSP_REVOKEDINFO(OCSP_REVOKEDINFO **a, const unsigned char **in, long len);
538DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) 542int i2d_OCSP_REVOKEDINFO(OCSP_REVOKEDINFO *a, unsigned char **out);
539DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) 543extern const ASN1_ITEM OCSP_REVOKEDINFO_it;
544OCSP_BASICRESP *OCSP_BASICRESP_new(void);
545void OCSP_BASICRESP_free(OCSP_BASICRESP *a);
546OCSP_BASICRESP *d2i_OCSP_BASICRESP(OCSP_BASICRESP **a, const unsigned char **in, long len);
547int i2d_OCSP_BASICRESP(OCSP_BASICRESP *a, unsigned char **out);
548extern const ASN1_ITEM OCSP_BASICRESP_it;
549OCSP_RESPDATA *OCSP_RESPDATA_new(void);
550void OCSP_RESPDATA_free(OCSP_RESPDATA *a);
551OCSP_RESPDATA *d2i_OCSP_RESPDATA(OCSP_RESPDATA **a, const unsigned char **in, long len);
552int i2d_OCSP_RESPDATA(OCSP_RESPDATA *a, unsigned char **out);
553extern const ASN1_ITEM OCSP_RESPDATA_it;
554OCSP_RESPID *OCSP_RESPID_new(void);
555void OCSP_RESPID_free(OCSP_RESPID *a);
556OCSP_RESPID *d2i_OCSP_RESPID(OCSP_RESPID **a, const unsigned char **in, long len);
557int i2d_OCSP_RESPID(OCSP_RESPID *a, unsigned char **out);
558extern const ASN1_ITEM OCSP_RESPID_it;
559OCSP_RESPONSE *OCSP_RESPONSE_new(void);
560void OCSP_RESPONSE_free(OCSP_RESPONSE *a);
561OCSP_RESPONSE *d2i_OCSP_RESPONSE(OCSP_RESPONSE **a, const unsigned char **in, long len);
562int i2d_OCSP_RESPONSE(OCSP_RESPONSE *a, unsigned char **out);
563extern const ASN1_ITEM OCSP_RESPONSE_it;
564OCSP_RESPBYTES *OCSP_RESPBYTES_new(void);
565void OCSP_RESPBYTES_free(OCSP_RESPBYTES *a);
566OCSP_RESPBYTES *d2i_OCSP_RESPBYTES(OCSP_RESPBYTES **a, const unsigned char **in, long len);
567int i2d_OCSP_RESPBYTES(OCSP_RESPBYTES *a, unsigned char **out);
568extern const ASN1_ITEM OCSP_RESPBYTES_it;
569OCSP_ONEREQ *OCSP_ONEREQ_new(void);
570void OCSP_ONEREQ_free(OCSP_ONEREQ *a);
571OCSP_ONEREQ *d2i_OCSP_ONEREQ(OCSP_ONEREQ **a, const unsigned char **in, long len);
572int i2d_OCSP_ONEREQ(OCSP_ONEREQ *a, unsigned char **out);
573extern const ASN1_ITEM OCSP_ONEREQ_it;
574OCSP_CERTID *OCSP_CERTID_new(void);
575void OCSP_CERTID_free(OCSP_CERTID *a);
576OCSP_CERTID *d2i_OCSP_CERTID(OCSP_CERTID **a, const unsigned char **in, long len);
577int i2d_OCSP_CERTID(OCSP_CERTID *a, unsigned char **out);
578extern const ASN1_ITEM OCSP_CERTID_it;
579OCSP_REQUEST *OCSP_REQUEST_new(void);
580void OCSP_REQUEST_free(OCSP_REQUEST *a);
581OCSP_REQUEST *d2i_OCSP_REQUEST(OCSP_REQUEST **a, const unsigned char **in, long len);
582int i2d_OCSP_REQUEST(OCSP_REQUEST *a, unsigned char **out);
583extern const ASN1_ITEM OCSP_REQUEST_it;
584OCSP_SIGNATURE *OCSP_SIGNATURE_new(void);
585void OCSP_SIGNATURE_free(OCSP_SIGNATURE *a);
586OCSP_SIGNATURE *d2i_OCSP_SIGNATURE(OCSP_SIGNATURE **a, const unsigned char **in, long len);
587int i2d_OCSP_SIGNATURE(OCSP_SIGNATURE *a, unsigned char **out);
588extern const ASN1_ITEM OCSP_SIGNATURE_it;
589OCSP_REQINFO *OCSP_REQINFO_new(void);
590void OCSP_REQINFO_free(OCSP_REQINFO *a);
591OCSP_REQINFO *d2i_OCSP_REQINFO(OCSP_REQINFO **a, const unsigned char **in, long len);
592int i2d_OCSP_REQINFO(OCSP_REQINFO *a, unsigned char **out);
593extern const ASN1_ITEM OCSP_REQINFO_it;
594OCSP_CRLID *OCSP_CRLID_new(void);
595void OCSP_CRLID_free(OCSP_CRLID *a);
596OCSP_CRLID *d2i_OCSP_CRLID(OCSP_CRLID **a, const unsigned char **in, long len);
597int i2d_OCSP_CRLID(OCSP_CRLID *a, unsigned char **out);
598extern const ASN1_ITEM OCSP_CRLID_it;
599OCSP_SERVICELOC *OCSP_SERVICELOC_new(void);
600void OCSP_SERVICELOC_free(OCSP_SERVICELOC *a);
601OCSP_SERVICELOC *d2i_OCSP_SERVICELOC(OCSP_SERVICELOC **a, const unsigned char **in, long len);
602int i2d_OCSP_SERVICELOC(OCSP_SERVICELOC *a, unsigned char **out);
603extern const ASN1_ITEM OCSP_SERVICELOC_it;
540 604
541const char *OCSP_response_status_str(long s); 605const char *OCSP_response_status_str(long s);
542const char *OCSP_cert_status_str(long s); 606const char *OCSP_cert_status_str(long s);
diff --git a/src/lib/libcrypto/pkcs12/pkcs12.h b/src/lib/libcrypto/pkcs12/pkcs12.h
index ead29fd717..6061bef185 100644
--- a/src/lib/libcrypto/pkcs12/pkcs12.h
+++ b/src/lib/libcrypto/pkcs12/pkcs12.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: pkcs12.h,v 1.13 2014/07/08 09:27:21 jsing Exp $ */ 1/* $OpenBSD: pkcs12.h,v 1.14 2016/09/04 17:19:33 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 1999. 3 * project 1999.
4 */ 4 */
@@ -234,10 +234,26 @@ unsigned char *OPENSSL_asc2uni(const char *asc, int asclen,
234 unsigned char **uni, int *unilen); 234 unsigned char **uni, int *unilen);
235char *OPENSSL_uni2asc(unsigned char *uni, int unilen); 235char *OPENSSL_uni2asc(unsigned char *uni, int unilen);
236 236
237DECLARE_ASN1_FUNCTIONS(PKCS12) 237PKCS12 *PKCS12_new(void);
238DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) 238void PKCS12_free(PKCS12 *a);
239DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) 239PKCS12 *d2i_PKCS12(PKCS12 **a, const unsigned char **in, long len);
240DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) 240int i2d_PKCS12(PKCS12 *a, unsigned char **out);
241extern const ASN1_ITEM PKCS12_it;
242PKCS12_MAC_DATA *PKCS12_MAC_DATA_new(void);
243void PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a);
244PKCS12_MAC_DATA *d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len);
245int i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out);
246extern const ASN1_ITEM PKCS12_MAC_DATA_it;
247PKCS12_SAFEBAG *PKCS12_SAFEBAG_new(void);
248void PKCS12_SAFEBAG_free(PKCS12_SAFEBAG *a);
249PKCS12_SAFEBAG *d2i_PKCS12_SAFEBAG(PKCS12_SAFEBAG **a, const unsigned char **in, long len);
250int i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out);
251extern const ASN1_ITEM PKCS12_SAFEBAG_it;
252PKCS12_BAGS *PKCS12_BAGS_new(void);
253void PKCS12_BAGS_free(PKCS12_BAGS *a);
254PKCS12_BAGS *d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len);
255int i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out);
256extern const ASN1_ITEM PKCS12_BAGS_it;
241 257
242DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) 258DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS)
243DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) 259DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES)
diff --git a/src/lib/libcrypto/pkcs7/pkcs7.h b/src/lib/libcrypto/pkcs7/pkcs7.h
index 609ce04553..4fc0fd5f96 100644
--- a/src/lib/libcrypto/pkcs7/pkcs7.h
+++ b/src/lib/libcrypto/pkcs7/pkcs7.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: pkcs7.h,v 1.14 2014/07/02 12:40:41 jsing Exp $ */ 1/* $OpenBSD: pkcs7.h,v 1.15 2016/09/04 17:20:55 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 *
@@ -259,7 +259,11 @@ DECLARE_PKCS12_STACK_OF(PKCS7)
259#define SMIME_BINARY PKCS7_BINARY 259#define SMIME_BINARY PKCS7_BINARY
260#define SMIME_NOATTR PKCS7_NOATTR 260#define SMIME_NOATTR PKCS7_NOATTR
261 261
262DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) 262PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void);
263void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a);
264PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len);
265int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out);
266extern const ASN1_ITEM PKCS7_ISSUER_AND_SERIAL_it;
263 267
264int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, 268int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
265 const EVP_MD *type, unsigned char *md, unsigned int *len); 269 const EVP_MD *type, unsigned char *md, unsigned int *len);
@@ -271,15 +275,51 @@ int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7);
271int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 275int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
272int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 276int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
273 277
274DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) 278PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void);
275DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) 279void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a);
276DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) 280PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len);
277DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) 281int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out);
278DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) 282extern const ASN1_ITEM PKCS7_SIGNER_INFO_it;
279DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) 283PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void);
280DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) 284void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a);
281DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) 285PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len);
282DECLARE_ASN1_FUNCTIONS(PKCS7) 286int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out);
287extern const ASN1_ITEM PKCS7_RECIP_INFO_it;
288PKCS7_SIGNED *PKCS7_SIGNED_new(void);
289void PKCS7_SIGNED_free(PKCS7_SIGNED *a);
290PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len);
291int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out);
292extern const ASN1_ITEM PKCS7_SIGNED_it;
293PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void);
294void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a);
295PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len);
296int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out);
297extern const ASN1_ITEM PKCS7_ENC_CONTENT_it;
298PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void);
299void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a);
300PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len);
301int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out);
302extern const ASN1_ITEM PKCS7_ENVELOPE_it;
303PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void);
304void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a);
305PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len);
306int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out);
307extern const ASN1_ITEM PKCS7_SIGN_ENVELOPE_it;
308PKCS7_DIGEST *PKCS7_DIGEST_new(void);
309void PKCS7_DIGEST_free(PKCS7_DIGEST *a);
310PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len);
311int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out);
312extern const ASN1_ITEM PKCS7_DIGEST_it;
313PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void);
314void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a);
315PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len);
316int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out);
317extern const ASN1_ITEM PKCS7_ENCRYPT_it;
318PKCS7 *PKCS7_new(void);
319void PKCS7_free(PKCS7 *a);
320PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len);
321int i2d_PKCS7(PKCS7 *a, unsigned char **out);
322extern const ASN1_ITEM PKCS7_it;
283 323
284DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) 324DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN)
285DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) 325DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY)
diff --git a/src/lib/libcrypto/rsa/rsa.h b/src/lib/libcrypto/rsa/rsa.h
index d240294809..febeb297d0 100644
--- a/src/lib/libcrypto/rsa/rsa.h
+++ b/src/lib/libcrypto/rsa/rsa.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa.h,v 1.28 2016/06/30 02:02:06 bcook Exp $ */ 1/* $OpenBSD: rsa.h,v 1.29 2016/09/04 17:25:27 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 *
@@ -293,8 +293,12 @@ const RSA_METHOD *RSA_PKCS1_SSLeay(void);
293 293
294const RSA_METHOD *RSA_null_method(void); 294const RSA_METHOD *RSA_null_method(void);
295 295
296DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) 296RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len);
297DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) 297int i2d_RSAPublicKey(const RSA *a, unsigned char **out);
298extern const ASN1_ITEM RSAPublicKey_it;
299RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len);
300int i2d_RSAPrivateKey(const RSA *a, unsigned char **out);
301extern const ASN1_ITEM RSAPrivateKey_it;
298 302
299typedef struct rsa_pss_params_st { 303typedef struct rsa_pss_params_st {
300 X509_ALGOR *hashAlgorithm; 304 X509_ALGOR *hashAlgorithm;
@@ -303,7 +307,11 @@ typedef struct rsa_pss_params_st {
303 ASN1_INTEGER *trailerField; 307 ASN1_INTEGER *trailerField;
304} RSA_PSS_PARAMS; 308} RSA_PSS_PARAMS;
305 309
306DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) 310RSA_PSS_PARAMS *RSA_PSS_PARAMS_new(void);
311void RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a);
312RSA_PSS_PARAMS *d2i_RSA_PSS_PARAMS(RSA_PSS_PARAMS **a, const unsigned char **in, long len);
313int i2d_RSA_PSS_PARAMS(RSA_PSS_PARAMS *a, unsigned char **out);
314extern const ASN1_ITEM RSA_PSS_PARAMS_it;
307 315
308int RSA_print_fp(FILE *fp, const RSA *r, int offset); 316int RSA_print_fp(FILE *fp, const RSA *r, int offset);
309 317
diff --git a/src/lib/libcrypto/x509v3/x509v3.h b/src/lib/libcrypto/x509v3/x509v3.h
index c13342f349..6b6b594d82 100644
--- a/src/lib/libcrypto/x509v3/x509v3.h
+++ b/src/lib/libcrypto/x509v3/x509v3.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509v3.h,v 1.17 2016/09/03 11:56:33 beck Exp $ */ 1/* $OpenBSD: x509v3.h,v 1.18 2016/09/04 17:14:46 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 1999. 3 * project 1999.
4 */ 4 */
@@ -352,8 +352,16 @@ typedef struct PROXY_CERT_INFO_EXTENSION_st
352 PROXY_POLICY *proxyPolicy; 352 PROXY_POLICY *proxyPolicy;
353 } PROXY_CERT_INFO_EXTENSION; 353 } PROXY_CERT_INFO_EXTENSION;
354 354
355DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) 355PROXY_POLICY *PROXY_POLICY_new(void);
356DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) 356void PROXY_POLICY_free(PROXY_POLICY *a);
357PROXY_POLICY *d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len);
358int i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out);
359extern const ASN1_ITEM PROXY_POLICY_it;
360PROXY_CERT_INFO_EXTENSION *PROXY_CERT_INFO_EXTENSION_new(void);
361void PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a);
362PROXY_CERT_INFO_EXTENSION *d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len);
363int i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out);
364extern const ASN1_ITEM PROXY_CERT_INFO_EXTENSION_it;
357 365
358struct ISSUING_DIST_POINT_st 366struct ISSUING_DIST_POINT_st
359 { 367 {
@@ -507,10 +515,22 @@ typedef struct x509_purpose_st {
507 515
508DECLARE_STACK_OF(X509_PURPOSE) 516DECLARE_STACK_OF(X509_PURPOSE)
509 517
510DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) 518BASIC_CONSTRAINTS *BASIC_CONSTRAINTS_new(void);
511 519void BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a);
512DECLARE_ASN1_FUNCTIONS(SXNET) 520BASIC_CONSTRAINTS *d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len);
513DECLARE_ASN1_FUNCTIONS(SXNETID) 521int i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out);
522extern const ASN1_ITEM BASIC_CONSTRAINTS_it;
523
524SXNET *SXNET_new(void);
525void SXNET_free(SXNET *a);
526SXNET *d2i_SXNET(SXNET **a, const unsigned char **in, long len);
527int i2d_SXNET(SXNET *a, unsigned char **out);
528extern const ASN1_ITEM SXNET_it;
529SXNETID *SXNETID_new(void);
530void SXNETID_free(SXNETID *a);
531SXNETID *d2i_SXNETID(SXNETID **a, const unsigned char **in, long len);
532int i2d_SXNETID(SXNETID *a, unsigned char **out);
533extern const ASN1_ITEM SXNETID_it;
514 534
515int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); 535int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen);
516int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen); 536int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen);
@@ -520,11 +540,23 @@ ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone);
520ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); 540ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone);
521ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); 541ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone);
522 542
523DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) 543AUTHORITY_KEYID *AUTHORITY_KEYID_new(void);
524 544void AUTHORITY_KEYID_free(AUTHORITY_KEYID *a);
525DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) 545AUTHORITY_KEYID *d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len);
526 546int i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out);
527DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) 547extern const ASN1_ITEM AUTHORITY_KEYID_it;
548
549PKEY_USAGE_PERIOD *PKEY_USAGE_PERIOD_new(void);
550void PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a);
551PKEY_USAGE_PERIOD *d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len);
552int i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out);
553extern const ASN1_ITEM PKEY_USAGE_PERIOD_it;
554
555GENERAL_NAME *GENERAL_NAME_new(void);
556void GENERAL_NAME_free(GENERAL_NAME *a);
557GENERAL_NAME *d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len);
558int i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out);
559extern const ASN1_ITEM GENERAL_NAME_it;
528GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); 560GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a);
529int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); 561int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
530 562
@@ -539,15 +571,27 @@ STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
539STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret); 571STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
540int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); 572int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
541 573
542DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) 574GENERAL_NAMES *GENERAL_NAMES_new(void);
575void GENERAL_NAMES_free(GENERAL_NAMES *a);
576GENERAL_NAMES *d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len);
577int i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out);
578extern const ASN1_ITEM GENERAL_NAMES_it;
543 579
544STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, 580STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method,
545 GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist); 581 GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist);
546GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, 582GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,
547 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 583 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
548 584
549DECLARE_ASN1_FUNCTIONS(OTHERNAME) 585OTHERNAME *OTHERNAME_new(void);
550DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) 586void OTHERNAME_free(OTHERNAME *a);
587OTHERNAME *d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len);
588int i2d_OTHERNAME(OTHERNAME *a, unsigned char **out);
589extern const ASN1_ITEM OTHERNAME_it;
590EDIPARTYNAME *EDIPARTYNAME_new(void);
591void EDIPARTYNAME_free(EDIPARTYNAME *a);
592EDIPARTYNAME *d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len);
593int i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out);
594extern const ASN1_ITEM EDIPARTYNAME_it;
551int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); 595int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b);
552void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); 596void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value);
553void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); 597void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype);
@@ -559,38 +603,90 @@ int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen,
559char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5); 603char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5);
560ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str); 604ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
561 605
562DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) 606EXTENDED_KEY_USAGE *EXTENDED_KEY_USAGE_new(void);
607void EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a);
608EXTENDED_KEY_USAGE *d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len);
609int i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out);
610extern const ASN1_ITEM EXTENDED_KEY_USAGE_it;
563int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a); 611int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a);
564 612
565DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) 613CERTIFICATEPOLICIES *CERTIFICATEPOLICIES_new(void);
566DECLARE_ASN1_FUNCTIONS(POLICYINFO) 614void CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a);
567DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) 615CERTIFICATEPOLICIES *d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len);
568DECLARE_ASN1_FUNCTIONS(USERNOTICE) 616int i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out);
569DECLARE_ASN1_FUNCTIONS(NOTICEREF) 617extern const ASN1_ITEM CERTIFICATEPOLICIES_it;
570 618POLICYINFO *POLICYINFO_new(void);
571DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) 619void POLICYINFO_free(POLICYINFO *a);
572DECLARE_ASN1_FUNCTIONS(DIST_POINT) 620POLICYINFO *d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len);
573DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) 621int i2d_POLICYINFO(POLICYINFO *a, unsigned char **out);
574DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) 622extern const ASN1_ITEM POLICYINFO_it;
623POLICYQUALINFO *POLICYQUALINFO_new(void);
624void POLICYQUALINFO_free(POLICYQUALINFO *a);
625POLICYQUALINFO *d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len);
626int i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out);
627extern const ASN1_ITEM POLICYQUALINFO_it;
628USERNOTICE *USERNOTICE_new(void);
629void USERNOTICE_free(USERNOTICE *a);
630USERNOTICE *d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len);
631int i2d_USERNOTICE(USERNOTICE *a, unsigned char **out);
632extern const ASN1_ITEM USERNOTICE_it;
633NOTICEREF *NOTICEREF_new(void);
634void NOTICEREF_free(NOTICEREF *a);
635NOTICEREF *d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len);
636int i2d_NOTICEREF(NOTICEREF *a, unsigned char **out);
637extern const ASN1_ITEM NOTICEREF_it;
638
639CRL_DIST_POINTS *CRL_DIST_POINTS_new(void);
640void CRL_DIST_POINTS_free(CRL_DIST_POINTS *a);
641CRL_DIST_POINTS *d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len);
642int i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out);
643extern const ASN1_ITEM CRL_DIST_POINTS_it;
644DIST_POINT *DIST_POINT_new(void);
645void DIST_POINT_free(DIST_POINT *a);
646DIST_POINT *d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len);
647int i2d_DIST_POINT(DIST_POINT *a, unsigned char **out);
648extern const ASN1_ITEM DIST_POINT_it;
649DIST_POINT_NAME *DIST_POINT_NAME_new(void);
650void DIST_POINT_NAME_free(DIST_POINT_NAME *a);
651DIST_POINT_NAME *d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len);
652int i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out);
653extern const ASN1_ITEM DIST_POINT_NAME_it;
654ISSUING_DIST_POINT *ISSUING_DIST_POINT_new(void);
655void ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a);
656ISSUING_DIST_POINT *d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len);
657int i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out);
658extern const ASN1_ITEM ISSUING_DIST_POINT_it;
575 659
576int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); 660int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname);
577 661
578int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); 662int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc);
579 663
580DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) 664ACCESS_DESCRIPTION *ACCESS_DESCRIPTION_new(void);
581DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) 665void ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a);
666ACCESS_DESCRIPTION *d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len);
667int i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out);
668extern const ASN1_ITEM ACCESS_DESCRIPTION_it;
669AUTHORITY_INFO_ACCESS *AUTHORITY_INFO_ACCESS_new(void);
670void AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a);
671AUTHORITY_INFO_ACCESS *d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len);
672int i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out);
673extern const ASN1_ITEM AUTHORITY_INFO_ACCESS_it;
582 674
583DECLARE_ASN1_ITEM(POLICY_MAPPING) 675DECLARE_ASN1_ITEM(POLICY_MAPPING)
584DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) 676POLICY_MAPPING *POLICY_MAPPING_new(void);
677void POLICY_MAPPING_free(POLICY_MAPPING *a);
585DECLARE_ASN1_ITEM(POLICY_MAPPINGS) 678DECLARE_ASN1_ITEM(POLICY_MAPPINGS)
586 679
587DECLARE_ASN1_ITEM(GENERAL_SUBTREE) 680DECLARE_ASN1_ITEM(GENERAL_SUBTREE)
588DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) 681GENERAL_SUBTREE *GENERAL_SUBTREE_new(void);
682void GENERAL_SUBTREE_free(GENERAL_SUBTREE *a);
589 683
590DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) 684DECLARE_ASN1_ITEM(NAME_CONSTRAINTS)
591DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) 685NAME_CONSTRAINTS *NAME_CONSTRAINTS_new(void);
686void NAME_CONSTRAINTS_free(NAME_CONSTRAINTS *a);
592 687
593DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) 688POLICY_CONSTRAINTS *POLICY_CONSTRAINTS_new(void);
689void POLICY_CONSTRAINTS_free(POLICY_CONSTRAINTS *a);
594DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) 690DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
595 691
596GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, 692GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,