From 0357e6865d436c22cd1e806640d23beb954213bb Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 5 May 2018 21:42:46 -0700 Subject: [PATCH] Upgrade macOS OpenSSL library to 1.1 --- app/app.pro | 4 +- libs/mac/include/openssl/aes.h | 81 +- libs/mac/include/openssl/asn1.h | 592 +---- libs/mac/include/openssl/asn1_mac.h | 583 +---- libs/mac/include/openssl/asn1t.h | 266 +- libs/mac/include/openssl/async.h | 98 + libs/mac/include/openssl/bio.h | 593 +++-- libs/mac/include/openssl/blowfish.h | 99 +- libs/mac/include/openssl/bn.h | 636 +---- libs/mac/include/openssl/buffer.h | 114 +- libs/mac/include/openssl/camellia.h | 77 +- libs/mac/include/openssl/cast.h | 78 +- libs/mac/include/openssl/cmac.h | 59 +- libs/mac/include/openssl/cms.h | 97 +- libs/mac/include/openssl/comp.h | 72 + libs/mac/include/openssl/conf.h | 111 +- libs/mac/include/openssl/conf_api.h | 61 +- libs/mac/include/openssl/crypto.h | 852 +++---- libs/mac/include/openssl/ct.h | 533 ++++ libs/mac/include/openssl/des.h | 119 +- libs/mac/include/openssl/dh.h | 237 +- libs/mac/include/openssl/dsa.h | 275 +-- libs/mac/include/openssl/dtls1.h | 228 +- libs/mac/include/openssl/e_os2.h | 269 +- libs/mac/include/openssl/ebcdic.h | 11 +- libs/mac/include/openssl/ec.h | 646 +++-- libs/mac/include/openssl/ecdh.h | 138 +- libs/mac/include/openssl/ecdsa.h | 339 +-- libs/mac/include/openssl/engine.h | 266 +- libs/mac/include/openssl/err.h | 286 +-- libs/mac/include/openssl/evp.h | 845 +++---- libs/mac/include/openssl/hmac.h | 102 +- libs/mac/include/openssl/idea.h | 111 +- libs/mac/include/openssl/kdf.h | 75 + libs/mac/include/openssl/lhash.h | 305 ++- libs/mac/include/openssl/md2.h | 44 + libs/mac/include/openssl/md4.h | 100 +- libs/mac/include/openssl/md5.h | 99 +- libs/mac/include/openssl/mdc2.h | 80 +- libs/mac/include/openssl/modes.h | 48 +- libs/mac/include/openssl/obj_mac.h | 515 +++- libs/mac/include/openssl/objects.h | 84 +- libs/mac/include/openssl/ocsp.h | 507 +--- libs/mac/include/openssl/opensslconf.h | 340 +-- libs/mac/include/openssl/opensslv.h | 25 +- libs/mac/include/openssl/ossl_typ.h | 125 +- libs/mac/include/openssl/pem.h | 174 +- libs/mac/include/openssl/pem2.h | 64 +- libs/mac/include/openssl/pkcs12.h | 252 +- libs/mac/include/openssl/pkcs7.h | 113 +- libs/mac/include/openssl/rand.h | 117 +- libs/mac/include/openssl/rc2.h | 84 +- libs/mac/include/openssl/rc4.h | 74 +- libs/mac/include/openssl/rc5.h | 63 + libs/mac/include/openssl/ripemd.h | 90 +- libs/mac/include/openssl/rsa.h | 404 ++- libs/mac/include/openssl/safestack.h | 2736 +-------------------- libs/mac/include/openssl/seed.h | 91 +- libs/mac/include/openssl/sha.h | 137 +- libs/mac/include/openssl/srp.h | 176 +- libs/mac/include/openssl/srtp.h | 127 +- libs/mac/include/openssl/ssl.h | 2682 ++++++++------------ libs/mac/include/openssl/ssl2.h | 253 +- libs/mac/include/openssl/ssl3.h | 532 +--- libs/mac/include/openssl/stack.h | 145 +- libs/mac/include/openssl/symhacks.h | 480 +--- libs/mac/include/openssl/tls1.h | 566 +++-- libs/mac/include/openssl/ts.h | 394 +-- libs/mac/include/openssl/txt_db.h | 75 +- libs/mac/include/openssl/ui.h | 119 +- libs/mac/include/openssl/whrlpool.h | 29 +- libs/mac/include/openssl/x509.h | 655 ++--- libs/mac/include/openssl/x509_vfy.h | 512 ++-- libs/mac/include/openssl/x509v3.h | 337 ++- libs/mac/lib/libcrypto.1.1.dylib | Bin 0 -> 2190708 bytes libs/mac/lib/libcrypto.dylib | Bin 1986176 -> 0 bytes libs/mac/lib/libssl.1.1.dylib | Bin 0 -> 390940 bytes libs/mac/lib/libssl.dylib | Bin 376408 -> 0 bytes moonlight-common-c/moonlight-common-c.pro | 4 +- 79 files changed, 7369 insertions(+), 15341 deletions(-) create mode 100644 libs/mac/include/openssl/async.h create mode 100644 libs/mac/include/openssl/comp.h create mode 100644 libs/mac/include/openssl/ct.h create mode 100644 libs/mac/include/openssl/kdf.h create mode 100644 libs/mac/include/openssl/md2.h create mode 100644 libs/mac/include/openssl/rc5.h create mode 100644 libs/mac/lib/libcrypto.1.1.dylib delete mode 100644 libs/mac/lib/libcrypto.dylib create mode 100644 libs/mac/lib/libssl.1.1.dylib delete mode 100644 libs/mac/lib/libssl.dylib diff --git a/app/app.pro b/app/app.pro index 45007a9c..d063feda 100644 --- a/app/app.pro +++ b/app/app.pro @@ -24,8 +24,8 @@ DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs depr macx { INCLUDEPATH += $$PWD/../libs/mac/include - LIBS += $$PWD/../libs/mac/lib/libssl.dylib - LIBS += $$PWD/../libs/mac/lib/libcrypto.dylib + LIBS += $$PWD/../libs/mac/lib/libssl.1.1.dylib + LIBS += $$PWD/../libs/mac/lib/libcrypto.1.1.dylib } unix:!macx { CONFIG += link_pkgconfig diff --git a/libs/mac/include/openssl/aes.h b/libs/mac/include/openssl/aes.h index faa66c49..245c552a 100644 --- a/libs/mac/include/openssl/aes.h +++ b/libs/mac/include/openssl/aes.h @@ -1,52 +1,10 @@ -/* crypto/aes/aes.h */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== +/* + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_AES_H @@ -54,11 +12,10 @@ # include -# ifdef OPENSSL_NO_AES -# error AES is disabled. -# endif - # include +# ifdef __cplusplus +extern "C" { +# endif # define AES_ENCRYPT 1 # define AES_DECRYPT 0 @@ -70,10 +27,6 @@ # define AES_MAXNR 14 # define AES_BLOCK_SIZE 16 -#ifdef __cplusplus -extern "C" { -#endif - /* This should be a hidden type, but EVP requires that the size be known */ struct aes_key_st { # ifdef AES_LONG @@ -92,11 +45,6 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits, int AES_set_decrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key); -int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - void AES_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key); void AES_decrypt(const unsigned char *in, unsigned char *out, @@ -119,11 +67,6 @@ void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, size_t length, const AES_KEY *key, unsigned char *ivec, int *num); -void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char ivec[AES_BLOCK_SIZE], - unsigned char ecount_buf[AES_BLOCK_SIZE], - unsigned int *num); /* NB: the IV is _two_ blocks long */ void AES_ige_encrypt(const unsigned char *in, unsigned char *out, size_t length, const AES_KEY *key, @@ -142,8 +85,8 @@ int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, const unsigned char *in, unsigned int inlen); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif -#endif /* !HEADER_AES_H */ +#endif diff --git a/libs/mac/include/openssl/asn1.h b/libs/mac/include/openssl/asn1.h index 35a2b2aa..05ae1dbe 100644 --- a/libs/mac/include/openssl/asn1.h +++ b/libs/mac/include/openssl/asn1.h @@ -1,59 +1,10 @@ -/* crypto/asn1/asn1.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_ASN1_H @@ -61,16 +12,15 @@ # include # include -# ifndef OPENSSL_NO_BIO -# include -# endif +# include +# include # include # include # include # include -# ifndef OPENSSL_NO_DEPRECATED +# if OPENSSL_API_COMPAT < 0x10100000L # include # endif @@ -96,13 +46,11 @@ extern "C" { # define V_ASN1_OTHER -3/* used in ASN1_TYPE */ # define V_ASN1_ANY -4/* used in ASN1 template code */ -# define V_ASN1_NEG 0x100/* negative flag */ - # define V_ASN1_UNDEF -1 +/* ASN.1 tag values */ # define V_ASN1_EOC 0 # define V_ASN1_BOOLEAN 1 /**/ # define V_ASN1_INTEGER 2 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 # define V_ASN1_NULL 5 @@ -111,7 +59,6 @@ extern "C" { # define V_ASN1_EXTERNAL 8 # define V_ASN1_REAL 9 # define V_ASN1_ENUMERATED 10 -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 @@ -129,6 +76,17 @@ extern "C" { # define V_ASN1_GENERALSTRING 27 /**/ # define V_ASN1_UNIVERSALSTRING 28 /**/ # define V_ASN1_BMPSTRING 30 + +/* + * NB the constants below are used internally by ASN1_INTEGER + * and ASN1_ENUMERATED to indicate the sign. They are *not* on + * the wire tag values. + */ + +# define V_ASN1_NEG 0x100 +# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) + /* For use with d2i_ASN1_type_bytes() */ # define B_ASN1_NUMERICSTRING 0x0001 # define B_ASN1_PRINTABLESTRING 0x0002 @@ -159,61 +117,7 @@ extern "C" { # define SMIME_CRLFEOL 0x800 # define SMIME_STREAM 0x1000 struct X509_algor_st; -DECLARE_STACK_OF(X509_ALGOR) - -# define DECLARE_ASN1_SET_OF(type)/* filled in by mkstack.pl */ -# define IMPLEMENT_ASN1_SET_OF(type)/* nothing, no longer needed */ - -/* - * We MUST make sure that, except for constness, asn1_ctx_st and - * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 - * parsing macros are gone, we can throw this away as well... - */ -typedef struct asn1_ctx_st { - unsigned char *p; /* work char pointer */ - int eos; /* end of sequence read for indefinite - * encoding */ - int error; /* error code to use when returning an error */ - int inf; /* constructed if 0x20, indefinite is 0x21 */ - int tag; /* tag from last 'get object' */ - int xclass; /* class from last 'get object' */ - long slen; /* length of last 'get object' */ - unsigned char *max; /* largest value of p allowed */ - unsigned char *q; /* temporary variable */ - unsigned char **pp; /* variable */ - int line; /* used in error processing */ -} ASN1_CTX; - -typedef struct asn1_const_ctx_st { - const unsigned char *p; /* work char pointer */ - int eos; /* end of sequence read for indefinite - * encoding */ - int error; /* error code to use when returning an error */ - int inf; /* constructed if 0x20, indefinite is 0x21 */ - int tag; /* tag from last 'get object' */ - int xclass; /* class from last 'get object' */ - long slen; /* length of last 'get object' */ - const unsigned char *max; /* largest value of p allowed */ - const unsigned char *q; /* temporary variable */ - const unsigned char **pp; /* variable */ - int line; /* used in error processing */ -} ASN1_const_CTX; - -/* - * These are used internally in the ASN1_OBJECT to keep track of whether the - * names and data need to be free()ed - */ -# define ASN1_OBJECT_FLAG_DYNAMIC 0x01/* internal use */ -# define ASN1_OBJECT_FLAG_CRITICAL 0x02/* critical x509v3 object id */ -# define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04/* internal use */ -# define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08/* internal use */ -struct asn1_object_st { - const char *sn, *ln; - int nid; - int length; - const unsigned char *data; /* data remains const after init */ - int flags; /* Should we free this one */ -}; +DEFINE_STACK_OF(X509_ALGOR) # define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ /* @@ -235,6 +139,8 @@ struct asn1_object_st { * type. */ # define ASN1_STRING_FLAG_MSTRING 0x040 +/* String is embedded and only content should be freed */ +# define ASN1_STRING_FLAG_EMBED 0x080 /* This is the base type that holds just about everything :-) */ struct asn1_string_st { int length; @@ -264,6 +170,13 @@ typedef struct ASN1_ENCODING_st { # define ASN1_LONG_UNDEF 0x7fffffffL # define STABLE_FLAGS_MALLOC 0x01 +/* + * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted + * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting + * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias + * STABLE_FLAGS_CLEAR to reflect this. + */ +# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC # define STABLE_NO_MASK 0x02 # define DIRSTRING_TYPE \ (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) @@ -277,7 +190,7 @@ typedef struct asn1_string_table_st { unsigned long flags; } ASN1_STRING_TABLE; -DECLARE_STACK_OF(ASN1_STRING_TABLE) +DEFINE_STACK_OF(ASN1_STRING_TABLE) /* size limits: this stuff is taken straight from RFC2459 */ @@ -504,6 +417,11 @@ typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); # define ASN1_STRFLGS_DUMP_DER 0x200 +/* + * This flag specifies that RC2254 escaping shall be performed. + */ +#define ASN1_STRFLGS_ESC_2254 0x400 + /* * All the string flags consistent with RFC2253, escaping control characters * isn't essential in RFC2253 but it is advisable anyway. @@ -516,10 +434,11 @@ typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); ASN1_STRFLGS_DUMP_UNKNOWN | \ ASN1_STRFLGS_DUMP_DER) -DECLARE_STACK_OF(ASN1_INTEGER) -DECLARE_ASN1_SET_OF(ASN1_INTEGER) +DEFINE_STACK_OF(ASN1_INTEGER) -DECLARE_STACK_OF(ASN1_GENERALSTRING) +DEFINE_STACK_OF(ASN1_GENERALSTRING) + +DEFINE_STACK_OF(ASN1_UTF8STRING) typedef struct asn1_type_st { int type; @@ -552,19 +471,13 @@ typedef struct asn1_type_st { } value; } ASN1_TYPE; -DECLARE_STACK_OF(ASN1_TYPE) -DECLARE_ASN1_SET_OF(ASN1_TYPE) +DEFINE_STACK_OF(ASN1_TYPE) typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) -typedef struct NETSCAPE_X509_st { - ASN1_OCTET_STRING *header; - X509 *cert; -} NETSCAPE_X509; - /* This is used to contain a list of bit names */ typedef struct BIT_STRING_BITNAME_st { int bitnum; @@ -572,50 +485,6 @@ typedef struct BIT_STRING_BITNAME_st { const char *sname; } BIT_STRING_BITNAME; -# define M_ASN1_STRING_length(x) ((x)->length) -# define M_ASN1_STRING_length_set(x, n) ((x)->length = (n)) -# define M_ASN1_STRING_type(x) ((x)->type) -# define M_ASN1_STRING_data(x) ((x)->data) - -/* Macros for string operations */ -# define M_ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\ - ASN1_STRING_type_new(V_ASN1_BIT_STRING) -# define M_ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) -# define M_ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) - -# define M_ASN1_INTEGER_new() (ASN1_INTEGER *)\ - ASN1_STRING_type_new(V_ASN1_INTEGER) -# define M_ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_INTEGER_dup(a) (ASN1_INTEGER *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) - -# define M_ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\ - ASN1_STRING_type_new(V_ASN1_ENUMERATED) -# define M_ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) - -# define M_ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\ - ASN1_STRING_type_new(V_ASN1_OCTET_STRING) -# define M_ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) -# define M_ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) -# define M_ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b) -# define M_i2d_ASN1_OCTET_STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_OCTET_STRING,\ - V_ASN1_UNIVERSAL) - # define B_ASN1_TIME \ B_ASN1_UTCTIME | \ B_ASN1_GENERALIZEDTIME @@ -645,153 +514,25 @@ typedef struct BIT_STRING_BITNAME_st { B_ASN1_BMPSTRING|\ B_ASN1_UTF8STRING -# define M_ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING) -# define M_ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_PRINTABLE(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_PRINTABLE(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_PRINTABLE) - -# define M_DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) -# define M_DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_DIRECTORYSTRING(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_DIRECTORYSTRING) - -# define M_DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) -# define M_DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_DISPLAYTEXT(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_DISPLAYTEXT) - -# define M_ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\ - ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) -# define M_ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_PRINTABLESTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_PRINTABLESTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_PRINTABLESTRING(a,pp,l) \ - (ASN1_PRINTABLESTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_PRINTABLESTRING) - -# define M_ASN1_T61STRING_new() (ASN1_T61STRING *)\ - ASN1_STRING_type_new(V_ASN1_T61STRING) -# define M_ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_T61STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_T61STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_T61STRING(a,pp,l) \ - (ASN1_T61STRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_T61STRING) - -# define M_ASN1_IA5STRING_new() (ASN1_IA5STRING *)\ - ASN1_STRING_type_new(V_ASN1_IA5STRING) -# define M_ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_IA5STRING_dup(a) \ - (ASN1_IA5STRING *)ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_i2d_ASN1_IA5STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_IA5STRING(a,pp,l) \ - (ASN1_IA5STRING *)d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l,\ - B_ASN1_IA5STRING) - -# define M_ASN1_UTCTIME_new() (ASN1_UTCTIME *)\ - ASN1_STRING_type_new(V_ASN1_UTCTIME) -# define M_ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) - -# define M_ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\ - ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME) -# define M_ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\ - (const ASN1_STRING *)a) - -# define M_ASN1_TIME_new() (ASN1_TIME *)\ - ASN1_STRING_type_new(V_ASN1_UTCTIME) -# define M_ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_TIME_dup(a) (ASN1_TIME *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) - -# define M_ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\ - ASN1_STRING_type_new(V_ASN1_GENERALSTRING) -# define M_ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_GENERALSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_GENERALSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_GENERALSTRING(a,pp,l) \ - (ASN1_GENERALSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_GENERALSTRING) - -# define M_ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\ - ASN1_STRING_type_new(V_ASN1_UNIVERSALSTRING) -# define M_ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_UNIVERSALSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UNIVERSALSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_UNIVERSALSTRING(a,pp,l) \ - (ASN1_UNIVERSALSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_UNIVERSALSTRING) - -# define M_ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\ - ASN1_STRING_type_new(V_ASN1_BMPSTRING) -# define M_ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_BMPSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_BMPSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_BMPSTRING(a,pp,l) \ - (ASN1_BMPSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_BMPSTRING) - -# define M_ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\ - ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) -# define M_ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_VISIBLESTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_VISIBLESTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_VISIBLESTRING(a,pp,l) \ - (ASN1_VISIBLESTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_VISIBLESTRING) - -# define M_ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\ - ASN1_STRING_type_new(V_ASN1_UTF8STRING) -# define M_ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_UTF8STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UTF8STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_UTF8STRING(a,pp,l) \ - (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING) - - /* for the is_set parameter to i2d_ASN1_SET */ -# define IS_SEQUENCE 0 -# define IS_SET 1 - DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) -int ASN1_TYPE_get(ASN1_TYPE *a); +int ASN1_TYPE_get(const ASN1_TYPE *a); void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); +ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); +void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); + ASN1_OBJECT *ASN1_OBJECT_new(void); void ASN1_OBJECT_free(ASN1_OBJECT *a); -int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); -ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); +int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length); DECLARE_ASN1_ITEM(ASN1_OBJECT) -DECLARE_STACK_OF(ASN1_OBJECT) -DECLARE_ASN1_SET_OF(ASN1_OBJECT) +DEFINE_STACK_OF(ASN1_OBJECT) ASN1_STRING *ASN1_STRING_new(void); void ASN1_STRING_free(ASN1_STRING *a); @@ -808,34 +549,24 @@ int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); int ASN1_STRING_length(const ASN1_STRING *x); void ASN1_STRING_length_set(ASN1_STRING *x, int n); -int ASN1_STRING_type(ASN1_STRING *x); -unsigned char *ASN1_STRING_data(ASN1_STRING *x); +int ASN1_STRING_type(const ASN1_STRING *x); +DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x)) +const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); -ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, - const unsigned char **pp, long length); int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, - unsigned char *flags, int flags_len); +int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, + const unsigned char *flags, int flags_len); -# ifndef OPENSSL_NO_BIO int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, BIT_STRING_BITNAME *tbl, int indent); -# endif -int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, +int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, BIT_STRING_BITNAME *tbl); -int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); -int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); - DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); -ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length); ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); @@ -849,9 +580,6 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec); int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); -# if 0 -time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); -# endif int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, @@ -896,59 +624,48 @@ DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec); -int ASN1_TIME_check(ASN1_TIME *t); -ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME - **out); +int ASN1_TIME_check(const ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, + ASN1_GENERALIZEDTIME **out); int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); -int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, - i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); -STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a, - const unsigned char **pp, - long length, d2i_of_void *d2i, - void (*free_func) (OPENSSL_BLOCK), - int ex_tag, int ex_class); - -# ifndef OPENSSL_NO_BIO -int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); +int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); -int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); +int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); +int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); -# endif -int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); +int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); +int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, const char *sn, const char *ln); +int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); +int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); + int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); long ASN1_INTEGER_get(const ASN1_INTEGER *a); ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); +int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); +int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); + + int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); +long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); /* General */ /* given a string, return the correct type, max is the maximum length */ int ASN1_PRINTABLE_type(const unsigned char *s, int max); -int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); -ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, - long length, int Ptag, int Pclass); unsigned long ASN1_tag2bit(int tag); -/* type is one or more of the B_ASN1_ values. */ -ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, - long length, int type); - -/* PARSING */ -int asn1_Finish(ASN1_CTX *c); -int asn1_const_Finish(ASN1_const_CTX *c); /* SPECIALS */ int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, @@ -981,7 +698,7 @@ void *ASN1_item_dup(const ASN1_ITEM *it, void *x); # define M_ASN1_free_of(x, type) \ ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); # define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ @@ -1004,12 +721,11 @@ int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); CHECKED_PTR_OF(const type, x))) int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); +int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); # endif -int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); +int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); -# ifndef OPENSSL_NO_BIO void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); # define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ @@ -1036,42 +752,27 @@ int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); +int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); +int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, unsigned char *buf, int off); int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, int dump); -# endif const char *ASN1_tag2str(int tag); -/* Used to load and write netscape format cert */ - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_X509) +/* Used to load and write Netscape format cert */ int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, +int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); -STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len, - d2i_of_void *d2i, - void (*free_func) (OPENSSL_BLOCK)); -unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d, - unsigned char **buf, int *len); -void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); -void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); -ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, - ASN1_OCTET_STRING **oct); - -# define ASN1_pack_string_of(type,obj,i2d,oct) \ - (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \ - CHECKED_I2D_OF(type, i2d), \ - oct)) +void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); @@ -1104,9 +805,11 @@ int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); void ASN1_add_oid_module(void); +void ASN1_add_stable_module(void); -ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); +ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); +int ASN1_str2mask(const char *str, unsigned long *pmask); /* ASN1 Print flags */ @@ -1133,18 +836,26 @@ int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, const ASN1_PCTX *pctx); ASN1_PCTX *ASN1_PCTX_new(void); void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); -BIO_METHOD *BIO_f_asn1(void); +ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); +void ASN1_SCTX_free(ASN1_SCTX *p); +const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); +const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); +unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); +void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); +void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); + +const BIO_METHOD *BIO_f_asn1(void); BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); @@ -1164,44 +875,40 @@ int SMIME_text(BIO *in, BIO *out); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_ASN1_strings(void); + +int ERR_load_ASN1_strings(void); /* Error codes for the ASN1 functions. */ /* Function codes. */ # define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_ENUMERATED 101 # define ASN1_F_A2I_ASN1_INTEGER 102 # define ASN1_F_A2I_ASN1_STRING 103 # define ASN1_F_APPEND_EXP 176 # define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 # define ASN1_F_ASN1_CB 177 # define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 # define ASN1_F_ASN1_COLLECT 106 # define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 # define ASN1_F_ASN1_D2I_FP 109 # define ASN1_F_ASN1_D2I_READ_BIO 107 # define ASN1_F_ASN1_DIGEST 184 # define ASN1_F_ASN1_DO_ADB 110 +# define ASN1_F_ASN1_DO_LOCK 233 # define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_ENUMERATED_SET 112 -# define ASN1_F_ASN1_ENUMERATED_TO_BN 113 # define ASN1_F_ASN1_EX_C2I 204 # define ASN1_F_ASN1_FIND_END 190 # define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERALIZEDTIME_SET 185 # define ASN1_F_ASN1_GENERATE_V3 178 +# define ASN1_F_ASN1_GET_INT64 224 # define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_HEADER_NEW 115 +# define ASN1_F_ASN1_GET_UINT64 225 # define ASN1_F_ASN1_I2D_BIO 116 # define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_INTEGER_SET 118 -# define ASN1_F_ASN1_INTEGER_TO_BN 119 # define ASN1_F_ASN1_ITEM_D2I_FP 206 # define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121 -# define ASN1_F_ASN1_ITEM_EX_D2I 120 +# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 +# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 # define ASN1_F_ASN1_ITEM_I2D_BIO 192 # define ASN1_F_ASN1_ITEM_I2D_FP 193 # define ASN1_F_ASN1_ITEM_PACK 198 @@ -1212,83 +919,66 @@ void ERR_load_ASN1_strings(void); # define ASN1_F_ASN1_MBSTRING_NCOPY 122 # define ASN1_F_ASN1_OBJECT_NEW 123 # define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PACK_STRING 124 # define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_PKCS5_PBE_SET 125 -# define ASN1_F_ASN1_SEQ_PACK 126 -# define ASN1_F_ASN1_SEQ_UNPACK 127 +# define ASN1_F_ASN1_SCTX_NEW 221 # define ASN1_F_ASN1_SIGN 128 # define ASN1_F_ASN1_STR2TYPE 179 +# define ASN1_F_ASN1_STRING_GET_INT64 227 +# define ASN1_F_ASN1_STRING_GET_UINT64 230 # define ASN1_F_ASN1_STRING_SET 186 # define ASN1_F_ASN1_STRING_TABLE_ADD 129 +# define ASN1_F_ASN1_STRING_TO_BN 228 # define ASN1_F_ASN1_STRING_TYPE_NEW 130 # define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 # define ASN1_F_ASN1_TEMPLATE_NEW 133 # define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 # define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TIME_SET 175 # define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 # define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UNPACK_STRING 136 # define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_UTCTIME_SET 187 # define ASN1_F_ASN1_VERIFY 137 # define ASN1_F_B64_READ_ASN1 209 # define ASN1_F_B64_WRITE_ASN1 210 # define ASN1_F_BIO_NEW_NDEF 208 # define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_ENUMERATED 138 -# define ASN1_F_BN_TO_ASN1_INTEGER 139 +# define ASN1_F_BN_TO_ASN1_STRING 229 # define ASN1_F_C2I_ASN1_BIT_STRING 189 # define ASN1_F_C2I_ASN1_INTEGER 194 # define ASN1_F_C2I_ASN1_OBJECT 196 +# define ASN1_F_C2I_IBUF 226 +# define ASN1_F_C2I_UINT64_INT 101 # define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_BIT_STRING 141 -# define ASN1_F_D2I_ASN1_BOOLEAN 142 -# define ASN1_F_D2I_ASN1_BYTES 143 -# define ASN1_F_D2I_ASN1_GENERALIZEDTIME 144 -# define ASN1_F_D2I_ASN1_HEADER 145 -# define ASN1_F_D2I_ASN1_INTEGER 146 # define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_SET 148 -# define ASN1_F_D2I_ASN1_TYPE_BYTES 149 # define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_ASN1_UTCTIME 151 # define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_NETSCAPE_RSA 152 -# define ASN1_F_D2I_NETSCAPE_RSA_2 153 # define ASN1_F_D2I_PRIVATEKEY 154 # define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_D2I_RSA_NET 200 -# define ASN1_F_D2I_RSA_NET_2 201 -# define ASN1_F_D2I_X509 156 -# define ASN1_F_D2I_X509_CINF 157 -# define ASN1_F_D2I_X509_PKEY 159 +# define ASN1_F_DO_TCREATE 222 # define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_ASN1_SET 188 -# define ASN1_F_I2D_ASN1_TIME 160 # define ASN1_F_I2D_DSA_PUBKEY 161 # define ASN1_F_I2D_EC_PUBKEY 181 # define ASN1_F_I2D_PRIVATEKEY 163 # define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_NET 162 # define ASN1_F_I2D_RSA_PUBKEY 165 # define ASN1_F_LONG_C2I 166 # define ASN1_F_OID_MODULE_INIT 174 # define ASN1_F_PARSE_TAGGING 182 # define ASN1_F_PKCS5_PBE2_SET_IV 167 +# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 # define ASN1_F_PKCS5_PBE_SET 202 # define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 # define ASN1_F_PKCS5_PBKDF2_SET 219 +# define ASN1_F_PKCS5_SCRYPT_SET 232 # define ASN1_F_SMIME_READ_ASN1 212 # define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_X509_CINF_NEW 168 +# define ASN1_F_STBL_MODULE_INIT 223 +# define ASN1_F_UINT32_C2I 105 +# define ASN1_F_UINT64_C2I 112 # define ASN1_F_X509_CRL_ADD0_REVOKED 169 # define ASN1_F_X509_INFO_NEW 170 # define ASN1_F_X509_NAME_ENCODE 203 # define ASN1_F_X509_NAME_EX_D2I 158 # define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_NEW 172 # define ASN1_F_X509_PKEY_NEW 173 /* Reason codes. */ @@ -1296,10 +986,7 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_ASN1_PARSE_ERROR 203 # define ASN1_R_ASN1_SIG_PARSE_ERROR 204 # define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_CLASS 101 # define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BAD_PASSWORD_READ 103 -# define ASN1_R_BAD_TAG 104 # define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 # define ASN1_R_BN_LIB 105 # define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 @@ -1308,18 +995,14 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_CONTEXT_NOT_INITIALISED 217 # define ASN1_R_DATA_IS_WRONG 109 # define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DECODING_ERROR 111 # define ASN1_R_DEPTH_EXCEEDED 174 # define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 # define ASN1_R_ENCODE_ERROR 112 # define ASN1_R_ERROR_GETTING_TIME 173 # define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_PARSING_SET_ELEMENT 113 # define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 # define ASN1_R_EXPECTING_AN_INTEGER 115 # define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPECTING_A_BOOLEAN 117 -# define ASN1_R_EXPECTING_A_TIME 118 # define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 # define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 # define ASN1_R_FIELD_MISSING 121 @@ -1332,14 +1015,17 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_ILLEGAL_HEX 178 # define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 # define ASN1_R_ILLEGAL_INTEGER 180 +# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 # define ASN1_R_ILLEGAL_NESTED_TAGGING 181 # define ASN1_R_ILLEGAL_NULL 125 # define ASN1_R_ILLEGAL_NULL_VALUE 182 # define ASN1_R_ILLEGAL_OBJECT 183 # define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 # define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 +# define ASN1_R_ILLEGAL_PADDING 221 # define ASN1_R_ILLEGAL_TAGGED_ANY 127 # define ASN1_R_ILLEGAL_TIME_VALUE 184 +# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 # define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 # define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 # define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 @@ -1349,12 +1035,12 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_INVALID_MODIFIER 186 # define ASN1_R_INVALID_NUMBER 187 # define ASN1_R_INVALID_OBJECT_ENCODING 216 +# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 # define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_TIME_FORMAT 132 +# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 # define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 # define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_IV_TOO_LARGE 135 -# define ASN1_R_LENGTH_ERROR 136 +# define ASN1_R_INVALID_VALUE 219 # define ASN1_R_LIST_ERROR 188 # define ASN1_R_MIME_NO_CONTENT_TYPE 206 # define ASN1_R_MIME_PARSE_ERROR 207 @@ -1365,12 +1051,11 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_MSTRING_NOT_UNIVERSAL 139 # define ASN1_R_MSTRING_WRONG_TAG 140 # define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 219 +# define ASN1_R_NESTED_TOO_DEEP 201 # define ASN1_R_NON_HEX_CHARACTERS 141 # define ASN1_R_NOT_ASCII_FORMAT 190 # define ASN1_R_NOT_ENOUGH_DATA 142 # define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_DEFAULT_DIGEST 201 # define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 # define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 # define ASN1_R_NO_MULTIPART_BOUNDARY 211 @@ -1378,7 +1063,6 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_NULL_IS_WRONG_LENGTH 144 # define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 # define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146 # define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 # define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 # define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 @@ -1388,14 +1072,13 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_STREAMING_NOT_SUPPORTED 202 # define ASN1_R_STRING_TOO_LONG 151 # define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_TAG_VALUE_TOO_HIGH 153 # define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 # define ASN1_R_TIME_NOT_ASCII_FORMAT 193 +# define ASN1_R_TOO_LARGE 223 # define ASN1_R_TOO_LONG 155 +# define ASN1_R_TOO_SMALL 224 # define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 218 -# define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 -# define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158 +# define ASN1_R_TYPE_NOT_PRIMITIVE 195 # define ASN1_R_UNEXPECTED_EOC 159 # define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 # define ASN1_R_UNKNOWN_FORMAT 160 @@ -1404,17 +1087,14 @@ void ERR_load_ASN1_strings(void); # define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 # define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 # define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNKOWN_FORMAT 195 # define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_CIPHER 165 -# define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166 # define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 # define ASN1_R_UNSUPPORTED_TYPE 196 +# define ASN1_R_WRONG_INTEGER_TYPE 225 # define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 # define ASN1_R_WRONG_TAG 168 -# define ASN1_R_WRONG_TYPE 169 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/asn1_mac.h b/libs/mac/include/openssl/asn1_mac.h index abc6dc35..7ac1782a 100644 --- a/libs/mac/include/openssl/asn1_mac.h +++ b/libs/mac/include/openssl/asn1_mac.h @@ -1,579 +1,10 @@ -/* crypto/asn1/asn1_mac.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_ASN1_MAC_H -# define HEADER_ASN1_MAC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef ASN1_MAC_ERR_LIB -# define ASN1_MAC_ERR_LIB ERR_LIB_ASN1 -# endif - -# define ASN1_MAC_H_err(f,r,line) \ - ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line)) - -# define M_ASN1_D2I_vars(a,type,func) \ - ASN1_const_CTX c; \ - type ret=NULL; \ - \ - c.pp=(const unsigned char **)pp; \ - c.q= *(const unsigned char **)pp; \ - c.error=ERR_R_NESTED_ASN1_ERROR; \ - if ((a == NULL) || ((*a) == NULL)) \ - { if ((ret=(type)func()) == NULL) \ - { c.line=__LINE__; goto err; } } \ - else ret=(*a); - -# define M_ASN1_D2I_Init() \ - c.p= *(const unsigned char **)pp; \ - c.max=(length == 0)?0:(c.p+length); - -# define M_ASN1_D2I_Finish_2(a) \ - if (!asn1_const_Finish(&c)) \ - { c.line=__LINE__; goto err; } \ - *(const unsigned char **)pp=c.p; \ - if (a != NULL) (*a)=ret; \ - return(ret); - -# define M_ASN1_D2I_Finish(a,func,e) \ - M_ASN1_D2I_Finish_2(a); \ -err:\ - ASN1_MAC_H_err((e),c.error,c.line); \ - asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \ - if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ - return(NULL) - -# define M_ASN1_D2I_start_sequence() \ - if (!asn1_GetSequence(&c,&length)) \ - { c.line=__LINE__; goto err; } -/* Begin reading ASN1 without a surrounding sequence */ -# define M_ASN1_D2I_begin() \ - c.slen = length; - -/* End reading ASN1 with no check on length */ -# define M_ASN1_D2I_Finish_nolen(a, func, e) \ - *pp=c.p; \ - if (a != NULL) (*a)=ret; \ - return(ret); \ -err:\ - ASN1_MAC_H_err((e),c.error,c.line); \ - asn1_add_error(*pp,(int)(c.q- *pp)); \ - if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ - return(NULL) - -# define M_ASN1_D2I_end_sequence() \ - (((c.inf&1) == 0)?(c.slen <= 0): \ - (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen))) - -/* Don't use this with d2i_ASN1_BOOLEAN() */ -# define M_ASN1_D2I_get(b, func) \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -/* Don't use this with d2i_ASN1_BOOLEAN() */ -# define M_ASN1_D2I_get_x(type,b,func) \ - c.q=c.p; \ - if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -/* use this instead () */ -# define M_ASN1_D2I_get_int(b,func) \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) < 0) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_opt(b,func,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ - == (V_ASN1_UNIVERSAL|(type)))) \ - { \ - M_ASN1_D2I_get(b,func); \ - } - -# define M_ASN1_D2I_get_int_opt(b,func,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ - == (V_ASN1_UNIVERSAL|(type)))) \ - { \ - M_ASN1_D2I_get_int(b,func); \ - } - -# define M_ASN1_D2I_get_imp(b,func, type) \ - M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \ - c.slen-=(c.p-c.q);\ - M_ASN1_next_prev=_tmp; - -# define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \ - (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \ - { \ - unsigned char _tmp = M_ASN1_next; \ - M_ASN1_D2I_get_imp(b,func, type);\ - } - -# define M_ASN1_D2I_get_set(r,func,free_func) \ - M_ASN1_D2I_get_imp_set(r,func,free_func, \ - V_ASN1_SET,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_set_type(type,r,func,free_func) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \ - V_ASN1_SET,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_set_opt(r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ - { M_ASN1_D2I_get_set(r,func,free_func); } - -# define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ - { M_ASN1_D2I_get_set_type(type,r,func,free_func); } - -# define M_ASN1_I2D_len_SET_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_len_SET(a,f); - -# define M_ASN1_I2D_put_SET_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SET(a,f); - -# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE(a,f); - -# define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE_type(type,a,f); - -# define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ - if ((c.slen != 0) && \ - (M_ASN1_next == \ - (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ - { \ - M_ASN1_D2I_get_imp_set(b,func,free_func,\ - tag,V_ASN1_CONTEXT_SPECIFIC); \ - } - -# define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \ - if ((c.slen != 0) && \ - (M_ASN1_next == \ - (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ - { \ - M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\ - tag,V_ASN1_CONTEXT_SPECIFIC); \ - } - -# define M_ASN1_D2I_get_seq(r,func,free_func) \ - M_ASN1_D2I_get_imp_set(r,func,free_func,\ - V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ - V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) - -# define M_ASN1_D2I_get_seq_opt(r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ - { M_ASN1_D2I_get_seq(r,func,free_func); } - -# define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ - { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } - -# define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ - M_ASN1_D2I_get_imp_set(r,func,free_func,\ - x,V_ASN1_CONTEXT_SPECIFIC); - -# define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ - x,V_ASN1_CONTEXT_SPECIFIC); - -# define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\ - (void (*)())free_func,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\ - free_func,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_set_strings(r,func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_STRING_SET(&(r),&c.p,c.slen,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_EXP_opt(r,func,tag) \ - if ((c.slen != 0L) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (func(&(r),&c.p,Tlen) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -# define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \ - if ((c.slen != 0) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \ - (void (*)())free_func, \ - b,V_ASN1_UNIVERSAL) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -# define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ - if ((c.slen != 0) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ - free_func,b,V_ASN1_UNIVERSAL) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -/* New macros */ -# define M_ASN1_New_Malloc(ret,type) \ - if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \ - { c.line=__LINE__; goto err2; } - -# define M_ASN1_New(arg,func) \ - if (((arg)=func()) == NULL) return(NULL) - -# define M_ASN1_New_Error(a) \ -/*- err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ - return(NULL);*/ \ - err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ - return(NULL) - /* - * BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately, some - * macros that use ASN1_const_CTX still insist on writing in the input - * stream. ARGH! ARGH! ARGH! Let's get rid of this macro package. Please? -- - * Richard Levitte + * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -# define M_ASN1_next (*((unsigned char *)(c.p))) -# define M_ASN1_next_prev (*((unsigned char *)(c.q))) -/*************************************************/ - -# define M_ASN1_I2D_vars(a) int r=0,ret=0; \ - unsigned char *p; \ - if (a == NULL) return(0) - -/* Length Macros */ -# define M_ASN1_I2D_len(a,f) ret+=f(a,NULL) -# define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f) - -# define M_ASN1_I2D_len_SET(a,f) \ - ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET); - -# define M_ASN1_I2D_len_SET_type(type,a,f) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \ - V_ASN1_UNIVERSAL,IS_SET); - -# define M_ASN1_I2D_len_SEQUENCE(a,f) \ - ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \ - V_ASN1_UNIVERSAL,IS_SEQUENCE) - -# define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_len_SEQUENCE(a,f); - -# define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - M_ASN1_I2D_len_SEQUENCE_type(type,a,f); - -# define M_ASN1_I2D_len_IMP_SET(a,f,x) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \ - if (a != NULL)\ - { \ - v=f(a,NULL); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0))\ - { \ - v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0))\ - { \ - v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_##type##_num(a) != 0))\ - { \ - v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ - V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -/* Put Macros */ -# define M_ASN1_I2D_put(a,f) f(a,&p) - -# define M_ASN1_I2D_put_IMP_opt(a,f,t) \ - if (a != NULL) \ - { \ - unsigned char *q=p; \ - f(a,&p); \ - *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\ - } - -# define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\ - V_ASN1_UNIVERSAL,IS_SET) -# define M_ASN1_I2D_put_SET_type(type,a,f) \ - i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET) -# define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ - V_ASN1_CONTEXT_SPECIFIC,IS_SET) -# define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \ - i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET) -# define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ - V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\ - V_ASN1_UNIVERSAL,IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \ - i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE(a,f); - -# define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); } - -# define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); } - -# define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); } - -# define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); } - -# define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \ - if (a != NULL) \ - { \ - ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \ - f(a,&p); \ - } - -# define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ - } - -# define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ - } - -# define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - } - -# define M_ASN1_I2D_seq_total() \ - r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ - if (pp == NULL) return(r); \ - p= *pp; \ - ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) - -# define M_ASN1_I2D_INF_seq_start(tag,ctx) \ - *(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \ - *(p++)=0x80 - -# define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00 - -# define M_ASN1_I2D_finish() *pp=p; \ - return(r); - -int asn1_GetSequence(ASN1_const_CTX *c, long *length); -void asn1_add_error(const unsigned char *address, int offset); -#ifdef __cplusplus -} -#endif - -#endif +#error "This file is obsolete; please update your software." diff --git a/libs/mac/include/openssl/asn1t.h b/libs/mac/include/openssl/asn1t.h index 99bc0eec..a5248293 100644 --- a/libs/mac/include/openssl/asn1t.h +++ b/libs/mac/include/openssl/asn1t.h @@ -1,61 +1,12 @@ -/* asn1t.h */ /* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * + * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + #ifndef HEADER_ASN1T_H # define HEADER_ASN1T_H @@ -84,7 +35,10 @@ extern "C" { # define ASN1_ITEM_start(itname) \ OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { -# define ASN1_ITEM_end(itname) \ +# define static_ASN1_ITEM_start(itname) \ + static const ASN1_ITEM itname##_it = { + +# define ASN1_ITEM_end(itname) \ }; # else @@ -99,6 +53,9 @@ extern "C" { { \ static const ASN1_ITEM local_it = { +# define static_ASN1_ITEM_start(itname) \ + static ASN1_ITEM_start(itname) + # define ASN1_ITEM_end(itname) \ }; \ return &local_it; \ @@ -122,6 +79,17 @@ extern "C" { 0,\ #tname \ ASN1_ITEM_end(tname) +# define static_ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) /* This is a ASN1 type which just embeds a template */ @@ -151,6 +119,8 @@ extern "C" { # define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) +# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) + # define ASN1_SEQUENCE_END_name(stname, tname) \ ;\ ASN1_ITEM_start(tname) \ @@ -163,6 +133,18 @@ extern "C" { #stname \ ASN1_ITEM_end(tname) +# define static_ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + # define ASN1_NDEF_SEQUENCE(tname) \ ASN1_SEQUENCE(tname) @@ -177,8 +159,8 @@ extern "C" { static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ ASN1_SEQUENCE(tname) -# define ASN1_SEQUENCE_ref(tname, cb, lck) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), lck, cb, 0}; \ +# define ASN1_SEQUENCE_ref(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0}; \ ASN1_SEQUENCE(tname) # define ASN1_SEQUENCE_enc(tname, enc, cb) \ @@ -196,12 +178,26 @@ extern "C" { sizeof(tname),\ #tname \ ASN1_ITEM_end(tname) +# define static_ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) # define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) +# define static_ASN1_BROKEN_SEQUENCE_END(stname) \ + static_ASN1_SEQUENCE_END_ref(stname, stname) # define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) # define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) +# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) # define ASN1_SEQUENCE_END_ref(stname, tname) \ ;\ @@ -214,6 +210,17 @@ extern "C" { sizeof(stname),\ #stname \ ASN1_ITEM_end(tname) +# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) # define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ ;\ @@ -259,8 +266,12 @@ extern "C" { # define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) +# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) + # define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) +# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) + # define ASN1_CHOICE_END_selector(stname, tname, selname) \ ;\ ASN1_ITEM_start(tname) \ @@ -273,6 +284,18 @@ extern "C" { #stname \ ASN1_ITEM_end(tname) +# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + # define ASN1_CHOICE_END_cb(stname, tname, selname) \ ;\ ASN1_ITEM_start(tname) \ @@ -299,11 +322,6 @@ extern "C" { (flags), (tag), offsetof(stname, field),\ #field, ASN1_ITEM_ref(type) } -/* used when the structure is combined with the parent */ - -# define ASN1_EX_COMBINE(flags, tag, type) { \ - (flags)|ASN1_TFLG_COMBINE, (tag), 0, NULL, ASN1_ITEM_ref(type) } - /* implicit and explicit helper macros */ # define ASN1_IMP_EX(stname, field, type, tag, ex) \ @@ -323,20 +341,27 @@ extern "C" { # endif /* Plain simple type */ # define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) +/* Embedded simple type */ +# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) /* OPTIONAL simple type */ # define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) +# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) /* IMPLICIT tagged simple type */ # define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) +# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) /* IMPLICIT tagged OPTIONAL simple type */ # define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) /* Same as above but EXPLICIT */ # define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) +# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) # define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) /* SEQUENCE OF type */ # define ASN1_SEQUENCE_OF(stname, field, type) \ @@ -395,12 +420,12 @@ extern "C" { # ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ +# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ ;\ static const ASN1_ADB name##_adb = {\ flags,\ offsetof(name, field),\ - app_table,\ + adb_cb,\ name##_adbtbl,\ sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ def,\ @@ -409,7 +434,7 @@ extern "C" { # else -# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ +# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ ;\ static const ASN1_ITEM *name##_adb(void) \ { \ @@ -417,7 +442,7 @@ extern "C" { {\ flags,\ offsetof(name, field),\ - app_table,\ + adb_cb,\ name##_adbtbl,\ sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ def,\ @@ -444,9 +469,7 @@ struct ASN1_TEMPLATE_st { unsigned long flags; /* Various flags */ long tag; /* tag, not used if no tagging */ unsigned long offset; /* Offset of this field in structure */ -# ifndef NO_ASN1_FIELD_NAMES const char *field_name; /* Field name */ -# endif ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ }; @@ -461,7 +484,7 @@ typedef struct ASN1_ADB_st ASN1_ADB; struct ASN1_ADB_st { unsigned long flags; /* Various flags */ unsigned long offset; /* Offset of selector field */ - STACK_OF(ASN1_ADB_TABLE) **app_items; /* Application defined items */ + int (*adb_cb)(long *psel); /* Application callback */ const ASN1_ADB_TABLE *tbl; /* Table of possible types */ long tblcount; /* Number of entries in tbl */ const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ @@ -542,15 +565,6 @@ struct ASN1_ADB_TABLE_st { # define ASN1_TFLG_ADB_INT (0x1<<9) -/* - * This flag means a parent structure is passed instead of the field: this is - * useful is a SEQUENCE is being combined with a CHOICE for example. Since - * this means the structure and item name will differ we need to use the - * ASN1_CHOICE_END_name() macro for example. - */ - -# define ASN1_TFLG_COMBINE (0x1<<10) - /* * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes * indefinite length constructed encoding to be used if required. @@ -558,6 +572,9 @@ struct ASN1_ADB_TABLE_st { # define ASN1_TFLG_NDEF (0x1<<11) +/* Field is embedded and not a pointer */ +# define ASN1_TFLG_EMBED (0x1 << 12) + /* This is the actual ASN1 item itself */ struct ASN1_ITEM_st { @@ -569,9 +586,7 @@ struct ASN1_ITEM_st { long tcount; /* Number of templates if SEQUENCE or CHOICE */ const void *funcs; /* functions that handle this type */ long size; /* Structure size (usually) */ -# ifndef NO_ASN1_FIELD_NAMES const char *sname; /* Structure name */ -# endif }; /*- @@ -597,10 +612,6 @@ struct ASN1_ITEM_st { * The 'funcs' field is used for application * specific functions. * - * For COMPAT types the funcs field gives a - * set of functions that handle this type, this - * supports the old d2i, i2d convention. - * * The EXTERN type uses a new style d2i/i2d. * The new style should be used where possible * because it avoids things like the d2i IMPLICIT @@ -625,8 +636,6 @@ struct ASN1_ITEM_st { # define ASN1_ITYPE_CHOICE 0x2 -# define ASN1_ITYPE_COMPAT 0x3 - # define ASN1_ITYPE_EXTERN 0x4 # define ASN1_ITYPE_MSTRING 0x5 @@ -648,13 +657,6 @@ struct ASN1_TLC_st { }; /* Typedefs for ASN1 function pointers */ - -typedef ASN1_VALUE *ASN1_new_func(void); -typedef void ASN1_free_func(ASN1_VALUE *a); -typedef ASN1_VALUE *ASN1_d2i_func(ASN1_VALUE **a, const unsigned char **in, - long length); -typedef int ASN1_i2d_func(ASN1_VALUE *a, unsigned char **in); - typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, const ASN1_ITEM *it, int tag, int aclass, char opt, ASN1_TLC *ctx); @@ -677,13 +679,6 @@ typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it, int indent, const ASN1_PCTX *pctx); -typedef struct ASN1_COMPAT_FUNCS_st { - ASN1_new_func *asn1_new; - ASN1_free_func *asn1_free; - ASN1_d2i_func *asn1_d2i; - ASN1_i2d_func *asn1_i2d; -} ASN1_COMPAT_FUNCS; - typedef struct ASN1_EXTERN_FUNCS_st { void *app_data; ASN1_ex_new_func *asn1_ex_new; @@ -786,27 +781,6 @@ typedef struct ASN1_STREAM_ARG_st { ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ ASN1_ITEM_end(itname) -/* Macro to implement an ASN1_ITEM in terms of old style funcs */ - -# define IMPLEMENT_COMPAT_ASN1(sname) IMPLEMENT_COMPAT_ASN1_type(sname, V_ASN1_SEQUENCE) - -# define IMPLEMENT_COMPAT_ASN1_type(sname, tag) \ - static const ASN1_COMPAT_FUNCS sname##_ff = { \ - (ASN1_new_func *)sname##_new, \ - (ASN1_free_func *)sname##_free, \ - (ASN1_d2i_func *)d2i_##sname, \ - (ASN1_i2d_func *)i2d_##sname, \ - }; \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_COMPAT, \ - tag, \ - NULL, \ - 0, \ - &sname##_ff, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - # define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ ASN1_ITEM_start(sname) \ ASN1_ITYPE_EXTERN, \ @@ -873,6 +847,19 @@ typedef struct ASN1_STREAM_ARG_st { return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ } +# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ + static stname *d2i_##stname(stname **a, \ + const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ + ASN1_ITEM_rptr(stname)); \ + } \ + static int i2d_##stname(stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, \ + ASN1_ITEM_rptr(stname)); \ + } + /* * This includes evil casts to remove const: they will go away when full ASN1 * constification is done. @@ -922,50 +909,19 @@ DECLARE_ASN1_ITEM(BIGNUM) DECLARE_ASN1_ITEM(LONG) DECLARE_ASN1_ITEM(ZLONG) -DECLARE_STACK_OF(ASN1_VALUE) +DEFINE_STACK_OF(ASN1_VALUE) /* Functions used internally by the ASN1 code */ int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); -int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); -int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); -int ASN1_template_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_TEMPLATE *tt); int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, const ASN1_ITEM *it, int tag, int aclass, char opt, ASN1_TLC *ctx); int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, const ASN1_ITEM *it, int tag, int aclass); -int ASN1_template_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_TEMPLATE *tt); -void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, - const ASN1_ITEM *it); -int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, - int utype, char *free_cont, const ASN1_ITEM *it); - -int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it); -int asn1_set_choice_selector(ASN1_VALUE **pval, int value, - const ASN1_ITEM *it); - -ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); - -const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt, - int nullerr); - -int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it); - -void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it); -void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it); -int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval, - const ASN1_ITEM *it); -int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen, - const ASN1_ITEM *it); #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/async.h b/libs/mac/include/openssl/async.h new file mode 100644 index 00000000..5b2e496d --- /dev/null +++ b/libs/mac/include/openssl/async.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifndef HEADER_ASYNC_H +# define HEADER_ASYNC_H + +#if defined(_WIN32) +# if defined(BASETYPES) || defined(_WINDEF_H) +/* application has to include to use this */ +#define OSSL_ASYNC_FD HANDLE +#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE +# endif +#else +#define OSSL_ASYNC_FD int +#define OSSL_BAD_ASYNC_FD -1 +#endif + + +# ifdef __cplusplus +extern "C" { +# endif + +typedef struct async_job_st ASYNC_JOB; +typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; + +#define ASYNC_ERR 0 +#define ASYNC_NO_JOBS 1 +#define ASYNC_PAUSE 2 +#define ASYNC_FINISH 3 + +int ASYNC_init_thread(size_t max_size, size_t init_size); +void ASYNC_cleanup_thread(void); + +#ifdef OSSL_ASYNC_FD +ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); +void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); +int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, + OSSL_ASYNC_FD fd, + void *custom_data, + void (*cleanup)(ASYNC_WAIT_CTX *, const void *, + OSSL_ASYNC_FD, void *)); +int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, + OSSL_ASYNC_FD *fd, void **custom_data); +int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, + size_t *numfds); +int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, + size_t *numaddfds, OSSL_ASYNC_FD *delfd, + size_t *numdelfds); +int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); +#endif + +int ASYNC_is_capable(void); + +int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, + int (*func)(void *), void *args, size_t size); +int ASYNC_pause_job(void); + +ASYNC_JOB *ASYNC_get_current_job(void); +ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); +void ASYNC_block_pause(void); +void ASYNC_unblock_pause(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +int ERR_load_ASYNC_strings(void); + +/* Error codes for the ASYNC functions. */ + +/* Function codes. */ +# define ASYNC_F_ASYNC_CTX_NEW 100 +# define ASYNC_F_ASYNC_INIT_THREAD 101 +# define ASYNC_F_ASYNC_JOB_NEW 102 +# define ASYNC_F_ASYNC_PAUSE_JOB 103 +# define ASYNC_F_ASYNC_START_FUNC 104 +# define ASYNC_F_ASYNC_START_JOB 105 + +/* Reason codes. */ +# define ASYNC_R_FAILED_TO_SET_POOL 101 +# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 +# define ASYNC_R_INIT_FAILED 105 +# define ASYNC_R_INVALID_POOL_SIZE 103 + +# ifdef __cplusplus +} +# endif +#endif diff --git a/libs/mac/include/openssl/bio.h b/libs/mac/include/openssl/bio.h index 8f2438cd..f435bd8e 100644 --- a/libs/mac/include/openssl/bio.h +++ b/libs/mac/include/openssl/bio.h @@ -1,59 +1,10 @@ -/* crypto/bio/bio.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_BIO_H @@ -61,7 +12,7 @@ # include -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO # include # endif # include @@ -69,50 +20,47 @@ # include # ifndef OPENSSL_NO_SCTP -# ifndef OPENSSL_SYS_VMS -# include -# else -# include -# endif +# include # endif #ifdef __cplusplus extern "C" { #endif -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM (1|0x0400) -# define BIO_TYPE_FILE (2|0x0400) - -# define BIO_TYPE_FD (4|0x0400|0x0100) -# define BIO_TYPE_SOCKET (5|0x0400|0x0100) -# define BIO_TYPE_NULL (6|0x0400) -# define BIO_TYPE_SSL (7|0x0200) -# define BIO_TYPE_MD (8|0x0200)/* passive filter */ -# define BIO_TYPE_BUFFER (9|0x0200)/* filter */ -# define BIO_TYPE_CIPHER (10|0x0200)/* filter */ -# define BIO_TYPE_BASE64 (11|0x0200)/* filter */ -# define BIO_TYPE_CONNECT (12|0x0400|0x0100)/* socket - connect */ -# define BIO_TYPE_ACCEPT (13|0x0400|0x0100)/* socket for accept */ -# define BIO_TYPE_PROXY_CLIENT (14|0x0200)/* client proxy BIO */ -# define BIO_TYPE_PROXY_SERVER (15|0x0200)/* server proxy BIO */ -# define BIO_TYPE_NBIO_TEST (16|0x0200)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|0x0200) -# define BIO_TYPE_BER (18|0x0200)/* BER -> bin filter */ -# define BIO_TYPE_BIO (19|0x0400)/* (half a) BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|0x0200)/* filter */ -# define BIO_TYPE_DGRAM (21|0x0400|0x0100) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|0x0400|0x0100) -# endif -# define BIO_TYPE_ASN1 (22|0x0200)/* filter */ -# define BIO_TYPE_COMP (23|0x0200)/* filter */ - -# define BIO_TYPE_DESCRIPTOR 0x0100/* socket, fd, connect or accept */ +/* There are the classes of BIOs */ +# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ # define BIO_TYPE_FILTER 0x0200 # define BIO_TYPE_SOURCE_SINK 0x0400 +/* These are the 'types' of BIOs */ +# define BIO_TYPE_NONE 0 +# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) + +# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) +# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) +# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) +# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) +# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) +# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) + +# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ +# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) +# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ +# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) +# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) +# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) +# ifndef OPENSSL_NO_SCTP +# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# endif + +#define BIO_TYPE_START 128 + /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. * BIO_set_fp(in,stdin,BIO_NOCLOSE); @@ -136,7 +84,6 @@ extern "C" { # define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ # define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ # define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -/* callback is int cb(BIO *bio,state,ret); */ # define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ # define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ @@ -178,9 +125,10 @@ extern "C" { # define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 +/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ +# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 # ifndef OPENSSL_NO_SCTP /* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 # define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 # define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 # define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 @@ -193,6 +141,8 @@ extern "C" { # define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 # endif +# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 + /* modifiers */ # define BIO_FP_READ 0x02 # define BIO_FP_WRITE 0x04 @@ -212,31 +162,20 @@ extern "C" { # define BIO_FLAGS_UPLINK 0 # endif -/* Used in BIO_gethostbyname() */ -# define BIO_GHBN_CTRL_HITS 1 -# define BIO_GHBN_CTRL_MISSES 2 -# define BIO_GHBN_CTRL_CACHE_SIZE 3 -# define BIO_GHBN_CTRL_GET_ENTRY 4 -# define BIO_GHBN_CTRL_FLUSH 5 - -/* Mostly used in the SSL BIO */ -/*- - * Not used anymore - * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 - * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 - * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 - */ - # define BIO_FLAGS_BASE64_NO_NL 0x100 /* - * This is used with memory BIOs: it means we shouldn't free up or change the - * data in any way. + * This is used with memory BIOs: + * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; + * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. */ # define BIO_FLAGS_MEM_RDONLY 0x200 +# define BIO_FLAGS_NONCLEAR_RST 0x400 -typedef struct bio_st BIO; +typedef union bio_addr_st BIO_ADDR; +typedef struct bio_addrinfo_st BIO_ADDRINFO; +int BIO_get_new_index(void); void BIO_set_flags(BIO *b, int flags); int BIO_test_flags(const BIO *b, int flags); void BIO_clear_flags(BIO *b, int flags); @@ -295,76 +234,22 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) # define BIO_cb_post(a) ((a)&BIO_CB_RETURN) -long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, - int, long, long); -void BIO_set_callback(BIO *b, - long (*callback) (struct bio_st *, int, const char *, - int, long, long)); +typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, + long argl, long ret); +BIO_callback_fn BIO_get_callback(const BIO *b); +void BIO_set_callback(BIO *b, BIO_callback_fn callback); char *BIO_get_callback_arg(const BIO *b); void BIO_set_callback_arg(BIO *b, char *arg); +typedef struct bio_method_st BIO_METHOD; + const char *BIO_method_name(const BIO *b); int BIO_method_type(const BIO *b); -typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, - long); +typedef int BIO_info_cb(BIO *, int, int); +typedef BIO_info_cb bio_info_cb; /* backward compatibility */ -typedef struct bio_method_st { - int type; - const char *name; - int (*bwrite) (BIO *, const char *, int); - int (*bread) (BIO *, char *, int); - int (*bputs) (BIO *, const char *); - int (*bgets) (BIO *, char *, int); - long (*ctrl) (BIO *, int, long, void *); - int (*create) (BIO *); - int (*destroy) (BIO *); - long (*callback_ctrl) (BIO *, int, bio_info_cb *); -} BIO_METHOD; - -struct bio_st { - BIO_METHOD *method; - /* bio, mode, argp, argi, argl, ret */ - long (*callback) (struct bio_st *, int, const char *, int, long, long); - char *cb_arg; /* first argument for the callback */ - int init; - int shutdown; - int flags; /* extra storage */ - int retry_reason; - int num; - void *ptr; - struct bio_st *next_bio; /* used by filter BIOs */ - struct bio_st *prev_bio; /* used by filter BIOs */ - int references; - unsigned long num_read; - unsigned long num_write; - CRYPTO_EX_DATA ex_data; -}; - -DECLARE_STACK_OF(BIO) - -typedef struct bio_f_buffer_ctx_struct { - /*- - * Buffers are setup like this: - * - * <---------------------- size -----------------------> - * +---------------------------------------------------+ - * | consumed | remaining | free space | - * +---------------------------------------------------+ - * <-- off --><------- len -------> - */ - /*- BIO *bio; *//* - * this is now in the BIO struct - */ - int ibuf_size; /* how big is the input buffer */ - int obuf_size; /* how big is the output buffer */ - char *ibuf; /* the char array */ - int ibuf_len; /* how many bytes are in it */ - int ibuf_off; /* write/read offset */ - char *obuf; /* the char array */ - int obuf_len; /* how many bytes are in it */ - int obuf_off; /* write/read offset */ -} BIO_F_BUFFER_CTX; +DEFINE_STACK_OF(BIO) /* Prefix and suffix callback in ASN1 BIO */ typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, @@ -395,15 +280,6 @@ struct bio_dgram_sctp_prinfo { }; # endif -/* connect BIO stuff */ -# define BIO_CONN_S_BEFORE 1 -# define BIO_CONN_S_GET_IP 2 -# define BIO_CONN_S_GET_PORT 3 -# define BIO_CONN_S_CREATE_SOCKET 4 -# define BIO_CONN_S_CONNECT 5 -# define BIO_CONN_S_OK 6 -# define BIO_CONN_S_BLOCKED_CONNECT 7 -# define BIO_CONN_S_NBIO 8 /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -411,7 +287,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT 100 # define BIO_C_DO_STATE_MACHINE 101 # define BIO_C_SET_NBIO 102 -# define BIO_C_SET_PROXY_PARAM 103 +/* # define BIO_C_SET_PROXY_PARAM 103 */ # define BIO_C_SET_FD 104 # define BIO_C_GET_FD 105 # define BIO_C_SET_FILE_PTR 106 @@ -429,7 +305,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_ACCEPT 118 # define BIO_C_SSL_MODE 119 # define BIO_C_GET_MD_CTX 120 -# define BIO_C_GET_PROXY_PARAM 121 +/* # define BIO_C_GET_PROXY_PARAM 121 */ # define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ # define BIO_C_GET_CONNECT 123 # define BIO_C_GET_ACCEPT 124 @@ -468,54 +344,58 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_EX_ARG 153 # define BIO_C_GET_EX_ARG 154 +# define BIO_C_SET_CONNECT_MODE 155 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -/* BIO_s_connect() and BIO_s_socks4a_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) -# define BIO_set_conn_ip(b,ip) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)ip) -# define BIO_set_conn_int_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,3,(char *)port) -# define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) -# define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) -# define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# ifndef OPENSSL_NO_SOCK +/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ +/* Note: the underlying operating system may not support some of them */ +# define BIO_FAMILY_IPV4 4 +# define BIO_FAMILY_IPV6 6 +# define BIO_FAMILY_IPANY 256 + +/* BIO_s_connect() */ +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) +# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)addr) +# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) +# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) +# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) +# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) +# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) /* BIO_s_accept() */ -# define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) -# define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) +# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) +# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(char *)port) +# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) +# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) +# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) +# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ -# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(char *)bio) +# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3,(char *)bio) +# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) +# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR_IF_UNUSED 1 -# define BIO_BIND_REUSEADDR 2 -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* Aliases kept for backward compatibility */ +# define BIO_BIND_NORMAL 0 +# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR +# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR +# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) /* BIO_s_accept() and BIO_s_connect() */ -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) +# define BIO_do_connect(b) BIO_do_handshake(b) +# define BIO_do_accept(b) BIO_do_handshake(b) +# endif /* OPENSSL_NO_SOCK */ + # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) -/* BIO_s_proxy_client() */ -# define BIO_set_url(b,url) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,0,(char *)(url)) -# define BIO_set_proxies(b,p) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,1,(char *)(p)) -/* BIO_set_nbio(b,n) */ -# define BIO_set_filter_bio(b,s) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,2,(char *)(s)) -/* BIO *BIO_get_filter_bio(BIO *bio); */ -# define BIO_set_proxy_cb(b,cb) BIO_callback_ctrl(b,BIO_C_SET_PROXY_PARAM,3,(void *(*cb)())) -# define BIO_set_proxy_header(b,sk) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,4,(char *)sk) -# define BIO_set_no_connect_return(b,bool) BIO_int_ctrl(b,BIO_C_SET_PROXY_PARAM,5,bool) - -# define BIO_get_proxy_header(b,skp) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,0,(char *)skp) -# define BIO_get_proxies(b,pxy_p) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,1,(char *)(pxy_p)) -# define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) -# define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) - /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) @@ -539,14 +419,14 @@ struct bio_dgram_sctp_prinfo { */ int BIO_read_filename(BIO *b, const char *name); # else -# define BIO_read_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ +# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ BIO_CLOSE|BIO_FP_READ,(char *)name) # endif -# define BIO_write_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ +# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ +# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ +# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) /* @@ -617,8 +497,8 @@ int BIO_ctrl_reset_read_request(BIO *b); /* ctrl macros for dgram */ # define BIO_ctrl_dgram_connect(b,peer) \ (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)peer) -# define BIO_ctrl_set_connected(b, state, peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, state, (char *)peer) +# define BIO_ctrl_set_connected(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)peer) # define BIO_dgram_recv_timedout(b) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) # define BIO_dgram_send_timedout(b) \ @@ -630,15 +510,12 @@ int BIO_ctrl_reset_read_request(BIO *b); # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) -/* These two aren't currently implemented */ -/* int BIO_get_ex_num(BIO *bio); */ -/* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ +#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) int BIO_set_ex_data(BIO *bio, int idx, void *data); void *BIO_get_ex_data(BIO *bio, int idx); -int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -unsigned long BIO_number_read(BIO *bio); -unsigned long BIO_number_written(BIO *bio); +uint64_t BIO_number_read(BIO *bio); +uint64_t BIO_number_written(BIO *bio); /* For BIO_f_asn1() */ int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, @@ -650,34 +527,39 @@ int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, asn1_ps_func **psuffix_free); -# ifndef OPENSSL_NO_FP_API -BIO_METHOD *BIO_s_file(void); +const BIO_METHOD *BIO_s_file(void); BIO *BIO_new_file(const char *filename, const char *mode); +# ifndef OPENSSL_NO_STDIO BIO *BIO_new_fp(FILE *stream, int close_flag); -# define BIO_s_file_internal BIO_s_file # endif -BIO *BIO_new(BIO_METHOD *type); -int BIO_set(BIO *a, BIO_METHOD *type); +BIO *BIO_new(const BIO_METHOD *type); int BIO_free(BIO *a); +void BIO_set_data(BIO *a, void *ptr); +void *BIO_get_data(BIO *a); +void BIO_set_init(BIO *a, int init); +int BIO_get_init(BIO *a); +void BIO_set_shutdown(BIO *a, int shut); +int BIO_get_shutdown(BIO *a); void BIO_vfree(BIO *a); +int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int len); int BIO_gets(BIO *bp, char *buf, int size); int BIO_write(BIO *b, const void *data, int len); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); -long BIO_callback_ctrl(BIO *b, int cmd, - void (*fp) (struct bio_st *, int, const char *, int, - long, long)); -char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); +void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); BIO *BIO_push(BIO *b, BIO *append); BIO *BIO_pop(BIO *b); void BIO_free_all(BIO *a); BIO *BIO_find_type(BIO *b, int bio_type); BIO *BIO_next(BIO *b); +void BIO_set_next(BIO *b, BIO *next); BIO *BIO_get_retry_BIO(BIO *bio, int *reason); int BIO_get_retry_reason(BIO *bio); +void BIO_set_retry_reason(BIO *bio, int reason); BIO *BIO_dup_chain(BIO *in); int BIO_nread0(BIO *bio, char **buf); @@ -688,35 +570,44 @@ int BIO_nwrite(BIO *bio, char **buf, int num); long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, long argl, long ret); -BIO_METHOD *BIO_s_mem(void); +const BIO_METHOD *BIO_s_mem(void); +const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); -BIO_METHOD *BIO_s_socket(void); -BIO_METHOD *BIO_s_connect(void); -BIO_METHOD *BIO_s_accept(void); -BIO_METHOD *BIO_s_fd(void); -# ifndef OPENSSL_SYS_OS2 -BIO_METHOD *BIO_s_log(void); +# ifndef OPENSSL_NO_SOCK +const BIO_METHOD *BIO_s_socket(void); +const BIO_METHOD *BIO_s_connect(void); +const BIO_METHOD *BIO_s_accept(void); # endif -BIO_METHOD *BIO_s_bio(void); -BIO_METHOD *BIO_s_null(void); -BIO_METHOD *BIO_f_null(void); -BIO_METHOD *BIO_f_buffer(void); -# ifdef OPENSSL_SYS_VMS -BIO_METHOD *BIO_f_linebuffer(void); -# endif -BIO_METHOD *BIO_f_nbio_test(void); +const BIO_METHOD *BIO_s_fd(void); +const BIO_METHOD *BIO_s_log(void); +const BIO_METHOD *BIO_s_bio(void); +const BIO_METHOD *BIO_s_null(void); +const BIO_METHOD *BIO_f_null(void); +const BIO_METHOD *BIO_f_buffer(void); +const BIO_METHOD *BIO_f_linebuffer(void); +const BIO_METHOD *BIO_f_nbio_test(void); # ifndef OPENSSL_NO_DGRAM -BIO_METHOD *BIO_s_datagram(void); +const BIO_METHOD *BIO_s_datagram(void); +int BIO_dgram_non_fatal_error(int error); +BIO *BIO_new_dgram(int fd, int close_flag); # ifndef OPENSSL_NO_SCTP -BIO_METHOD *BIO_s_datagram_sctp(void); +const BIO_METHOD *BIO_s_datagram_sctp(void); +BIO *BIO_new_dgram_sctp(int fd, int close_flag); +int BIO_dgram_is_sctp(BIO *bio); +int BIO_dgram_sctp_notification_cb(BIO *b, + void (*handle_notifications) (BIO *bio, + void *context, + void *buf), + void *context); +int BIO_dgram_sctp_wait_for_dry(BIO *b); +int BIO_dgram_sctp_msg_waiting(BIO *b); # endif # endif -/* BIO_METHOD *BIO_f_ber(void); */ - +# ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); -int BIO_dgram_non_fatal_error(int error); +# endif int BIO_fd_should_retry(int i); int BIO_fd_non_fatal_error(int error); @@ -726,51 +617,86 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), void *u, const char *s, int len, int indent); int BIO_dump(BIO *b, const char *bytes, int len); int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int BIO_dump_fp(FILE *fp, const char *s, int len); int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); # endif int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, int datalen); -struct hostent *BIO_gethostbyname(const char *name); -/*- - * We might want a thread-safe interface too: - * struct hostent *BIO_gethostbyname_r(const char *name, - * struct hostent *result, void *buffer, size_t buflen); - * or something similar (caller allocates a struct hostent, - * pointed to by "result", and additional buffer space for the various - * substructures; if the buffer does not suffice, NULL is returned - * and an appropriate error code is set). - */ +# ifndef OPENSSL_NO_SOCK +BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, + const void *where, size_t wherelen, unsigned short port); +void BIO_ADDR_free(BIO_ADDR *); +void BIO_ADDR_clear(BIO_ADDR *ap); +int BIO_ADDR_family(const BIO_ADDR *ap); +int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); +unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); +char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_path_string(const BIO_ADDR *ap); + +const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); +const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); +void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); + +enum BIO_hostserv_priorities { + BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV +}; +int BIO_parse_hostserv(const char *hostserv, char **host, char **service, + enum BIO_hostserv_priorities hostserv_prio); +enum BIO_lookup_type { + BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER +}; +int BIO_lookup(const char *host, const char *service, + enum BIO_lookup_type lookup_type, + int family, int socktype, BIO_ADDRINFO **res); int BIO_sock_error(int sock); int BIO_socket_ioctl(int fd, long type, void *arg); int BIO_socket_nbio(int fd, int mode); -int BIO_get_port(const char *str, unsigned short *port_ptr); -int BIO_get_host_ip(const char *str, unsigned char *ip); -int BIO_get_accept_socket(char *host_port, int mode); -int BIO_accept(int sock, char **ip_port); int BIO_sock_init(void); -void BIO_sock_cleanup(void); +# if OPENSSL_API_COMPAT < 0x10100000L +# define BIO_sock_cleanup() while(0) continue +# endif int BIO_set_tcp_ndelay(int sock, int turn_on); +DEPRECATEDIN_1_1_0(struct hostent *BIO_gethostbyname(const char *name)) +DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr)) +DEPRECATEDIN_1_1_0(int BIO_get_host_ip(const char *str, unsigned char *ip)) +DEPRECATEDIN_1_1_0(int BIO_get_accept_socket(char *host_port, int mode)) +DEPRECATEDIN_1_1_0(int BIO_accept(int sock, char **ip_port)) + +union BIO_sock_info_u { + BIO_ADDR *addr; +}; +enum BIO_sock_info_type { + BIO_SOCK_INFO_ADDRESS +}; +int BIO_sock_info(int sock, + enum BIO_sock_info_type type, union BIO_sock_info_u *info); + +# define BIO_SOCK_REUSEADDR 0x01 +# define BIO_SOCK_V6_ONLY 0x02 +# define BIO_SOCK_KEEPALIVE 0x04 +# define BIO_SOCK_NONBLOCK 0x08 +# define BIO_SOCK_NODELAY 0x10 + +int BIO_socket(int domain, int socktype, int protocol, int options); +int BIO_connect(int sock, const BIO_ADDR *addr, int options); +int BIO_listen(int sock, const BIO_ADDR *addr, int options); +int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); +int BIO_closesocket(int sock); + BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - void (*handle_notifications) (BIO *bio, - void - *context, - void *buf), - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -BIO *BIO_new_fd(int fd, int close_flag); BIO *BIO_new_connect(const char *host_port); BIO *BIO_new_accept(const char *host_port); +# endif /* OPENSSL_NO_SOCK*/ + +BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); @@ -801,27 +727,61 @@ int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) __bio_h__attr__((__format__(__printf__, 3, 0))); # undef __bio_h__attr__ + +BIO_METHOD *BIO_meth_new(int type, const char *name); +void BIO_meth_free(BIO_METHOD *biom); +int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); +int BIO_meth_set_write(BIO_METHOD *biom, + int (*write) (BIO *, const char *, int)); +int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); +int BIO_meth_set_read(BIO_METHOD *biom, + int (*read) (BIO *, char *, int)); +int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_puts(BIO_METHOD *biom, + int (*puts) (BIO *, const char *)); +int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); +int BIO_meth_set_gets(BIO_METHOD *biom, + int (*gets) (BIO *, char *, int)); +long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *); +int BIO_meth_set_ctrl(BIO_METHOD *biom, + long (*ctrl) (BIO *, int, long, void *)); +int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *); +int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); +int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); +int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); +long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) + (BIO *, int, BIO_info_cb *); +int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, + long (*callback_ctrl) (BIO *, int, + BIO_info_cb *)); + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_BIO_strings(void); + +int ERR_load_BIO_strings(void); /* Error codes for the BIO functions. */ /* Function codes. */ # define BIO_F_ACPT_STATE 100 +# define BIO_F_ADDR_STRINGS 134 # define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_BER_GET_HEADER 102 +# define BIO_F_BIO_ACCEPT_EX 137 +# define BIO_F_BIO_ADDR_NEW 144 # define BIO_F_BIO_CALLBACK_CTRL 131 +# define BIO_F_BIO_CONNECT 138 # define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETHOSTBYNAME 120 # define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_ACCEPT_SOCKET 105 # define BIO_F_BIO_GET_HOST_IP 106 +# define BIO_F_BIO_GET_NEW_INDEX 102 # define BIO_F_BIO_GET_PORT 107 +# define BIO_F_BIO_LISTEN 139 +# define BIO_F_BIO_LOOKUP 135 # define BIO_F_BIO_MAKE_PAIR 121 +# define BIO_F_BIO_METH_NEW 146 # define BIO_F_BIO_NEW 108 # define BIO_F_BIO_NEW_FILE 109 # define BIO_F_BIO_NEW_MEM_BUF 126 @@ -829,8 +789,12 @@ void ERR_load_BIO_strings(void); # define BIO_F_BIO_NREAD0 124 # define BIO_F_BIO_NWRITE 125 # define BIO_F_BIO_NWRITE0 122 +# define BIO_F_BIO_PARSE_HOSTSERV 136 # define BIO_F_BIO_PUTS 110 # define BIO_F_BIO_READ 111 +# define BIO_F_BIO_SOCKET 140 +# define BIO_F_BIO_SOCKET_NBIO 142 +# define BIO_F_BIO_SOCK_INFO 141 # define BIO_F_BIO_SOCK_INIT 112 # define BIO_F_BIO_WRITE 113 # define BIO_F_BUFFER_CTRL 114 @@ -841,43 +805,48 @@ void ERR_load_BIO_strings(void); # define BIO_F_FILE_CTRL 116 # define BIO_F_FILE_READ 130 # define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_READ 128 # define BIO_F_MEM_WRITE 117 # define BIO_F_SSL_NEW 118 -# define BIO_F_WSASTARTUP 119 /* Reason codes. */ # define BIO_R_ACCEPT_ERROR 100 +# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 +# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 # define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BAD_HOSTNAME_LOOKUP 102 # define BIO_R_BROKEN_PIPE 124 # define BIO_R_CONNECT_ERROR 103 -# define BIO_R_EOF_ON_MEMORY_BIO 127 -# define BIO_R_ERROR_SETTING_NBIO 104 -# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET 105 -# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET 106 # define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 +# define BIO_R_GETSOCKNAME_ERROR 132 +# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 +# define BIO_R_GETTING_SOCKTYPE 134 # define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_IP_ADDRESS 108 +# define BIO_R_INVALID_SOCKET 135 # define BIO_R_IN_USE 123 -# define BIO_R_KEEPALIVE 109 +# define BIO_R_LISTEN_V6_ONLY 136 +# define BIO_R_LOOKUP_RETURNED_NOTHING 142 +# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 # define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_PORT_SPECIFIED 111 -# define BIO_R_NO_HOSTNAME_SPECIFIED 112 +# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 +# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 # define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_PORT_SPECIFIED 114 # define BIO_R_NO_SUCH_FILE 128 # define BIO_R_NULL_PARAMETER 115 -# define BIO_R_TAG_MISMATCH 116 # define BIO_R_UNABLE_TO_BIND_SOCKET 117 # define BIO_R_UNABLE_TO_CREATE_SOCKET 118 +# define BIO_R_UNABLE_TO_KEEPALIVE 137 # define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 +# define BIO_R_UNABLE_TO_NODELAY 138 +# define BIO_R_UNABLE_TO_REUSEADDR 139 +# define BIO_R_UNAVAILABLE_IP_FAMILY 145 # define BIO_R_UNINITIALIZED 120 +# define BIO_R_UNKNOWN_INFO_TYPE 140 +# define BIO_R_UNSUPPORTED_IP_FAMILY 146 # define BIO_R_UNSUPPORTED_METHOD 121 +# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 # define BIO_R_WRITE_TO_READ_ONLY_BIO 126 # define BIO_R_WSASTARTUP 122 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/blowfish.h b/libs/mac/include/openssl/blowfish.h index 83293027..cd3e460e 100644 --- a/libs/mac/include/openssl/blowfish.h +++ b/libs/mac/include/openssl/blowfish.h @@ -1,72 +1,21 @@ -/* crypto/bf/blowfish.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_BLOWFISH_H # define HEADER_BLOWFISH_H +# include + +# ifndef OPENSSL_NO_BF # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - -# ifdef OPENSSL_NO_BF -# error BF is disabled. # endif # define BF_ENCRYPT 1 @@ -74,26 +23,10 @@ extern "C" { /*- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! BF_LONG_LOG2 has to be defined along. ! + * ! BF_LONG has to be at least 32 bits wide. ! * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ - -# if defined(__LP32__) -# define BF_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define BF_LONG unsigned long -# define BF_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define BF_LONG unsigned int -# endif +# define BF_LONG unsigned int # define BF_ROUNDS 16 # define BF_BLOCK 8 @@ -103,9 +36,6 @@ typedef struct bf_key_st { BF_LONG S[4 * 256]; } BF_KEY; -# ifdef OPENSSL_FIPS -void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data); -# endif void BF_set_key(BF_KEY *key, int len, const unsigned char *data); void BF_encrypt(BF_LONG *data, const BF_KEY *key); @@ -123,8 +53,9 @@ void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, unsigned char *ivec, int *num); const char *BF_options(void); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/bn.h b/libs/mac/include/openssl/bn.h index 633d1b1f..54ae7601 100644 --- a/libs/mac/include/openssl/bn.h +++ b/libs/mac/include/openssl/bn.h @@ -1,113 +1,12 @@ -/* crypto/bn/bn.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -125,11 +24,11 @@ #ifndef HEADER_BN_H # define HEADER_BN_H -# include # include -# ifndef OPENSSL_NO_FP_API -# include /* FILE */ +# ifndef OPENSSL_NO_STDIO +# include # endif +# include # include # include @@ -138,126 +37,29 @@ extern "C" { #endif /* - * These preprocessor symbols control various aspects of the bignum headers - * and library code. They're not defined by any "normal" configuration, as - * they are intended for development and testing purposes. NB: defining all - * three can be useful for debugging application code as well as openssl - * itself. BN_DEBUG - turn on various debugging alterations to the bignum - * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up - * mismanagement of bignum internals. You must also define BN_DEBUG. - */ -/* #define BN_DEBUG */ -/* #define BN_DEBUG_RAND */ - -# ifndef OPENSSL_SMALL_FOOTPRINT -# define BN_MUL_COMBA -# define BN_SQR_COMBA -# define BN_RECURSION -# endif - -/* - * This next option uses the C libraries (2 word)/(1 word) function. If it is - * not defined, I use my C version (which is slower). The reason for this - * flag is that when the particular C compiler library routine is used, and - * the library is linked with a different compiler, the library is missing. - * This mostly happens when the library is built with gcc and then linked - * using normal cc. This would be a common occurrence because gcc normally - * produces code that is 2 times faster than system compilers for the big - * number stuff. For machines with only one compiler (or shared libraries), - * this should be on. Again this in only really a problem on machines using - * "long long's", are 32bit, and are not using my assembler code. - */ -# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || \ - defined(OPENSSL_SYS_WIN32) || defined(linux) -# ifndef BN_DIV2W -# define BN_DIV2W -# endif -# endif - -/* - * assuming long is 64bit - this is the DEC Alpha unsigned long long is only - * 64 bits :-(, don't define BN_LLONG for the DEC Alpha + * 64-bit processor with LP64 ABI */ # ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULLONG unsigned long long # define BN_ULONG unsigned long -# define BN_LONG long -# define BN_BITS 128 # define BN_BYTES 8 -# define BN_BITS2 64 -# define BN_BITS4 32 -# define BN_MASK (0xffffffffffffffffffffffffffffffffLL) -# define BN_MASK2 (0xffffffffffffffffL) -# define BN_MASK2l (0xffffffffL) -# define BN_MASK2h (0xffffffff00000000L) -# define BN_MASK2h1 (0xffffffff80000000L) -# define BN_TBIT (0x8000000000000000L) -# define BN_DEC_CONV (10000000000000000000UL) -# define BN_DEC_FMT1 "%lu" -# define BN_DEC_FMT2 "%019lu" -# define BN_DEC_NUM 19 -# define BN_HEX_FMT1 "%lX" -# define BN_HEX_FMT2 "%016lX" # endif /* - * This is where the long long data type is 64 bits, but long is 32. For - * machines where there are 64bit registers, this is the mode to use. IRIX, - * on R4000 and above should use this mode, along with the relevant assembler - * code :-). Do NOT define BN_LLONG. + * 64-bit processor other than LP64 ABI */ # ifdef SIXTY_FOUR_BIT -# undef BN_LLONG -# undef BN_ULLONG # define BN_ULONG unsigned long long -# define BN_LONG long long -# define BN_BITS 128 # define BN_BYTES 8 -# define BN_BITS2 64 -# define BN_BITS4 32 -# define BN_MASK2 (0xffffffffffffffffLL) -# define BN_MASK2l (0xffffffffL) -# define BN_MASK2h (0xffffffff00000000LL) -# define BN_MASK2h1 (0xffffffff80000000LL) -# define BN_TBIT (0x8000000000000000LL) -# define BN_DEC_CONV (10000000000000000000ULL) -# define BN_DEC_FMT1 "%llu" -# define BN_DEC_FMT2 "%019llu" -# define BN_DEC_NUM 19 -# define BN_HEX_FMT1 "%llX" -# define BN_HEX_FMT2 "%016llX" # endif # ifdef THIRTY_TWO_BIT -# ifdef BN_LLONG -# if defined(_WIN32) && !defined(__GNUC__) -# define BN_ULLONG unsigned __int64 -# define BN_MASK (0xffffffffffffffffI64) -# else -# define BN_ULLONG unsigned long long -# define BN_MASK (0xffffffffffffffffLL) -# endif -# endif # define BN_ULONG unsigned int -# define BN_LONG int -# define BN_BITS 64 # define BN_BYTES 4 -# define BN_BITS2 32 -# define BN_BITS4 16 -# define BN_MASK2 (0xffffffffL) -# define BN_MASK2l (0xffff) -# define BN_MASK2h1 (0xffff8000L) -# define BN_MASK2h (0xffff0000L) -# define BN_TBIT (0x80000000L) -# define BN_DEC_CONV (1000000000L) -# define BN_DEC_FMT1 "%u" -# define BN_DEC_FMT2 "%09u" -# define BN_DEC_NUM 9 -# define BN_HEX_FMT1 "%X" -# define BN_HEX_FMT2 "%08X" # endif -# define BN_DEFAULT_BITS 1280 +# define BN_BITS2 (BN_BYTES * 8) +# define BN_BITS (BN_BITS2 * 2) +# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) # define BN_FLG_MALLOCED 0x01 # define BN_FLG_STATIC_DATA 0x02 @@ -269,107 +71,49 @@ extern "C" { * BN_mod_inverse() will call BN_mod_inverse_no_branch. */ # define BN_FLG_CONSTTIME 0x04 +# define BN_FLG_SECURE 0x08 -# ifdef OPENSSL_NO_DEPRECATED +# if OPENSSL_API_COMPAT < 0x00908000L /* deprecated name for the flag */ # define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -/* - * avoid leaking exponent information through timings - * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) - */ +# define BN_FLG_FREE 0x8000 /* used for debugging */ # endif -# ifndef OPENSSL_NO_DEPRECATED -# define BN_FLG_FREE 0x8000 - /* used for debuging */ -# endif -# define BN_set_flags(b,n) ((b)->flags|=(n)) -# define BN_get_flags(b,n) ((b)->flags&(n)) +void BN_set_flags(BIGNUM *b, int n); +int BN_get_flags(const BIGNUM *b, int n); + +/* Values for |top| in BN_rand() */ +#define BN_RAND_TOP_ANY -1 +#define BN_RAND_TOP_ONE 0 +#define BN_RAND_TOP_TWO 1 + +/* Values for |bottom| in BN_rand() */ +#define BN_RAND_BOTTOM_ANY 0 +#define BN_RAND_BOTTOM_ODD 1 /* * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot not be used in parallel!) + * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The + * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that + * has not been otherwise initialised or used. */ -# define BN_with_flags(dest,b,n) ((dest)->d=(b)->d, \ - (dest)->top=(b)->top, \ - (dest)->dmax=(b)->dmax, \ - (dest)->neg=(b)->neg, \ - (dest)->flags=(((dest)->flags & BN_FLG_MALLOCED) \ - | ((b)->flags & ~BN_FLG_MALLOCED) \ - | BN_FLG_STATIC_DATA \ - | (n))) +void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); -/* Already declared in ossl_typ.h */ -# if 0 -typedef struct bignum_st BIGNUM; -/* Used for temp variables (declaration hidden in bn_lcl.h) */ -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; -# endif - -struct bignum_st { - BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit - * chunks. */ - int top; /* Index of last used d +1. */ - /* The next are internal book keeping for bn_expand. */ - int dmax; /* Size of the d array. */ - int neg; /* one if the number is negative */ - int flags; -}; - -/* Used for montgomery multiplication */ -struct bn_mont_ctx_st { - int ri; /* number of bits in R */ - BIGNUM RR; /* used to convert to montgomery form */ - BIGNUM N; /* The modulus */ - BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only - * stored for bignum algorithm) */ - BN_ULONG n0[2]; /* least significant word(s) of Ni; (type - * changed with 0.9.9, was "BN_ULONG n0;" - * before) */ - int flags; -}; - -/* - * Used for reciprocal division/mod functions It cannot be shared between - * threads - */ -struct bn_recp_ctx_st { - BIGNUM N; /* the divisor */ - BIGNUM Nr; /* the reciprocal */ - int num_bits; - int shift; - int flags; -}; - -/* Used for slow "generation" functions. */ -struct bn_gencb_st { - unsigned int ver; /* To handle binary (in)compatibility */ - void *arg; /* callback-specific data */ - union { - /* if(ver==1) - handles old style callbacks */ - void (*cb_1) (int, int, void *); - /* if(ver==2) - new callback style */ - int (*cb_2) (int, int, BN_GENCB *); - } cb; -}; -/* Wrapper function to make using BN_GENCB easier, */ +/* Wrapper function to make using BN_GENCB easier */ int BN_GENCB_call(BN_GENCB *cb, int a, int b); -/* Macro to populate a BN_GENCB structure with an "old"-style callback */ -# define BN_GENCB_set_old(gencb, callback, cb_arg) { \ - BN_GENCB *tmp_gencb = (gencb); \ - tmp_gencb->ver = 1; \ - tmp_gencb->arg = (cb_arg); \ - tmp_gencb->cb.cb_1 = (callback); } -/* Macro to populate a BN_GENCB structure with a "new"-style callback */ -# define BN_GENCB_set(gencb, callback, cb_arg) { \ - BN_GENCB *tmp_gencb = (gencb); \ - tmp_gencb->ver = 2; \ - tmp_gencb->arg = (cb_arg); \ - tmp_gencb->cb.cb_2 = (callback); } + +BN_GENCB *BN_GENCB_new(void); +void BN_GENCB_free(BN_GENCB *cb); + +/* Populate a BN_GENCB structure with an "old"-style callback */ +void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), + void *cb_arg); + +/* Populate a BN_GENCB structure with a "new"-style callback */ +void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), + void *cb_arg); + +void *BN_GENCB_get_arg(BN_GENCB *cb); # define BN_prime_checks 0 /* default: select number of iterations based * on the size of the number */ @@ -397,22 +141,17 @@ int BN_GENCB_call(BN_GENCB *cb, int a, int b); # define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) -/* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ -# define BN_abs_is_word(a,w) ((((a)->top == 1) && ((a)->d[0] == (BN_ULONG)(w))) || \ - (((w) == 0) && ((a)->top == 0))) -# define BN_is_zero(a) ((a)->top == 0) -# define BN_is_one(a) (BN_abs_is_word((a),1) && !(a)->neg) -# define BN_is_word(a,w) (BN_abs_is_word((a),(w)) && (!(w) || !(a)->neg)) -# define BN_is_odd(a) (((a)->top > 0) && ((a)->d[0] & 1)) +int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); +int BN_is_zero(const BIGNUM *a); +int BN_is_one(const BIGNUM *a); +int BN_is_word(const BIGNUM *a, const BN_ULONG w); +int BN_is_odd(const BIGNUM *a); # define BN_one(a) (BN_set_word((a),1)) -# define BN_zero_ex(a) \ - do { \ - BIGNUM *_tmp_bn = (a); \ - _tmp_bn->top = 0; \ - _tmp_bn->neg = 0; \ - } while(0) -# ifdef OPENSSL_NO_DEPRECATED + +void BN_zero_ex(BIGNUM *a); + +# if OPENSSL_API_COMPAT >= 0x00908000L # define BN_zero(a) BN_zero_ex(a) # else # define BN_zero(a) (BN_set_word((a),0)) @@ -421,9 +160,7 @@ int BN_GENCB_call(BN_GENCB *cb, int a, int b); const BIGNUM *BN_value_one(void); char *BN_options(void); BN_CTX *BN_CTX_new(void); -# ifndef OPENSSL_NO_DEPRECATED -void BN_CTX_init(BN_CTX *c); -# endif +BN_CTX *BN_CTX_secure_new(void); void BN_CTX_free(BN_CTX *c); void BN_CTX_start(BN_CTX *ctx); BIGNUM *BN_CTX_get(BN_CTX *ctx); @@ -433,14 +170,18 @@ int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); int BN_num_bits(const BIGNUM *a); -int BN_num_bits_word(BN_ULONG); +int BN_num_bits_word(BN_ULONG l); +int BN_security_bits(int L, int N); BIGNUM *BN_new(void); -void BN_init(BIGNUM *); +BIGNUM *BN_secure_new(void); void BN_clear_free(BIGNUM *a); BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); void BN_swap(BIGNUM *a, BIGNUM *b); BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); int BN_bn2bin(const BIGNUM *a, unsigned char *to); +int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); +BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); int BN_bn2mpi(const BIGNUM *a, unsigned char *to); int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); @@ -455,10 +196,10 @@ int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); */ void BN_set_negative(BIGNUM *b, int n); /** BN_is_negative returns 1 if the BIGNUM is negative - * \param a pointer to the BIGNUM object + * \param b pointer to the BIGNUM object * \return 1 if a < 0 and 0 otherwise */ -# define BN_is_negative(a) ((a)->neg != 0) +int BN_is_negative(const BIGNUM *b); int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); @@ -512,14 +253,10 @@ int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx); int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int BN_print_fp(FILE *fp, const BIGNUM *a); # endif -# ifdef HEADER_BIO_H -int BN_print(BIO *fp, const BIGNUM *a); -# else -int BN_print(void *fp, const BIGNUM *a); -# endif +int BN_print(BIO *bio, const BIGNUM *a); int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); int BN_rshift1(BIGNUM *r, const BIGNUM *a); @@ -545,17 +282,21 @@ BIGNUM *BN_mod_sqrt(BIGNUM *ret, void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); /* Deprecated versions */ -# ifndef OPENSSL_NO_DEPRECATED -BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, - void (*callback) (int, int, void *), void *cb_arg); -int BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg); -int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), BN_CTX *ctx, - void *cb_arg, int do_trial_division); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ +DEPRECATEDIN_0_9_8(BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, + const BIGNUM *add, + const BIGNUM *rem, + void (*callback) (int, int, + void *), + void *cb_arg)) +DEPRECATEDIN_0_9_8(int + BN_is_prime(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg)) +DEPRECATEDIN_0_9_8(int + BN_is_prime_fasttest(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg, + int do_trial_division)) /* Newer versions */ int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, @@ -575,17 +316,16 @@ int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, BN_CTX *ctx, BN_GENCB *cb); BN_MONT_CTX *BN_MONT_CTX_new(void); -void BN_MONT_CTX_init(BN_MONT_CTX *ctx); int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_MONT_CTX *mont, BN_CTX *ctx); -# define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\ - (r),(a),&((mont)->RR),(mont),(ctx)) -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, - BN_MONT_CTX *mont, BN_CTX *ctx); +int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); +int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); void BN_MONT_CTX_free(BN_MONT_CTX *mont); int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, +BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, const BIGNUM *mod, BN_CTX *ctx); /* BN_BLINDING flags */ @@ -600,11 +340,12 @@ int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); -# ifndef OPENSSL_NO_DEPRECATED -unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); -void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); -# endif -CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); + +int BN_BLINDING_is_current_thread(BN_BLINDING *b); +void BN_BLINDING_set_current_thread(BN_BLINDING *b); +int BN_BLINDING_lock(BN_BLINDING *b); +int BN_BLINDING_unlock(BN_BLINDING *b); + unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, @@ -617,12 +358,10 @@ BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx); -# ifndef OPENSSL_NO_DEPRECATED -void BN_set_params(int mul, int high, int low, int mont); -int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ -# endif +DEPRECATEDIN_0_9_8(void BN_set_params(int mul, int high, int low, int mont)) +DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3 + * mont */ -void BN_RECP_CTX_init(BN_RECP_CTX *recp); BN_RECP_CTX *BN_RECP_CTX_new(void); void BN_RECP_CTX_free(BN_RECP_CTX *recp); int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); @@ -720,154 +459,35 @@ const BIGNUM *BN_get0_nist_prime_256(void); const BIGNUM *BN_get0_nist_prime_384(void); const BIGNUM *BN_get0_nist_prime_521(void); -/* library internal functions */ +int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, + const BIGNUM *field, BN_CTX *ctx); -# define bn_expand(a,bits) \ - ( \ - bits > (INT_MAX - BN_BITS2 + 1) ? \ - NULL \ - : \ - (((bits+BN_BITS2-1)/BN_BITS2) <= (a)->dmax) ? \ - (a) \ - : \ - bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2) \ - ) - -# define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) -BIGNUM *bn_expand2(BIGNUM *a, int words); -# ifndef OPENSSL_NO_DEPRECATED -BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ -# endif - -/*- - * Bignum consistency macros - * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from - * bignum data after direct manipulations on the data. There is also an - * "internal" macro, bn_check_top(), for verifying that there are no leading - * zeroes. Unfortunately, some auditing is required due to the fact that - * bn_fix_top() has become an overabused duct-tape because bignum data is - * occasionally passed around in an inconsistent state. So the following - * changes have been made to sort this out; - * - bn_fix_top()s implementation has been moved to bn_correct_top() - * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and - * bn_check_top() is as before. - * - if BN_DEBUG *is* defined; - * - bn_check_top() tries to pollute unused words even if the bignum 'top' is - * consistent. (ed: only if BN_DEBUG_RAND is defined) - * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. - * The idea is to have debug builds flag up inconsistent bignums when they - * occur. If that occurs in a bn_fix_top(), we examine the code in question; if - * the use of bn_fix_top() was appropriate (ie. it follows directly after code - * that manipulates the bignum) it is converted to bn_correct_top(), and if it - * was not appropriate, we convert it permanently to bn_check_top() and track - * down the cause of the bug. Eventually, no internal code should be using the - * bn_fix_top() macro. External applications and libraries should try this with - * their own code too, both in terms of building against the openssl headers - * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it - * defined. This not only improves external code, it provides more test - * coverage for openssl's own code. - */ - -# ifdef BN_DEBUG - -/* We only need assert() when debugging */ -# include - -# ifdef BN_DEBUG_RAND -/* To avoid "make update" cvs wars due to BN_DEBUG, use some tricks */ -# ifndef RAND_pseudo_bytes -int RAND_pseudo_bytes(unsigned char *buf, int num); -# define BN_DEBUG_TRIX -# endif -# define bn_pollute(a) \ - do { \ - const BIGNUM *_bnum1 = (a); \ - if(_bnum1->top < _bnum1->dmax) { \ - unsigned char _tmp_char; \ - /* We cast away const without the compiler knowing, any \ - * *genuinely* constant variables that aren't mutable \ - * wouldn't be constructed with top!=dmax. */ \ - BN_ULONG *_not_const; \ - memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \ - /* Debug only - safe to ignore error return */ \ - RAND_pseudo_bytes(&_tmp_char, 1); \ - memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \ - (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \ - } \ - } while(0) -# ifdef BN_DEBUG_TRIX -# undef RAND_pseudo_bytes -# endif -# else -# define bn_pollute(a) -# endif -# define bn_check_top(a) \ - do { \ - const BIGNUM *_bnum2 = (a); \ - if (_bnum2 != NULL) { \ - assert((_bnum2->top == 0) || \ - (_bnum2->d[_bnum2->top - 1] != 0)); \ - bn_pollute(_bnum2); \ - } \ - } while(0) - -# define bn_fix_top(a) bn_check_top(a) - -# define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) -# define bn_wcheck_size(bn, words) \ - do { \ - const BIGNUM *_bnum2 = (bn); \ - assert((words) <= (_bnum2)->dmax && (words) >= (_bnum2)->top); \ - /* avoid unused variable warning with NDEBUG */ \ - (void)(_bnum2); \ - } while(0) - -# else /* !BN_DEBUG */ - -# define bn_pollute(a) -# define bn_check_top(a) -# define bn_fix_top(a) bn_correct_top(a) -# define bn_check_size(bn, bits) -# define bn_wcheck_size(bn, words) - -# endif - -# define bn_correct_top(a) \ - { \ - BN_ULONG *ftl; \ - int tmp_top = (a)->top; \ - if (tmp_top > 0) \ - { \ - for (ftl= &((a)->d[tmp_top-1]); tmp_top > 0; tmp_top--) \ - if (*(ftl--)) break; \ - (a)->top = tmp_top; \ - } \ - if ((a)->top == 0) \ - (a)->neg = 0; \ - bn_pollute(a); \ - } - -BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, - BN_ULONG w); -BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); -void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); -BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d); -BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - int num); -BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - int num); +int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, + const BIGNUM *priv, const unsigned char *message, + size_t message_len, BN_CTX *ctx); /* Primes from RFC 2409 */ -BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); +BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); +BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); /* Primes from RFC 3526 */ -BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 +# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 +# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 +# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 +# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 +# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 +# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 +# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 +# endif int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); @@ -876,7 +496,8 @@ int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_BN_strings(void); + +int ERR_load_BN_strings(void); /* Error codes for the BN functions. */ @@ -889,15 +510,17 @@ void ERR_load_BN_strings(void); # define BN_F_BN_BLINDING_UPDATE 103 # define BN_F_BN_BN2DEC 104 # define BN_F_BN_BN2HEX 105 +# define BN_F_BN_COMPUTE_WNAF 142 # define BN_F_BN_CTX_GET 116 # define BN_F_BN_CTX_NEW 106 # define BN_F_BN_CTX_START 129 # define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_NO_BRANCH 138 # define BN_F_BN_DIV_RECP 130 # define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND2 108 # define BN_F_BN_EXPAND_INTERNAL 120 +# define BN_F_BN_GENCB_NEW 143 +# define BN_F_BN_GENERATE_DSA_NONCE 140 +# define BN_F_BN_GENERATE_PRIME_EX 141 # define BN_F_BN_GF2M_MOD 131 # define BN_F_BN_GF2M_MOD_EXP 132 # define BN_F_BN_GF2M_MOD_MUL 133 @@ -915,13 +538,13 @@ void ERR_load_BN_strings(void); # define BN_F_BN_MOD_INVERSE 110 # define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 # define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_MUL_RECIPROCAL 111 # define BN_F_BN_MOD_SQRT 121 # define BN_F_BN_MPI2BN 112 # define BN_F_BN_NEW 113 # define BN_F_BN_RAND 114 # define BN_F_BN_RAND_RANGE 122 # define BN_F_BN_RSHIFT 146 +# define BN_F_BN_SET_WORDS 144 # define BN_F_BN_USUB 115 /* Reason codes. */ @@ -941,11 +564,12 @@ void ERR_load_BN_strings(void); # define BN_R_NOT_INITIALIZED 107 # define BN_R_NO_INVERSE 108 # define BN_R_NO_SOLUTION 116 +# define BN_R_PRIVATE_KEY_TOO_LARGE 117 # define BN_R_P_IS_NOT_PRIME 112 # define BN_R_TOO_MANY_ITERATIONS 113 # define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/buffer.h b/libs/mac/include/openssl/buffer.h index efd240a5..35160b4f 100644 --- a/libs/mac/include/openssl/buffer.h +++ b/libs/mac/include/openssl/buffer.h @@ -1,125 +1,73 @@ -/* crypto/buffer/buffer.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_BUFFER_H # define HEADER_BUFFER_H # include +# ifndef HEADER_CRYPTO_H +# include +# endif + #ifdef __cplusplus extern "C" { #endif # include +# include -# if !defined(NO_SYS_TYPES_H) -# include -# endif - -/* Already declared in ossl_typ.h */ -/* typedef struct buf_mem_st BUF_MEM; */ +/* + * These names are outdated as of OpenSSL 1.1; a future release + * will move them to be deprecated. + */ +# define BUF_strdup(s) OPENSSL_strdup(s) +# define BUF_strndup(s, size) OPENSSL_strndup(s, size) +# define BUF_memdup(data, size) OPENSSL_memdup(data, size) +# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) +# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) +# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) struct buf_mem_st { size_t length; /* current number of bytes */ char *data; size_t max; /* size of buffer */ + unsigned long flags; }; +# define BUF_MEM_FLAG_SECURE 0x01 + BUF_MEM *BUF_MEM_new(void); +BUF_MEM *BUF_MEM_new_ex(unsigned long flags); void BUF_MEM_free(BUF_MEM *a); -int BUF_MEM_grow(BUF_MEM *str, size_t len); -int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); -size_t BUF_strnlen(const char *str, size_t maxlen); -char *BUF_strdup(const char *str); - -/* - * Like strndup, but in addition, explicitly guarantees to never read past the - * first |siz| bytes of |str|. - */ -char *BUF_strndup(const char *str, size_t siz); - -void *BUF_memdup(const void *data, size_t siz); +size_t BUF_MEM_grow(BUF_MEM *str, size_t len); +size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); -/* safe string functions */ -size_t BUF_strlcpy(char *dst, const char *src, size_t siz); -size_t BUF_strlcat(char *dst, const char *src, size_t siz); - /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_BUF_strings(void); + +int ERR_load_BUF_strings(void); /* Error codes for the BUF functions. */ /* Function codes. */ -# define BUF_F_BUF_MEMDUP 103 # define BUF_F_BUF_MEM_GROW 100 # define BUF_F_BUF_MEM_GROW_CLEAN 105 # define BUF_F_BUF_MEM_NEW 101 -# define BUF_F_BUF_STRDUP 102 -# define BUF_F_BUF_STRNDUP 104 /* Reason codes. */ -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/camellia.h b/libs/mac/include/openssl/camellia.h index 45e8d25b..151f3c13 100644 --- a/libs/mac/include/openssl/camellia.h +++ b/libs/mac/include/openssl/camellia.h @@ -1,52 +1,10 @@ -/* crypto/camellia/camellia.h */ -/* ==================================================================== - * Copyright (c) 2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== +/* + * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CAMELLIA_H @@ -54,11 +12,11 @@ # include -# ifdef OPENSSL_NO_CAMELLIA -# error CAMELLIA is disabled. -# endif - +# ifndef OPENSSL_NO_CAMELLIA # include +#ifdef __cplusplus +extern "C" { +#endif # define CAMELLIA_ENCRYPT 1 # define CAMELLIA_DECRYPT 0 @@ -68,10 +26,6 @@ * Both sizes are in bytes. */ -#ifdef __cplusplus -extern "C" { -#endif - /* This should be a hidden type, but EVP requires that the size be known */ # define CAMELLIA_BLOCK_SIZE 16 @@ -90,10 +44,6 @@ struct camellia_key_st { }; typedef struct camellia_key_st CAMELLIA_KEY; -# ifdef OPENSSL_FIPS -int private_Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); -# endif int Camellia_set_key(const unsigned char *userKey, const int bits, CAMELLIA_KEY *key); @@ -125,8 +75,9 @@ void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], unsigned int *num); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif -#endif /* !HEADER_Camellia_H */ +#endif diff --git a/libs/mac/include/openssl/cast.h b/libs/mac/include/openssl/cast.h index 0003ec9c..2cc89ae0 100644 --- a/libs/mac/include/openssl/cast.h +++ b/libs/mac/include/openssl/cast.h @@ -1,72 +1,20 @@ -/* crypto/cast/cast.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CAST_H # define HEADER_CAST_H -#ifdef __cplusplus -extern "C" { -#endif - # include -# ifdef OPENSSL_NO_CAST -# error CAST is disabled. +# ifndef OPENSSL_NO_CAST +# ifdef __cplusplus +extern "C" { # endif # define CAST_ENCRYPT 1 @@ -82,9 +30,6 @@ typedef struct cast_key_st { int short_key; /* Use reduced rounds for short key */ } CAST_KEY; -# ifdef OPENSSL_FIPS -void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -# endif void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, const CAST_KEY *key, int enc); @@ -100,8 +45,9 @@ void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, const CAST_KEY *schedule, unsigned char *ivec, int *num); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/cmac.h b/libs/mac/include/openssl/cmac.h index 175be834..3535a9ab 100644 --- a/libs/mac/include/openssl/cmac.h +++ b/libs/mac/include/openssl/cmac.h @@ -1,60 +1,17 @@ -/* crypto/cmac/cmac.h */ /* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL - * project. - */ -/* ==================================================================== - * Copyright (c) 2010 The OpenSSL Project. All rights reserved. + * Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CMAC_H # define HEADER_CMAC_H +# ifndef OPENSSL_NO_CMAC + #ifdef __cplusplus extern "C" { #endif @@ -79,4 +36,6 @@ int CMAC_resume(CMAC_CTX *ctx); #ifdef __cplusplus } #endif + +# endif #endif diff --git a/libs/mac/include/openssl/cms.h b/libs/mac/include/openssl/cms.h index e6c7f964..7e534e0d 100644 --- a/libs/mac/include/openssl/cms.h +++ b/libs/mac/include/openssl/cms.h @@ -1,69 +1,23 @@ -/* crypto/cms/cms.h */ /* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL - * project. - */ -/* ==================================================================== - * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CMS_H # define HEADER_CMS_H +# include + +# ifndef OPENSSL_NO_CMS # include - -# ifdef OPENSSL_NO_CMS -# error CMS is disabled. -# endif - -#ifdef __cplusplus +# include +# ifdef __cplusplus extern "C" { -#endif +# endif typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; @@ -75,9 +29,10 @@ typedef struct CMS_Receipt_st CMS_Receipt; typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; -DECLARE_STACK_OF(CMS_SignerInfo) -DECLARE_STACK_OF(GENERAL_NAMES) -DECLARE_STACK_OF(CMS_RecipientEncryptedKey) +DEFINE_STACK_OF(CMS_SignerInfo) +DEFINE_STACK_OF(CMS_RecipientEncryptedKey) +DEFINE_STACK_OF(CMS_RecipientInfo) +DEFINE_STACK_OF(CMS_RevocationInfoChoice) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) @@ -116,8 +71,9 @@ DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) # define CMS_USE_KEYID 0x10000 # define CMS_DEBUG_DECRYPT 0x20000 # define CMS_KEY_PARAM 0x40000 +# define CMS_ASCIICRLF 0x80000 -const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); +const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); @@ -188,7 +144,7 @@ int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); int CMS_decrypt_set1_key(CMS_ContentInfo *cms, unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen); + const unsigned char *id, size_t idlen); int CMS_decrypt_set1_password(CMS_ContentInfo *cms, unsigned char *pass, ossl_ssize_t passlen); @@ -290,7 +246,7 @@ int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); int CMS_signed_get_attr_count(const CMS_SignerInfo *si); int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, int lastpos); X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); @@ -304,14 +260,14 @@ int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, const char *attrname, int type, const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT *oid, int lastpos, int type); int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, - int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int lastpos); X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); @@ -378,7 +334,8 @@ int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_CMS_strings(void); + +int ERR_load_CMS_strings(void); /* Error codes for the CMS functions. */ @@ -483,7 +440,6 @@ void ERR_load_CMS_strings(void); # define CMS_R_CTRL_ERROR 110 # define CMS_R_CTRL_FAILURE 111 # define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_DIGEST_ERROR 161 # define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 # define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 # define CMS_R_ERROR_SETTING_KEY 115 @@ -549,7 +505,8 @@ void ERR_load_CMS_strings(void); # define CMS_R_VERIFICATION_FAILURE 158 # define CMS_R_WRAP_ERROR 159 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/comp.h b/libs/mac/include/openssl/comp.h new file mode 100644 index 00000000..260ff1e0 --- /dev/null +++ b/libs/mac/include/openssl/comp.h @@ -0,0 +1,72 @@ +/* + * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_COMP_H +# define HEADER_COMP_H + +# include + +# ifndef OPENSSL_NO_COMP +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); + +#if OPENSSL_API_COMPAT < 0x10100000L +#define COMP_zlib_cleanup() while(0) continue +#endif + +# ifdef HEADER_BIO_H +# ifdef ZLIB +const BIO_METHOD *BIO_f_zlib(void); +# endif +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +int ERR_load_COMP_strings(void); + +/* Error codes for the COMP functions. */ + +/* Function codes. */ +# define COMP_F_BIO_ZLIB_FLUSH 99 +# define COMP_F_BIO_ZLIB_NEW 100 +# define COMP_F_BIO_ZLIB_READ 101 +# define COMP_F_BIO_ZLIB_WRITE 102 + +/* Reason codes. */ +# define COMP_R_ZLIB_DEFLATE_ERROR 99 +# define COMP_R_ZLIB_INFLATE_ERROR 100 +# define COMP_R_ZLIB_NOT_SUPPORTED 101 + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/libs/mac/include/openssl/conf.h b/libs/mac/include/openssl/conf.h index fe491130..980a51b1 100644 --- a/libs/mac/include/openssl/conf.h +++ b/libs/mac/include/openssl/conf.h @@ -1,59 +1,10 @@ -/* crypto/conf/conf.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CONF_H @@ -77,8 +28,8 @@ typedef struct { char *value; } CONF_VALUE; -DECLARE_STACK_OF(CONF_VALUE) -DECLARE_LHASH_OF(CONF_VALUE); +DEFINE_STACK_OF(CONF_VALUE) +DEFINE_LHASH_OF(CONF_VALUE); struct conf_st; struct conf_method_st; @@ -102,8 +53,8 @@ struct conf_method_st { typedef struct conf_imodule_st CONF_IMODULE; typedef struct conf_module_st CONF_MODULE; -DECLARE_STACK_OF(CONF_MODULE) -DECLARE_STACK_OF(CONF_IMODULE) +DEFINE_STACK_OF(CONF_MODULE) +DEFINE_STACK_OF(CONF_IMODULE) /* DSO module function typedefs */ typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); @@ -120,7 +71,7 @@ int CONF_set_default_method(CONF_METHOD *meth); void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, long *eline); # endif @@ -133,11 +84,17 @@ char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, const char *name); void CONF_free(LHASH_OF(CONF_VALUE) *conf); +#ifndef OPENSSL_NO_STDIO int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); +#endif int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); -void OPENSSL_config(const char *config_name); -void OPENSSL_no_config(void); +DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) + +#if OPENSSL_API_COMPAT < 0x10100000L +# define OPENSSL_no_config() \ + OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) +#endif /* * New conf code. The semantics are different from the functions above. If @@ -153,15 +110,11 @@ struct conf_st { CONF *NCONF_new(CONF_METHOD *meth); CONF_METHOD *NCONF_default(void); CONF_METHOD *NCONF_WIN32(void); -# if 0 /* Just to give you an idea of what I have in - * mind */ -CONF_METHOD *NCONF_XML(void); -# endif void NCONF_free(CONF *conf); void NCONF_free_data(CONF *conf); int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); # endif int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); @@ -170,15 +123,12 @@ STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, char *NCONF_get_string(const CONF *conf, const char *group, const char *name); int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, long *result); +#ifndef OPENSSL_NO_STDIO int NCONF_dump_fp(const CONF *conf, FILE *out); +#endif int NCONF_dump_bio(const CONF *conf, BIO *out); -# if 0 /* The following function has no error - * checking, and should therefore be avoided */ -long NCONF_get_number(CONF *conf, char *group, char *name); -# else -# define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) -# endif +#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) /* Module functions */ @@ -188,7 +138,9 @@ int CONF_modules_load_file(const char *filename, const char *appname, unsigned long flags); void CONF_modules_unload(int all); void CONF_modules_finish(void); -void CONF_modules_free(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define CONF_modules_free() while(0) continue +#endif int CONF_module_add(const char *name, conf_init_func *ifunc, conf_finish_func *ffunc); @@ -215,16 +167,15 @@ void OPENSSL_load_builtin_modules(void); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_CONF_strings(void); + +int ERR_load_CONF_strings(void); /* Error codes for the CONF functions. */ /* Function codes. */ # define CONF_F_CONF_DUMP_FP 104 # define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_BIO 102 # define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_MODULES_LOAD 116 # define CONF_F_CONF_PARSE_LIST 119 # define CONF_F_DEF_LOAD 120 # define CONF_F_DEF_LOAD_BIO 121 @@ -233,7 +184,6 @@ void ERR_load_CONF_strings(void); # define CONF_F_MODULE_RUN 118 # define CONF_F_NCONF_DUMP_BIO 105 # define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER 107 # define CONF_F_NCONF_GET_NUMBER_E 112 # define CONF_F_NCONF_GET_SECTION 108 # define CONF_F_NCONF_GET_STRING 109 @@ -248,7 +198,6 @@ void ERR_load_CONF_strings(void); # define CONF_R_LIST_CANNOT_BE_NULL 115 # define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 # define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_FINISH_FUNCTION 111 # define CONF_R_MISSING_INIT_FUNCTION 112 # define CONF_R_MODULE_INITIALIZATION_ERROR 109 # define CONF_R_NO_CLOSE_BRACE 102 @@ -262,7 +211,7 @@ void ERR_load_CONF_strings(void); # define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 # define CONF_R_VARIABLE_HAS_NO_VALUE 104 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/conf_api.h b/libs/mac/include/openssl/conf_api.h index e478f7df..a0275ad7 100644 --- a/libs/mac/include/openssl/conf_api.h +++ b/libs/mac/include/openssl/conf_api.h @@ -1,59 +1,10 @@ -/* conf_api.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_CONF_API_H diff --git a/libs/mac/include/openssl/crypto.h b/libs/mac/include/openssl/crypto.h index 6c644ce1..1ba7f25f 100644 --- a/libs/mac/include/openssl/crypto.h +++ b/libs/mac/include/openssl/crypto.h @@ -1,113 +1,12 @@ -/* crypto/crypto.h */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * ECDH support in OpenSSL originally developed by @@ -118,10 +17,11 @@ # define HEADER_CRYPTO_H # include +# include # include -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO # include # endif @@ -129,6 +29,7 @@ # include # include # include +# include # ifdef CHARSET_EBCDIC # include @@ -140,458 +41,296 @@ */ # include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif + #ifdef __cplusplus extern "C" { #endif -/* Backward compatibility to SSLeay */ -/* - * This is more to be used to check the correct DLL is being used in the MS - * world. - */ -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION 0 -/* #define SSLEAY_OPTIONS 1 no longer supported */ -# define SSLEAY_CFLAGS 2 -# define SSLEAY_BUILT_ON 3 -# define SSLEAY_PLATFORM 4 -# define SSLEAY_DIR 5 - -/* Already declared in ossl_typ.h */ -# if 0 -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; -/* Called when a new object is created */ -typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -/* Called when an object is free()ed */ -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -/* Called when we need to dup an object */ -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); -# endif - -/* A generic structure to pass assorted data in a expandable way */ -typedef struct openssl_item_st { - int code; - void *value; /* Not used for flag attributes */ - size_t value_size; /* Max size of value for output, length for - * input */ - size_t *value_length; /* Returned length of value for output */ -} OPENSSL_ITEM; +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSLeay OpenSSL_version_num +# define SSLeay_version OpenSSL_version +# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +# define SSLEAY_VERSION OPENSSL_VERSION +# define SSLEAY_CFLAGS OPENSSL_CFLAGS +# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON +# define SSLEAY_PLATFORM OPENSSL_PLATFORM +# define SSLEAY_DIR OPENSSL_DIR /* - * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock - * names in cryptlib.c + * Old type for allocating dynamic locks. No longer used. Use the new thread + * API instead. */ - -# define CRYPTO_LOCK_ERR 1 -# define CRYPTO_LOCK_EX_DATA 2 -# define CRYPTO_LOCK_X509 3 -# define CRYPTO_LOCK_X509_INFO 4 -# define CRYPTO_LOCK_X509_PKEY 5 -# define CRYPTO_LOCK_X509_CRL 6 -# define CRYPTO_LOCK_X509_REQ 7 -# define CRYPTO_LOCK_DSA 8 -# define CRYPTO_LOCK_RSA 9 -# define CRYPTO_LOCK_EVP_PKEY 10 -# define CRYPTO_LOCK_X509_STORE 11 -# define CRYPTO_LOCK_SSL_CTX 12 -# define CRYPTO_LOCK_SSL_CERT 13 -# define CRYPTO_LOCK_SSL_SESSION 14 -# define CRYPTO_LOCK_SSL_SESS_CERT 15 -# define CRYPTO_LOCK_SSL 16 -# define CRYPTO_LOCK_SSL_METHOD 17 -# define CRYPTO_LOCK_RAND 18 -# define CRYPTO_LOCK_RAND2 19 -# define CRYPTO_LOCK_MALLOC 20 -# define CRYPTO_LOCK_BIO 21 -# define CRYPTO_LOCK_GETHOSTBYNAME 22 -# define CRYPTO_LOCK_GETSERVBYNAME 23 -# define CRYPTO_LOCK_READDIR 24 -# define CRYPTO_LOCK_RSA_BLINDING 25 -# define CRYPTO_LOCK_DH 26 -# define CRYPTO_LOCK_MALLOC2 27 -# define CRYPTO_LOCK_DSO 28 -# define CRYPTO_LOCK_DYNLOCK 29 -# define CRYPTO_LOCK_ENGINE 30 -# define CRYPTO_LOCK_UI 31 -# define CRYPTO_LOCK_ECDSA 32 -# define CRYPTO_LOCK_EC 33 -# define CRYPTO_LOCK_ECDH 34 -# define CRYPTO_LOCK_BN 35 -# define CRYPTO_LOCK_EC_PRE_COMP 36 -# define CRYPTO_LOCK_STORE 37 -# define CRYPTO_LOCK_COMP 38 -# define CRYPTO_LOCK_FIPS 39 -# define CRYPTO_LOCK_FIPS2 40 -# define CRYPTO_NUM_LOCKS 41 - -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -# ifndef OPENSSL_NO_LOCKING -# ifndef CRYPTO_w_lock -# define CRYPTO_w_lock(type) \ - CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) -# define CRYPTO_w_unlock(type) \ - CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) -# define CRYPTO_r_lock(type) \ - CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) -# define CRYPTO_r_unlock(type) \ - CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) -# define CRYPTO_add(addr,amount,type) \ - CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) -# endif -# else -# define CRYPTO_w_lock(a) -# define CRYPTO_w_unlock(a) -# define CRYPTO_r_lock(a) -# define CRYPTO_r_unlock(a) -# define CRYPTO_add(a,b,c) ((*(a))+=(b)) -# endif - -/* - * Some applications as well as some parts of OpenSSL need to allocate and - * deallocate locks in a dynamic fashion. The following typedef makes this - * possible in a type-safe manner. - */ -/* struct CRYPTO_dynlock_value has to be defined by the application. */ typedef struct { - int references; - struct CRYPTO_dynlock_value *data; + int dummy; } CRYPTO_dynlock; +# endif /* OPENSSL_API_COMPAT */ + +typedef void CRYPTO_RWLOCK; + +CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); +int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); +void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); + +int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); + /* - * The following can be used to detect memory leaks in the SSLeay library. It + * The following can be used to detect memory leaks in the library. If * used, it turns on malloc checking */ - -# define CRYPTO_MEM_CHECK_OFF 0x0/* an enume */ -# define CRYPTO_MEM_CHECK_ON 0x1/* a bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2/* a bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3/* an enume */ - -/* - * The following are bit values to turn on or off options connected to the - * malloc checking functionality - */ - -/* Adds time to the memory checking information */ -# define V_CRYPTO_MDEBUG_TIME 0x1/* a bit */ -/* Adds thread number to the memory checking information */ -# define V_CRYPTO_MDEBUG_THREAD 0x2/* a bit */ - -# define V_CRYPTO_MDEBUG_ALL (V_CRYPTO_MDEBUG_TIME | V_CRYPTO_MDEBUG_THREAD) - -/* predec of the BIO type */ -typedef struct bio_st BIO_dummy; +# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ +# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ struct crypto_ex_data_st { STACK_OF(void) *sk; - /* gcc is screwing up this data structure :-( */ - int dummy; }; -DECLARE_STACK_OF(void) +DEFINE_STACK_OF(void) /* - * This stuff is basically class callback functions The current classes are - * SSL_CTX, SSL, SSL_SESSION, and a few more + * Per class, we have a STACK of function pointers. */ - -typedef struct crypto_ex_data_func_st { - long argl; /* Arbitary long */ - void *argp; /* Arbitary void * */ - CRYPTO_EX_new *new_func; - CRYPTO_EX_free *free_func; - CRYPTO_EX_dup *dup_func; -} CRYPTO_EX_DATA_FUNCS; - -DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) - -/* - * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA - * entry. - */ - -# define CRYPTO_EX_INDEX_BIO 0 -# define CRYPTO_EX_INDEX_SSL 1 -# define CRYPTO_EX_INDEX_SSL_CTX 2 -# define CRYPTO_EX_INDEX_SSL_SESSION 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_RSA 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_DH 8 -# define CRYPTO_EX_INDEX_ENGINE 9 -# define CRYPTO_EX_INDEX_X509 10 +# define CRYPTO_EX_INDEX_SSL 0 +# define CRYPTO_EX_INDEX_SSL_CTX 1 +# define CRYPTO_EX_INDEX_SSL_SESSION 2 +# define CRYPTO_EX_INDEX_X509 3 +# define CRYPTO_EX_INDEX_X509_STORE 4 +# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 +# define CRYPTO_EX_INDEX_DH 6 +# define CRYPTO_EX_INDEX_DSA 7 +# define CRYPTO_EX_INDEX_EC_KEY 8 +# define CRYPTO_EX_INDEX_RSA 9 +# define CRYPTO_EX_INDEX_ENGINE 10 # define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_ECDSA 12 -# define CRYPTO_EX_INDEX_ECDH 13 -# define CRYPTO_EX_INDEX_COMP 14 -# define CRYPTO_EX_INDEX_STORE 15 - -/* - * Dynamically assigned indexes start from this value (don't use directly, - * use via CRYPTO_ex_data_new_class). - */ -# define CRYPTO_EX_INDEX_USER 100 +# define CRYPTO_EX_INDEX_BIO 12 +# define CRYPTO_EX_INDEX_APP 13 +# define CRYPTO_EX_INDEX__COUNT 14 /* * This is the default callbacks, but we can have others as well: this is * needed in Win32 where the application malloc and the library malloc may * not be the same. */ -# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\ - malloc, realloc, free) - -# if defined CRYPTO_MDEBUG_ALL || defined CRYPTO_MDEBUG_TIME || defined CRYPTO_MDEBUG_THREAD -# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */ -# define CRYPTO_MDEBUG -# endif -# endif - -/* - * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG - * is defined) - */ -# define CRYPTO_malloc_debug_init() do {\ - CRYPTO_set_mem_debug_functions(\ - CRYPTO_dbg_malloc,\ - CRYPTO_dbg_realloc,\ - CRYPTO_dbg_free,\ - CRYPTO_dbg_set_options,\ - CRYPTO_dbg_get_options);\ - } while(0) +#define OPENSSL_malloc_init() \ + CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) int CRYPTO_mem_ctrl(int mode); -int CRYPTO_is_mem_check_on(void); -/* for applications */ -# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) -# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF) +# define OPENSSL_malloc(num) \ + CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_zalloc(num) \ + CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_realloc(addr, num) \ + CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_realloc(addr, old_num, num) \ + CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_free(addr, num) \ + CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_free(addr) \ + CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_memdup(str, s) \ + CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strdup(str) \ + CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strndup(str, n) \ + CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_malloc(num) \ + CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_zalloc(num) \ + CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_free(addr) \ + CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_clear_free(addr, num) \ + CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_actual_size(ptr) \ + CRYPTO_secure_actual_size(ptr) -/* for library-internal use */ -# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE) -# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) -# define is_MemCheck_on() CRYPTO_is_mem_check_on() +size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); +size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); +size_t OPENSSL_strnlen(const char *str, size_t maxlen); +char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); +unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); +int OPENSSL_hexchar2int(unsigned char c); -# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) -# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) -# define OPENSSL_realloc(addr,num) \ - CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) -# define OPENSSL_realloc_clean(addr,old_num,num) \ - CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) -# define OPENSSL_remalloc(addr,num) \ - CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) -# define OPENSSL_freeFunc CRYPTO_free -# define OPENSSL_free(addr) CRYPTO_free(addr) +# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) -# define OPENSSL_malloc_locked(num) \ - CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) -# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) - -const char *SSLeay_version(int type); -unsigned long SSLeay(void); +unsigned long OpenSSL_version_num(void); +const char *OpenSSL_version(int type); +# define OPENSSL_VERSION 0 +# define OPENSSL_CFLAGS 1 +# define OPENSSL_BUILT_ON 2 +# define OPENSSL_PLATFORM 3 +# define OPENSSL_DIR 4 +# define OPENSSL_ENGINES_DIR 5 int OPENSSL_issetugid(void); -/* An opaque type representing an implementation of "ex_data" support */ -typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; -/* Return an opaque pointer to the current "ex_data" implementation */ -const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); -/* Sets the "ex_data" implementation to be used (if it's not too late) */ -int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); -/* Get a new "ex_data" class, and return the corresponding "class_index" */ -int CRYPTO_ex_data_new_class(void); -/* Within a given class, get/register a new index */ -int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, +typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); +__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +/* No longer use an index. */ +int CRYPTO_free_ex_index(int class_index, int idx); + /* * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a * given class (invokes whatever per-class callbacks are applicable) */ int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - CRYPTO_EX_DATA *from); + const CRYPTO_EX_DATA *from); + void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); + /* * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular * index (relative to the class type involved) */ int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); + +# if OPENSSL_API_COMPAT < 0x10100000L /* * This function cleans up all "ex_data" state. It mustn't be called under * potential race-conditions. */ -void CRYPTO_cleanup_all_ex_data(void); - -int CRYPTO_get_new_lockid(char *name); - -int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ -void CRYPTO_lock(int mode, int type, const char *file, int line); -void CRYPTO_set_locking_callback(void (*func) (int mode, int type, - const char *file, int line)); -void (*CRYPTO_get_locking_callback(void)) (int mode, int type, - const char *file, int line); -void CRYPTO_set_add_lock_callback(int (*func) - (int *num, int mount, int type, - const char *file, int line)); -int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, - const char *file, int line); - -/* Don't use this structure directly. */ -typedef struct crypto_threadid_st { - void *ptr; - unsigned long val; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); -void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); -int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); -void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); -void CRYPTO_THREADID_current(CRYPTO_THREADID *id); -int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); -void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); -unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); -# ifndef OPENSSL_NO_DEPRECATED -void CRYPTO_set_id_callback(unsigned long (*func) (void)); -unsigned long (*CRYPTO_get_id_callback(void)) (void); -unsigned long CRYPTO_thread_id(void); -# endif - -const char *CRYPTO_get_lock_name(int type); -int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, - int line); - -int CRYPTO_get_new_dynlockid(void); -void CRYPTO_destroy_dynlockid(int i); -struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); -void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value - *(*dyn_create_function) (const char - *file, - int line)); -void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) - (int mode, - struct CRYPTO_dynlock_value *l, - const char *file, int line)); -void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) - (struct CRYPTO_dynlock_value *l, - const char *file, int line)); -struct CRYPTO_dynlock_value -*(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); -void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, - struct CRYPTO_dynlock_value - *l, const char *file, - int line); -void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value - *l, const char *file, - int line); +# define CRYPTO_cleanup_all_ex_data() while(0) continue /* - * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call - * the latter last if you need different functions + * The old locking functions have been removed completely without compatibility + * macros. This is because the old functions either could not properly report + * errors, or the returned error values were not clearly documented. + * Replacing the locking functions with with no-ops would cause race condition + * issues in the affected applications. It is far better for them to fail at + * compile time. + * On the other hand, the locking callbacks are no longer used. Consequently, + * the callback management functions can be safely replaced with no-op macros. */ -int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), - void (*f) (void *)); -int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), - void (*free_func) (void *)); -int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), - void *(*r) (void *, size_t, const char *, - int), void (*f) (void *)); -int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), - void (*free_func) (void *)); -int CRYPTO_set_mem_debug_functions(void (*m) - (void *, int, const char *, int, int), - void (*r) (void *, void *, int, - const char *, int, int), - void (*f) (void *, int), void (*so) (long), - long (*go) (void)); -void CRYPTO_get_mem_functions(void *(**m) (size_t), - void *(**r) (void *, size_t), - void (**f) (void *)); -void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), - void (**f) (void *)); -void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), - void *(**r) (void *, size_t, const char *, - int), void (**f) (void *)); -void CRYPTO_get_locked_mem_ex_functions(void - *(**m) (size_t, const char *, int), - void (**f) (void *)); -void CRYPTO_get_mem_debug_functions(void (**m) - (void *, int, const char *, int, int), - void (**r) (void *, void *, int, - const char *, int, int), - void (**f) (void *, int), - void (**so) (long), long (**go) (void)); +# define CRYPTO_num_locks() (1) +# define CRYPTO_set_locking_callback(func) +# define CRYPTO_get_locking_callback() (NULL) +# define CRYPTO_set_add_lock_callback(func) +# define CRYPTO_get_add_lock_callback() (NULL) -void *CRYPTO_malloc_locked(int num, const char *file, int line); -void CRYPTO_free_locked(void *ptr); -void *CRYPTO_malloc(int num, const char *file, int line); +/* + * These defines where used in combination with the old locking callbacks, + * they are not called anymore, but old code that's not called might still + * use them. + */ +# define CRYPTO_LOCK 1 +# define CRYPTO_UNLOCK 2 +# define CRYPTO_READ 4 +# define CRYPTO_WRITE 8 + +/* This structure is no longer used */ +typedef struct crypto_threadid_st { + int dummy; +} CRYPTO_THREADID; +/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ +# define CRYPTO_THREADID_set_numeric(id, val) +# define CRYPTO_THREADID_set_pointer(id, ptr) +# define CRYPTO_THREADID_set_callback(threadid_func) (0) +# define CRYPTO_THREADID_get_callback() (NULL) +# define CRYPTO_THREADID_current(id) +# define CRYPTO_THREADID_cmp(a, b) (-1) +# define CRYPTO_THREADID_cpy(dest, src) +# define CRYPTO_THREADID_hash(id) (0UL) + +# if OPENSSL_API_COMPAT < 0x10000000L +# define CRYPTO_set_id_callback(func) +# define CRYPTO_get_id_callback() (NULL) +# define CRYPTO_thread_id() (0UL) +# endif /* OPENSSL_API_COMPAT < 0x10000000L */ + +# define CRYPTO_set_dynlock_create_callback(dyn_create_function) +# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) +# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) +# define CRYPTO_get_dynlock_create_callback() (NULL) +# define CRYPTO_get_dynlock_lock_callback() (NULL) +# define CRYPTO_get_dynlock_destroy_callback() (NULL) +# endif /* OPENSSL_API_COMPAT < 0x10100000L */ + +int CRYPTO_set_mem_functions( + void *(*m) (size_t, const char *, int), + void *(*r) (void *, size_t, const char *, int), + void (*f) (void *, const char *, int)); +int CRYPTO_set_mem_debug(int flag); +void CRYPTO_get_mem_functions( + void *(**m) (size_t, const char *, int), + void *(**r) (void *, size_t, const char *, int), + void (**f) (void *, const char *, int)); + +void *CRYPTO_malloc(size_t num, const char *file, int line); +void *CRYPTO_zalloc(size_t num, const char *file, int line); +void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); char *CRYPTO_strdup(const char *str, const char *file, int line); -void CRYPTO_free(void *ptr); -void *CRYPTO_realloc(void *addr, int num, const char *file, int line); -void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, - int line); -void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); +char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +void CRYPTO_free(void *ptr, const char *file, int line); +void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); +void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); +void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, + const char *file, int line); + +int CRYPTO_secure_malloc_init(size_t sz, int minsize); +int CRYPTO_secure_malloc_done(void); +void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +void CRYPTO_secure_free(void *ptr, const char *file, int line); +void CRYPTO_secure_clear_free(void *ptr, size_t num, + const char *file, int line); +int CRYPTO_secure_allocated(const void *ptr); +int CRYPTO_secure_malloc_initialized(void); +size_t CRYPTO_secure_actual_size(void *ptr); +size_t CRYPTO_secure_used(void); void OPENSSL_cleanse(void *ptr, size_t len); -void CRYPTO_set_mem_debug_options(long bits); -long CRYPTO_get_mem_debug_options(void); +# ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_mem_debug_push(info) \ + CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_mem_debug_pop() \ + CRYPTO_mem_debug_pop() +int CRYPTO_mem_debug_push(const char *info, const char *file, int line); +int CRYPTO_mem_debug_pop(void); -# define CRYPTO_push_info(info) \ - CRYPTO_push_info_(info, __FILE__, __LINE__); -int CRYPTO_push_info_(const char *info, const char *file, int line); -int CRYPTO_pop_info(void); -int CRYPTO_remove_all_info(void); - -/* - * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; - * used as default in CRYPTO_MDEBUG compilations): - */ /*- - * The last argument has the following significance: - * - * 0: called before the actual memory allocation has taken place - * 1: called after the actual memory allocation has taken place + * Debugging functions (enabled by CRYPTO_set_mem_debug(1)) + * The flag argument has the following significance: + * 0: called before the actual memory allocation has taken place + * 1: called after the actual memory allocation has taken place */ -void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, - int before_p); -void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, - int line, int before_p); -void CRYPTO_dbg_free(void *addr, int before_p); -/*- - * Tell the debugging code about options. By default, the following values - * apply: - * - * 0: Clear all options. - * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. - * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. - * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 - */ -void CRYPTO_dbg_set_options(long bits); -long CRYPTO_dbg_get_options(void); +void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag, + const char *file, int line); +void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, + const char *file, int line); +void CRYPTO_mem_debug_free(void *addr, int flag, + const char *file, int line); -# ifndef OPENSSL_NO_FP_API -void CRYPTO_mem_leaks_fp(FILE *); +# ifndef OPENSSL_NO_STDIO +int CRYPTO_mem_leaks_fp(FILE *); +# endif +int CRYPTO_mem_leaks(BIO *bio); # endif -void CRYPTO_mem_leaks(struct bio_st *bio); -/* unsigned long order, char *file, int line, int num_bytes, char *addr */ -typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, - void *); -void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); /* die if we have to */ -void OpenSSLDie(const char *file, int line, const char *assertion); -# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, __LINE__, #e),1)) +ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); +# if OPENSSL_API_COMPAT < 0x10100000L +# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) +# endif +# define OPENSSL_assert(e) \ + (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) -unsigned long *OPENSSL_ia32cap_loc(void); -# define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) int OPENSSL_isservice(void); int FIPS_mode(void); @@ -599,27 +338,10 @@ int FIPS_mode_set(int r); void OPENSSL_init(void); -# define fips_md_init(alg) fips_md_init_ctx(alg, alg) - -# ifdef OPENSSL_FIPS -# define fips_md_init_ctx(alg, cx) \ - int alg##_Init(cx##_CTX *c) \ - { \ - if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ - "Low level API call to digest " #alg " forbidden in FIPS mode!"); \ - return private_##alg##_Init(c); \ - } \ - int private_##alg##_Init(cx##_CTX *c) - -# define fips_cipher_abort(alg) \ - if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ - "Low level API call to cipher " #alg " forbidden in FIPS mode!") - -# else -# define fips_md_init_ctx(alg, cx) \ - int alg##_Init(cx##_CTX *c) -# define fips_cipher_abort(alg) while(0) -# endif +struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); +int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to); /* * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. @@ -628,34 +350,118 @@ void OPENSSL_init(void); * into a defined order as the return value when a != b is undefined, other * than to be non-zero. */ -int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); +int CRYPTO_memcmp(const volatile void * volatile in_a, + const volatile void * volatile in_b, + size_t len); + +/* Standard initialisation options */ +# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L +# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L +# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L +# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L +# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L +# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L +# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L +# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L +# define OPENSSL_INIT_ASYNC 0x00000100L +# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L +# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L +# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L +# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L +# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L +# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L +# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L +/* OPENSSL_INIT flag 0x00010000 reserved for internal use */ +/* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ +/* Max OPENSSL_INIT flag value is 0x80000000 */ + +/* openssl and dasync not counted as builtin */ +# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ + (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ + | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ + OPENSSL_INIT_ENGINE_PADLOCK) + + +/* Library initialisation functions */ +void OPENSSL_cleanup(void); +int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); +int OPENSSL_atexit(void (*handler)(void)); +void OPENSSL_thread_stop(void); + +/* Low-level control of initialization */ +OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); +# ifndef OPENSSL_NO_STDIO +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *config_file); +# endif +void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); + +# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) +# if defined(_WIN32) +# if defined(BASETYPES) || defined(_WINDEF_H) +/* application has to include in order to use this */ +typedef DWORD CRYPTO_THREAD_LOCAL; +typedef DWORD CRYPTO_THREAD_ID; + +typedef LONG CRYPTO_ONCE; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif +# else +# include +typedef pthread_once_t CRYPTO_ONCE; +typedef pthread_key_t CRYPTO_THREAD_LOCAL; +typedef pthread_t CRYPTO_THREAD_ID; + +# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT +# endif +# endif + +# if !defined(CRYPTO_ONCE_STATIC_INIT) +typedef unsigned int CRYPTO_ONCE; +typedef unsigned int CRYPTO_THREAD_LOCAL; +typedef unsigned int CRYPTO_THREAD_ID; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif + +int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); + +int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); +void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); +int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); +int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); + +CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); +int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_CRYPTO_strings(void); + +int ERR_load_CRYPTO_strings(void); /* Error codes for the CRYPTO functions. */ /* Function codes. */ +# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 +# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 # define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID 103 -# define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101 +# define CRYPTO_F_CRYPTO_MEMDUP 115 +# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 # define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_DEF_ADD_INDEX 104 -# define CRYPTO_F_DEF_GET_CLASS 105 # define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_INT_DUP_EX_DATA 106 -# define CRYPTO_F_INT_FREE_EX_DATA 107 -# define CRYPTO_F_INT_NEW_EX_DATA 108 +# define CRYPTO_F_GET_AND_LOCK 113 +# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 +# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 +# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 /* Reason codes. */ # define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 +# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 +# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/ct.h b/libs/mac/include/openssl/ct.h new file mode 100644 index 00000000..bf29fbab --- /dev/null +++ b/libs/mac/include/openssl/ct.h @@ -0,0 +1,533 @@ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CT_H +# define HEADER_CT_H + +# include + +# ifndef OPENSSL_NO_CT +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + +/* Minimum RSA key size, from RFC6962 */ +# define SCT_MIN_RSA_BITS 2048 + +/* All hashes are SHA256 in v1 of Certificate Transparency */ +# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH + +typedef enum { + CT_LOG_ENTRY_TYPE_NOT_SET = -1, + CT_LOG_ENTRY_TYPE_X509 = 0, + CT_LOG_ENTRY_TYPE_PRECERT = 1 +} ct_log_entry_type_t; + +typedef enum { + SCT_VERSION_NOT_SET = -1, + SCT_VERSION_V1 = 0 +} sct_version_t; + +typedef enum { + SCT_SOURCE_UNKNOWN, + SCT_SOURCE_TLS_EXTENSION, + SCT_SOURCE_X509V3_EXTENSION, + SCT_SOURCE_OCSP_STAPLED_RESPONSE +} sct_source_t; + +typedef enum { + SCT_VALIDATION_STATUS_NOT_SET, + SCT_VALIDATION_STATUS_UNKNOWN_LOG, + SCT_VALIDATION_STATUS_VALID, + SCT_VALIDATION_STATUS_INVALID, + SCT_VALIDATION_STATUS_UNVERIFIED, + SCT_VALIDATION_STATUS_UNKNOWN_VERSION +} sct_validation_status_t; + +DEFINE_STACK_OF(SCT) +DEFINE_STACK_OF(CTLOG) + +/****************************************** + * CT policy evaluation context functions * + ******************************************/ + +/* + * Creates a new, empty policy evaluation context. + * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished + * with the CT_POLICY_EVAL_CTX. + */ +CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); + +/* Deletes a policy evaluation context and anything it owns. */ +void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); + +/* Gets the peer certificate that the SCTs are for */ +X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the certificate associated with the received SCTs. + * Increments the reference count of cert. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); + +/* Gets the issuer of the aforementioned certificate */ +X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the issuer of the certificate associated with the received SCTs. + * Increments the reference count of issuer. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); + +/* Gets the CT logs that are trusted sources of SCTs */ +const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); + +/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ +void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, + CTLOG_STORE *log_store); + +/* + * Gets the time, in milliseconds since the Unix epoch, that will be used as the + * current time when checking whether an SCT was issued in the future. + * Such SCTs will fail validation, as required by RFC6962. + */ +uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. + * If an SCT's timestamp is after this time, it will be interpreted as having + * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs + * whose timestamp is in the future", so an SCT will not validate in this case. + */ +void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); + +/***************** + * SCT functions * + *****************/ + +/* + * Creates a new, blank SCT. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new(void); + +/* + * Creates a new SCT from some base64-encoded strings. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new_from_base64(unsigned char version, + const char *logid_base64, + ct_log_entry_type_t entry_type, + uint64_t timestamp, + const char *extensions_base64, + const char *signature_base64); + +/* + * Frees the SCT and the underlying data structures. + */ +void SCT_free(SCT *sct); + +/* + * Free a stack of SCTs, and the underlying SCTs themselves. + * Intended to be compatible with X509V3_EXT_FREE. + */ +void SCT_LIST_free(STACK_OF(SCT) *a); + +/* + * Returns the version of the SCT. + */ +sct_version_t SCT_get_version(const SCT *sct); + +/* + * Set the version of an SCT. + * Returns 1 on success, 0 if the version is unrecognized. + */ +__owur int SCT_set_version(SCT *sct, sct_version_t version); + +/* + * Returns the log entry type of the SCT. + */ +ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); + +/* + * Set the log entry type of an SCT. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); + +/* + * Gets the ID of the log that an SCT came from. + * Ownership of the log ID remains with the SCT. + * Returns the length of the log ID. + */ +size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); + +/* + * Set the log ID of an SCT to point directly to the *log_id specified. + * The SCT takes ownership of the specified pointer. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); + +/* + * Set the log ID of an SCT. + * This makes a copy of the log_id. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, + size_t log_id_len); + +/* + * Returns the timestamp for the SCT (epoch time in milliseconds). + */ +uint64_t SCT_get_timestamp(const SCT *sct); + +/* + * Set the timestamp of an SCT (epoch time in milliseconds). + */ +void SCT_set_timestamp(SCT *sct, uint64_t timestamp); + +/* + * Return the NID for the signature used by the SCT. + * For CT v1, this will be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). + */ +int SCT_get_signature_nid(const SCT *sct); + +/* + * Set the signature type of an SCT + * For CT v1, this should be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_signature_nid(SCT *sct, int nid); + +/* + * Set *ext to point to the extension data for the SCT. ext must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); + +/* + * Set the extensions of an SCT to point directly to the *ext specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); + +/* + * Set the extensions of an SCT. + * This takes a copy of the ext. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, + size_t ext_len); + +/* + * Set *sig to point to the signature for the SCT. sig must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); + +/* + * Set the signature of an SCT to point directly to the *sig specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); + +/* + * Set the signature of an SCT to be a copy of the *sig specified. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, + size_t sig_len); + +/* + * The origin of this SCT, e.g. TLS extension, OCSP response, etc. + */ +sct_source_t SCT_get_source(const SCT *sct); + +/* + * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_source(SCT *sct, sct_source_t source); + +/* + * Returns a text string describing the validation status of |sct|. + */ +const char *SCT_validation_status_string(const SCT *sct); + +/* + * Pretty-prints an |sct| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came + * from, so that the log name can be printed. + */ +void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); + +/* + * Pretty-prints an |sct_list| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * SCTs will be delimited by |separator|. + * If |logs| is not NULL, it will be used to lookup the CT log that each SCT + * came from, so that the log names can be printed. + */ +void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, + const char *separator, const CTLOG_STORE *logs); + +/* + * Gets the last result of validating this SCT. + * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. + */ +sct_validation_status_t SCT_get_validation_status(const SCT *sct); + +/* + * Validates the given SCT with the provided context. + * Sets the "validation_status" field of the SCT. + * Returns 1 if the SCT is valid and the signature verifies. + * Returns 0 if the SCT is invalid or could not be verified. + * Returns -1 if an error occurs. + */ +__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); + +/* + * Validates the given list of SCTs with the provided context. + * Sets the "validation_status" field of each SCT. + * Returns 1 if there are no invalid SCTs and all signatures verify. + * Returns 0 if at least one SCT is invalid or could not be verified. + * Returns a negative integer if an error occurs. + */ +__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, + CT_POLICY_EVAL_CTX *ctx); + + +/********************************* + * SCT parsing and serialisation * + *********************************/ + +/* + * Serialize (to TLS format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just return the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Convert TLS format SCT list to a stack of SCTs. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + size_t len); + +/* + * Serialize (to DER format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just returns the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Parses an SCT list in DER format and returns it. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + long len); + +/* + * Serialize (to TLS format) an |sct| and write it to |out|. + * If |out| is null, no SCT will be output but the length will still be returned. + * If |out| points to a null pointer, a string will be allocated to hold the + * TLS-format SCT. It is the responsibility of the caller to free it. + * If |out| points to an allocated string, the TLS-format SCT will be written + * to it. + * The length of the SCT in TLS format will be returned. + */ +__owur int i2o_SCT(const SCT *sct, unsigned char **out); + +/* + * Parses an SCT in TLS format and returns it. + * If |psct| is not null, it will end up pointing to the parsed SCT. If it + * already points to a non-null pointer, the pointer will be free'd. + * |in| should be a pointer to a string containing the TLS-format SCT. + * |in| will be advanced to the end of the SCT if parsing succeeds. + * |len| should be the length of the SCT in |in|. + * Returns NULL if an error occurs. + * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' + * fields will be populated (with |in| and |len| respectively). + */ +SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); + +/******************** + * CT log functions * + ********************/ + +/* + * Creates a new CT log instance with the given |public_key| and |name|. + * Takes ownership of |public_key| but copies |name|. + * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); + +/* + * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER + * in |pkey_base64|. The |name| is a string to help users identify this log. + * Returns 1 on success, 0 on failure. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +int CTLOG_new_from_base64(CTLOG ** ct_log, + const char *pkey_base64, const char *name); + +/* + * Deletes a CT log instance and its fields. + */ +void CTLOG_free(CTLOG *log); + +/* Gets the name of the CT log */ +const char *CTLOG_get0_name(const CTLOG *log); +/* Gets the ID of the CT log */ +void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, + size_t *log_id_len); +/* Gets the public key of the CT log */ +EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); + +/************************** + * CT log store functions * + **************************/ + +/* + * Creates a new CT log store. + * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. + */ +CTLOG_STORE *CTLOG_STORE_new(void); + +/* + * Deletes a CT log store and all of the CT log instances held within. + */ +void CTLOG_STORE_free(CTLOG_STORE *store); + +/* + * Finds a CT log in the store based on its log ID. + * Returns the CT log, or NULL if no match is found. + */ +const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, + const uint8_t *log_id, + size_t log_id_len); + +/* + * Loads a CT log list into a |store| from a |file|. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); + +/* + * Loads the default CT log list into a |store|. + * See internal/cryptlib.h for the environment variable and file path that are + * consulted to find the default file. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +int ERR_load_CT_strings(void); + +/* Error codes for the CT functions. */ + +/* Function codes. */ +# define CT_F_CTLOG_NEW 117 +# define CT_F_CTLOG_NEW_FROM_BASE64 118 +# define CT_F_CTLOG_NEW_FROM_CONF 119 +# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 +# define CT_F_CTLOG_STORE_LOAD_FILE 123 +# define CT_F_CTLOG_STORE_LOAD_LOG 130 +# define CT_F_CTLOG_STORE_NEW 131 +# define CT_F_CT_BASE64_DECODE 124 +# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 +# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 +# define CT_F_I2O_SCT 107 +# define CT_F_I2O_SCT_LIST 108 +# define CT_F_I2O_SCT_SIGNATURE 109 +# define CT_F_O2I_SCT 110 +# define CT_F_O2I_SCT_LIST 111 +# define CT_F_O2I_SCT_SIGNATURE 112 +# define CT_F_SCT_CTX_NEW 126 +# define CT_F_SCT_CTX_VERIFY 128 +# define CT_F_SCT_NEW 100 +# define CT_F_SCT_NEW_FROM_BASE64 127 +# define CT_F_SCT_SET0_LOG_ID 101 +# define CT_F_SCT_SET1_EXTENSIONS 114 +# define CT_F_SCT_SET1_LOG_ID 115 +# define CT_F_SCT_SET1_SIGNATURE 116 +# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 +# define CT_F_SCT_SET_SIGNATURE_NID 103 +# define CT_F_SCT_SET_VERSION 104 + +/* Reason codes. */ +# define CT_R_BASE64_DECODE_ERROR 108 +# define CT_R_INVALID_LOG_ID_LENGTH 100 +# define CT_R_LOG_CONF_INVALID 109 +# define CT_R_LOG_CONF_INVALID_KEY 110 +# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 +# define CT_R_LOG_CONF_MISSING_KEY 112 +# define CT_R_LOG_KEY_INVALID 113 +# define CT_R_SCT_FUTURE_TIMESTAMP 116 +# define CT_R_SCT_INVALID 104 +# define CT_R_SCT_INVALID_SIGNATURE 107 +# define CT_R_SCT_LIST_INVALID 105 +# define CT_R_SCT_LOG_ID_MISMATCH 114 +# define CT_R_SCT_NOT_SET 106 +# define CT_R_SCT_UNSUPPORTED_VERSION 115 +# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 +# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 +# define CT_R_UNSUPPORTED_VERSION 103 + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/libs/mac/include/openssl/des.h b/libs/mac/include/openssl/des.h index 1b40144e..be4abbdf 100644 --- a/libs/mac/include/openssl/des.h +++ b/libs/mac/include/openssl/des.h @@ -1,80 +1,30 @@ -/* crypto/des/des.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -#ifndef HEADER_NEW_DES_H -# define HEADER_NEW_DES_H +#ifndef HEADER_DES_H +# define HEADER_DES_H -# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG - * (via openssl/opensslconf.h */ +# include -# ifdef OPENSSL_NO_DES -# error DES is disabled. +# ifndef OPENSSL_NO_DES +# ifdef __cplusplus +extern "C" { # endif +# include + +typedef unsigned int DES_LONG; # ifdef OPENSSL_BUILD_SHLIBCRYPTO # undef OPENSSL_EXTERN # define OPENSSL_EXTERN OPENSSL_EXPORT # endif -#ifdef __cplusplus -extern "C" { -#endif - typedef unsigned char DES_cblock[8]; typedef /* const */ unsigned char const_DES_cblock[8]; /* @@ -92,16 +42,6 @@ typedef struct DES_ks { } ks[16]; } DES_key_schedule; -# ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT -# ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT -# define OPENSSL_ENABLE_OLD_DES_SUPPORT -# endif -# endif - -# ifdef OPENSSL_ENABLE_OLD_DES_SUPPORT -# include -# endif - # define DES_KEY_SZ (sizeof(DES_cblock)) # define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) @@ -125,8 +65,6 @@ typedef struct DES_ks { OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ # define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) -OPENSSL_DECLARE_GLOBAL(int, DES_rw_mode); /* defaults to DES_PCBC_MODE */ -# define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) const char *DES_options(void); void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, @@ -182,11 +120,6 @@ void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, long length, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, - DES_cblock *ivec1, DES_cblock *ivec2, int enc); void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, @@ -199,15 +132,6 @@ void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *ivec, int *num); -# if 0 -void DES_xwhite_in2out(const_DES_cblock *DES_key, const_DES_cblock *in_white, - DES_cblock *out_white); -# endif - -int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, - DES_cblock *iv); -int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched, - DES_cblock *iv); char *DES_fcrypt(const char *buf, const char *salt, char *ret); char *DES_crypt(const char *buf, const char *salt); void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, @@ -231,10 +155,6 @@ int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -# ifdef OPENSSL_FIPS -void private_DES_set_key_unchecked(const_DES_cblock *key, - DES_key_schedule *schedule); -# endif void DES_string_to_key(const char *str, DES_cblock *key); void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, @@ -244,14 +164,11 @@ void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, DES_key_schedule *schedule, DES_cblock *ivec, int *num); -int DES_read_password(DES_cblock *key, const char *prompt, int verify); -int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, - const char *prompt, int verify); - # define DES_fixup_key_parity DES_set_odd_parity -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/dh.h b/libs/mac/include/openssl/dh.h index 80b28fb3..fbd47903 100644 --- a/libs/mac/include/openssl/dh.h +++ b/libs/mac/include/openssl/dh.h @@ -1,98 +1,49 @@ -/* crypto/dh/dh.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_DH_H # define HEADER_DH_H +# include + +# ifndef OPENSSL_NO_DH # include - -# ifdef OPENSSL_NO_DH -# error DH is disabled. -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif +# include +# include # include -# ifndef OPENSSL_NO_DEPRECATED +# if OPENSSL_API_COMPAT < 0x10100000L # include # endif +# ifdef __cplusplus +extern "C" { +# endif + # ifndef OPENSSL_DH_MAX_MODULUS_BITS # define OPENSSL_DH_MAX_MODULUS_BITS 10000 # endif +# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 + # define DH_FLAG_CACHE_MONT_P 0x01 +# if OPENSSL_API_COMPAT < 0x10100000L /* - * new with 0.9.7h; the built-in DH - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. + * Does nothing. Previously this switched off constant time behaviour. */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x02 +# define DH_FLAG_NO_EXP_CONSTTIME 0x00 +# endif /* * If this flag is set the DH method is FIPS compliant and can be used in * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its reposibility to ensure the + * sets this flag in its own methods it is its responsibility to ensure the * result is compliant. */ @@ -106,57 +57,11 @@ # define DH_FLAG_NON_FIPS_ALLOW 0x0400 -#ifdef __cplusplus -extern "C" { -#endif - /* Already defined in ossl_typ.h */ /* typedef struct dh_st DH; */ /* typedef struct dh_method DH_METHOD; */ -struct dh_method { - const char *name; - /* Methods here */ - int (*generate_key) (DH *dh); - int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); - /* Can be null */ - int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, - const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *m_ctx); - int (*init) (DH *dh); - int (*finish) (DH *dh); - int flags; - char *app_data; - /* If this is non-NULL, it will be used to generate parameters */ - int (*generate_params) (DH *dh, int prime_len, int generator, - BN_GENCB *cb); -}; - -struct dh_st { - /* - * This first argument is used to pick up errors when a DH is passed - * instead of a EVP_PKEY - */ - int pad; - int version; - BIGNUM *p; - BIGNUM *g; - long length; /* optional */ - BIGNUM *pub_key; /* g^x % p */ - BIGNUM *priv_key; /* x */ - int flags; - BN_MONT_CTX *method_mont_p; - /* Place holders if we want to do X9.42 DH */ - BIGNUM *q; - BIGNUM *j; - unsigned char *seed; - int seedlen; - BIGNUM *counter; - int references; - CRYPTO_EX_DATA ex_data; - const DH_METHOD *meth; - ENGINE *engine; -}; +DECLARE_ASN1_ITEM(DHparams) # define DH_GENERATOR_2 2 /* #define DH_GENERATOR_3 3 */ @@ -218,22 +123,25 @@ DH *DH_new_method(ENGINE *engine); DH *DH_new(void); void DH_free(DH *dh); int DH_up_ref(DH *dh); +int DH_bits(const DH *dh); int DH_size(const DH *dh); -int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int DH_security_bits(const DH *dh); +#define DH_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) int DH_set_ex_data(DH *d, int idx, void *arg); void *DH_get_ex_data(DH *d, int idx); /* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ +DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, + void (*callback) (int, int, + void *), + void *cb_arg)) /* New version */ int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, BN_GENCB *cb); +int DH_check_params(const DH *dh, int *ret); int DH_check(const DH *dh, int *codes); int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); int DH_generate_key(DH *dh); @@ -243,14 +151,10 @@ DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); int i2d_DHparams(const DH *a, unsigned char **pp); DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); int i2d_DHxparams(const DH *a, unsigned char **pp); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int DHparams_print_fp(FILE *fp, const DH *x); # endif -# ifndef OPENSSL_NO_BIO int DHparams_print(BIO *bp, const DH *x); -# else -int DHparams_print(char *bp, const DH *x); -# endif /* RFC 5114 parameters */ DH *DH_get_1024_160(void); @@ -265,6 +169,50 @@ int DH_KDF_X9_42(unsigned char *out, size_t outlen, const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); # endif +void DH_get0_pqg(const DH *dh, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DH_get0_key(const DH *dh, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); +void DH_clear_flags(DH *dh, int flags); +int DH_test_flags(const DH *dh, int flags); +void DH_set_flags(DH *dh, int flags); +ENGINE *DH_get0_engine(DH *d); +long DH_get_length(const DH *dh); +int DH_set_length(DH *dh, long length); + +DH_METHOD *DH_meth_new(const char *name, int flags); +void DH_meth_free(DH_METHOD *dhm); +DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); +const char *DH_meth_get0_name(const DH_METHOD *dhm); +int DH_meth_set1_name(DH_METHOD *dhm, const char *name); +int DH_meth_get_flags(DH_METHOD *dhm); +int DH_meth_set_flags(DH_METHOD *dhm, int flags); +void *DH_meth_get0_app_data(const DH_METHOD *dhm); +int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); +int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); +int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) + (unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_meth_set_compute_key(DH_METHOD *dhm, + int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); +int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) + (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, + int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); +int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); +int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); +int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) + (DH *, int, int, BN_GENCB *); +int DH_meth_set_generate_params(DH_METHOD *dhm, + int (*generate_params) (DH *, int, int, BN_GENCB *)); + + # define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) @@ -356,14 +304,17 @@ int DH_KDF_X9_42(unsigned char *out, size_t outlen, /* KDF types */ # define EVP_PKEY_DH_KDF_NONE 1 +# ifndef OPENSSL_NO_CMS # define EVP_PKEY_DH_KDF_X9_42 2 +# endif /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_DH_strings(void); + +int ERR_load_DH_strings(void); /* Error codes for the DH functions. */ @@ -371,12 +322,12 @@ void ERR_load_DH_strings(void); # define DH_F_COMPUTE_KEY 102 # define DH_F_DHPARAMS_PRINT_FP 101 # define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 117 -# define DH_F_DH_CMS_SET_PEERKEY 118 -# define DH_F_DH_CMS_SET_SHARED_INFO 119 -# define DH_F_DH_COMPUTE_KEY 114 -# define DH_F_DH_GENERATE_KEY 115 -# define DH_F_DH_GENERATE_PARAMETERS_EX 116 +# define DH_F_DH_CMS_DECRYPT 114 +# define DH_F_DH_CMS_SET_PEERKEY 115 +# define DH_F_DH_CMS_SET_SHARED_INFO 116 +# define DH_F_DH_METH_DUP 117 +# define DH_F_DH_METH_NEW 118 +# define DH_F_DH_METH_SET1_NAME 119 # define DH_F_DH_NEW_METHOD 105 # define DH_F_DH_PARAM_DECODE 107 # define DH_F_DH_PRIV_DECODE 110 @@ -385,7 +336,6 @@ void ERR_load_DH_strings(void); # define DH_F_DH_PUB_ENCODE 109 # define DH_F_DO_DH_PRINT 100 # define DH_F_GENERATE_KEY 103 -# define DH_F_GENERATE_PARAMETERS 104 # define DH_F_PKEY_DH_DERIVE 112 # define DH_F_PKEY_DH_KEYGEN 113 @@ -397,16 +347,15 @@ void ERR_load_DH_strings(void); # define DH_R_INVALID_PUBKEY 102 # define DH_R_KDF_PARAMETER_ERROR 112 # define DH_R_KEYS_NOT_SET 108 -# define DH_R_KEY_SIZE_TOO_SMALL 110 # define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NON_FIPS_METHOD 111 # define DH_R_NO_PARAMETERS_SET 107 # define DH_R_NO_PRIVATE_VALUE 100 # define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 113 -# define DH_R_SHARED_INFO_ERROR 114 +# define DH_R_PEER_KEY_ERROR 111 +# define DH_R_SHARED_INFO_ERROR 113 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/dsa.h b/libs/mac/include/openssl/dsa.h index 545358fd..139718ed 100644 --- a/libs/mac/include/openssl/dsa.h +++ b/libs/mac/include/openssl/dsa.h @@ -1,105 +1,54 @@ -/* crypto/dsa/dsa.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ /* * The DSS routines are based on patches supplied by - * Steven Schoch . He basically did the - * work and I have just tweaked them a little to fit into my - * stylistic vision for SSLeay :-) */ + * Steven Schoch . + */ #ifndef HEADER_DSA_H # define HEADER_DSA_H +# include + +# ifndef OPENSSL_NO_DSA +# ifdef __cplusplus +extern "C" { +# endif # include - -# ifdef OPENSSL_NO_DSA -# error DSA is disabled. -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif +# include # include # include - -# ifndef OPENSSL_NO_DEPRECATED -# include -# ifndef OPENSSL_NO_DH -# include -# endif +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include # endif # ifndef OPENSSL_DSA_MAX_MODULUS_BITS # define OPENSSL_DSA_MAX_MODULUS_BITS 10000 # endif +# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 + # define DSA_FLAG_CACHE_MONT_P 0x01 +# if OPENSSL_API_COMPAT < 0x10100000L /* - * new with 0.9.7h; the built-in DSA implementation now uses constant time - * modular exponentiation for secret exponents by default. This flag causes - * the faster variable sliding window method to be used for all exponents. + * Does nothing. Previously this switched off constant time behaviour. */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x02 +# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 +# endif /* * If this flag is set the DSA method is FIPS compliant and can be used in * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its reposibility to ensure the + * sets this flag in its own methods it is its responsibility to ensure the * result is compliant. */ @@ -112,70 +61,13 @@ */ # define DSA_FLAG_NON_FIPS_ALLOW 0x0400 - -#ifdef __cplusplus -extern "C" { -#endif +# define DSA_FLAG_FIPS_CHECKED 0x0800 /* Already defined in ossl_typ.h */ /* typedef struct dsa_st DSA; */ /* typedef struct dsa_method DSA_METHOD; */ -typedef struct DSA_SIG_st { - BIGNUM *r; - BIGNUM *s; -} DSA_SIG; - -struct dsa_method { - const char *name; - DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); - int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, - BIGNUM **rp); - int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, - BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); - /* Can be null */ - int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); - int (*init) (DSA *dsa); - int (*finish) (DSA *dsa); - int flags; - char *app_data; - /* If this is non-NULL, it is used to generate DSA parameters */ - int (*dsa_paramgen) (DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - /* If this is non-NULL, it is used to generate DSA keys */ - int (*dsa_keygen) (DSA *dsa); -}; - -struct dsa_st { - /* - * This first variable is used to pick up errors where a DSA is passed - * instead of of a EVP_PKEY - */ - int pad; - long version; - int write_params; - BIGNUM *p; - BIGNUM *q; /* == 20 */ - BIGNUM *g; - BIGNUM *pub_key; /* y public key */ - BIGNUM *priv_key; /* x private key */ - BIGNUM *kinv; /* Signing pre-calc */ - BIGNUM *r; /* Signing pre-calc */ - int flags; - /* Normally used to cache montgomery values */ - BN_MONT_CTX *method_mont_p; - int references; - CRYPTO_EX_DATA ex_data; - const DSA_METHOD *meth; - /* functional reference if 'meth' is ENGINE-provided */ - ENGINE *engine; -}; +typedef struct DSA_SIG_st DSA_SIG; # define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) @@ -189,6 +81,8 @@ DSA_SIG *DSA_SIG_new(void); void DSA_SIG_free(DSA_SIG *a); int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); +void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); +int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); int DSA_do_verify(const unsigned char *dgst, int dgst_len, @@ -199,6 +93,7 @@ const DSA_METHOD *DSA_OpenSSL(void); void DSA_set_default_method(const DSA_METHOD *); const DSA_METHOD *DSA_get_default_method(void); int DSA_set_method(DSA *dsa, const DSA_METHOD *); +const DSA_METHOD *DSA_get_method(DSA *d); DSA *DSA_new(void); DSA *DSA_new_method(ENGINE *engine); @@ -206,14 +101,16 @@ void DSA_free(DSA *r); /* "up" the DSA object's reference count */ int DSA_up_ref(DSA *r); int DSA_size(const DSA *); +int DSA_bits(const DSA *d); +int DSA_security_bits(const DSA *d); /* next 4 return -1 on error */ int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, DSA *dsa); int DSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int siglen, DSA *dsa); -int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +#define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) int DSA_set_ex_data(DSA *d, int idx, void *arg); void *DSA_get_ex_data(DSA *d, int idx); @@ -222,12 +119,14 @@ DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); /* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -DSA *DSA_generate_parameters(int bits, - unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, void - (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ +DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits, + unsigned char *seed, + int seed_len, + int *counter_ret, + unsigned long *h_ret, void + (*callback) (int, int, + void *), + void *cb_arg)) /* New version */ int DSA_generate_parameters_ex(DSA *dsa, int bits, @@ -240,11 +139,9 @@ int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); int i2d_DSAparams(const DSA *a, unsigned char **pp); -# ifndef OPENSSL_NO_BIO int DSAparams_print(BIO *bp, const DSA *x); int DSA_print(BIO *bp, const DSA *x, int off); -# endif -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int DSAparams_print_fp(FILE *fp, const DSA *x); int DSA_print_fp(FILE *bp, const DSA *x, int off); # endif @@ -273,25 +170,84 @@ DH *DSA_dup_DH(const DSA *r); # define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) # define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) +void DSA_get0_pqg(const DSA *d, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DSA_get0_key(const DSA *d, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); +void DSA_clear_flags(DSA *d, int flags); +int DSA_test_flags(const DSA *d, int flags); +void DSA_set_flags(DSA *d, int flags); +ENGINE *DSA_get0_engine(DSA *d); + +DSA_METHOD *DSA_meth_new(const char *name, int flags); +void DSA_meth_free(DSA_METHOD *dsam); +DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); +const char *DSA_meth_get0_name(const DSA_METHOD *dsam); +int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); +int DSA_meth_get_flags(DSA_METHOD *dsam); +int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); +void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); +int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); +DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) + (const unsigned char *, int, DSA *); +int DSA_meth_set_sign(DSA_METHOD *dsam, + DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); +int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) + (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); +int DSA_meth_set_sign_setup(DSA_METHOD *dsam, + int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); +int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) + (const unsigned char *, int , DSA_SIG *, DSA *); +int DSA_meth_set_verify(DSA_METHOD *dsam, + int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); +int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_mod_exp(DSA_METHOD *dsam, + int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, + BN_MONT_CTX *)); +int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, + int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); +int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); +int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); +int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) + (DSA *, int, const unsigned char *, int, int *, unsigned long *, + BN_GENCB *); +int DSA_meth_set_paramgen(DSA_METHOD *dsam, + int (*paramgen) (DSA *, int, const unsigned char *, int, int *, + unsigned long *, BN_GENCB *)); +int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_DSA_strings(void); + +int ERR_load_DSA_strings(void); /* Error codes for the DSA functions. */ /* Function codes. */ -# define DSA_F_D2I_DSA_SIG 110 -# define DSA_F_DO_DSA_PRINT 104 # define DSA_F_DSAPARAMS_PRINT 100 # define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN 125 # define DSA_F_DSA_BUILTIN_PARAMGEN2 126 # define DSA_F_DSA_DO_SIGN 112 # define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_GENERATE_KEY 124 -# define DSA_F_DSA_GENERATE_PARAMETERS_EX 123 +# define DSA_F_DSA_METH_DUP 127 +# define DSA_F_DSA_METH_NEW 128 +# define DSA_F_DSA_METH_SET1_NAME 129 # define DSA_F_DSA_NEW_METHOD 103 # define DSA_F_DSA_PARAM_DECODE 119 # define DSA_F_DSA_PRINT_FP 105 @@ -301,32 +257,27 @@ void ERR_load_DSA_strings(void); # define DSA_F_DSA_PUB_ENCODE 118 # define DSA_F_DSA_SIGN 106 # define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 109 -# define DSA_F_DSA_SIG_PRINT 125 -# define DSA_F_DSA_VERIFY 108 -# define DSA_F_I2D_DSA_SIG 111 +# define DSA_F_DSA_SIG_NEW 102 # define DSA_F_OLD_DSA_PRIV_DECODE 122 # define DSA_F_PKEY_DSA_CTRL 120 # define DSA_F_PKEY_DSA_KEYGEN 121 -# define DSA_F_SIG_CB 114 /* Reason codes. */ # define DSA_R_BAD_Q_VALUE 102 # define DSA_R_BN_DECODE_ERROR 108 # define DSA_R_BN_ERROR 109 -# define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 100 # define DSA_R_DECODE_ERROR 104 # define DSA_R_INVALID_DIGEST_TYPE 106 # define DSA_R_INVALID_PARAMETERS 112 # define DSA_R_MISSING_PARAMETERS 101 # define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NEED_NEW_SETUP_VALUES 110 -# define DSA_R_NON_FIPS_DSA_METHOD 111 # define DSA_R_NO_PARAMETERS_SET 107 # define DSA_R_PARAMETER_ENCODING_ERROR 105 # define DSA_R_Q_NOT_PRIME 113 +# define DSA_R_SEED_LEN_SMALL 110 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/dtls1.h b/libs/mac/include/openssl/dtls1.h index 30bbcf27..f4769f83 100644 --- a/libs/mac/include/openssl/dtls1.h +++ b/libs/mac/include/openssl/dtls1.h @@ -1,90 +1,22 @@ -/* ssl/dtls1.h */ /* - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_DTLS1_H # define HEADER_DTLS1_H -# include -# include -# ifdef OPENSSL_SYS_VMS -# include -# include -# endif -# ifdef OPENSSL_SYS_WIN32 -/* Needed for struct timeval */ -# include -# elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) -# include -# else -# if defined(OPENSSL_SYS_VXWORKS) -# include -# else -# include -# endif -# endif - #ifdef __cplusplus extern "C" { #endif # define DTLS1_VERSION 0xFEFF # define DTLS1_2_VERSION 0xFEFD +# define DTLS_MIN_VERSION DTLS1_VERSION # define DTLS_MAX_VERSION DTLS1_2_VERSION # define DTLS1_VERSION_MAJOR 0xFE @@ -93,11 +25,6 @@ extern "C" { /* Special value for method supporting multiple versions */ # define DTLS_ANY_VERSION 0x1FFFF -# if 0 -/* this alert description is not specified anywhere... */ -# define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110 -# endif - /* lengths of messages */ # define DTLS1_COOKIE_LENGTH 256 @@ -116,149 +43,6 @@ extern "C" { # define DTLS1_AL_HEADER_LENGTH 2 # endif -# ifndef OPENSSL_NO_SSL_INTERN - -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP" -# endif - -/* Max MTU overhead we know about so far is 40 for IPv6 + 8 for UDP */ -# define DTLS1_MAX_MTU_OVERHEAD 48 - -typedef struct dtls1_bitmap_st { - unsigned long map; /* track 32 packets on 32-bit systems and 64 - * - on 64-bit systems */ - unsigned char max_seq_num[8]; /* max record number seen so far, 64-bit - * value in big-endian encoding */ -} DTLS1_BITMAP; - -struct dtls1_retransmit_state { - EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ - EVP_MD_CTX *write_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *compress; /* compression */ -# else - char *compress; -# endif - SSL_SESSION *session; - unsigned short epoch; -}; - -struct hm_header_st { - unsigned char type; - unsigned long msg_len; - unsigned short seq; - unsigned long frag_off; - unsigned long frag_len; - unsigned int is_ccs; - struct dtls1_retransmit_state saved_retransmit_state; -}; - -struct ccs_header_st { - unsigned char type; - unsigned short seq; -}; - -struct dtls1_timeout_st { - /* Number of read timeouts so far */ - unsigned int read_timeouts; - /* Number of write timeouts so far */ - unsigned int write_timeouts; - /* Number of alerts received so far */ - unsigned int num_alerts; -}; - -typedef struct record_pqueue_st { - unsigned short epoch; - pqueue q; -} record_pqueue; - -typedef struct hm_fragment_st { - struct hm_header_st msg_header; - unsigned char *fragment; - unsigned char *reassembly; -} hm_fragment; - -typedef struct dtls1_state_st { - unsigned int send_cookie; - unsigned char cookie[DTLS1_COOKIE_LENGTH]; - unsigned char rcvd_cookie[DTLS1_COOKIE_LENGTH]; - unsigned int cookie_len; - /* - * The current data and handshake epoch. This is initially - * undefined, and starts at zero once the initial handshake is - * completed - */ - unsigned short r_epoch; - unsigned short w_epoch; - /* records being received in the current epoch */ - DTLS1_BITMAP bitmap; - /* renegotiation starts a new set of sequence numbers */ - DTLS1_BITMAP next_bitmap; - /* handshake message numbers */ - unsigned short handshake_write_seq; - unsigned short next_handshake_write_seq; - unsigned short handshake_read_seq; - /* save last sequence number for retransmissions */ - unsigned char last_write_sequence[8]; - /* Received handshake records (processed and unprocessed) */ - record_pqueue unprocessed_rcds; - record_pqueue processed_rcds; - /* Buffered handshake messages */ - pqueue buffered_messages; - /* Buffered (sent) handshake records */ - pqueue sent_messages; - /* - * Buffered application records. Only for records between CCS and - * Finished to prevent either protocol violation or unnecessary message - * loss. - */ - record_pqueue buffered_app_data; - /* Is set when listening for new connections with dtls1_listen() */ - unsigned int listen; - unsigned int link_mtu; /* max on-the-wire DTLS packet size */ - unsigned int mtu; /* max DTLS packet size */ - struct hm_header_st w_msg_hdr; - struct hm_header_st r_msg_hdr; - struct dtls1_timeout_st timeout; - /* - * Indicates when the last handshake msg or heartbeat sent will timeout - */ - struct timeval next_timeout; - /* Timeout duration */ - unsigned short timeout_duration; - /* - * storage for Alert/Handshake protocol data received but not yet - * processed by ssl3_read_bytes: - */ - unsigned char alert_fragment[DTLS1_AL_HEADER_LENGTH]; - unsigned int alert_fragment_len; - unsigned char handshake_fragment[DTLS1_HM_HEADER_LENGTH]; - unsigned int handshake_fragment_len; - unsigned int retransmitting; - /* - * Set when the handshake is ready to process peer's ChangeCipherSpec message. - * Cleared after the message has been processed. - */ - unsigned int change_cipher_spec_ok; -# ifndef OPENSSL_NO_SCTP - /* used when SSL_ST_XX_FLUSH is entered */ - int next_state; - int shutdown_received; -# endif -} DTLS1_STATE; - -typedef struct dtls1_record_data_st { - unsigned char *packet; - unsigned int packet_length; - SSL3_BUFFER rbuf; - SSL3_RECORD rrec; -# ifndef OPENSSL_NO_SCTP - struct bio_dgram_sctp_rcvinfo recordinfo; -# endif -} DTLS1_RECORD_DATA; - -# endif /* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ # define DTLS1_TMO_READ_COUNT 2 diff --git a/libs/mac/include/openssl/e_os2.h b/libs/mac/include/openssl/e_os2.h index 7be9989a..9800e154 100644 --- a/libs/mac/include/openssl/e_os2.h +++ b/libs/mac/include/openssl/e_os2.h @@ -1,63 +1,17 @@ -/* e_os2.h */ -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -#include - #ifndef HEADER_E_OS2_H # define HEADER_E_OS2_H +# include + #ifdef __cplusplus extern "C" { #endif @@ -70,58 +24,50 @@ extern "C" { # define OPENSSL_SYS_UNIX -/* ---------------------- Macintosh, before MacOS X ----------------------- */ -# if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_MACINTOSH_CLASSIC -# endif - -/* ---------------------- NetWare ----------------------------------------- */ -# if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_NETWARE -# endif - /* --------------------- Microsoft operating systems ---------------------- */ /* * Note that MSDOS actually denotes 32-bit environments running on top of * MS-DOS, such as DJGPP one. */ -# if defined(OPENSSL_SYSNAME_MSDOS) +# if defined(OPENSSL_SYS_MSDOS) # undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_MSDOS # endif /* * For 32 bit environment, there seems to be the CygWin environment and then * all the others that try to do the same thing Microsoft does... */ -# if defined(OPENSSL_SYSNAME_UWIN) +/* + * UEFI lives here because it might be built with a Microsoft toolchain and + * we need to avoid the false positive match on Windows. + */ +# if defined(OPENSSL_SYS_UEFI) +# undef OPENSSL_SYS_UNIX +# elif defined(OPENSSL_SYS_UWIN) # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WIN32_UWIN # else -# if defined(__CYGWIN__) || defined(OPENSSL_SYSNAME_CYGWIN) -# undef OPENSSL_SYS_UNIX +# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) # define OPENSSL_SYS_WIN32_CYGWIN # else -# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) +# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) # undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32 +# if !defined(OPENSSL_SYS_WIN32) +# define OPENSSL_SYS_WIN32 +# endif # endif -# if defined(_WIN64) || defined(OPENSSL_SYSNAME_WIN64) +# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) # undef OPENSSL_SYS_UNIX # if !defined(OPENSSL_SYS_WIN64) # define OPENSSL_SYS_WIN64 # endif # endif -# if defined(OPENSSL_SYSNAME_WINNT) +# if defined(OPENSSL_SYS_WINNT) # undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINNT # endif -# if defined(OPENSSL_SYSNAME_WINCE) +# if defined(OPENSSL_SYS_WINCE) # undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINCE # endif # endif # endif @@ -150,8 +96,10 @@ extern "C" { # endif /* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) -# undef OPENSSL_SYS_UNIX +# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYS_VMS) +# if !defined(OPENSSL_SYS_VMS) +# undef OPENSSL_SYS_UNIX +# endif # define OPENSSL_SYS_VMS # if defined(__DECC) # define OPENSSL_SYS_VMS_DECC @@ -163,49 +111,18 @@ extern "C" { # endif # endif -/* -------------------------------- OS/2 ---------------------------------- */ -# if defined(__EMX__) || defined(__OS2__) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_OS2 -# endif - /* -------------------------------- Unix ---------------------------------- */ # ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) +# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) # define OPENSSL_SYS_LINUX # endif -# ifdef OPENSSL_SYSNAME_MPE -# define OPENSSL_SYS_MPE -# endif -# ifdef OPENSSL_SYSNAME_SNI -# define OPENSSL_SYS_SNI -# endif -# ifdef OPENSSL_SYSNAME_ULTRASPARC -# define OPENSSL_SYS_ULTRASPARC -# endif -# ifdef OPENSSL_SYSNAME_NEWS4 -# define OPENSSL_SYS_NEWS4 -# endif -# ifdef OPENSSL_SYSNAME_MACOSX -# define OPENSSL_SYS_MACOSX -# endif -# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY -# define OPENSSL_SYS_MACOSX_RHAPSODY -# define OPENSSL_SYS_MACOSX -# endif -# ifdef OPENSSL_SYSNAME_SUNOS -# define OPENSSL_SYS_SUNOS -# endif -# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY) -# define OPENSSL_SYS_CRAY -# endif -# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX) +# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) # define OPENSSL_SYS_AIX # endif # endif /* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) +# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) # define OPENSSL_SYS_VOS # ifdef __HPPA__ # define OPENSSL_SYS_VOS_HPPA @@ -215,22 +132,6 @@ extern "C" { # endif # endif -/* ------------------------------ VxWorks --------------------------------- */ -# ifdef OPENSSL_SYSNAME_VXWORKS -# define OPENSSL_SYS_VXWORKS -# endif - -/* -------------------------------- BeOS ---------------------------------- */ -# if defined(__BEOS__) -# define OPENSSL_SYS_BEOS -# include -# if defined(BONE_VERSION) -# define OPENSSL_SYS_BEOS_BONE -# else -# define OPENSSL_SYS_BEOS_R5 -# endif -# endif - /** * That's it for OS-specific stuff *****************************************************************************/ @@ -247,7 +148,7 @@ extern "C" { /*- * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitely with globaldef and globalref. + * defined and declared explicitly with globaldef and globalref. * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare * DLL exports and imports for compilers under Win32. These are a little * more complicated to use. Basically, for any library that exports some @@ -259,25 +160,23 @@ extern "C" { * # define OPENSSL_EXTERN OPENSSL_EXPORT * #endif * - * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL - * have some generally sensible values, and for OPENSSL_EXTERN to have the - * value OPENSSL_IMPORT. + * The default is to have OPENSSL_EXPORT, OPENSSL_EXTERN and OPENSSL_GLOBAL + * have some generally sensible values. */ # if defined(OPENSSL_SYS_VMS_NODECC) # define OPENSSL_EXPORT globalref -# define OPENSSL_IMPORT globalref +# define OPENSSL_EXTERN globalref # define OPENSSL_GLOBAL globaldef # elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) # define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_IMPORT extern __declspec(dllimport) +# define OPENSSL_EXTERN extern __declspec(dllimport) # define OPENSSL_GLOBAL # else # define OPENSSL_EXPORT extern -# define OPENSSL_IMPORT extern +# define OPENSSL_EXTERN extern # define OPENSSL_GLOBAL # endif -# define OPENSSL_EXTERN OPENSSL_IMPORT /*- * Macros to allow global variables to be reached through function calls when @@ -302,24 +201,94 @@ extern "C" { # define OPENSSL_GLOBAL_REF(name) _shadow_##name # endif -# if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && macintosh==1 && !defined(MAC_OS_GUSI_SOURCE) -# define ossl_ssize_t long +# ifdef _WIN32 +# ifdef _WIN64 +# define ossl_ssize_t __int64 +# define OSSL_SSIZE_MAX _I64_MAX +# else +# define ossl_ssize_t int +# define OSSL_SSIZE_MAX INT_MAX +# endif # endif -# ifdef OPENSSL_SYS_MSDOS -# define ossl_ssize_t long -# endif - -# if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) -# define ssize_t int -# endif - -# if defined(__ultrix) && !defined(ssize_t) -# define ossl_ssize_t int +# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) +# define ossl_ssize_t INTN +# define OSSL_SSIZE_MAX MAX_INTN # endif # ifndef ossl_ssize_t # define ossl_ssize_t ssize_t +# if defined(SSIZE_MAX) +# define OSSL_SSIZE_MAX SSIZE_MAX +# elif defined(_POSIX_SSIZE_MAX) +# define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX +# endif +# endif + +# ifdef DEBUG_UNUSED +# define __owur __attribute__((__warn_unused_result__)) +# else +# define __owur +# endif + +/* Standard integer types */ +# if defined(OPENSSL_SYS_UEFI) +typedef INT8 int8_t; +typedef UINT8 uint8_t; +typedef INT16 int16_t; +typedef UINT16 uint16_t; +typedef INT32 int32_t; +typedef UINT32 uint32_t; +typedef INT64 int64_t; +typedef UINT64 uint64_t; +# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ + defined(__osf__) || defined(__sgi) || defined(__hpux) || \ + defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) +# include +# elif defined(_MSC_VER) && _MSC_VER<=1500 +/* + * minimally required typdefs for systems not supporting inttypes.h or + * stdint.h: currently just older VC++ + */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef short int16_t; +typedef unsigned short uint16_t; +typedef int int32_t; +typedef unsigned int uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +# else +# include +# endif + +/* ossl_inline: portable inline definition usable in public headers */ +# if !defined(inline) && !defined(__cplusplus) +# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L + /* just use inline */ +# define ossl_inline inline +# elif defined(__GNUC__) && __GNUC__>=2 +# define ossl_inline __inline__ +# elif defined(_MSC_VER) + /* + * Visual Studio: inline is available in C++ only, however + * __inline is available for C, see + * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx + */ +# define ossl_inline __inline +# else +# define ossl_inline +# endif +# else +# define ossl_inline inline +# endif + +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define ossl_noreturn _Noreturn +# elif defined(__GNUC__) && __GNUC__ >= 2 +# define ossl_noreturn __attribute__((noreturn)) +# else +# define ossl_noreturn # endif #ifdef __cplusplus diff --git a/libs/mac/include/openssl/ebcdic.h b/libs/mac/include/openssl/ebcdic.h index 4cbdfeb7..aa012855 100644 --- a/libs/mac/include/openssl/ebcdic.h +++ b/libs/mac/include/openssl/ebcdic.h @@ -1,9 +1,16 @@ -/* crypto/ebcdic.h */ +/* + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ #ifndef HEADER_EBCDIC_H # define HEADER_EBCDIC_H -# include +# include #ifdef __cplusplus extern "C" { diff --git a/libs/mac/include/openssl/ec.h b/libs/mac/include/openssl/ec.h index 81e6faf6..f06680a7 100644 --- a/libs/mac/include/openssl/ec.h +++ b/libs/mac/include/openssl/ec.h @@ -1,64 +1,12 @@ -/* crypto/ec/ec.h */ /* - * Originally written by Bodo Moeller for the OpenSSL project. - */ -/** - * \file crypto/ec/ec.h Include file for the OpenSSL EC functions - * \author Originally written by Bodo Moeller for the OpenSSL project - */ -/* ==================================================================== - * Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -78,22 +26,14 @@ # include -# ifdef OPENSSL_NO_EC -# error EC is disabled. -# endif - +# ifndef OPENSSL_NO_EC # include # include -# ifndef OPENSSL_NO_DEPRECATED +# if OPENSSL_API_COMPAT < 0x10100000L # include # endif - # ifdef __cplusplus extern "C" { -# elif defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (off,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif # endif # ifndef OPENSSL_ECC_MAX_FIELD_BITS @@ -114,19 +54,10 @@ typedef enum { } point_conversion_form_t; typedef struct ec_method_st EC_METHOD; - -typedef struct ec_group_st - /*- - EC_METHOD *meth; - -- field definition - -- curve coefficients - -- optional generator with associated information (order, cofactor) - -- optional extra data (precomputed table for fast computation of multiples of generator) - -- ASN1 stuff - */ - EC_GROUP; - +typedef struct ec_group_st EC_GROUP; typedef struct ec_point_st EC_POINT; +typedef struct ecpk_parameters_st ECPKPARAMETERS; +typedef struct ec_parameters_st ECPARAMETERS; /********************************************************************/ /* EC_METHODs for curves over GF(p) */ @@ -229,7 +160,7 @@ int EC_METHOD_get_field_type(const EC_METHOD *meth); * \param order the order of the group generated by the generator. * \param cofactor the index of the sub-group generated by the generator * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor); @@ -242,27 +173,45 @@ const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); /** Returns the montgomery data for order(Generator) * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). + * \return the currently used montgomery data (possibly NULL). */ BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); /** Gets the order of a EC_GROUP * \param group EC_GROUP object * \param order BIGNUM to which the order is copied - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \param ctx unused + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); +/** Gets the order of an EC_GROUP + * \param group EC_GROUP object + * \return the group order + */ +const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); + +/** Gets the number of bits of the order of an EC_GROUP + * \param group EC_GROUP object + * \return number of bits of group order. + */ +int EC_GROUP_order_bits(const EC_GROUP *group); + /** Gets the cofactor of a EC_GROUP * \param group EC_GROUP object * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \param ctx unused + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx); +/** Gets the cofactor of an EC_GROUP + * \param group EC_GROUP object + * \return the group cofactor + */ +const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); + /** Sets the name of a EC_GROUP object * \param group EC_GROUP object * \param nid NID of the curve name OID @@ -292,7 +241,7 @@ size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); * \param a BIGNUM with parameter a of the equation * \param b BIGNUM with parameter b of the equation * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); @@ -303,7 +252,7 @@ int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, * \param a BIGNUM for parameter a of the equation * \param b BIGNUM for parameter b of the equation * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); @@ -315,7 +264,7 @@ int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, * \param a BIGNUM with parameter a of the equation * \param b BIGNUM with parameter b of the equation * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); @@ -326,7 +275,7 @@ int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, * \param a BIGNUM for parameter a of the equation * \param b BIGNUM for parameter b of the equation * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); @@ -355,7 +304,7 @@ int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); * \param a first EC_GROUP object * \param b second EC_GROUP object * \param ctx BN_CTX object (optional) - * \return 0 if both groups are equal and 1 otherwise + * \return 0 if the groups are equal, 1 if not, or -1 on error */ int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); @@ -386,6 +335,7 @@ EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); # endif + /** Creates a EC_GROUP object with a curve specified by a NID * \param nid NID of the OID of the curve name * \return newly created EC_GROUP object with specified curve or NULL @@ -393,6 +343,38 @@ EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, */ EC_GROUP *EC_GROUP_new_by_curve_name(int nid); +/** Creates a new EC_GROUP object from an ECPARAMETERS object + * \param params pointer to the ECPARAMETERS object + * \return newly created EC_GROUP object with specified curve or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); + +/** Creates an ECPARAMETERS object for the the given EC_GROUP object. + * \param group pointer to the EC_GROUP object + * \param params pointer to an existing ECPARAMETERS object or NULL + * \return pointer to the new ECPARAMETERS object or NULL + * if an error occurred. + */ +ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, + ECPARAMETERS *params); + +/** Creates a new EC_GROUP object from an ECPKPARAMETERS object + * \param params pointer to an existing ECPKPARAMETERS object, or NULL + * \return newly created EC_GROUP object with specified curve, or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); + +/** Creates an ECPKPARAMETERS object for the the given EC_GROUP object. + * \param group pointer to the EC_GROUP object + * \param params pointer to an existing ECPKPARAMETERS object or NULL + * \return pointer to the new ECPKPARAMETERS object or NULL + * if an error occurred. + */ +ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, + ECPKPARAMETERS *params); + /********************************************************************/ /* handling of internal curves */ /********************************************************************/ @@ -404,7 +386,7 @@ typedef struct { /* * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r ist not zero + * available curves or zero if a error occurred. In case r is not zero, * nitems EC_builtin_curve structures are filled with the data of the first * nitems internal groups */ @@ -436,7 +418,7 @@ void EC_POINT_clear_free(EC_POINT *point); /** Copies EC_POINT object * \param dst destination EC_POINT object * \param src source EC_POINT object - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); @@ -457,7 +439,7 @@ const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); /** Sets a point to infinity (neutral element) * \param group underlying EC_GROUP object * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); @@ -468,7 +450,7 @@ int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); * \param y BIGNUM with the y-coordinate * \param z BIGNUM with the z-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, @@ -482,7 +464,7 @@ int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, * \param y BIGNUM for the y-coordinate * \param z BIGNUM for the z-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, @@ -495,7 +477,7 @@ int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, * \param x BIGNUM with the x-coordinate * \param y BIGNUM with the y-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, @@ -507,7 +489,7 @@ int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, * \param x BIGNUM for the x-coordinate * \param y BIGNUM for the y-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, @@ -519,7 +501,7 @@ int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, * \param x BIGNUM with x-coordinate * \param y_bit integer with the y-Bit (either 0 or 1) * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, @@ -531,7 +513,7 @@ int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, * \param x BIGNUM with the x-coordinate * \param y BIGNUM with the y-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, @@ -543,7 +525,7 @@ int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, * \param x BIGNUM for the x-coordinate * \param y BIGNUM for the y-coordinate * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, @@ -555,7 +537,7 @@ int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, * \param x BIGNUM with x-coordinate * \param y_bit integer with the y-Bit (either 0 or 1) * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, @@ -581,11 +563,23 @@ size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, * \param buf memory buffer with the encoded ec point * \param len length of the encoded ec point * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, const unsigned char *buf, size_t len, BN_CTX *ctx); +/** Encodes an EC_POINT object to an allocated octet string + * \param group underlying EC_GROUP object + * \param point EC_POINT object + * \param form point conversion form + * \param pbuf returns pointer to allocated buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, + point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); + /* other interfaces to point2oct/oct2point: */ BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BIGNUM *, BN_CTX *); @@ -606,7 +600,7 @@ EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, * \param a EC_POINT object with the first summand * \param b EC_POINT object with the second summand * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); @@ -616,7 +610,7 @@ int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, * \param r EC_POINT object for the result (r = 2 * a) * \param a EC_POINT object * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx); @@ -625,7 +619,7 @@ int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, * \param group underlying EC_GROUP object * \param a EC_POINT object to be inverted (it's used for the result as well) * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); @@ -640,7 +634,7 @@ int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); * \param group underlying EC_GROUP object * \param point EC_POINT object to check * \param ctx BN_CTX object (optional) - * \return 1 if point if on the curve and 0 otherwise + * \return 1 if the point is on the curve, 0 if not, or -1 on error */ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx); @@ -650,7 +644,7 @@ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, * \param a first EC_POINT object * \param b second EC_POINT object * \param ctx BN_CTX object (optional) - * \return 0 if both points are equal and a value != 0 otherwise + * \return 1 if the points are not equal, 0 if they are, or -1 on error */ int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); @@ -659,15 +653,15 @@ int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx); -/** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] +/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] * \param group underlying EC_GROUP object * \param r EC_POINT object for the result * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number futher summands + * \param num number further summands * \param p array of size num of EC_POINT objects * \param m array of size num of BIGNUM objects * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], @@ -680,7 +674,7 @@ int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, * \param q EC_POINT object with the first factor of the second summand * \param m BIGNUM with the second factor of the second summand * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); @@ -688,7 +682,7 @@ int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, /** Stores multiples of generator for faster point multiplication * \param group EC_GROUP object * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured + * \return 1 on success and 0 if an error occurred */ int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); @@ -702,6 +696,11 @@ int EC_GROUP_have_precompute_mult(const EC_GROUP *group); /* ASN1 stuff */ /********************************************************************/ +DECLARE_ASN1_ITEM(ECPKPARAMETERS) +DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) +DECLARE_ASN1_ITEM(ECPARAMETERS) +DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) + /* * EC_GROUP_get_basis_type() returns the NID of the basis type used to * represent the field elements @@ -713,9 +712,8 @@ int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, unsigned int *k2, unsigned int *k3); # endif -# define OPENSSL_EC_NAMED_CURVE 0x001 - -typedef struct ecpk_parameters_st ECPKPARAMETERS; +# define OPENSSL_EC_EXPLICIT_CURVE 0x000 +# define OPENSSL_EC_NAMED_CURVE 0x001 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); @@ -727,10 +725,8 @@ int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); # define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ (unsigned char *)(x)) -# ifndef OPENSSL_NO_BIO int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); -# endif -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); # endif @@ -738,8 +734,6 @@ int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); /* EC_KEY functions */ /********************************************************************/ -typedef struct ec_key_st EC_KEY; - /* some values for the encoding_flag */ # define EC_PKEY_NO_PARAMETERS 0x001 # define EC_PKEY_NO_PUBKEY 0x002 @@ -747,6 +741,7 @@ typedef struct ec_key_st EC_KEY; /* some values for the flags field */ # define EC_FLAG_NON_FIPS_ALLOW 0x1 # define EC_FLAG_FIPS_CHECKED 0x2 +# define EC_FLAG_COFACTOR_ECDH 0x1000 /** Creates a new EC_KEY object. * \return EC_KEY object or NULL if an error occurred. @@ -836,23 +831,12 @@ unsigned EC_KEY_get_enc_flags(const EC_KEY *key); void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); -/* functions to set/get method specific data */ -void *EC_KEY_get_key_method_data(EC_KEY *key, - void *(*dup_func) (void *), - void (*free_func) (void *), - void (*clear_free_func) (void *)); -/** Sets the key method data of an EC_KEY object, if none has yet been set. - * \param key EC_KEY object - * \param data opaque data to install. - * \param dup_func a function that duplicates |data|. - * \param free_func a function that frees |data|. - * \param clear_free_func a function that wipes and frees |data|. - * \return the previously set data pointer, or NULL if |data| was inserted. - */ -void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, - void *(*dup_func) (void *), - void (*free_func) (void *), - void (*clear_free_func) (void *)); + +#define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) +int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); +void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); + /* wrapper functions for the underlying EC_GROUP object */ void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); @@ -876,8 +860,14 @@ int EC_KEY_generate_key(EC_KEY *key); */ int EC_KEY_check_key(const EC_KEY *key); -/** Sets a public key from affine coordindates performing - * neccessary NIST PKV tests. +/** Indicates if an EC_KEY can be used for signing. + * \param eckey the EC_KEY object + * \return 1 if can can sign and 0 otherwise. + */ +int EC_KEY_can_sign(const EC_KEY *eckey); + +/** Sets a public key from affine coordinates performing + * necessary NIST PKV tests. * \param key the EC_KEY object * \param x public key x coordinate * \param y public key y coordinate @@ -886,6 +876,53 @@ int EC_KEY_check_key(const EC_KEY *key); int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y); +/** Encodes an EC_KEY public key to an allocated octet string + * \param key key to encode + * \param form point conversion form + * \param pbuf returns pointer to allocated buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); + +/** Decodes a EC_KEY public key from a octet string + * \param key key to decode + * \param buf memory buffer with the encoded ec point + * \param len length of the encoded ec point + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ + +int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, + BN_CTX *ctx); + +/** Decodes an EC_KEY private key from an octet string + * \param key key to decode + * \param buf memory buffer with the encoded private key + * \param len length of the encoded key + * \return 1 on success and 0 if an error occurred + */ + +int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); + +/** Encodes a EC_KEY private key to an octet string + * \param key key to encode + * \param buf memory buffer for the result. If NULL the function returns + * required buffer size. + * \param len length of the memory buffer + * \return the length of the encoded octet string or 0 if an error occurred + */ + +size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); + +/** Encodes an EC_KEY private key to an allocated octet string + * \param eckey key to encode + * \param pbuf returns pointer to allocated buffer + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); + /********************************************************************/ /* de- and encoding functions for SEC1 ECPrivateKey */ /********************************************************************/ @@ -920,7 +957,7 @@ int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); /** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec paramters to encode + * \param key the EC_KEY object with ec parameters to encode * \param out the buffer for the result (if NULL the function returns number * of bytes needed). * \return 1 on success and 0 if an error occurred. @@ -947,9 +984,8 @@ EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); * of bytes needed). * \return 1 on success and 0 if an error occurred */ -int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); +int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); -# ifndef OPENSSL_NO_BIO /** Prints out the ec parameters on human readable form. * \param bp BIO object to which the information is printed * \param key EC_KEY object @@ -965,8 +1001,7 @@ int ECParameters_print(BIO *bp, const EC_KEY *key); */ int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); -# endif -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO /** Prints out the ec parameters on human readable form. * \param fp file descriptor to which the information is printed * \param key EC_KEY object @@ -984,6 +1019,254 @@ int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); # endif +const EC_KEY_METHOD *EC_KEY_OpenSSL(void); +const EC_KEY_METHOD *EC_KEY_get_default_method(void); +void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); +const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); +int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); +EC_KEY *EC_KEY_new_method(ENGINE *engine); + +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + const EC_KEY *ecdh, + void *(*KDF) (const void *in, size_t inlen, + void *out, size_t *outlen)); + +typedef struct ECDSA_SIG_st ECDSA_SIG; + +/** Allocates and initialize a ECDSA_SIG structure + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_SIG_new(void); + +/** frees a ECDSA_SIG structure + * \param sig pointer to the ECDSA_SIG structure + */ +void ECDSA_SIG_free(ECDSA_SIG *sig); + +/** DER encode content of ECDSA_SIG object (note: this function modifies *pp + * (*pp += length of the DER encoded signature)). + * \param sig pointer to the ECDSA_SIG object + * \param pp pointer to a unsigned char pointer for the output or NULL + * \return the length of the DER encoded ECDSA_SIG object or 0 + */ +int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); + +/** Decodes a DER encoded ECDSA signature (note: this function changes *pp + * (*pp += len)). + * \param sig pointer to ECDSA_SIG pointer (may be NULL) + * \param pp memory buffer with the DER encoded signature + * \param len length of the buffer + * \return pointer to the decoded ECDSA_SIG structure (or NULL) + */ +ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); + +/** Accessor for r and s fields of ECDSA_SIG + * \param sig pointer to ECDSA_SIG pointer + * \param pr pointer to BIGNUM pointer for r (may be NULL) + * \param ps pointer to BIGNUM pointer for s (may be NULL) + */ +void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); + +/** Setter for r and s fields of ECDSA_SIG + * \param sig pointer to ECDSA_SIG pointer + * \param r pointer to BIGNUM for r (may be NULL) + * \param s pointer to BIGNUM for s (may be NULL) + */ +int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); + +/** Computes the ECDSA signature of the given hash value using + * the supplied private key and returns the created signature. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, + EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optional), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, + const BIGNUM *kinv, const BIGNUM *rp, + EC_KEY *eckey); + +/** Verifies that the supplied signature is a valid ECDSA + * signature of the supplied hash value using the supplied public key. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param sig ECDSA_SIG structure + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); + +/** Precompute parts of the signing operation + * \param eckey EC_KEY object containing a private EC key + * \param ctx BN_CTX object (optional) + * \param kinv BIGNUM pointer for the inverse of k + * \param rp BIGNUM pointer for x coordinate of k * generator + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig memory for the DER encoded created signature + * \param siglen pointer to the length of the returned signature + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig buffer to hold the DER encoded signature + * \param siglen pointer to the length of the returned signature + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optional), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); + +/** Verifies that the given signature is valid ECDSA signature + * of the supplied hash value using the specified public key. + * \param type this parameter is ignored + * \param dgst pointer to the hash value + * \param dgstlen length of the hash value + * \param sig pointer to the DER encoded signature + * \param siglen length of the DER encoded signature + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int siglen, EC_KEY *eckey); + +/** Returns the maximum length of the DER encoded signature + * \param eckey EC_KEY object + * \return numbers of bytes required for the DER encoded signature + */ +int ECDSA_size(const EC_KEY *eckey); + +/********************************************************************/ +/* EC_KEY_METHOD constructors, destructors, writers and accessors */ +/********************************************************************/ + +EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); +void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); +void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, + int (*init)(EC_KEY *key), + void (*finish)(EC_KEY *key), + int (*copy)(EC_KEY *dest, const EC_KEY *src), + int (*set_group)(EC_KEY *key, const EC_GROUP *grp), + int (*set_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (*set_public)(EC_KEY *key, + const EC_POINT *pub_key)); + +void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, + int (*keygen)(EC_KEY *key)); + +void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, + int (*ckey)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); + +void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, + int (*sign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); + +void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, + int (*verify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (*verify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, + int (**pinit)(EC_KEY *key), + void (**pfinish)(EC_KEY *key), + int (**pcopy)(EC_KEY *dest, const EC_KEY *src), + int (**pset_group)(EC_KEY *key, + const EC_GROUP *grp), + int (**pset_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (**pset_public)(EC_KEY *key, + const EC_POINT *pub_key)); + +void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, + int (**pkeygen)(EC_KEY *key)); + +void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, + int (**pck)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); + +void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, + int (**psign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); + +void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, + int (**pverify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (**pverify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + # define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) # ifndef __cplusplus @@ -1073,19 +1356,27 @@ int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_EC_strings(void); + +int ERR_load_EC_strings(void); /* Error codes for the EC functions. */ /* Function codes. */ # define EC_F_BN_TO_FELEM 224 -# define EC_F_COMPUTE_WNAF 143 # define EC_F_D2I_ECPARAMETERS 144 # define EC_F_D2I_ECPKPARAMETERS 145 # define EC_F_D2I_ECPRIVATEKEY 146 # define EC_F_DO_EC_KEY_PRINT 221 # define EC_F_ECDH_CMS_DECRYPT 238 # define EC_F_ECDH_CMS_SET_SHARED_INFO 239 +# define EC_F_ECDH_COMPUTE_KEY 246 +# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 +# define EC_F_ECDSA_DO_SIGN_EX 251 +# define EC_F_ECDSA_DO_VERIFY 252 +# define EC_F_ECDSA_SIGN_EX 254 +# define EC_F_ECDSA_SIGN_SETUP 248 +# define EC_F_ECDSA_SIG_NEW 265 +# define EC_F_ECDSA_VERIFY 253 # define EC_F_ECKEY_PARAM2TYPE 223 # define EC_F_ECKEY_PARAM_DECODE 212 # define EC_F_ECKEY_PRIV_DECODE 213 @@ -1101,19 +1392,12 @@ void ERR_load_EC_strings(void); # define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 # define EC_F_ECP_NISTZ256_POINTS_MUL 241 # define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_SET_WORDS 245 # define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECP_NIST_MOD_192 203 -# define EC_F_ECP_NIST_MOD_224 204 -# define EC_F_ECP_NIST_MOD_256 205 -# define EC_F_ECP_NIST_MOD_521 206 +# define EC_F_ECX_KEY_OP 266 +# define EC_F_ECX_PRIV_ENCODE 267 +# define EC_F_ECX_PUB_ENCODE 268 # define EC_F_EC_ASN1_GROUP2CURVE 153 # define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_ASN1_GROUP2PARAMETERS 155 -# define EC_F_EC_ASN1_GROUP2PKPARAMETERS 156 -# define EC_F_EC_ASN1_PARAMETERS2GROUP 157 -# define EC_F_EC_ASN1_PKPARAMETERS2GROUP 158 -# define EC_F_EC_EX_DATA_SET_DATA 211 # define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 # define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 # define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 @@ -1128,7 +1412,6 @@ void ERR_load_EC_strings(void); # define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 # define EC_F_EC_GFP_MONT_FIELD_SQR 132 # define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP 135 # define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 # define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 # define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 @@ -1143,44 +1426,44 @@ void ERR_load_EC_strings(void); # define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 # define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 # define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP 100 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR 101 # define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 # define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 # define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 # define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 # define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP 105 # define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP 128 # define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP 129 # define EC_F_EC_GROUP_CHECK 170 # define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 # define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET0_GENERATOR 139 -# define EC_F_EC_GROUP_GET_COFACTOR 140 # define EC_F_EC_GROUP_GET_CURVE_GF2M 172 # define EC_F_EC_GROUP_GET_CURVE_GFP 130 # define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ORDER 141 +# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 +# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 # define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 # define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 # define EC_F_EC_GROUP_NEW 108 # define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 # define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_PRECOMPUTE_MULT 142 +# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 +# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 # define EC_F_EC_GROUP_SET_CURVE_GF2M 176 # define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_EXTRA_DATA 110 # define EC_F_EC_GROUP_SET_GENERATOR 111 # define EC_F_EC_KEY_CHECK_KEY 177 # define EC_F_EC_KEY_COPY 178 # define EC_F_EC_KEY_GENERATE_KEY 179 # define EC_F_EC_KEY_NEW 182 +# define EC_F_EC_KEY_NEW_METHOD 245 +# define EC_F_EC_KEY_OCT2PRIV 255 # define EC_F_EC_KEY_PRINT 180 # define EC_F_EC_KEY_PRINT_FP 181 +# define EC_F_EC_KEY_PRIV2OCT 256 # define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 +# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 +# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 +# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 # define EC_F_EC_POINTS_MAKE_AFFINE 136 # define EC_F_EC_POINT_ADD 112 # define EC_F_EC_POINT_CMP 113 @@ -1193,7 +1476,6 @@ void ERR_load_EC_strings(void); # define EC_F_EC_POINT_IS_AT_INFINITY 118 # define EC_F_EC_POINT_IS_ON_CURVE 119 # define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_MUL 184 # define EC_F_EC_POINT_NEW 121 # define EC_F_EC_POINT_OCT2POINT 122 # define EC_F_EC_POINT_POINT2OCT 123 @@ -1203,7 +1485,6 @@ void ERR_load_EC_strings(void); # define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 # define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 # define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_DUP 207 # define EC_F_EC_PRE_COMP_NEW 196 # define EC_F_EC_WNAF_MUL 187 # define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 @@ -1216,6 +1497,10 @@ void ERR_load_EC_strings(void); # define EC_F_NISTP521_PRE_COMP_NEW 237 # define EC_F_O2I_ECPUBLICKEY 152 # define EC_F_OLD_EC_PRIV_DECODE 222 +# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 +# define EC_F_OSSL_ECDSA_SIGN_SIG 249 +# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 +# define EC_F_PKEY_ECX_DERIVE 269 # define EC_F_PKEY_EC_CTRL 197 # define EC_F_PKEY_EC_CTRL_STR 198 # define EC_F_PKEY_EC_DERIVE 217 @@ -1225,10 +1510,12 @@ void ERR_load_EC_strings(void); /* Reason codes. */ # define EC_R_ASN1_ERROR 115 -# define EC_R_ASN1_UNKNOWN_FIELD 116 +# define EC_R_BAD_SIGNATURE 156 # define EC_R_BIGNUM_OUT_OF_RANGE 144 # define EC_R_BUFFER_TOO_SMALL 100 # define EC_R_COORDINATES_OUT_OF_RANGE 146 +# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 +# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 # define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 # define EC_R_DECODE_ERROR 142 # define EC_R_DISCRIMINANT_IS_ZERO 118 @@ -1248,6 +1535,9 @@ void ERR_load_EC_strings(void); # define EC_R_INVALID_FIELD 103 # define EC_R_INVALID_FORM 104 # define EC_R_INVALID_GROUP_ORDER 122 +# define EC_R_INVALID_KEY 116 +# define EC_R_INVALID_OUTPUT_LENGTH 161 +# define EC_R_INVALID_PEER_KEY 133 # define EC_R_INVALID_PENTANOMIAL_BASIS 132 # define EC_R_INVALID_PRIVATE_KEY 123 # define EC_R_INVALID_TRINOMIAL_BASIS 137 @@ -1255,17 +1545,20 @@ void ERR_load_EC_strings(void); # define EC_R_KEYS_NOT_SET 140 # define EC_R_MISSING_PARAMETERS 124 # define EC_R_MISSING_PRIVATE_KEY 125 +# define EC_R_NEED_NEW_SETUP_VALUES 157 # define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_A_SUPPORTED_NIST_PRIME 136 # define EC_R_NOT_IMPLEMENTED 126 # define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_FIELD_MOD 133 # define EC_R_NO_PARAMETERS_SET 139 +# define EC_R_NO_PRIVATE_VALUE 154 +# define EC_R_OPERATION_NOT_SUPPORTED 152 # define EC_R_PASSED_NULL_PARAMETER 134 # define EC_R_PEER_KEY_ERROR 149 # define EC_R_PKPARAMETERS2GROUP_FAILURE 127 +# define EC_R_POINT_ARITHMETIC_FAILURE 155 # define EC_R_POINT_AT_INFINITY 106 # define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 # define EC_R_SHARED_INFO_ERROR 150 # define EC_R_SLOT_FULL 108 # define EC_R_UNDEFINED_GENERATOR 113 @@ -1276,7 +1569,8 @@ void ERR_load_EC_strings(void); # define EC_R_WRONG_CURVE_PARAMETERS 145 # define EC_R_WRONG_ORDER 130 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/ecdh.h b/libs/mac/include/openssl/ecdh.h index 25348b30..681f3d5e 100644 --- a/libs/mac/include/openssl/ecdh.h +++ b/libs/mac/include/openssl/ecdh.h @@ -1,134 +1,10 @@ -/* crypto/ecdh/ecdh.h */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * The Elliptic Curve Public-Key Crypto Library (ECC Code) included - * herein is developed by SUN MICROSYSTEMS, INC., and is contributed - * to the OpenSSL project. - * - * The ECC Code is licensed pursuant to the OpenSSL open source - * license provided below. - * - * The ECDH software is originally written by Douglas Stebila of - * Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_ECDH_H -# define HEADER_ECDH_H - -# include - -# ifdef OPENSSL_NO_ECDH -# error ECDH is disabled. -# endif - -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define EC_FLAG_COFACTOR_ECDH 0x1000 - -const ECDH_METHOD *ECDH_OpenSSL(void); - -void ECDH_set_default_method(const ECDH_METHOD *); -const ECDH_METHOD *ECDH_get_default_method(void); -int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); - -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, - void *out, size_t *outlen)); - -int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new - *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); -void *ECDH_get_ex_data(EC_KEY *d, int idx); - -int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - const unsigned char *sinfo, size_t sinfolen, - const EVP_MD *md); - -/* BEGIN ERROR CODES */ /* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -void ERR_load_ECDH_strings(void); -/* Error codes for the ECDH functions. */ - -/* Function codes. */ -# define ECDH_F_ECDH_CHECK 102 -# define ECDH_F_ECDH_COMPUTE_KEY 100 -# define ECDH_F_ECDH_DATA_NEW_METHOD 101 - -/* Reason codes. */ -# define ECDH_R_KDF_FAILED 102 -# define ECDH_R_NON_FIPS_METHOD 103 -# define ECDH_R_NO_PRIVATE_VALUE 100 -# define ECDH_R_POINT_ARITHMETIC_FAILURE 101 - -#ifdef __cplusplus -} -#endif -#endif +#include diff --git a/libs/mac/include/openssl/ecdsa.h b/libs/mac/include/openssl/ecdsa.h index a6f0930f..681f3d5e 100644 --- a/libs/mac/include/openssl/ecdsa.h +++ b/libs/mac/include/openssl/ecdsa.h @@ -1,335 +1,10 @@ -/* crypto/ecdsa/ecdsa.h */ -/** - * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions - * \author Written by Nils Larsch for the OpenSSL project - */ -/* ==================================================================== - * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_ECDSA_H -# define HEADER_ECDSA_H - -# include - -# ifdef OPENSSL_NO_ECDSA -# error ECDSA is disabled. -# endif - -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ECDSA_SIG_st { - BIGNUM *r; - BIGNUM *s; -} ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** DER encode content of ECDSA_SIG object (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or 0 - */ -int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); - -/** Decodes a DER encoded ECDSA signature (note: this function changes *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ -ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); - -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, - EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optioanl), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, - const BIGNUM *kinv, const BIGNUM *rp, - EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -const ECDSA_METHOD *ECDSA_OpenSSL(void); - -/** Sets the default ECDSA method - * \param meth new default ECDSA_METHOD - */ -void ECDSA_set_default_method(const ECDSA_METHOD *meth); - -/** Returns the default ECDSA method - * \return pointer to ECDSA_METHOD structure containing the default method - */ -const ECDSA_METHOD *ECDSA_get_default_method(void); - -/** Sets method to be used for the ECDSA operations - * \param eckey EC_KEY object - * \param meth new method - * \return 1 on success and 0 otherwise - */ -int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -int ECDSA_size(const EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optioanl), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int siglen, EC_KEY *eckey); - -/* the standard ex_data functions */ -int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new - *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); -void *ECDSA_get_ex_data(EC_KEY *d, int idx); - -/** Allocates and initialize a ECDSA_METHOD structure - * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) - * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred - */ - -ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); - -/** frees a ECDSA_METHOD structure - * \param ecdsa_method pointer to the ECDSA_METHOD structure - */ -void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); - -/** Sets application specific data in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param app application specific data to set - */ - -void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); - -/** Returns application specific data from a ECDSA_METHOD structure - * \param ecdsa_method pointer to ECDSA_METHOD structure - * \return pointer to application specific data. - */ - -void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); - -/** Set the ECDSA_do_sign function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_do_sign a funtion of type ECDSA_do_sign - */ - -void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, - ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char - *dgst, int dgst_len, - const BIGNUM *inv, - const BIGNUM *rp, - EC_KEY *eckey)); - -/** Set the ECDSA_sign_setup function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup - */ - -void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, - int (*ecdsa_sign_setup) (EC_KEY *eckey, - BN_CTX *ctx, - BIGNUM **kinv, - BIGNUM **r)); - -/** Set the ECDSA_do_verify function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_do_verify a funtion of type ECDSA_do_verify - */ - -void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, - int (*ecdsa_do_verify) (const unsigned char - *dgst, int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); - -/** Set the flags field in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param flags flags value to set - */ - -void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); - -/** Set the name field in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param name name to set - */ - -/* BEGIN ERROR CODES */ /* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -void ERR_load_ECDSA_strings(void); -/* Error codes for the ECDSA functions. */ - -/* Function codes. */ -# define ECDSA_F_ECDSA_CHECK 104 -# define ECDSA_F_ECDSA_DATA_NEW_METHOD 100 -# define ECDSA_F_ECDSA_DO_SIGN 101 -# define ECDSA_F_ECDSA_DO_VERIFY 102 -# define ECDSA_F_ECDSA_METHOD_NEW 105 -# define ECDSA_F_ECDSA_SIGN_SETUP 103 - -/* Reason codes. */ -# define ECDSA_R_BAD_SIGNATURE 100 -# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101 -# define ECDSA_R_ERR_EC_LIB 102 -# define ECDSA_R_MISSING_PARAMETERS 103 -# define ECDSA_R_NEED_NEW_SETUP_VALUES 106 -# define ECDSA_R_NON_FIPS_METHOD 107 -# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104 -# define ECDSA_R_SIGNATURE_MALLOC_FAILED 105 - -#ifdef __cplusplus -} -#endif -#endif +#include diff --git a/libs/mac/include/openssl/engine.h b/libs/mac/include/openssl/engine.h index bd7b5914..26cf7148 100644 --- a/libs/mac/include/openssl/engine.h +++ b/libs/mac/include/openssl/engine.h @@ -1,61 +1,12 @@ -/* openssl/engine.h */ /* - * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * + * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * ECDH support in OpenSSL originally developed by @@ -67,40 +18,23 @@ # include -# ifdef OPENSSL_NO_ENGINE -# error ENGINE is disabled. -# endif - -# ifndef OPENSSL_NO_DEPRECATED +# ifndef OPENSSL_NO_ENGINE +# if OPENSSL_API_COMPAT < 0x10100000L # include -# ifndef OPENSSL_NO_RSA -# include -# endif -# ifndef OPENSSL_NO_DSA -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# endif -# ifndef OPENSSL_NO_ECDH -# include -# endif -# ifndef OPENSSL_NO_ECDSA -# include -# endif +# include +# include +# include +# include # include # include # include # endif - # include # include - # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif +# endif /* * These flags are used to control combinations of algorithm (methods) by @@ -110,13 +44,11 @@ extern "C" { # define ENGINE_METHOD_DSA (unsigned int)0x0002 # define ENGINE_METHOD_DH (unsigned int)0x0004 # define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_ECDH (unsigned int)0x0010 -# define ENGINE_METHOD_ECDSA (unsigned int)0x0020 # define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 # define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_STORE (unsigned int)0x0100 # define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 # define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 +# define ENGINE_METHOD_EC (unsigned int)0x0800 /* Obvious all-or-nothing cases. */ # define ENGINE_METHOD_ALL (unsigned int)0xFFFF # define ENGINE_METHOD_NONE (unsigned int)0x0000 @@ -391,29 +323,25 @@ int ENGINE_add(ENGINE *e); int ENGINE_remove(ENGINE *e); /* Retrieve an engine from the list by its unique "id" value. */ ENGINE *ENGINE_by_id(const char *id); -/* Add all the built-in engines. */ -void ENGINE_load_openssl(void); -void ENGINE_load_dynamic(void); + +#if OPENSSL_API_COMPAT < 0x10100000L +# define ENGINE_load_openssl() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) +# define ENGINE_load_dynamic() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) # ifndef OPENSSL_NO_STATIC_ENGINE -void ENGINE_load_4758cca(void); -void ENGINE_load_aep(void); -void ENGINE_load_atalla(void); -void ENGINE_load_chil(void); -void ENGINE_load_cswift(void); -void ENGINE_load_nuron(void); -void ENGINE_load_sureware(void); -void ENGINE_load_ubsec(void); -void ENGINE_load_padlock(void); -void ENGINE_load_capi(void); -# ifndef OPENSSL_NO_GMP -void ENGINE_load_gmp(void); -# endif -# ifndef OPENSSL_NO_GOST -void ENGINE_load_gost(void); -# endif +# define ENGINE_load_padlock() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) +# define ENGINE_load_capi() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) +# define ENGINE_load_afalg() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) # endif -void ENGINE_load_cryptodev(void); -void ENGINE_load_rdrand(void); +# define ENGINE_load_cryptodev() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) +# define ENGINE_load_rdrand() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) +#endif void ENGINE_load_builtin_engines(void); /* @@ -428,8 +356,7 @@ void ENGINE_set_table_flags(unsigned int flags); * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) * ENGINE_unregister_***(e) - unregister the implementation from 'e' * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required, so - * ENGINE_cleanup() will reverse any "register" operations. + * Cleanup is automatically registered from each table when required. */ int ENGINE_register_RSA(ENGINE *e); @@ -440,13 +367,9 @@ int ENGINE_register_DSA(ENGINE *e); void ENGINE_unregister_DSA(ENGINE *e); void ENGINE_register_all_DSA(void); -int ENGINE_register_ECDH(ENGINE *e); -void ENGINE_unregister_ECDH(ENGINE *e); -void ENGINE_register_all_ECDH(void); - -int ENGINE_register_ECDSA(ENGINE *e); -void ENGINE_unregister_ECDSA(ENGINE *e); -void ENGINE_register_all_ECDSA(void); +int ENGINE_register_EC(ENGINE *e); +void ENGINE_unregister_EC(ENGINE *e); +void ENGINE_register_all_EC(void); int ENGINE_register_DH(ENGINE *e); void ENGINE_unregister_DH(ENGINE *e); @@ -456,10 +379,6 @@ int ENGINE_register_RAND(ENGINE *e); void ENGINE_unregister_RAND(ENGINE *e); void ENGINE_register_all_RAND(void); -int ENGINE_register_STORE(ENGINE *e); -void ENGINE_unregister_STORE(ENGINE *e); -void ENGINE_register_all_STORE(void); - int ENGINE_register_ciphers(ENGINE *e); void ENGINE_unregister_ciphers(ENGINE *e); void ENGINE_register_all_ciphers(void); @@ -554,11 +473,9 @@ int ENGINE_set_id(ENGINE *e, const char *id); int ENGINE_set_name(ENGINE *e, const char *name); int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth); -int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth); +int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth); int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); @@ -576,19 +493,18 @@ int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); int ENGINE_set_flags(ENGINE *e, int flags); int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); /* These functions allow control over any per-structure ENGINE data. */ -int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); +#define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); void *ENGINE_get_ex_data(const ENGINE *e, int idx); +#if OPENSSL_API_COMPAT < 0x10100000L /* - * This function cleans up anything that needs it. Eg. the ENGINE_add() - * function automatically ensures the list cleanup function is registered to - * be called from ENGINE_cleanup(). Similarly, all ENGINE_register_*** - * functions ensure ENGINE_cleanup() will clean up after them. + * This function previously cleaned up anything that needs it. Auto-deinit will + * now take care of it so it is no longer required to call this function. */ -void ENGINE_cleanup(void); +# define ENGINE_cleanup() while(0) continue +#endif /* * These return values from within the ENGINE structure. These can be useful @@ -600,11 +516,9 @@ const char *ENGINE_get_id(const ENGINE *e); const char *ENGINE_get_name(const ENGINE *e); const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e); -const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e); +const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); const DH_METHOD *ENGINE_get_DH(const ENGINE *e); const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e); ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); @@ -679,8 +593,7 @@ int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, ENGINE *ENGINE_get_default_RSA(void); /* Same for the other "methods" */ ENGINE *ENGINE_get_default_DSA(void); -ENGINE *ENGINE_get_default_ECDH(void); -ENGINE *ENGINE_get_default_ECDSA(void); +ENGINE *ENGINE_get_default_EC(void); ENGINE *ENGINE_get_default_DH(void); ENGINE *ENGINE_get_default_RAND(void); /* @@ -702,8 +615,7 @@ int ENGINE_set_default_RSA(ENGINE *e); int ENGINE_set_default_string(ENGINE *e, const char *def_list); /* Same for the other "methods" */ int ENGINE_set_default_DSA(ENGINE *e); -int ENGINE_set_default_ECDH(ENGINE *e); -int ENGINE_set_default_ECDSA(ENGINE *e); +int ENGINE_set_default_EC(ENGINE *e); int ENGINE_set_default_DH(ENGINE *e); int ENGINE_set_default_RAND(ENGINE *e); int ENGINE_set_default_ciphers(ENGINE *e); @@ -730,12 +642,12 @@ void ENGINE_add_conf_module(void); /**************************/ /* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000 +# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 /* * Binary versions older than this are too old for us (whether we're a loader * or a loadee) */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000 +# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 /* * When compiling an ENGINE entirely as an external shared library, loadable @@ -748,40 +660,22 @@ void ENGINE_add_conf_module(void); * same static data as the calling application (or library), and thus whether * these callbacks need to be set or not. */ -typedef void *(*dyn_MEM_malloc_cb) (size_t); -typedef void *(*dyn_MEM_realloc_cb) (void *, size_t); -typedef void (*dyn_MEM_free_cb) (void *); +typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); +typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); +typedef void (*dyn_MEM_free_fn) (void *, const char *, int); typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_cb malloc_cb; - dyn_MEM_realloc_cb realloc_cb; - dyn_MEM_free_cb free_cb; + dyn_MEM_malloc_fn malloc_fn; + dyn_MEM_realloc_fn realloc_fn; + dyn_MEM_free_fn free_fn; } dynamic_MEM_fns; /* * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependant code) can simplify a bit?? + * use these types so we (and any other dependent code) can simplify a bit?? */ -typedef void (*dyn_lock_locking_cb) (int, int, const char *, int); -typedef int (*dyn_lock_add_lock_cb) (int *, int, int, const char *, int); -typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb) (const char *, - int); -typedef void (*dyn_dynlock_lock_cb) (int, struct CRYPTO_dynlock_value *, - const char *, int); -typedef void (*dyn_dynlock_destroy_cb) (struct CRYPTO_dynlock_value *, - const char *, int); -typedef struct st_dynamic_LOCK_fns { - dyn_lock_locking_cb lock_locking_cb; - dyn_lock_add_lock_cb lock_add_lock_cb; - dyn_dynlock_create_cb dynlock_create_cb; - dyn_dynlock_lock_cb dynlock_lock_cb; - dyn_dynlock_destroy_cb dynlock_destroy_cb; -} dynamic_LOCK_fns; /* The top-level structure */ typedef struct st_dynamic_fns { void *static_state; - const ERR_FNS *err_fns; - const CRYPTO_EX_DATA_IMPL *ex_data_fns; dynamic_MEM_fns mem_fns; - dynamic_LOCK_fns lock_fns; } dynamic_fns; /* @@ -800,7 +694,7 @@ typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); # define IMPLEMENT_DYNAMIC_CHECK_FN() \ OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ + if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ return 0; } /* @@ -828,21 +722,13 @@ typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ OPENSSL_EXPORT \ int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \ - fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \ - return 0; \ - CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \ - CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \ - CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \ - CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \ - CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \ - if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \ - return 0; \ - if(!ERR_set_implementation(fns->err_fns)) return 0; \ + if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ + CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ + fns->mem_fns.realloc_fn, \ + fns->mem_fns.free_fn); \ skip_cbs: \ - if(!fn(e,id)) return 0; \ - return 1; } + if (!fn(e, id)) return 0; \ + return 1; } /* * If the loading application (or library) and the loaded ENGINE library @@ -858,7 +744,7 @@ typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, void *ENGINE_get_static_state(void); # if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) -void ENGINE_setup_bsd_cryptodev(void); +DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) # endif /* BEGIN ERROR CODES */ @@ -866,7 +752,8 @@ void ENGINE_setup_bsd_cryptodev(void); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_ENGINE_strings(void); + +int ERR_load_ENGINE_strings(void); /* Error codes for the ENGINE functions. */ @@ -882,10 +769,10 @@ void ERR_load_ENGINE_strings(void); # define ENGINE_F_ENGINE_CTRL_CMD 178 # define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 # define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_FREE_UTIL 108 # define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177 # define ENGINE_F_ENGINE_GET_DIGEST 186 +# define ENGINE_F_ENGINE_GET_FIRST 195 +# define ENGINE_F_ENGINE_GET_LAST 196 # define ENGINE_F_ENGINE_GET_NEXT 115 # define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 # define ENGINE_F_ENGINE_GET_PKEY_METH 192 @@ -897,19 +784,17 @@ void ERR_load_ENGINE_strings(void); # define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 # define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 # define ENGINE_F_ENGINE_NEW 122 +# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 # define ENGINE_F_ENGINE_REMOVE 123 # define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126 # define ENGINE_F_ENGINE_SET_ID 129 # define ENGINE_F_ENGINE_SET_NAME 130 # define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOAD_KEY 152 # define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 # define ENGINE_F_ENGINE_UP_REF 190 # define ENGINE_F_INT_CTRL_HELPER 172 # define ENGINE_F_INT_ENGINE_CONFIGURE 188 # define ENGINE_F_INT_ENGINE_MODULE_INIT 187 -# define ENGINE_F_LOG_MESSAGE 141 /* Reason codes. */ # define ENGINE_R_ALREADY_LOADED 100 @@ -919,8 +804,6 @@ void ERR_load_ENGINE_strings(void); # define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 # define ENGINE_R_CONFLICTING_ENGINE_ID 103 # define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DH_NOT_IMPLEMENTED 139 -# define ENGINE_R_DSA_NOT_IMPLEMENTED 140 # define ENGINE_R_DSO_FAILURE 104 # define ENGINE_R_DSO_NOT_FOUND 132 # define ENGINE_R_ENGINES_SECTION_ERROR 148 @@ -930,7 +813,6 @@ void ERR_load_ENGINE_strings(void); # define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 # define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 # define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_GET_HANDLE_FAILED 107 # define ENGINE_R_ID_OR_NAME_MISSING 108 # define ENGINE_R_INIT_FAILED 109 # define ENGINE_R_INTERNAL_LIST_ERROR 110 @@ -946,15 +828,13 @@ void ERR_load_ENGINE_strings(void); # define ENGINE_R_NO_LOAD_FUNCTION 125 # define ENGINE_R_NO_REFERENCE 130 # define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_NO_UNLOAD_FUNCTION 126 -# define ENGINE_R_PROVIDE_PARAMETERS 113 -# define ENGINE_R_RSA_NOT_IMPLEMENTED 141 # define ENGINE_R_UNIMPLEMENTED_CIPHER 146 # define ENGINE_R_UNIMPLEMENTED_DIGEST 147 # define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 # define ENGINE_R_VERSION_INCOMPATIBILITY 145 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/err.h b/libs/mac/include/openssl/err.h index f4236562..29a261ce 100644 --- a/libs/mac/include/openssl/err.h +++ b/libs/mac/include/openssl/err.h @@ -1,112 +1,10 @@ -/* crypto/err/err.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_ERR_H @@ -114,18 +12,14 @@ # include -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO # include # include # endif # include -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_LHASH -# include -# endif +# include +# include #ifdef __cplusplus extern "C" { @@ -146,7 +40,6 @@ extern "C" { # define ERR_NUM_ERRORS 16 typedef struct err_state_st { - CRYPTO_THREADID tid; int err_flags[ERR_NUM_ERRORS]; unsigned long err_buffer[ERR_NUM_ERRORS]; char *err_data[ERR_NUM_ERRORS]; @@ -196,55 +89,57 @@ typedef struct err_state_st { # define ERR_LIB_CMS 46 # define ERR_LIB_TS 47 # define ERR_LIB_HMAC 48 -# define ERR_LIB_JPAKE 49 +/* # define ERR_LIB_JPAKE 49 */ +# define ERR_LIB_CT 50 +# define ERR_LIB_ASYNC 51 +# define ERR_LIB_KDF 52 # define ERR_LIB_USER 128 -# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),__FILE__,__LINE__) -# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),__FILE__,__LINE__) -# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),__FILE__,__LINE__) -# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),__FILE__,__LINE__) -# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),__FILE__,__LINE__) -# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),__FILE__,__LINE__) -# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),__FILE__,__LINE__) -# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),__FILE__,__LINE__) -# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),__FILE__,__LINE__) -# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),__FILE__,__LINE__) -# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),__FILE__,__LINE__) -# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),__FILE__,__LINE__) -# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),__FILE__,__LINE__) -# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),__FILE__,__LINE__) -# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) -# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),__FILE__,__LINE__) -# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),__FILE__,__LINE__) -# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),__FILE__,__LINE__) -# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),__FILE__,__LINE__) -# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),__FILE__,__LINE__) -# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),__FILE__,__LINE__) -# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),__FILE__,__LINE__) -# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__) -# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__) -# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__) -# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__) -# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),__FILE__,__LINE__) -# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__) -# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__) -# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),__FILE__,__LINE__) -# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),__FILE__,__LINE__) -# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),__FILE__,__LINE__) -# define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) +# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CTerr(f,r) ERR_PUT_error(ERR_LIB_CT,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ASYNCerr(f,r) ERR_PUT_error(ERR_LIB_ASYNC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -/* - * Borland C seems too stupid to be able to shift and do longs in the - * pre-processor :-( - */ -# define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)*0x1000000)| \ - ((((unsigned long)f)&0xfffL)*0x1000)| \ - ((((unsigned long)r)&0xfffL))) -# define ERR_GET_LIB(l) (int)((((unsigned long)l)>>24L)&0xffL) -# define ERR_GET_FUNC(l) (int)((((unsigned long)l)>>12L)&0xfffL) -# define ERR_GET_REASON(l) (int)((l)&0xfffL) -# define ERR_FATAL_ERROR(l) (int)((l)&ERR_R_FATAL) +# define ERR_PACK(l,f,r) ( \ + (((unsigned int)(l) & 0x0FF) << 24L) | \ + (((unsigned int)(f) & 0xFFF) << 12L) | \ + (((unsigned int)(r) & 0xFFF) ) ) +# define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) +# define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) +# define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) +# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) /* OS functions */ # define SYS_F_FOPEN 1 @@ -258,6 +153,12 @@ typedef struct err_state_st { # define SYS_F_WSASTARTUP 9/* Winsock stuff */ # define SYS_F_OPENDIR 10 # define SYS_F_FREAD 11 +# define SYS_F_GETADDRINFO 12 +# define SYS_F_GETNAMEINFO 13 +# define SYS_F_SETSOCKOPT 14 +# define SYS_F_GETSOCKOPT 15 +# define SYS_F_GETSOCKNAME 16 +# define SYS_F_GETHOSTBYNAME 17 # define SYS_F_FFLUSH 18 /* reasons */ @@ -272,30 +173,14 @@ typedef struct err_state_st { # define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ # define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ # define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ -# define ERR_R_CONF_LIB ERR_LIB_CONF/* 14 */ -# define ERR_R_CRYPTO_LIB ERR_LIB_CRYPTO/* 15 */ # define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ -# define ERR_R_SSL_LIB ERR_LIB_SSL/* 20 */ # define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ # define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ # define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ -# define ERR_R_PKCS12_LIB ERR_LIB_PKCS12/* 35 */ -# define ERR_R_RAND_LIB ERR_LIB_RAND/* 36 */ -# define ERR_R_DSO_LIB ERR_LIB_DSO/* 37 */ # define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ -# define ERR_R_OCSP_LIB ERR_LIB_OCSP/* 39 */ -# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ -# define ERR_R_COMP_LIB ERR_LIB_COMP/* 41 */ # define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ -# define ERR_R_ECDH_LIB ERR_LIB_ECDH/* 43 */ -# define ERR_R_STORE_LIB ERR_LIB_STORE/* 44 */ -# define ERR_R_TS_LIB ERR_LIB_TS/* 45 */ # define ERR_R_NESTED_ASN1_ERROR 58 -# define ERR_R_BAD_ASN1_OBJECT_HEADER 59 -# define ERR_R_BAD_GET_ASN1_OBJECT_CALL 60 -# define ERR_R_EXPECTING_AN_ASN1_SEQUENCE 61 -# define ERR_R_ASN1_LENGTH_MISMATCH 62 # define ERR_R_MISSING_ASN1_EOS 63 /* fatal error */ @@ -305,6 +190,8 @@ typedef struct err_state_st { # define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) # define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) # define ERR_R_DISABLED (5|ERR_R_FATAL) +# define ERR_R_INIT_FAIL (6|ERR_R_FATAL) +# define ERR_R_PASSED_INVALID_ARGUMENT (7) /* * 99 is the maximum possible ERR_R_... code, higher values are reserved for @@ -316,6 +203,8 @@ typedef struct ERR_string_data_st { const char *string; } ERR_STRING_DATA; +DEFINE_LHASH_OF(ERR_STRING_DATA); + void ERR_put_error(int lib, int func, int reason, const char *file, int line); void ERR_set_error_data(char *data, int flags); @@ -339,50 +228,31 @@ const char *ERR_func_error_string(unsigned long e); const char *ERR_reason_error_string(unsigned long e); void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), void *u); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO void ERR_print_errors_fp(FILE *fp); # endif -# ifndef OPENSSL_NO_BIO void ERR_print_errors(BIO *bp); -# endif void ERR_add_error_data(int num, ...); void ERR_add_error_vdata(int num, va_list args); -void ERR_load_strings(int lib, ERR_STRING_DATA str[]); -void ERR_unload_strings(int lib, ERR_STRING_DATA str[]); -void ERR_load_ERR_strings(void); -void ERR_load_crypto_strings(void); -void ERR_free_strings(void); +int ERR_load_strings(int lib, ERR_STRING_DATA str[]); +int ERR_unload_strings(int lib, ERR_STRING_DATA str[]); +int ERR_load_ERR_strings(void); -void ERR_remove_thread_state(const CRYPTO_THREADID *tid); -# ifndef OPENSSL_NO_DEPRECATED -void ERR_remove_state(unsigned long pid); /* if zero we look it up */ -# endif +#if OPENSSL_API_COMPAT < 0x10100000L +# define ERR_load_crypto_strings() \ + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +# define ERR_free_strings() while(0) continue +#endif + +DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) +DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) ERR_STATE *ERR_get_state(void); -# ifndef OPENSSL_NO_LHASH -LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); -LHASH_OF(ERR_STATE) *ERR_get_err_state_table(void); -void ERR_release_err_state_table(LHASH_OF(ERR_STATE) **hash); -# endif - int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); -/* Already defined in ossl_typ.h */ -/* typedef struct st_ERR_FNS ERR_FNS; */ -/* - * An application can use this function and provide the return value to - * loaded modules that should use the application's ERR state/functionality - */ -const ERR_FNS *ERR_get_implementation(void); -/* - * A loaded module should call this function prior to any ERR operations - * using the application's "ERR_FNS". - */ -int ERR_set_implementation(const ERR_FNS *fns); - #ifdef __cplusplus } #endif diff --git a/libs/mac/include/openssl/evp.h b/libs/mac/include/openssl/evp.h index cf1de15e..43c97a75 100644 --- a/libs/mac/include/openssl/evp.h +++ b/libs/mac/include/openssl/evp.h @@ -1,87 +1,20 @@ -/* crypto/evp/evp.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_ENVELOPE_H # define HEADER_ENVELOPE_H -# ifdef OPENSSL_ALGORITHM_DEFINES -# include -# else -# define OPENSSL_ALGORITHM_DEFINES -# include -# undef OPENSSL_ALGORITHM_DEFINES -# endif - +# include # include - # include +# include -# ifndef OPENSSL_NO_BIO -# include -# endif - -/*- -#define EVP_RC2_KEY_SIZE 16 -#define EVP_RC4_KEY_SIZE 16 -#define EVP_BLOWFISH_KEY_SIZE 16 -#define EVP_CAST5_KEY_SIZE 16 -#define EVP_RC5_32_12_16_KEY_SIZE 16 -*/ # define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ # define EVP_MAX_KEY_LENGTH 64 # define EVP_MAX_IV_LENGTH 16 @@ -117,92 +50,58 @@ # define EVP_PKEY_EC NID_X9_62_id_ecPublicKey # define EVP_PKEY_HMAC NID_hmac # define EVP_PKEY_CMAC NID_cmac +# define EVP_PKEY_TLS1_PRF NID_tls1_prf +# define EVP_PKEY_HKDF NID_hkdf #ifdef __cplusplus extern "C" { #endif -/* - * Type needs to be a bit field Sub-type needs to be for variations on the - * method, as in, can it do arbitrary encryption.... - */ -struct evp_pkey_st { - int type; - int save_type; - int references; - const EVP_PKEY_ASN1_METHOD *ameth; - ENGINE *engine; - union { - char *ptr; -# ifndef OPENSSL_NO_RSA - struct rsa_st *rsa; /* RSA */ -# endif -# ifndef OPENSSL_NO_DSA - struct dsa_st *dsa; /* DSA */ -# endif -# ifndef OPENSSL_NO_DH - struct dh_st *dh; /* DH */ -# endif -# ifndef OPENSSL_NO_EC - struct ec_key_st *ec; /* ECC */ -# endif - } pkey; - int save_parameters; - STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ -} /* EVP_PKEY */ ; - # define EVP_PKEY_MO_SIGN 0x0001 # define EVP_PKEY_MO_VERIFY 0x0002 # define EVP_PKEY_MO_ENCRYPT 0x0004 # define EVP_PKEY_MO_DECRYPT 0x0008 # ifndef EVP_MD -struct env_md_st { - int type; - int pkey_type; - int md_size; - unsigned long flags; - int (*init) (EVP_MD_CTX *ctx); - int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); - int (*final) (EVP_MD_CTX *ctx, unsigned char *md); - int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); - int (*cleanup) (EVP_MD_CTX *ctx); - /* FIXME: prototype these some day */ - int (*sign) (int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, void *key); - int (*verify) (int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, - void *key); - int required_pkey_type[5]; /* EVP_PKEY_xxx */ - int block_size; - int ctx_size; /* how big does the ctx->md_data need to be */ - /* control function */ - int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -} /* EVP_MD */ ; +EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); +EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); +void EVP_MD_meth_free(EVP_MD *md); -typedef int evp_sign_method(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigret, - unsigned int *siglen, void *key); -typedef int evp_verify_method(int type, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, void *key); +int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); +int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); +int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); +int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); +int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, + const void *data, + size_t count)); +int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, + unsigned char *md)); +int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, + const EVP_MD_CTX *from)); +int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2)); + +int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); +int EVP_MD_meth_get_result_size(const EVP_MD *md); +int EVP_MD_meth_get_app_datasize(const EVP_MD *md); +unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); +int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, + const void *data, + size_t count); +int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, + unsigned char *md); +int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, + const EVP_MD_CTX *from); +int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2); /* digest can only handle a single block */ # define EVP_MD_FLAG_ONESHOT 0x0001 -/* - * digest is a "clone" digest used - * which is a copy of an existing - * one for a specific public key type. - * EVP_dss1() etc - */ -# define EVP_MD_FLAG_PKEY_DIGEST 0x0002 - -/* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ - -# define EVP_MD_FLAG_PKEY_METHOD_SIGNATURE 0x0004 - /* DigestAlgorithmIdentifier flags... */ # define EVP_MD_FLAG_DIGALGID_MASK 0x0018 @@ -231,52 +130,8 @@ typedef int evp_verify_method(int type, const unsigned char *m, # define EVP_MD_CTRL_ALG_CTRL 0x1000 -# define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0} - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \ - (evp_verify_method *)DSA_verify, \ - {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \ - EVP_PKEY_DSA4,0} -# else -# define EVP_PKEY_DSA_method EVP_PKEY_NULL_method -# endif - -# ifndef OPENSSL_NO_ECDSA -# define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \ - (evp_verify_method *)ECDSA_verify, \ - {EVP_PKEY_EC,0,0,0} -# else -# define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method -# endif - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \ - (evp_verify_method *)RSA_verify, \ - {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} -# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \ - (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING, \ - (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING, \ - {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} -# else -# define EVP_PKEY_RSA_method EVP_PKEY_NULL_method -# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method EVP_PKEY_NULL_method -# endif - # endif /* !EVP_MD */ -struct env_md_ctx_st { - const EVP_MD *digest; - ENGINE *engine; /* functional reference if 'digest' is - * ENGINE-provided */ - unsigned long flags; - void *md_data; - /* Public key context for sign/verify */ - EVP_PKEY_CTX *pctx; - /* Update function: usually copied from EVP_MD */ - int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); -} /* EVP_MD_CTX */ ; - /* values for EVP_MD_CTX flags */ # define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be @@ -284,7 +139,7 @@ struct env_md_ctx_st { # define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been * cleaned */ # define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_cleanup */ + * in EVP_MD_CTX_reset */ /* * FIPS and pad options are ignored in 1.0.0, definitions are here so we * don't accidentally reuse the values for other purposes. @@ -304,34 +159,59 @@ struct env_md_ctx_st { # define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ # define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ +/* + * Some functions such as EVP_DigestSign only finalise copies of internal + * contexts so additional data can be included after the finalisation call. + * This is inefficient if this functionality is not required: it is disabled + * if the following flag is set. + */ +# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -struct evp_cipher_st { - int nid; - int block_size; - /* Default value for variable length ciphers */ - int key_len; - int iv_len; - /* Various flags */ - unsigned long flags; - /* init key */ - int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); - /* encrypt/decrypt data */ - int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl); - /* cleanup ctx */ - int (*cleanup) (EVP_CIPHER_CTX *); - /* how big ctx->cipher_data needs to be */ - int ctx_size; - /* Populate a ASN1_TYPE with parameters */ - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); - /* Get parameters from a ASN1_TYPE */ - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); - /* Miscellaneous operations */ - int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); - /* Application data */ - void *app_data; -} /* EVP_CIPHER */ ; +EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); +EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); +void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); + +int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); +int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); +int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); +int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, + int (*init) (EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc)); +int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, + int (*do_cipher) (EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl)); +int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, + int (*cleanup) (EVP_CIPHER_CTX *)); +int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, + int (*set_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, + int (*get_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, + int (*ctrl) (EVP_CIPHER_CTX *, int type, + int arg, void *ptr)); + +int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc); +int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl); +int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); +int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + int type, int arg, + void *ptr); /* Values for cipher flags */ @@ -347,6 +227,7 @@ struct evp_cipher_st { # define EVP_CIPH_CCM_MODE 0x7 # define EVP_CIPH_XTS_MODE 0x10001 # define EVP_CIPH_WRAP_MODE 0x10002 +# define EVP_CIPH_OCB_MODE 0x10003 # define EVP_CIPH_MODE 0xF0007 /* Set if variable length cipher */ # define EVP_CIPH_VARIABLE_LENGTH 0x8 @@ -378,6 +259,8 @@ struct evp_cipher_st { # define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 # define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 # define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 +/* Cipher can handle pipeline operations */ +# define EVP_CIPH_FLAG_PIPELINE 0X800000 /* * Cipher context flag to indicate we can handle wrap mode: if allowed in @@ -397,14 +280,19 @@ struct evp_cipher_st { # define EVP_CTRL_RAND_KEY 0x6 # define EVP_CTRL_PBE_PRF_NID 0x7 # define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_GCM_SET_IVLEN 0x9 -# define EVP_CTRL_GCM_GET_TAG 0x10 -# define EVP_CTRL_GCM_SET_TAG 0x11 -# define EVP_CTRL_GCM_SET_IV_FIXED 0x12 +# define EVP_CTRL_AEAD_SET_IVLEN 0x9 +# define EVP_CTRL_AEAD_GET_TAG 0x10 +# define EVP_CTRL_AEAD_SET_TAG 0x11 +# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 +# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN +# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG +# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG +# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED # define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_GCM_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_GCM_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_GCM_SET_TAG +# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN +# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG +# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG +# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED # define EVP_CTRL_CCM_SET_L 0x14 # define EVP_CTRL_CCM_SET_MSGLEN 0x15 /* @@ -423,6 +311,36 @@ struct evp_cipher_st { # define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b # define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c +# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d + +/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ +# define EVP_CTRL_SET_SBOX 0x1e +/* + * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a + * pre-allocated buffer with specified size + */ +# define EVP_CTRL_SBOX_USED 0x1f +/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, + * 0 switches meshing off + */ +# define EVP_CTRL_KEY_MESH 0x20 +/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ +# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 + +/* Set the output buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 +/* Set the input buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 +/* Set the input buffer lengths to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 + +/* Padding modes */ +#define EVP_PADDING_PKCS7 1 +#define EVP_PADDING_ISO7816_4 2 +#define EVP_PADDING_ANSI923 3 +#define EVP_PADDING_ISO10126 4 +#define EVP_PADDING_ZERO 5 + /* RFC 5246 defines additional data to be 13 bytes in length */ # define EVP_AEAD_TLS1_AAD_LEN 13 @@ -441,45 +359,17 @@ typedef struct { /* Length of tag for TLS */ # define EVP_GCM_TLS_TAG_LEN 16 +/* CCM TLS constants */ +/* Length of fixed part of IV derived from PRF */ +# define EVP_CCM_TLS_FIXED_IV_LEN 4 +/* Length of explicit part of IV part of TLS records */ +# define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 + typedef struct evp_cipher_info_st { const EVP_CIPHER *cipher; unsigned char iv[EVP_MAX_IV_LENGTH]; } EVP_CIPHER_INFO; -struct evp_cipher_ctx_st { - const EVP_CIPHER *cipher; - ENGINE *engine; /* functional reference if 'cipher' is - * ENGINE-provided */ - int encrypt; /* encrypt or decrypt */ - int buf_len; /* number we have left */ - unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ - unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ - unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ - int num; /* used by cfb/ofb/ctr mode */ - void *app_data; /* application stuff */ - int key_len; /* May change for variable length cipher */ - unsigned long flags; /* Various flags */ - void *cipher_data; /* per EVP data */ - int final_used; - int block_mask; - unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ -} /* EVP_CIPHER_CTX */ ; - -typedef struct evp_Encode_Ctx_st { - /* number saved in a partial encode/decode */ - int num; - /* - * The length is either the output line length (in input bytes) or the - * shortest input line length that is ok. Once decoding begins, the - * length is adjusted up each time a longer line is decoded - */ - int length; - /* data to encode */ - unsigned char enc_data[80]; - /* number read on current line */ - int line_num; - int expect_nl; -} EVP_ENCODE_CTX; /* Password based encryption function */ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, @@ -522,29 +412,48 @@ int EVP_MD_block_size(const EVP_MD *md); unsigned long EVP_MD_flags(const EVP_MD *md); const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); +int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, + const void *data, size_t count); +void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, + int (*update) (EVP_MD_CTX *ctx, + const void *data, size_t count)); # define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) # define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) # define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) +EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx); +void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx); int EVP_CIPHER_nid(const EVP_CIPHER *cipher); # define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); # define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); +void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); +void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); # define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) -unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE) +# if OPENSSL_API_COMPAT < 0x10100000L +# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) +# endif +# define EVP_CIPHER_CTX_mode(c) EVP_CIPHER_mode(EVP_CIPHER_CTX_cipher(c)) # define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) # define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) @@ -571,8 +480,9 @@ void BIO_set_md(BIO *, const EVP_MD *md); # define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) # define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) -int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, const unsigned char *in, unsigned int inl); +/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, + unsigned char *out, + const unsigned char *in, unsigned int inl); # define EVP_add_cipher_alias(n,alias) \ OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) @@ -583,100 +493,126 @@ int EVP_Cipher(EVP_CIPHER_CTX *c, # define EVP_delete_digest_alias(alias) \ OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); -void EVP_MD_CTX_init(EVP_MD_CTX *ctx); -int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); -EVP_MD_CTX *EVP_MD_CTX_create(void); -void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); -int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); +int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); +EVP_MD_CTX *EVP_MD_CTX_new(void); +int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); +void EVP_MD_CTX_free(EVP_MD_CTX *ctx); +# define EVP_MD_CTX_create() EVP_MD_CTX_new() +# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) +# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) +__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); -int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); -int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); -int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, const EVP_MD *type, - ENGINE *impl); +__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, + ENGINE *impl); +__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, + size_t cnt); +__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); +__owur int EVP_Digest(const void *data, size_t count, + unsigned char *md, unsigned int *size, + const EVP_MD *type, ENGINE *impl); -int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); -int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); -int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); +__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); +__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); +__owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); +#ifndef OPENSSL_NO_UI int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, const char *prompt, int verify); void EVP_set_pw_prompt(const char *prompt); char *EVP_get_pw_prompt(void); +#endif -int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, const unsigned char *data, - int datal, int count, unsigned char *key, - unsigned char *iv); +__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, + const unsigned char *salt, + const unsigned char *data, int datal, int count, + unsigned char *key, unsigned char *iv); void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); -int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv); -int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); +/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); +/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); -int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv); -int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); -int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); +/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); +/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); -int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv, int enc); -int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); -int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv, + int enc); +/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv, int enc); +__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); +__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); -int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey); +__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, + EVP_PKEY *pkey); -int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); +__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, + unsigned int siglen, EVP_PKEY *pkey); -int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); -int EVP_DigestSignFinal(EVP_MD_CTX *ctx, - unsigned char *sigret, size_t *siglen); +/*__owur*/ int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); +__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen); -int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); -int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, - const unsigned char *sig, size_t siglen); +__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); +__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, + size_t siglen); -int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, const unsigned char *iv, - EVP_PKEY *priv); -int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +# ifndef OPENSSL_NO_RSA +__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + const unsigned char *ek, int ekl, + const unsigned char *iv, EVP_PKEY *priv); +__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + unsigned char **ek, int *ekl, unsigned char *iv, + EVP_PKEY **pubk, int npubk); +__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +# endif +EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); +void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); +int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); +int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); +int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); @@ -687,23 +623,24 @@ int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); -void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); -int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); +# if OPENSSL_API_COMPAT < 0x10100000L +# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) +# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) +# endif EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); +int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); +void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); -# ifndef OPENSSL_NO_BIO -BIO_METHOD *BIO_f_md(void); -BIO_METHOD *BIO_f_base64(void); -BIO_METHOD *BIO_f_cipher(void); -BIO_METHOD *BIO_f_reliable(void); -void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); -# endif +const BIO_METHOD *BIO_f_md(void); +const BIO_METHOD *BIO_f_base64(void); +const BIO_METHOD *BIO_f_cipher(void); +const BIO_METHOD *BIO_f_reliable(void); +__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, + const unsigned char *i, int enc); const EVP_MD *EVP_md_null(void); # ifndef OPENSSL_NO_MD2 @@ -714,26 +651,21 @@ const EVP_MD *EVP_md4(void); # endif # ifndef OPENSSL_NO_MD5 const EVP_MD *EVP_md5(void); +const EVP_MD *EVP_md5_sha1(void); +# endif +# ifndef OPENSSL_NO_BLAKE2 +const EVP_MD *EVP_blake2b512(void); +const EVP_MD *EVP_blake2s256(void); # endif -# ifndef OPENSSL_NO_SHA -const EVP_MD *EVP_sha(void); const EVP_MD *EVP_sha1(void); -const EVP_MD *EVP_dss(void); -const EVP_MD *EVP_dss1(void); -const EVP_MD *EVP_ecdsa(void); -# endif -# ifndef OPENSSL_NO_SHA256 const EVP_MD *EVP_sha224(void); const EVP_MD *EVP_sha256(void); -# endif -# ifndef OPENSSL_NO_SHA512 const EVP_MD *EVP_sha384(void); const EVP_MD *EVP_sha512(void); -# endif # ifndef OPENSSL_NO_MDC2 const EVP_MD *EVP_mdc2(void); # endif -# ifndef OPENSSL_NO_RIPEMD +# ifndef OPENSSL_NO_RMD160 const EVP_MD *EVP_ripemd160(void); # endif # ifndef OPENSSL_NO_WHIRLPOOL @@ -752,10 +684,6 @@ const EVP_CIPHER *EVP_des_cfb1(void); const EVP_CIPHER *EVP_des_cfb8(void); const EVP_CIPHER *EVP_des_ede_cfb64(void); # define EVP_des_ede_cfb EVP_des_ede_cfb64 -# if 0 -const EVP_CIPHER *EVP_des_ede_cfb1(void); -const EVP_CIPHER *EVP_des_ede_cfb8(void); -# endif const EVP_CIPHER *EVP_des_ede3_cfb64(void); # define EVP_des_ede3_cfb EVP_des_ede3_cfb64 const EVP_CIPHER *EVP_des_ede3_cfb1(void); @@ -773,13 +701,6 @@ const EVP_CIPHER *EVP_des_ede3_wrap(void); * are rc4 and md5 declarations made here inside a "NO_DES" precompiler * branch? */ -# if 0 -# ifdef OPENSSL_OPENBSD_DEV_CRYPTO -const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void); -const EVP_CIPHER *EVP_dev_crypto_rc4(void); -const EVP_MD *EVP_dev_crypto_md5(void); -# endif -# endif # endif # ifndef OPENSSL_NO_RC4 const EVP_CIPHER *EVP_rc4(void); @@ -825,51 +746,57 @@ const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); # define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); # endif -# ifndef OPENSSL_NO_AES const EVP_CIPHER *EVP_aes_128_ecb(void); const EVP_CIPHER *EVP_aes_128_cbc(void); const EVP_CIPHER *EVP_aes_128_cfb1(void); const EVP_CIPHER *EVP_aes_128_cfb8(void); const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 +# define EVP_aes_128_cfb EVP_aes_128_cfb128 const EVP_CIPHER *EVP_aes_128_ofb(void); const EVP_CIPHER *EVP_aes_128_ctr(void); const EVP_CIPHER *EVP_aes_128_ccm(void); const EVP_CIPHER *EVP_aes_128_gcm(void); const EVP_CIPHER *EVP_aes_128_xts(void); const EVP_CIPHER *EVP_aes_128_wrap(void); +const EVP_CIPHER *EVP_aes_128_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_128_ocb(void); +# endif const EVP_CIPHER *EVP_aes_192_ecb(void); const EVP_CIPHER *EVP_aes_192_cbc(void); const EVP_CIPHER *EVP_aes_192_cfb1(void); const EVP_CIPHER *EVP_aes_192_cfb8(void); const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 +# define EVP_aes_192_cfb EVP_aes_192_cfb128 const EVP_CIPHER *EVP_aes_192_ofb(void); const EVP_CIPHER *EVP_aes_192_ctr(void); const EVP_CIPHER *EVP_aes_192_ccm(void); const EVP_CIPHER *EVP_aes_192_gcm(void); const EVP_CIPHER *EVP_aes_192_wrap(void); +const EVP_CIPHER *EVP_aes_192_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_192_ocb(void); +# endif const EVP_CIPHER *EVP_aes_256_ecb(void); const EVP_CIPHER *EVP_aes_256_cbc(void); const EVP_CIPHER *EVP_aes_256_cfb1(void); const EVP_CIPHER *EVP_aes_256_cfb8(void); const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 +# define EVP_aes_256_cfb EVP_aes_256_cfb128 const EVP_CIPHER *EVP_aes_256_ofb(void); const EVP_CIPHER *EVP_aes_256_ctr(void); const EVP_CIPHER *EVP_aes_256_ccm(void); const EVP_CIPHER *EVP_aes_256_gcm(void); const EVP_CIPHER *EVP_aes_256_xts(void); const EVP_CIPHER *EVP_aes_256_wrap(void); -# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) +const EVP_CIPHER *EVP_aes_256_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_256_ocb(void); +# endif const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -# endif -# ifndef OPENSSL_NO_SHA256 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); -# endif -# endif # ifndef OPENSSL_NO_CAMELLIA const EVP_CIPHER *EVP_camellia_128_ecb(void); const EVP_CIPHER *EVP_camellia_128_cbc(void); @@ -878,6 +805,7 @@ const EVP_CIPHER *EVP_camellia_128_cfb8(void); const EVP_CIPHER *EVP_camellia_128_cfb128(void); # define EVP_camellia_128_cfb EVP_camellia_128_cfb128 const EVP_CIPHER *EVP_camellia_128_ofb(void); +const EVP_CIPHER *EVP_camellia_128_ctr(void); const EVP_CIPHER *EVP_camellia_192_ecb(void); const EVP_CIPHER *EVP_camellia_192_cbc(void); const EVP_CIPHER *EVP_camellia_192_cfb1(void); @@ -885,6 +813,7 @@ const EVP_CIPHER *EVP_camellia_192_cfb8(void); const EVP_CIPHER *EVP_camellia_192_cfb128(void); # define EVP_camellia_192_cfb EVP_camellia_192_cfb128 const EVP_CIPHER *EVP_camellia_192_ofb(void); +const EVP_CIPHER *EVP_camellia_192_ctr(void); const EVP_CIPHER *EVP_camellia_256_ecb(void); const EVP_CIPHER *EVP_camellia_256_cbc(void); const EVP_CIPHER *EVP_camellia_256_cfb1(void); @@ -892,6 +821,13 @@ const EVP_CIPHER *EVP_camellia_256_cfb8(void); const EVP_CIPHER *EVP_camellia_256_cfb128(void); # define EVP_camellia_256_cfb EVP_camellia_256_cfb128 const EVP_CIPHER *EVP_camellia_256_ofb(void); +const EVP_CIPHER *EVP_camellia_256_ctr(void); +# endif +# ifndef OPENSSL_NO_CHACHA +const EVP_CIPHER *EVP_chacha20(void); +# ifndef OPENSSL_NO_POLY1305 +const EVP_CIPHER *EVP_chacha20_poly1305(void); +# endif # endif # ifndef OPENSSL_NO_SEED @@ -902,29 +838,39 @@ const EVP_CIPHER *EVP_seed_cfb128(void); const EVP_CIPHER *EVP_seed_ofb(void); # endif -void OPENSSL_add_all_algorithms_noconf(void); -void OPENSSL_add_all_algorithms_conf(void); +# if OPENSSL_API_COMPAT < 0x10100000L +# define OPENSSL_add_all_algorithms_conf() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS \ + | OPENSSL_INIT_LOAD_CONFIG, NULL) +# define OPENSSL_add_all_algorithms_noconf() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() \ - OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_add_all_algorithms_noconf() +# ifdef OPENSSL_LOAD_CONF +# define OpenSSL_add_all_algorithms() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS \ + | OPENSSL_INIT_LOAD_CONFIG, NULL) +# else +# define OpenSSL_add_all_algorithms() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) +# endif + +# define OpenSSL_add_all_ciphers() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) +# define OpenSSL_add_all_digests() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) + +# define EVP_cleanup() while(0) continue # endif -void OpenSSL_add_all_ciphers(void); -void OpenSSL_add_all_digests(void); -# define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms() -# define SSLeay_add_all_ciphers() OpenSSL_add_all_ciphers() -# define SSLeay_add_all_digests() OpenSSL_add_all_digests() - int EVP_add_cipher(const EVP_CIPHER *cipher); int EVP_add_digest(const EVP_MD *digest); const EVP_CIPHER *EVP_get_cipherbyname(const char *name); const EVP_MD *EVP_get_digestbyname(const char *name); -void EVP_cleanup(void); void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, const char *from, const char *to, void *x), @@ -949,35 +895,45 @@ int EVP_PKEY_encrypt_old(unsigned char *enc_key, int EVP_PKEY_type(int type); int EVP_PKEY_id(const EVP_PKEY *pkey); int EVP_PKEY_base_id(const EVP_PKEY *pkey); -int EVP_PKEY_bits(EVP_PKEY *pkey); +int EVP_PKEY_bits(const EVP_PKEY *pkey); +int EVP_PKEY_security_bits(const EVP_PKEY *pkey); int EVP_PKEY_size(EVP_PKEY *pkey); int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +# ifndef OPENSSL_NO_ENGINE +int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); +# endif int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); -void *EVP_PKEY_get0(EVP_PKEY *pkey); +void *EVP_PKEY_get0(const EVP_PKEY *pkey); +const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); # ifndef OPENSSL_NO_RSA struct rsa_st; int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); +struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); # endif # ifndef OPENSSL_NO_DSA struct dsa_st; int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); +struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); # endif # ifndef OPENSSL_NO_DH struct dh_st; int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); +struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); # endif # ifndef OPENSSL_NO_EC struct ec_key_st; int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); +struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); # endif EVP_PKEY *EVP_PKEY_new(void); +int EVP_PKEY_up_ref(EVP_PKEY *pkey); void EVP_PKEY_free(EVP_PKEY *pkey); EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, @@ -1006,6 +962,10 @@ int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); +int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, + const unsigned char *pt, size_t ptlen); +size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); + int EVP_CIPHER_type(const EVP_CIPHER *ctx); /* calls methods */ @@ -1030,6 +990,17 @@ int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, int en_de); +#ifndef OPENSSL_NO_SCRYPT +int EVP_PBE_scrypt(const char *pass, size_t passlen, + const unsigned char *salt, size_t saltlen, + uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, + unsigned char *key, size_t keylen); + +int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *c, const EVP_MD *md, int en_de); +#endif + void PKCS5_PBE_add(void); int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, @@ -1041,6 +1012,8 @@ int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, # define EVP_PBE_TYPE_OUTER 0x0 /* Is an PRF type OID */ # define EVP_PBE_TYPE_PRF 0x1 +/* Is a PKCS#5 v2.0 KDF */ +# define EVP_PBE_TYPE_KDF 0x2 int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, int md_nid, EVP_PBE_KEYGEN *keygen); @@ -1049,6 +1022,7 @@ int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, EVP_PBE_KEYGEN **pkeygen); void EVP_PBE_cleanup(void); +int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); # define ASN1_PKEY_ALIAS 0x1 # define ASN1_PKEY_DYNAMIC 0x2 @@ -1061,6 +1035,9 @@ void EVP_PBE_cleanup(void); # define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 # define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 +# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 +# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa + int EVP_PKEY_asn1_get_count(void); const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); @@ -1073,7 +1050,7 @@ int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, const char **ppem_str, const EVP_PKEY_ASN1_METHOD *ameth); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, const char *pem_str, const char *info); @@ -1094,7 +1071,7 @@ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, int (*pkey_bits) (const EVP_PKEY *pk)); void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, int (*priv_decode) (EVP_PKEY *pk, - PKCS8_PRIV_KEY_INFO + const PKCS8_PRIV_KEY_INFO *p8inf), int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk), @@ -1137,6 +1114,10 @@ void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, X509_ALGOR *alg2, ASN1_BIT_STRING *sig)); +void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_security_bits) (const EVP_PKEY + *pk)); + # define EVP_PKEY_OP_UNDEFINED 0 # define EVP_PKEY_OP_PARAMGEN (1<<1) # define EVP_PKEY_OP_KEYGEN (1<<2) @@ -1157,7 +1138,7 @@ void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) # define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_SIG | EVP_PKEY_OP_CRYPT | EVP_PKEY_OP_DERIVE) + (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE) # define EVP_PKEY_OP_TYPE_GEN \ (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) @@ -1170,6 +1151,10 @@ void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) +# define EVP_PKEY_CTX_set_mac_key(ctx, key, len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)key) + # define EVP_PKEY_CTRL_MD 1 # define EVP_PKEY_CTRL_PEER_KEY 2 @@ -1219,6 +1204,9 @@ int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value); +int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); +int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); + int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); @@ -1259,7 +1247,7 @@ int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); -typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); +typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); @@ -1463,43 +1451,41 @@ void EVP_add_alg_module(void); * made after this point may be overwritten when the script is next run. */ -void ERR_load_EVP_strings(void); +int ERR_load_EVP_strings(void); /* Error codes for the EVP functions. */ /* Function codes. */ # define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AESNI_XTS_CIPHER 176 # define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_OCB_CIPHER 169 # define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_XTS 172 -# define EVP_F_AES_XTS_CIPHER 175 +# define EVP_F_AES_WRAP_CIPHER 170 # define EVP_F_ALG_MODULE_INIT 177 # define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CMAC_INIT 173 +# define EVP_F_CHACHA20_POLY1305_CTRL 182 # define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_D2I_PKEY 100 +# define EVP_F_DES_EDE3_WRAP_CIPHER 171 # define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_DSAPKEY2PKCS8 134 -# define EVP_F_DSA_PKEY2PKCS8 135 -# define EVP_F_ECDSA_PKEY2PKCS8 129 -# define EVP_F_ECKEY_PKEY2PKCS8 132 # define EVP_F_EVP_CIPHERINIT_EX 123 # define EVP_F_EVP_CIPHER_CTX_COPY 163 # define EVP_F_EVP_CIPHER_CTX_CTRL 124 # define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 # define EVP_F_EVP_DECRYPTFINAL_EX 101 +# define EVP_F_EVP_DECRYPTUPDATE 166 # define EVP_F_EVP_DIGESTINIT_EX 128 # define EVP_F_EVP_ENCRYPTFINAL_EX 127 +# define EVP_F_EVP_ENCRYPTUPDATE 167 # define EVP_F_EVP_MD_CTX_COPY_EX 110 # define EVP_F_EVP_MD_SIZE 162 # define EVP_F_EVP_OPENINIT 102 # define EVP_F_EVP_PBE_ALG_ADD 115 # define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 # define EVP_F_EVP_PBE_CIPHERINIT 116 +# define EVP_F_EVP_PBE_SCRYPT 181 # define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKCS82PKEY_BROKEN 136 -# define EVP_F_EVP_PKEY2PKCS8_BROKEN 113 +# define EVP_F_EVP_PKEY2PKCS8 113 +# define EVP_F_EVP_PKEY_ASN1_ADD0 168 # define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 # define EVP_F_EVP_PKEY_CTX_CTRL 137 # define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 @@ -1513,114 +1499,97 @@ void ERR_load_EVP_strings(void); # define EVP_F_EVP_PKEY_ENCRYPT 105 # define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 # define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET1_DH 119 -# define EVP_F_EVP_PKEY_GET1_DSA 120 -# define EVP_F_EVP_PKEY_GET1_ECDSA 130 -# define EVP_F_EVP_PKEY_GET1_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET1_RSA 121 +# define EVP_F_EVP_PKEY_GET0_DH 119 +# define EVP_F_EVP_PKEY_GET0_DSA 120 +# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 +# define EVP_F_EVP_PKEY_GET0_HMAC 183 +# define EVP_F_EVP_PKEY_GET0_RSA 121 # define EVP_F_EVP_PKEY_KEYGEN 146 # define EVP_F_EVP_PKEY_KEYGEN_INIT 147 # define EVP_F_EVP_PKEY_NEW 106 # define EVP_F_EVP_PKEY_PARAMGEN 148 # define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 +# define EVP_F_EVP_PKEY_SET1_ENGINE 187 # define EVP_F_EVP_PKEY_SIGN 140 # define EVP_F_EVP_PKEY_SIGN_INIT 141 # define EVP_F_EVP_PKEY_VERIFY 142 # define EVP_F_EVP_PKEY_VERIFY_INIT 143 # define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 # define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_RIJNDAEL 126 # define EVP_F_EVP_SIGNFINAL 107 # define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_FIPS_CIPHERINIT 166 -# define EVP_F_FIPS_CIPHER_CTX_COPY 170 -# define EVP_F_FIPS_CIPHER_CTX_CTRL 167 -# define EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH 171 -# define EVP_F_FIPS_DIGESTINIT 168 -# define EVP_F_FIPS_MD_CTX_COPY 169 -# define EVP_F_HMAC_INIT_EX 174 # define EVP_F_INT_CTX_NEW 157 # define EVP_F_PKCS5_PBE_KEYIVGEN 117 # define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 # define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS8_SET_BROKEN 112 +# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 # define EVP_F_PKEY_SET_TYPE 158 # define EVP_F_RC2_MAGIC_TO_METH 109 # define EVP_F_RC5_CTRL 125 /* Reason codes. */ -# define EVP_R_AES_IV_SETUP_FAILED 162 # define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_ASN1_LIB 140 -# define EVP_R_BAD_BLOCK_LENGTH 136 # define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BAD_KEY_LENGTH 137 -# define EVP_R_BN_DECODE_ERROR 112 -# define EVP_R_BN_PUBKEY_ERROR 113 # define EVP_R_BUFFER_TOO_SMALL 155 # define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 # define EVP_R_CIPHER_PARAMETER_ERROR 122 # define EVP_R_COMMAND_NOT_SUPPORTED 147 +# define EVP_R_COPY_ERROR 173 # define EVP_R_CTRL_NOT_IMPLEMENTED 132 # define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 # define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 # define EVP_R_DECODE_ERROR 114 # define EVP_R_DIFFERENT_KEY_TYPES 101 # define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_DISABLED_FOR_FIPS 163 -# define EVP_R_ENCODE_ERROR 115 # define EVP_R_ERROR_LOADING_SECTION 165 # define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 +# define EVP_R_EXPECTING_AN_HMAC_KEY 174 # define EVP_R_EXPECTING_AN_RSA_KEY 127 # define EVP_R_EXPECTING_A_DH_KEY 128 # define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_ECDSA_KEY 141 # define EVP_R_EXPECTING_A_EC_KEY 142 # define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 +# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 # define EVP_R_INITIALIZATION_ERROR 134 # define EVP_R_INPUT_NOT_INITIALIZED 111 # define EVP_R_INVALID_DIGEST 152 # define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 171 +# define EVP_R_INVALID_KEY 163 # define EVP_R_INVALID_KEY_LENGTH 130 # define EVP_R_INVALID_OPERATION 148 -# define EVP_R_IV_TOO_LARGE 102 # define EVP_R_KEYGEN_FAILURE 120 +# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 # define EVP_R_MESSAGE_DIGEST_IS_NULL 159 # define EVP_R_METHOD_NOT_SUPPORTED 144 # define EVP_R_MISSING_PARAMETERS 103 # define EVP_R_NO_CIPHER_SET 131 # define EVP_R_NO_DEFAULT_DIGEST 158 # define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_DSA_PARAMETERS 116 # define EVP_R_NO_KEY_SET 154 # define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_NO_SIGN_FUNCTION_CONFIGURED 104 -# define EVP_R_NO_VERIFY_FUNCTION_CONFIGURED 105 # define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 # define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE 117 +# define EVP_R_PARTIALLY_OVERLAPPING 162 +# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 +# define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 # define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 # define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 # define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_TOO_LARGE 164 # define EVP_R_UNKNOWN_CIPHER 160 # define EVP_R_UNKNOWN_DIGEST 161 # define EVP_R_UNKNOWN_OPTION 169 # define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 # define EVP_R_UNSUPPORTED_ALGORITHM 156 # define EVP_R_UNSUPPORTED_CIPHER 107 # define EVP_R_UNSUPPORTED_KEYLENGTH 123 # define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 # define EVP_R_UNSUPPORTED_KEY_SIZE 108 +# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 # define EVP_R_UNSUPPORTED_PRF 125 # define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 # define EVP_R_UNSUPPORTED_SALT_TYPE 126 # define EVP_R_WRAP_MODE_NOT_ALLOWED 170 # define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -# define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 # ifdef __cplusplus } diff --git a/libs/mac/include/openssl/hmac.h b/libs/mac/include/openssl/hmac.h index b8b55cda..9f068960 100644 --- a/libs/mac/include/openssl/hmac.h +++ b/libs/mac/include/openssl/hmac.h @@ -1,69 +1,17 @@ -/* crypto/hmac/hmac.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + #ifndef HEADER_HMAC_H # define HEADER_HMAC_H # include -# ifdef OPENSSL_NO_HMAC -# error HMAC is disabled. -# endif - # include # define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ @@ -72,35 +20,27 @@ extern "C" { #endif -typedef struct hmac_ctx_st { - const EVP_MD *md; - EVP_MD_CTX md_ctx; - EVP_MD_CTX i_ctx; - EVP_MD_CTX o_ctx; - unsigned int key_length; - unsigned char key[HMAC_MAX_MD_CBLOCK]; -} HMAC_CTX; +size_t HMAC_size(const HMAC_CTX *e); +HMAC_CTX *HMAC_CTX_new(void); +int HMAC_CTX_reset(HMAC_CTX *ctx); +void HMAC_CTX_free(HMAC_CTX *ctx); -# define HMAC_size(e) (EVP_MD_size((e)->md)) +DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md)) -void HMAC_CTX_init(HMAC_CTX *ctx); -void HMAC_CTX_cleanup(HMAC_CTX *ctx); - -/* deprecated */ -# define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) - -/* deprecated */ -int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md); -int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len); -int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); +/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md, ENGINE *impl); +/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, + size_t len); +/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, + unsigned int *len); unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d, size_t n, unsigned char *md, unsigned int *md_len); -int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); +__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); +const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/idea.h b/libs/mac/include/openssl/idea.h index 60759840..4334f3ea 100644 --- a/libs/mac/include/openssl/idea.h +++ b/libs/mac/include/openssl/idea.h @@ -1,105 +1,64 @@ -/* crypto/idea/idea.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_IDEA_H # define HEADER_IDEA_H -# include /* IDEA_INT, OPENSSL_NO_IDEA */ +# include -# ifdef OPENSSL_NO_IDEA -# error IDEA is disabled. +# ifndef OPENSSL_NO_IDEA +# ifdef __cplusplus +extern "C" { # endif +typedef unsigned int IDEA_INT; + # define IDEA_ENCRYPT 1 # define IDEA_DECRYPT 0 # define IDEA_BLOCK 8 # define IDEA_KEY_LENGTH 16 -#ifdef __cplusplus -extern "C" { -#endif - typedef struct idea_key_st { IDEA_INT data[9][6]; } IDEA_KEY_SCHEDULE; -const char *idea_options(void); -void idea_ecb_encrypt(const unsigned char *in, unsigned char *out, +const char *IDEA_options(void); +void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out, IDEA_KEY_SCHEDULE *ks); -# ifdef OPENSSL_FIPS -void private_idea_set_encrypt_key(const unsigned char *key, - IDEA_KEY_SCHEDULE *ks); -# endif -void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); -void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); -void idea_cbc_encrypt(const unsigned char *in, unsigned char *out, +void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); +void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); +void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, int enc); -void idea_cfb64_encrypt(const unsigned char *in, unsigned char *out, +void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, int *num, int enc); -void idea_ofb64_encrypt(const unsigned char *in, unsigned char *out, +void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, int *num); -void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); -#ifdef __cplusplus +void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define idea_options IDEA_options +# define idea_ecb_encrypt IDEA_ecb_encrypt +# define idea_set_encrypt_key IDEA_set_encrypt_key +# define idea_set_decrypt_key IDEA_set_decrypt_key +# define idea_cbc_encrypt IDEA_cbc_encrypt +# define idea_cfb64_encrypt IDEA_cfb64_encrypt +# define idea_ofb64_encrypt IDEA_ofb64_encrypt +# define idea_encrypt IDEA_encrypt +# endif + +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/kdf.h b/libs/mac/include/openssl/kdf.h new file mode 100644 index 00000000..9f87f788 --- /dev/null +++ b/libs/mac/include/openssl/kdf.h @@ -0,0 +1,75 @@ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_KDF_H +# define HEADER_KDF_H + +#ifdef __cplusplus +extern "C" { +#endif + +# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) +# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) + +# define EVP_PKEY_CTX_set_tls1_prf_md(pctx, md) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, seclen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_SECRET, seclen, (void *)sec) + +# define EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, seedlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_SEED, seedlen, (void *)seed) + +# define EVP_PKEY_CTX_set_hkdf_md(pctx, md) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, saltlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_SALT, saltlen, (void *)salt) + +# define EVP_PKEY_CTX_set1_hkdf_key(pctx, key, keylen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_KEY, keylen, (void *)key) + +# define EVP_PKEY_CTX_add1_hkdf_info(pctx, info, infolen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_INFO, infolen, (void *)info) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +int ERR_load_KDF_strings(void); + +/* Error codes for the KDF functions. */ + +/* Function codes. */ +# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 +# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 + +/* Reason codes. */ +# define KDF_R_INVALID_DIGEST 100 +# define KDF_R_MISSING_PARAMETER 101 +# define KDF_R_VALUE_MISSING 102 + +# ifdef __cplusplus +} +# endif +#endif diff --git a/libs/mac/include/openssl/lhash.h b/libs/mac/include/openssl/lhash.h index b6c328bf..82d40c1e 100644 --- a/libs/mac/include/openssl/lhash.h +++ b/libs/mac/include/openssl/lhash.h @@ -1,59 +1,10 @@ -/* crypto/lhash/lhash.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ /* @@ -64,30 +15,18 @@ # define HEADER_LHASH_H # include -# ifndef OPENSSL_NO_FP_API -# include -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif +# include #ifdef __cplusplus extern "C" { #endif -typedef struct lhash_node_st { - void *data; - struct lhash_node_st *next; -# ifndef OPENSSL_NO_HASH_COMP - unsigned long hash; -# endif -} LHASH_NODE; - -typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); -typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); -typedef void (*LHASH_DOALL_FN_TYPE) (void *); -typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); +typedef struct lhash_node_st OPENSSL_LH_NODE; +typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef struct lhash_st OPENSSL_LHASH; /* * Macros for declaring and implementing type-safe wrappers for LHASH @@ -117,15 +56,6 @@ typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); return name##_cmp(a,b); } # define LHASH_COMP_FN(name) name##_LHASH_COMP -/* Third: "doall" functions */ -# define DECLARE_LHASH_DOALL_FN(name, o_type) \ - void name##_LHASH_DOALL(void *); -# define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \ - void name##_LHASH_DOALL(void *arg) { \ - o_type *a = arg; \ - name##_doall(a); } -# define LHASH_DOALL_FN(name) name##_LHASH_DOALL - /* Fourth: "doall_arg" functions */ # define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ void name##_LHASH_DOALL_ARG(void *, void *); @@ -136,102 +66,149 @@ typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); name##_doall_arg(a, b); } # define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG -typedef struct lhash_st { - LHASH_NODE **b; - LHASH_COMP_FN_TYPE comp; - LHASH_HASH_FN_TYPE hash; - unsigned int num_nodes; - unsigned int num_alloc_nodes; - unsigned int p; - unsigned int pmax; - unsigned long up_load; /* load times 256 */ - unsigned long down_load; /* load times 256 */ - unsigned long num_items; - unsigned long num_expands; - unsigned long num_expand_reallocs; - unsigned long num_contracts; - unsigned long num_contract_reallocs; - unsigned long num_hash_calls; - unsigned long num_comp_calls; - unsigned long num_insert; - unsigned long num_replace; - unsigned long num_delete; - unsigned long num_no_delete; - unsigned long num_retrieve; - unsigned long num_retrieve_miss; - unsigned long num_hash_comps; - int error; -} _LHASH; /* Do not use _LHASH directly, use LHASH_OF - * and friends */ # define LH_LOAD_MULT 256 -/* - * Indicates a malloc() error in the last call, this is only bad in - * lh_insert(). - */ -# define lh_error(lh) ((lh)->error) +int OPENSSL_LH_error(OPENSSL_LHASH *lh); +OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +void OPENSSL_LH_free(OPENSSL_LHASH *lh); +void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); +void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); +void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); +void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +unsigned long OPENSSL_LH_strhash(const char *c); +unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); +unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); +void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); -_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); -void lh_free(_LHASH *lh); -void *lh_insert(_LHASH *lh, void *data); -void *lh_delete(_LHASH *lh, const void *data); -void *lh_retrieve(_LHASH *lh, const void *data); -void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); -void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); -unsigned long lh_strhash(const char *c); -unsigned long lh_num_items(const _LHASH *lh); - -# ifndef OPENSSL_NO_FP_API -void lh_stats(const _LHASH *lh, FILE *out); -void lh_node_stats(const _LHASH *lh, FILE *out); -void lh_node_usage_stats(const _LHASH *lh, FILE *out); +# ifndef OPENSSL_NO_STDIO +void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); # endif +void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -# ifndef OPENSSL_NO_BIO -void lh_stats_bio(const _LHASH *lh, BIO *out); -void lh_node_stats_bio(const _LHASH *lh, BIO *out); -void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); +# if OPENSSL_API_COMPAT < 0x10100000L +# define _LHASH OPENSSL_LHASH +# define LHASH_NODE OPENSSL_LH_NODE +# define lh_error OPENSSL_LH_error +# define lh_new OPENSSL_lh_new +# define lh_free OPENSSL_LH_free +# define lh_insert OPENSSL_LH_insert +# define lh_delete OPENSSL_LH_delete +# define lh_retrieve OPENSSL_LH_retrieve +# define lh_doall OPENSSL_LH_doall +# define lh_doall_arg OPENSSL_LH_doall_arg +# define lh_strhash OPENSSL_LH_strhash +# define lh_num_items OPENSSL_LH_num_items +# ifndef OPENSSL_NO_STDIO +# define lh_stats OPENSSL_LH_stats +# define lh_node_stats OPENSSL_LH_node_stats +# define lh_node_usage_stats OPENSSL_LH_node_usage_stats +# endif +# define lh_stats_bio OPENSSL_LH_stats_bio +# define lh_node_stats_bio OPENSSL_LH_node_stats_bio +# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio # endif /* Type checking... */ # define LHASH_OF(type) struct lhash_st_##type -# define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } +# define DEFINE_LHASH_OF(type) \ + LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + static ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ + { \ + return (LHASH_OF(type) *) \ + OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + } \ + static ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + { \ + OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ + } \ + static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + { \ + return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ + } \ + static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ + } \ + static ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + } \ + static ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + { \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + } \ + static ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ + void (*doall)(type *)) \ + { \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + } \ + LHASH_OF(type) -# define CHECKED_LHASH_OF(type,lh) \ - ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) +#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ + int_implement_lhash_doall(type, argtype, const type) -/* Define wrapper functions. */ -# define LHM_lh_new(type, name) \ - ((LHASH_OF(type) *)lh_new(LHASH_HASH_FN(name), LHASH_COMP_FN(name))) -# define LHM_lh_error(type, lh) \ - lh_error(CHECKED_LHASH_OF(type,lh)) -# define LHM_lh_insert(type, lh, inst) \ - ((type *)lh_insert(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_retrieve(type, lh, inst) \ - ((type *)lh_retrieve(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_delete(type, lh, inst) \ - ((type *)lh_delete(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_doall(type, lh,fn) lh_doall(CHECKED_LHASH_OF(type, lh), fn) -# define LHM_lh_doall_arg(type, lh, fn, arg_type, arg) \ - lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) -# define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) -# define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) -# define LHM_lh_node_stats_bio(type, lh, out) \ - lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_node_usage_stats_bio(type, lh, out) \ - lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_stats_bio(type, lh, out) \ - lh_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) +#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ + int_implement_lhash_doall(type, argtype, type) -DECLARE_LHASH_OF(OPENSSL_STRING); -DECLARE_LHASH_OF(OPENSSL_CSTRING); +#define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_inline void \ + lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ + void (*fn)(cbargtype *, argtype *), \ + argtype *arg) \ + { \ + OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + } \ + LHASH_OF(type) + +DEFINE_LHASH_OF(OPENSSL_STRING); +# ifdef _MSC_VER +/* + * push and pop this warning: + * warning C4090: 'function': different 'const' qualifiers + */ +# pragma warning (push) +# pragma warning (disable: 4090) +# endif + +DEFINE_LHASH_OF(OPENSSL_CSTRING); + +# ifdef _MSC_VER +# pragma warning (pop) +# endif #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/md2.h b/libs/mac/include/openssl/md2.h new file mode 100644 index 00000000..7faf8e3d --- /dev/null +++ b/libs/mac/include/openssl/md2.h @@ -0,0 +1,44 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MD2_H +# define HEADER_MD2_H + +# include + +# ifndef OPENSSL_NO_MD2 +# include +# ifdef __cplusplus +extern "C" { +# endif + +typedef unsigned char MD2_INT; + +# define MD2_DIGEST_LENGTH 16 +# define MD2_BLOCK 16 + +typedef struct MD2state_st { + unsigned int num; + unsigned char data[MD2_BLOCK]; + MD2_INT cksm[MD2_BLOCK]; + MD2_INT state[MD2_BLOCK]; +} MD2_CTX; + +const char *MD2_options(void); +int MD2_Init(MD2_CTX *c); +int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len); +int MD2_Final(unsigned char *md, MD2_CTX *c); +unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/libs/mac/include/openssl/md4.h b/libs/mac/include/openssl/md4.h index 11fd7129..940e29db 100644 --- a/libs/mac/include/openssl/md4.h +++ b/libs/mac/include/openssl/md4.h @@ -1,97 +1,30 @@ -/* crypto/md4/md4.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_MD4_H # define HEADER_MD4_H +# include + +# ifndef OPENSSL_NO_MD4 # include # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - -# ifdef OPENSSL_NO_MD4 -# error MD4 is disabled. # endif /*- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! MD4_LONG_LOG2 has to be defined along. ! + * ! MD4_LONG has to be at least 32 bits wide. ! * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ - -# if defined(__LP32__) -# define MD4_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define MD4_LONG unsigned long -# define MD4_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define MD4_LONG unsigned int -# endif +# define MD4_LONG unsigned int # define MD4_CBLOCK 64 # define MD4_LBLOCK (MD4_CBLOCK/4) @@ -104,16 +37,15 @@ typedef struct MD4state_st { unsigned int num; } MD4_CTX; -# ifdef OPENSSL_FIPS -int private_MD4_Init(MD4_CTX *c); -# endif int MD4_Init(MD4_CTX *c); int MD4_Update(MD4_CTX *c, const void *data, size_t len); int MD4_Final(unsigned char *md, MD4_CTX *c); unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); void MD4_Transform(MD4_CTX *c, const unsigned char *b); -#ifdef __cplusplus + +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/md5.h b/libs/mac/include/openssl/md5.h index 2659038a..2deb7721 100644 --- a/libs/mac/include/openssl/md5.h +++ b/libs/mac/include/openssl/md5.h @@ -1,97 +1,30 @@ -/* crypto/md5/md5.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_MD5_H # define HEADER_MD5_H +# include + +# ifndef OPENSSL_NO_MD5 # include # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - -# ifdef OPENSSL_NO_MD5 -# error MD5 is disabled. # endif /* * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! MD5_LONG_LOG2 has to be defined along. ! + * ! MD5_LONG has to be at least 32 bits wide. ! * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ - -# if defined(__LP32__) -# define MD5_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define MD5_LONG unsigned long -# define MD5_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define MD5_LONG unsigned int -# endif +# define MD5_LONG unsigned int # define MD5_CBLOCK 64 # define MD5_LBLOCK (MD5_CBLOCK/4) @@ -104,16 +37,14 @@ typedef struct MD5state_st { unsigned int num; } MD5_CTX; -# ifdef OPENSSL_FIPS -int private_MD5_Init(MD5_CTX *c); -# endif int MD5_Init(MD5_CTX *c); int MD5_Update(MD5_CTX *c, const void *data, size_t len); int MD5_Final(unsigned char *md, MD5_CTX *c); unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); void MD5_Transform(MD5_CTX *c, const unsigned char *b); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/mdc2.h b/libs/mac/include/openssl/mdc2.h index 7efe53bc..aabd2bfa 100644 --- a/libs/mac/include/openssl/mdc2.h +++ b/libs/mac/include/openssl/mdc2.h @@ -1,72 +1,22 @@ -/* crypto/mdc2/mdc2.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_MDC2_H # define HEADER_MDC2_H +# include + +#ifndef OPENSSL_NO_MDC2 +# include # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - -# ifdef OPENSSL_NO_MDC2 -# error MDC2 is disabled. # endif # define MDC2_BLOCK 8 @@ -79,16 +29,14 @@ typedef struct mdc2_ctx_st { int pad_type; /* either 1 or 2, default 1 */ } MDC2_CTX; -# ifdef OPENSSL_FIPS -int private_MDC2_Init(MDC2_CTX *c); -# endif int MDC2_Init(MDC2_CTX *c); int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); int MDC2_Final(unsigned char *md, MDC2_CTX *c); unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/modes.h b/libs/mac/include/openssl/modes.h index fd488499..a04c6a59 100644 --- a/libs/mac/include/openssl/modes.h +++ b/libs/mac/include/openssl/modes.h @@ -1,8 +1,10 @@ -/* ==================================================================== - * Copyright (c) 2008 The OpenSSL Project. All rights reserved. +/* + * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. * - * Rights for redistribution and usage in source and binary - * forms are granted according to the OpenSSL license. + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #include @@ -157,6 +159,44 @@ size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, unsigned char *out, const unsigned char *in, size_t inlen, block128_f block); +size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, + unsigned char *out, const unsigned char *in, + size_t inlen, block128_f block); +size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, + unsigned char *out, const unsigned char *in, + size_t inlen, block128_f block); + +#ifndef OPENSSL_NO_OCB +typedef struct ocb128_context OCB128_CONTEXT; + +typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + size_t start_block_num, + unsigned char offset_i[16], + const unsigned char L_[][16], + unsigned char checksum[16]); + +OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, + block128_f encrypt, block128_f decrypt, + ocb128_f stream); +int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, + block128_f encrypt, block128_f decrypt, + ocb128_f stream); +int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, + void *keyenc, void *keydec); +int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, + size_t len, size_t taglen); +int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, + unsigned char *out, size_t len); +int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, + unsigned char *out, size_t len); +int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, + size_t len); +int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); +#endif /* OPENSSL_NO_OCB */ #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/obj_mac.h b/libs/mac/include/openssl/obj_mac.h index 779c309b..f97f3eaa 100644 --- a/libs/mac/include/openssl/obj_mac.h +++ b/libs/mac/include/openssl/obj_mac.h @@ -1,65 +1,12 @@ -/* crypto/objects/obj_mac.h */ - /* - * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following - * command: perl objects.pl objects.txt obj_mac.num obj_mac.h - */ - -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. + * WARNING: do not edit! + * Generated by crypto/objects/objects.pl * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #define SN_undef "UNDEF" @@ -853,10 +800,22 @@ #define NID_id_smime_ct_compressedData 786 #define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L +#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" +#define NID_id_smime_ct_contentCollection 1058 +#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L + +#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" +#define NID_id_smime_ct_authEnvelopedData 1059 +#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L + #define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" #define NID_id_ct_asciiTextWithCRLF 787 #define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L +#define SN_id_ct_xml "id-ct-xml" +#define NID_id_ct_xml 1060 +#define OBJ_id_ct_xml OBJ_id_smime_ct,28L + #define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" #define NID_id_smime_aa_receiptRequest 212 #define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L @@ -1490,6 +1449,11 @@ #define NID_proxyCertInfo 663 #define OBJ_proxyCertInfo OBJ_id_pe,14L +#define SN_tlsfeature "tlsfeature" +#define LN_tlsfeature "TLS Feature" +#define NID_tlsfeature 1020 +#define OBJ_tlsfeature OBJ_id_pe,24L + #define SN_id_qt_cps "id-qt-cps" #define LN_id_qt_cps "Policy Qualifier CPS" #define NID_id_qt_cps 164 @@ -1554,6 +1518,51 @@ #define NID_dvcs 297 #define OBJ_dvcs OBJ_id_kp,10L +#define SN_ipsec_IKE "ipsecIKE" +#define LN_ipsec_IKE "ipsec Internet Key Exchange" +#define NID_ipsec_IKE 1022 +#define OBJ_ipsec_IKE OBJ_id_kp,17L + +#define SN_capwapAC "capwapAC" +#define LN_capwapAC "Ctrl/provision WAP Access" +#define NID_capwapAC 1023 +#define OBJ_capwapAC OBJ_id_kp,18L + +#define SN_capwapWTP "capwapWTP" +#define LN_capwapWTP "Ctrl/Provision WAP Termination" +#define NID_capwapWTP 1024 +#define OBJ_capwapWTP OBJ_id_kp,19L + +#define SN_sshClient "secureShellClient" +#define LN_sshClient "SSH Client" +#define NID_sshClient 1025 +#define OBJ_sshClient OBJ_id_kp,21L + +#define SN_sshServer "secureShellServer" +#define LN_sshServer "SSH Server" +#define NID_sshServer 1026 +#define OBJ_sshServer OBJ_id_kp,22L + +#define SN_sendRouter "sendRouter" +#define LN_sendRouter "Send Router" +#define NID_sendRouter 1027 +#define OBJ_sendRouter OBJ_id_kp,23L + +#define SN_sendProxiedRouter "sendProxiedRouter" +#define LN_sendProxiedRouter "Send Proxied Router" +#define NID_sendProxiedRouter 1028 +#define OBJ_sendProxiedRouter OBJ_id_kp,24L + +#define SN_sendOwner "sendOwner" +#define LN_sendOwner "Send Owner" +#define NID_sendOwner 1029 +#define OBJ_sendOwner OBJ_id_kp,25L + +#define SN_sendProxiedOwner "sendProxiedOwner" +#define LN_sendProxiedOwner "Send Proxied Owner" +#define NID_sendProxiedOwner 1030 +#define OBJ_sendProxiedOwner OBJ_id_kp,26L + #define SN_id_it_caProtEncCert "id-it-caProtEncCert" #define NID_id_it_caProtEncCert 298 #define OBJ_id_it_caProtEncCert OBJ_id_it,1L @@ -2030,6 +2039,16 @@ #define NID_ripemd160WithRSA 119 #define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L +#define SN_blake2b512 "BLAKE2b512" +#define LN_blake2b512 "blake2b512" +#define NID_blake2b512 1056 +#define OBJ_blake2b512 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L + +#define SN_blake2s256 "BLAKE2s256" +#define LN_blake2s256 "blake2s256" +#define NID_blake2s256 1057 +#define OBJ_blake2s256 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L + #define SN_sxnet "SXNetID" #define LN_sxnet "Strong Extranet ID" #define NID_sxnet 143 @@ -2354,7 +2373,7 @@ #define OBJ_delta_crl OBJ_id_ce,27L #define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distrubution Point" +#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" #define NID_issuing_distribution_point 770 #define OBJ_issuing_distribution_point OBJ_id_ce,28L @@ -2579,11 +2598,6 @@ #define NID_id_hex_multipart_message 508 #define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L -#define SN_rle_compression "RLE" -#define LN_rle_compression "run length compression" -#define NID_rle_compression 124 -#define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - #define SN_zlib_compression "ZLIB" #define LN_zlib_compression "zlib compression" #define NID_zlib_compression 125 @@ -2745,6 +2759,18 @@ #define LN_aes_256_ctr "aes-256-ctr" #define NID_aes_256_ctr 906 +#define SN_aes_128_ocb "AES-128-OCB" +#define LN_aes_128_ocb "aes-128-ocb" +#define NID_aes_128_ocb 958 + +#define SN_aes_192_ocb "AES-192-OCB" +#define LN_aes_192_ocb "aes-192-ocb" +#define NID_aes_192_ocb 959 + +#define SN_aes_256_ocb "AES-256-OCB" +#define LN_aes_256_ocb "aes-256-ocb" +#define NID_aes_256_ocb 960 + #define SN_aes_128_xts "AES-128-XTS" #define LN_aes_128_xts "aes-128-xts" #define NID_aes_128_xts 913 @@ -3063,6 +3089,11 @@ #define NID_friendlyCountryName 490 #define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L +#define SN_uniqueIdentifier "uid" +#define LN_uniqueIdentifier "uniqueIdentifier" +#define NID_uniqueIdentifier 102 +#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L + #define LN_organizationalStatus "organizationalStatus" #define NID_organizationalStatus 491 #define OBJ_organizationalStatus OBJ_pilotAttributeType,45L @@ -3678,6 +3709,10 @@ #define NID_cryptocom 806 #define OBJ_cryptocom OBJ_member_body,643L,2L,9L +#define SN_id_tc26 "id-tc26" +#define NID_id_tc26 974 +#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L + #define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" #define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" #define NID_id_GostR3411_94_with_GostR3410_2001 807 @@ -3716,11 +3751,26 @@ #define SN_gost89_cnt "gost89-cnt" #define NID_gost89_cnt 814 +#define SN_gost89_cnt_12 "gost89-cnt-12" +#define NID_gost89_cnt_12 975 + +#define SN_gost89_cbc "gost89-cbc" +#define NID_gost89_cbc 1009 + +#define SN_gost89_ecb "gost89-ecb" +#define NID_gost89_ecb 1010 + +#define SN_gost89_ctr "gost89-ctr" +#define NID_gost89_ctr 1011 + #define SN_id_Gost28147_89_MAC "gost-mac" #define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" #define NID_id_Gost28147_89_MAC 815 #define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L +#define SN_gost_mac_12 "gost-mac-12" +#define NID_gost_mac_12 976 + #define SN_id_GostR3411_94_prf "prf-gostr3411-94" #define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" #define NID_id_GostR3411_94_prf 816 @@ -3886,6 +3936,169 @@ #define NID_id_GostR3410_2001_ParamSet_cc 854 #define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L +#define SN_id_tc26_algorithms "id-tc26-algorithms" +#define NID_id_tc26_algorithms 977 +#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L + +#define SN_id_tc26_sign "id-tc26-sign" +#define NID_id_tc26_sign 978 +#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L + +#define SN_id_GostR3410_2012_256 "gost2012_256" +#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" +#define NID_id_GostR3410_2012_256 979 +#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L + +#define SN_id_GostR3410_2012_512 "gost2012_512" +#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" +#define NID_id_GostR3410_2012_512 980 +#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L + +#define SN_id_tc26_digest "id-tc26-digest" +#define NID_id_tc26_digest 981 +#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L + +#define SN_id_GostR3411_2012_256 "md_gost12_256" +#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" +#define NID_id_GostR3411_2012_256 982 +#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L + +#define SN_id_GostR3411_2012_512 "md_gost12_512" +#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" +#define NID_id_GostR3411_2012_512 983 +#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L + +#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" +#define NID_id_tc26_signwithdigest 984 +#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L + +#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" +#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L + +#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" +#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L + +#define SN_id_tc26_mac "id-tc26-mac" +#define NID_id_tc26_mac 987 +#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L + +#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" +#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" +#define NID_id_tc26_hmac_gost_3411_2012_256 988 +#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L + +#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" +#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" +#define NID_id_tc26_hmac_gost_3411_2012_512 989 +#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L + +#define SN_id_tc26_cipher "id-tc26-cipher" +#define NID_id_tc26_cipher 990 +#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L + +#define SN_id_tc26_agreement "id-tc26-agreement" +#define NID_id_tc26_agreement 991 +#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L + +#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" +#define NID_id_tc26_agreement_gost_3410_2012_256 992 +#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L + +#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" +#define NID_id_tc26_agreement_gost_3410_2012_512 993 +#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L + +#define SN_id_tc26_constants "id-tc26-constants" +#define NID_id_tc26_constants 994 +#define OBJ_id_tc26_constants OBJ_id_tc26,2L + +#define SN_id_tc26_sign_constants "id-tc26-sign-constants" +#define NID_id_tc26_sign_constants 995 +#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L + +#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" +#define NID_id_tc26_gost_3410_2012_512_constants 996 +#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L + +#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" +#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" +#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L + +#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" +#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" +#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L + +#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" +#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" +#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L + +#define SN_id_tc26_digest_constants "id-tc26-digest-constants" +#define NID_id_tc26_digest_constants 1000 +#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L + +#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" +#define NID_id_tc26_cipher_constants 1001 +#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L + +#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" +#define NID_id_tc26_gost_28147_constants 1002 +#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L + +#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" +#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" +#define NID_id_tc26_gost_28147_param_Z 1003 +#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L + +#define SN_INN "INN" +#define LN_INN "INN" +#define NID_INN 1004 +#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L + +#define SN_OGRN "OGRN" +#define LN_OGRN "OGRN" +#define NID_OGRN 1005 +#define OBJ_OGRN OBJ_member_body,643L,100L,1L + +#define SN_SNILS "SNILS" +#define LN_SNILS "SNILS" +#define NID_SNILS 1006 +#define OBJ_SNILS OBJ_member_body,643L,100L,3L + +#define SN_subjectSignTool "subjectSignTool" +#define LN_subjectSignTool "Signing Tool of Subject" +#define NID_subjectSignTool 1007 +#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L + +#define SN_issuerSignTool "issuerSignTool" +#define LN_issuerSignTool "Signing Tool of Issuer" +#define NID_issuerSignTool 1008 +#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L + +#define SN_grasshopper_ecb "grasshopper-ecb" +#define NID_grasshopper_ecb 1012 + +#define SN_grasshopper_ctr "grasshopper-ctr" +#define NID_grasshopper_ctr 1013 + +#define SN_grasshopper_ofb "grasshopper-ofb" +#define NID_grasshopper_ofb 1014 + +#define SN_grasshopper_cbc "grasshopper-cbc" +#define NID_grasshopper_cbc 1015 + +#define SN_grasshopper_cfb "grasshopper-cfb" +#define NID_grasshopper_cfb 1016 + +#define SN_grasshopper_mac "grasshopper-mac" +#define NID_grasshopper_mac 1017 + #define SN_camellia_128_cbc "CAMELLIA-128-CBC" #define LN_camellia_128_cbc "camellia-128-cbc" #define NID_camellia_128_cbc 751 @@ -3932,6 +4145,26 @@ #define NID_camellia_128_cfb128 757 #define OBJ_camellia_128_cfb128 OBJ_camellia,4L +#define SN_camellia_128_gcm "CAMELLIA-128-GCM" +#define LN_camellia_128_gcm "camellia-128-gcm" +#define NID_camellia_128_gcm 961 +#define OBJ_camellia_128_gcm OBJ_camellia,6L + +#define SN_camellia_128_ccm "CAMELLIA-128-CCM" +#define LN_camellia_128_ccm "camellia-128-ccm" +#define NID_camellia_128_ccm 962 +#define OBJ_camellia_128_ccm OBJ_camellia,7L + +#define SN_camellia_128_ctr "CAMELLIA-128-CTR" +#define LN_camellia_128_ctr "camellia-128-ctr" +#define NID_camellia_128_ctr 963 +#define OBJ_camellia_128_ctr OBJ_camellia,9L + +#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" +#define LN_camellia_128_cmac "camellia-128-cmac" +#define NID_camellia_128_cmac 964 +#define OBJ_camellia_128_cmac OBJ_camellia,10L + #define SN_camellia_192_ecb "CAMELLIA-192-ECB" #define LN_camellia_192_ecb "camellia-192-ecb" #define NID_camellia_192_ecb 755 @@ -3947,6 +4180,26 @@ #define NID_camellia_192_cfb128 758 #define OBJ_camellia_192_cfb128 OBJ_camellia,24L +#define SN_camellia_192_gcm "CAMELLIA-192-GCM" +#define LN_camellia_192_gcm "camellia-192-gcm" +#define NID_camellia_192_gcm 965 +#define OBJ_camellia_192_gcm OBJ_camellia,26L + +#define SN_camellia_192_ccm "CAMELLIA-192-CCM" +#define LN_camellia_192_ccm "camellia-192-ccm" +#define NID_camellia_192_ccm 966 +#define OBJ_camellia_192_ccm OBJ_camellia,27L + +#define SN_camellia_192_ctr "CAMELLIA-192-CTR" +#define LN_camellia_192_ctr "camellia-192-ctr" +#define NID_camellia_192_ctr 967 +#define OBJ_camellia_192_ctr OBJ_camellia,29L + +#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" +#define LN_camellia_192_cmac "camellia-192-cmac" +#define NID_camellia_192_cmac 968 +#define OBJ_camellia_192_cmac OBJ_camellia,30L + #define SN_camellia_256_ecb "CAMELLIA-256-ECB" #define LN_camellia_256_ecb "camellia-256-ecb" #define NID_camellia_256_ecb 756 @@ -3962,6 +4215,26 @@ #define NID_camellia_256_cfb128 759 #define OBJ_camellia_256_cfb128 OBJ_camellia,44L +#define SN_camellia_256_gcm "CAMELLIA-256-GCM" +#define LN_camellia_256_gcm "camellia-256-gcm" +#define NID_camellia_256_gcm 969 +#define OBJ_camellia_256_gcm OBJ_camellia,46L + +#define SN_camellia_256_ccm "CAMELLIA-256-CCM" +#define LN_camellia_256_ccm "camellia-256-ccm" +#define NID_camellia_256_ccm 970 +#define OBJ_camellia_256_ccm OBJ_camellia,47L + +#define SN_camellia_256_ctr "CAMELLIA-256-CTR" +#define LN_camellia_256_ctr "camellia-256-ctr" +#define NID_camellia_256_ctr 971 +#define OBJ_camellia_256_ctr OBJ_camellia,49L + +#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" +#define LN_camellia_256_cmac "camellia-256-cmac" +#define NID_camellia_256_cmac 972 +#define OBJ_camellia_256_cmac OBJ_camellia,50L + #define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" #define LN_camellia_128_cfb1 "camellia-128-cfb1" #define NID_camellia_128_cfb1 760 @@ -4047,6 +4320,14 @@ #define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" #define NID_aes_256_cbc_hmac_sha256 950 +#define SN_chacha20_poly1305 "ChaCha20-Poly1305" +#define LN_chacha20_poly1305 "chacha20-poly1305" +#define NID_chacha20_poly1305 1018 + +#define SN_chacha20 "ChaCha20" +#define LN_chacha20 "chacha20" +#define NID_chacha20 1019 + #define SN_dhpublicnumber "dhpublicnumber" #define LN_dhpublicnumber "X9.42 DH" #define NID_dhpublicnumber 920 @@ -4192,3 +4473,105 @@ #define LN_jurisdictionCountryName "jurisdictionCountryName" #define NID_jurisdictionCountryName 957 #define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L + +#define SN_id_scrypt "id-scrypt" +#define NID_id_scrypt 973 +#define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L + +#define SN_tls1_prf "TLS1-PRF" +#define LN_tls1_prf "tls1-prf" +#define NID_tls1_prf 1021 + +#define SN_hkdf "HKDF" +#define LN_hkdf "hkdf" +#define NID_hkdf 1036 + +#define SN_id_pkinit "id-pkinit" +#define NID_id_pkinit 1031 +#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L + +#define SN_pkInitClientAuth "pkInitClientAuth" +#define LN_pkInitClientAuth "PKINIT Client Auth" +#define NID_pkInitClientAuth 1032 +#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L + +#define SN_pkInitKDC "pkInitKDC" +#define LN_pkInitKDC "Signing KDC Response" +#define NID_pkInitKDC 1033 +#define OBJ_pkInitKDC OBJ_id_pkinit,5L + +#define SN_X25519 "X25519" +#define NID_X25519 1034 +#define OBJ_X25519 1L,3L,101L,110L + +#define SN_X448 "X448" +#define NID_X448 1035 +#define OBJ_X448 1L,3L,101L,111L + +#define SN_kx_rsa "KxRSA" +#define LN_kx_rsa "kx-rsa" +#define NID_kx_rsa 1037 + +#define SN_kx_ecdhe "KxECDHE" +#define LN_kx_ecdhe "kx-ecdhe" +#define NID_kx_ecdhe 1038 + +#define SN_kx_dhe "KxDHE" +#define LN_kx_dhe "kx-dhe" +#define NID_kx_dhe 1039 + +#define SN_kx_ecdhe_psk "KxECDHE-PSK" +#define LN_kx_ecdhe_psk "kx-ecdhe-psk" +#define NID_kx_ecdhe_psk 1040 + +#define SN_kx_dhe_psk "KxDHE-PSK" +#define LN_kx_dhe_psk "kx-dhe-psk" +#define NID_kx_dhe_psk 1041 + +#define SN_kx_rsa_psk "KxRSA_PSK" +#define LN_kx_rsa_psk "kx-rsa-psk" +#define NID_kx_rsa_psk 1042 + +#define SN_kx_psk "KxPSK" +#define LN_kx_psk "kx-psk" +#define NID_kx_psk 1043 + +#define SN_kx_srp "KxSRP" +#define LN_kx_srp "kx-srp" +#define NID_kx_srp 1044 + +#define SN_kx_gost "KxGOST" +#define LN_kx_gost "kx-gost" +#define NID_kx_gost 1045 + +#define SN_auth_rsa "AuthRSA" +#define LN_auth_rsa "auth-rsa" +#define NID_auth_rsa 1046 + +#define SN_auth_ecdsa "AuthECDSA" +#define LN_auth_ecdsa "auth-ecdsa" +#define NID_auth_ecdsa 1047 + +#define SN_auth_psk "AuthPSK" +#define LN_auth_psk "auth-psk" +#define NID_auth_psk 1048 + +#define SN_auth_dss "AuthDSS" +#define LN_auth_dss "auth-dss" +#define NID_auth_dss 1049 + +#define SN_auth_gost01 "AuthGOST01" +#define LN_auth_gost01 "auth-gost01" +#define NID_auth_gost01 1050 + +#define SN_auth_gost12 "AuthGOST12" +#define LN_auth_gost12 "auth-gost12" +#define NID_auth_gost12 1051 + +#define SN_auth_srp "AuthSRP" +#define LN_auth_srp "auth-srp" +#define NID_auth_srp 1052 + +#define SN_auth_null "AuthNULL" +#define LN_auth_null "auth-null" +#define NID_auth_null 1053 diff --git a/libs/mac/include/openssl/objects.h b/libs/mac/include/openssl/objects.h index b8dafa89..d4462fee 100644 --- a/libs/mac/include/openssl/objects.h +++ b/libs/mac/include/openssl/objects.h @@ -1,59 +1,10 @@ -/* crypto/objects/objects.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_OBJECTS_H @@ -1041,7 +992,7 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, * const void *a_; * const nid_triple const *a = a_; * - * The assignement discards a const because what you really want is: + * The assignment discards a const because what you really want is: * * const int const * const *a = a_; * @@ -1049,7 +1000,7 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, * which breaks comparison functions. * * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, delcare nid_triple + * declarations. Or, as I finally did in this case, declare nid_triple * to be a struct, which it should have been in the first place. * * Ben, August 2008. @@ -1104,23 +1055,26 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, int OBJ_new_nid(int num); int OBJ_add_object(const ASN1_OBJECT *obj); int OBJ_create(const char *oid, const char *sn, const char *ln); -void OBJ_cleanup(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define OBJ_cleanup() while(0) continue +#endif int OBJ_create_objects(BIO *in); +size_t OBJ_length(const ASN1_OBJECT *obj); +const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); + int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); int OBJ_add_sigid(int signid, int dig_id, int pkey_id); void OBJ_sigid_free(void); -extern int obj_cleanup_defer; -void check_defer(int nid); - /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_OBJ_strings(void); + +int ERR_load_OBJ_strings(void); /* Error codes for the OBJ functions. */ @@ -1134,10 +1088,10 @@ void ERR_load_OBJ_strings(void); # define OBJ_F_OBJ_NID2SN 104 /* Reason codes. */ -# define OBJ_R_MALLOC_FAILURE 100 +# define OBJ_R_OID_EXISTS 102 # define OBJ_R_UNKNOWN_NID 101 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/ocsp.h b/libs/mac/include/openssl/ocsp.h index ca2ee76d..90ebe5cc 100644 --- a/libs/mac/include/openssl/ocsp.h +++ b/libs/mac/include/openssl/ocsp.h @@ -1,306 +1,22 @@ -/* ocsp.h */ /* - * Written by Tom Titchener for the OpenSSL - * project. - */ - -/* - * History: This file was transfered to Richard Levitte from CertCo by Kathy - * Weinhold in mid-spring 2000 to be included in OpenSSL or released as a - * patch kit. - */ - -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_OCSP_H # define HEADER_OCSP_H -# include -# include -# include -# include +#include -#ifdef __cplusplus -extern "C" { -#endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 - -/*- CertID ::= SEQUENCE { - * hashAlgorithm AlgorithmIdentifier, - * issuerNameHash OCTET STRING, -- Hash of Issuer's DN - * issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields) - * serialNumber CertificateSerialNumber } +/* + * These definitions are outside the OPENSSL_NO_OCSP guard because although for + * historical reasons they have OCSP_* names, they can actually be used + * independently of OCSP. E.g. see RFC5280 */ -typedef struct ocsp_cert_id_st { - X509_ALGOR *hashAlgorithm; - ASN1_OCTET_STRING *issuerNameHash; - ASN1_OCTET_STRING *issuerKeyHash; - ASN1_INTEGER *serialNumber; -} OCSP_CERTID; - -DECLARE_STACK_OF(OCSP_CERTID) - -/*- Request ::= SEQUENCE { - * reqCert CertID, - * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_one_request_st { - OCSP_CERTID *reqCert; - STACK_OF(X509_EXTENSION) *singleRequestExtensions; -} OCSP_ONEREQ; - -DECLARE_STACK_OF(OCSP_ONEREQ) -DECLARE_ASN1_SET_OF(OCSP_ONEREQ) - -/*- TBSRequest ::= SEQUENCE { - * version [0] EXPLICIT Version DEFAULT v1, - * requestorName [1] EXPLICIT GeneralName OPTIONAL, - * requestList SEQUENCE OF Request, - * requestExtensions [2] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_req_info_st { - ASN1_INTEGER *version; - GENERAL_NAME *requestorName; - STACK_OF(OCSP_ONEREQ) *requestList; - STACK_OF(X509_EXTENSION) *requestExtensions; -} OCSP_REQINFO; - -/*- Signature ::= SEQUENCE { - * signatureAlgorithm AlgorithmIdentifier, - * signature BIT STRING, - * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } - */ -typedef struct ocsp_signature_st { - X509_ALGOR *signatureAlgorithm; - ASN1_BIT_STRING *signature; - STACK_OF(X509) *certs; -} OCSP_SIGNATURE; - -/*- OCSPRequest ::= SEQUENCE { - * tbsRequest TBSRequest, - * optionalSignature [0] EXPLICIT Signature OPTIONAL } - */ -typedef struct ocsp_request_st { - OCSP_REQINFO *tbsRequest; - OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */ -} OCSP_REQUEST; - -/*- OCSPResponseStatus ::= ENUMERATED { - * successful (0), --Response has valid confirmations - * malformedRequest (1), --Illegal confirmation request - * internalError (2), --Internal error in issuer - * tryLater (3), --Try again later - * --(4) is not used - * sigRequired (5), --Must sign the request - * unauthorized (6) --Request unauthorized - * } - */ -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -/*- ResponseBytes ::= SEQUENCE { - * responseType OBJECT IDENTIFIER, - * response OCTET STRING } - */ -typedef struct ocsp_resp_bytes_st { - ASN1_OBJECT *responseType; - ASN1_OCTET_STRING *response; -} OCSP_RESPBYTES; - -/*- OCSPResponse ::= SEQUENCE { - * responseStatus OCSPResponseStatus, - * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } - */ -struct ocsp_response_st { - ASN1_ENUMERATED *responseStatus; - OCSP_RESPBYTES *responseBytes; -}; - -/*- ResponderID ::= CHOICE { - * byName [1] Name, - * byKey [2] KeyHash } - */ -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 -struct ocsp_responder_id_st { - int type; - union { - X509_NAME *byName; - ASN1_OCTET_STRING *byKey; - } value; -}; - -DECLARE_STACK_OF(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) - -/*- KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key - * --(excluding the tag and length fields) - */ - -/*- RevokedInfo ::= SEQUENCE { - * revocationTime GeneralizedTime, - * revocationReason [0] EXPLICIT CRLReason OPTIONAL } - */ -typedef struct ocsp_revoked_info_st { - ASN1_GENERALIZEDTIME *revocationTime; - ASN1_ENUMERATED *revocationReason; -} OCSP_REVOKEDINFO; - -/*- CertStatus ::= CHOICE { - * good [0] IMPLICIT NULL, - * revoked [1] IMPLICIT RevokedInfo, - * unknown [2] IMPLICIT UnknownInfo } - */ -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 -typedef struct ocsp_cert_status_st { - int type; - union { - ASN1_NULL *good; - OCSP_REVOKEDINFO *revoked; - ASN1_NULL *unknown; - } value; -} OCSP_CERTSTATUS; - -/*- SingleResponse ::= SEQUENCE { - * certID CertID, - * certStatus CertStatus, - * thisUpdate GeneralizedTime, - * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, - * singleExtensions [1] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_single_response_st { - OCSP_CERTID *certId; - OCSP_CERTSTATUS *certStatus; - ASN1_GENERALIZEDTIME *thisUpdate; - ASN1_GENERALIZEDTIME *nextUpdate; - STACK_OF(X509_EXTENSION) *singleExtensions; -} OCSP_SINGLERESP; - -DECLARE_STACK_OF(OCSP_SINGLERESP) -DECLARE_ASN1_SET_OF(OCSP_SINGLERESP) - -/*- ResponseData ::= SEQUENCE { - * version [0] EXPLICIT Version DEFAULT v1, - * responderID ResponderID, - * producedAt GeneralizedTime, - * responses SEQUENCE OF SingleResponse, - * responseExtensions [1] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_response_data_st { - ASN1_INTEGER *version; - OCSP_RESPID *responderId; - ASN1_GENERALIZEDTIME *producedAt; - STACK_OF(OCSP_SINGLERESP) *responses; - STACK_OF(X509_EXTENSION) *responseExtensions; -} OCSP_RESPDATA; - -/*- BasicOCSPResponse ::= SEQUENCE { - * tbsResponseData ResponseData, - * signatureAlgorithm AlgorithmIdentifier, - * signature BIT STRING, - * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } - */ - /* - * Note 1: The value for "signature" is specified in the OCSP rfc2560 as - * follows: "The value for the signature SHALL be computed on the hash of - * the DER encoding ResponseData." This means that you must hash the - * DER-encoded tbsResponseData, and then run it through a crypto-signing - * function, which will (at least w/RSA) do a hash-'n'-private-encrypt - * operation. This seems a bit odd, but that's the spec. Also note that - * the data structures do not leave anywhere to independently specify the - * algorithm used for the initial hash. So, we look at the - * signature-specification algorithm, and try to do something intelligent. - * -- Kathy Weinhold, CertCo - */ - /* - * Note 2: It seems that the mentioned passage from RFC 2560 (section - * 4.2.1) is open for interpretation. I've done tests against another - * responder, and found that it doesn't do the double hashing that the RFC - * seems to say one should. Therefore, all relevant functions take a flag - * saying which variant should be used. -- Richard Levitte, OpenSSL team - * and CeloCom - */ -typedef struct ocsp_basic_response_st { - OCSP_RESPDATA *tbsResponseData; - X509_ALGOR *signatureAlgorithm; - ASN1_BIT_STRING *signature; - STACK_OF(X509) *certs; -} OCSP_BASICRESP; - /*- * CRLReason ::= ENUMERATED { * unspecified (0), @@ -312,83 +28,119 @@ typedef struct ocsp_basic_response_st { * certificateHold (6), * removeFromCRL (8) } */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 +# define OCSP_REVOKED_STATUS_NOSTATUS -1 +# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 +# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 +# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 +# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 +# define OCSP_REVOKED_STATUS_SUPERSEDED 4 +# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 +# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 +# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 -/*- - * CrlID ::= SEQUENCE { - * crlUrl [0] EXPLICIT IA5String OPTIONAL, - * crlNum [1] EXPLICIT INTEGER OPTIONAL, - * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } - */ -typedef struct ocsp_crl_id_st { - ASN1_IA5STRING *crlUrl; - ASN1_INTEGER *crlNum; - ASN1_GENERALIZEDTIME *crlTime; -} OCSP_CRLID; -/*- - * ServiceLocator ::= SEQUENCE { - * issuer Name, - * locator AuthorityInfoAccessSyntax OPTIONAL } - */ -typedef struct ocsp_service_locator_st { - X509_NAME *issuer; - STACK_OF(ACCESS_DESCRIPTION) *locator; -} OCSP_SERVICELOC; +# ifndef OPENSSL_NO_OCSP -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" +# include +# include +# include +# include -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) +#ifdef __cplusplus +extern "C" { +#endif -# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) +/* Various flags and values */ -# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ +# define OCSP_DEFAULT_NONCE_LENGTH 16 + +# define OCSP_NOCERTS 0x1 +# define OCSP_NOINTERN 0x2 +# define OCSP_NOSIGS 0x4 +# define OCSP_NOCHAIN 0x8 +# define OCSP_NOVERIFY 0x10 +# define OCSP_NOEXPLICIT 0x20 +# define OCSP_NOCASIGN 0x40 +# define OCSP_NODELEGATED 0x80 +# define OCSP_NOCHECKS 0x100 +# define OCSP_TRUSTOTHER 0x200 +# define OCSP_RESPID_KEY 0x400 +# define OCSP_NOTIME 0x800 + +typedef struct ocsp_cert_id_st OCSP_CERTID; + +DEFINE_STACK_OF(OCSP_CERTID) + +typedef struct ocsp_one_request_st OCSP_ONEREQ; + +DEFINE_STACK_OF(OCSP_ONEREQ) + +typedef struct ocsp_req_info_st OCSP_REQINFO; +typedef struct ocsp_signature_st OCSP_SIGNATURE; +typedef struct ocsp_request_st OCSP_REQUEST; + +# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 +# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 +# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 +# define OCSP_RESPONSE_STATUS_TRYLATER 3 +# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 +# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 + +typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; + +# define V_OCSP_RESPID_NAME 0 +# define V_OCSP_RESPID_KEY 1 + +DEFINE_STACK_OF(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) + +typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; + +# define V_OCSP_CERTSTATUS_GOOD 0 +# define V_OCSP_CERTSTATUS_REVOKED 1 +# define V_OCSP_CERTSTATUS_UNKNOWN 2 + +typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; +typedef struct ocsp_single_response_st OCSP_SINGLERESP; + +DEFINE_STACK_OF(OCSP_SINGLERESP) + +typedef struct ocsp_response_data_st OCSP_RESPDATA; + +typedef struct ocsp_basic_response_st OCSP_BASICRESP; + +typedef struct ocsp_crl_id_st OCSP_CRLID; +typedef struct ocsp_service_locator_st OCSP_SERVICELOC; + +# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" +# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" + +# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) + +# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) + +# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) -# define PEM_write_bio_OCSP_REQUEST(bp,o) \ +# define PEM_write_bio_OCSP_REQUEST(bp,o) \ PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ bp,(char *)o, NULL,NULL,0,NULL,NULL) -# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ +# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ bp,(char *)o, NULL,NULL,0,NULL,NULL) -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) +# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) +# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) -# define OCSP_REQUEST_sign(o,pkey,md) \ - ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\ - o->optionalSignature->signatureAlgorithm,NULL,\ - o->optionalSignature->signature,o->tbsRequest,pkey,md) - -# define OCSP_BASICRESP_sign(o,pkey,md,d) \ - ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\ - o->signature,o->tbsResponseData,pkey,md) - -# define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\ - a->optionalSignature->signatureAlgorithm,\ - a->optionalSignature->signature,a->tbsRequest,r) - -# define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\ - a->signatureAlgorithm,a->signature,a->tbsResponseData,r) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ +# define ASN1_BIT_STRING_digest(data,type,md,len) \ ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) -# define OCSP_CERTSTATUS_dup(cs)\ +# define OCSP_CERTSTATUS_dup(cs)\ (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) @@ -414,12 +166,13 @@ int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, const char *name, const char *value); -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); +OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, + const X509 *issuer); OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - X509_NAME *issuerName, - ASN1_BIT_STRING *issuerKey, - ASN1_INTEGER *serialNumber); + const X509_NAME *issuerName, + const ASN1_BIT_STRING *issuerKey, + const ASN1_INTEGER *serialNumber); OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); @@ -440,8 +193,18 @@ int OCSP_request_sign(OCSP_REQUEST *req, int OCSP_response_status(OCSP_RESPONSE *resp); OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); +const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, + STACK_OF(X509) *extra_certs); + int OCSP_resp_count(OCSP_BASICRESP *bs); OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); +const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); +const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, + const ASN1_OCTET_STRING **pid, + const X509_NAME **pname); + int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, ASN1_GENERALIZEDTIME **revtime, @@ -482,18 +245,21 @@ int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); int OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, STACK_OF(X509) *certs, unsigned long flags); +int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); -X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim); +X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); X509_EXTENSION *OCSP_accept_responses_new(char **oids); X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); -X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, char **urls); +X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls); int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, ASN1_OBJECT *obj, +int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, int lastpos); int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); @@ -506,7 +272,7 @@ int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, ASN1_OBJECT *obj, int lastpos); +int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); @@ -517,7 +283,7 @@ int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, ASN1_OBJECT *obj, +int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, int lastpos); int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, int lastpos); @@ -531,7 +297,7 @@ int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, ASN1_OBJECT *obj, +int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, int lastpos); int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, int lastpos); @@ -542,6 +308,7 @@ void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, int crit, unsigned long flags); int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); +const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) @@ -574,12 +341,12 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_OCSP_strings(void); + +int ERR_load_OCSP_strings(void); /* Error codes for the OCSP functions. */ /* Function codes. */ -# define OCSP_F_ASN1_STRING_ENCODE 100 # define OCSP_F_D2I_OCSP_NONCE 102 # define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 # define OCSP_F_OCSP_BASIC_SIGN 104 @@ -594,13 +361,9 @@ void ERR_load_OCSP_strings(void); # define OCSP_F_OCSP_REQUEST_SIGN 110 # define OCSP_F_OCSP_REQUEST_VERIFY 116 # define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_OCSP_SENDREQ_BIO 112 -# define OCSP_F_OCSP_SENDREQ_NBIO 117 # define OCSP_F_PARSE_HTTP_LINE1 118 -# define OCSP_F_REQUEST_VERIFY 113 /* Reason codes. */ -# define OCSP_R_BAD_DATA 100 # define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 # define OCSP_R_DIGEST_ERR 102 # define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 @@ -610,18 +373,15 @@ void ERR_load_OCSP_strings(void); # define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 # define OCSP_R_NOT_BASIC_RESPONSE 104 # define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_CONTENT 106 -# define OCSP_R_NO_PUBLIC_KEY 107 # define OCSP_R_NO_RESPONSE_DATA 108 # define OCSP_R_NO_REVOKED_TIME 109 +# define OCSP_R_NO_SIGNER_KEY 130 # define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 # define OCSP_R_REQUEST_NOT_SIGNED 128 # define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 # define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_READ_ERROR 113 # define OCSP_R_SERVER_RESPONSE_ERROR 114 # define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SERVER_WRITE_ERROR 116 # define OCSP_R_SIGNATURE_FAILURE 117 # define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 # define OCSP_R_STATUS_EXPIRED 125 @@ -631,7 +391,8 @@ void ERR_load_OCSP_strings(void); # define OCSP_R_UNKNOWN_NID 120 # define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/opensslconf.h b/libs/mac/include/openssl/opensslconf.h index 076cb4e9..dfe6e7a4 100644 --- a/libs/mac/include/openssl/opensslconf.h +++ b/libs/mac/include/openssl/opensslconf.h @@ -1,30 +1,29 @@ -/* opensslconf.h */ -/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ #ifdef __cplusplus extern "C" { #endif -/* OpenSSL was configured with the following options: */ -#ifndef OPENSSL_SYSNAME_MACOSX -# define OPENSSL_SYSNAME_MACOSX -#endif -#ifndef OPENSSL_DOING_MAKEDEPEND +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif -#ifndef OPENSSL_NO_COMP -# define OPENSSL_NO_COMP -#endif -#ifndef OPENSSL_NO_GMP -# define OPENSSL_NO_GMP -#endif -#ifndef OPENSSL_NO_JPAKE -# define OPENSSL_NO_JPAKE -#endif -#ifndef OPENSSL_NO_KRB5 -# define OPENSSL_NO_KRB5 -#endif -#ifndef OPENSSL_NO_LIBUNBOUND -# define OPENSSL_NO_LIBUNBOUND +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 #endif #ifndef OPENSSL_NO_MD2 # define OPENSSL_NO_MD2 @@ -32,8 +31,32 @@ extern "C" { #ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 #endif -#ifndef OPENSSL_NO_RFC3779 -# define OPENSSL_NO_RFC3779 +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN #endif #ifndef OPENSSL_NO_SCTP # define OPENSSL_NO_SCTP @@ -41,14 +64,14 @@ extern "C" { #ifndef OPENSSL_NO_SSL_TRACE # define OPENSSL_NO_SSL_TRACE #endif -#ifndef OPENSSL_NO_SSL2 -# define OPENSSL_NO_SSL2 -#endif #ifndef OPENSSL_NO_SSL3 # define OPENSSL_NO_SSL3 #endif -#ifndef OPENSSL_NO_STORE -# define OPENSSL_NO_STORE +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN #endif #ifndef OPENSSL_NO_UNIT_TEST # define OPENSSL_NO_UNIT_TEST @@ -56,224 +79,91 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif - -#endif /* OPENSSL_DOING_MAKEDEPEND */ - -#ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -#endif -#ifndef OPENSSL_NO_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG #endif -/* The OPENSSL_NO_* macros are also defined as NO_* if the application - asks for it. This is a transient feature that is provided for those - who haven't had the time to do the appropriate changes in their - applications. */ -#ifdef OPENSSL_ALGORITHM_DEFINES -# if defined(OPENSSL_NO_COMP) && !defined(NO_COMP) -# define NO_COMP -# endif -# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) -# define NO_GMP -# endif -# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) -# define NO_JPAKE -# endif -# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) -# define NO_KRB5 -# endif -# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) -# define NO_LIBUNBOUND -# endif -# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) -# define NO_MD2 -# endif -# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5) -# define NO_RC5 -# endif -# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779) -# define NO_RFC3779 -# endif -# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) -# define NO_SCTP -# endif -# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) -# define NO_SSL_TRACE -# endif -# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) -# define NO_SSL2 -# endif -# if defined(OPENSSL_NO_SSL3) && !defined(NO_SSL3) -# define NO_SSL3 -# endif -# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) -# define NO_STORE -# endif -# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) -# define NO_UNIT_TEST -# endif -# if defined(OPENSSL_NO_WEAK_SSL_CIPHERS) && !defined(NO_WEAK_SSL_CIPHERS) -# define NO_WEAK_SSL_CIPHERS + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +#else +# define DECLARE_DEPRECATED(f) f; +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ # endif #endif +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + #define OPENSSL_CPUID_OBJ -/* crypto/opensslconf.h.in */ - /* Generate 80386 code? */ #undef I386_ONLY -#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ -#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/usr/local/Cellar/openssl/1.0.2o_1/lib/engines" -#define OPENSSLDIR "/usr/local/etc/openssl" -#endif -#endif - #undef OPENSSL_UNISTD #define OPENSSL_UNISTD #undef OPENSSL_EXPORT_VAR_AS_FUNCTION -#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) -#define IDEA_INT unsigned int -#endif - -#if defined(HEADER_MD2_H) && !defined(MD2_INT) -#define MD2_INT unsigned int -#endif - -#if defined(HEADER_RC2_H) && !defined(RC2_INT) -/* I need to put in a mod for the alpha - eay */ -#define RC2_INT unsigned int -#endif - -#if defined(HEADER_RC4_H) -#if !defined(RC4_INT) -/* using int types make the structure larger but make the code faster - * on most boxes I have tested - up to %20 faster. */ /* - * I don't know what does "most" mean, but declaring "int" is a must on: - * - Intel P6 because partial register stalls are very expensive; - * - elder Alpha because it lacks byte load/store instructions; + * The following are cipher-specific, but are part of the public API. */ -#define RC4_INT unsigned int -#endif -#if !defined(RC4_CHUNK) -/* - * This enables code handling data aligned at natural CPU word - * boundary. See crypto/rc4/rc4_enc.c for further details. - */ -#define RC4_CHUNK unsigned long -#endif -#endif - -#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) -/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a - * %20 speed up (longs are 8 bytes, int's are 4). */ -#ifndef DES_LONG -#define DES_LONG unsigned int -#endif -#endif - -#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) -#define CONFIG_HEADER_BN_H -#undef BN_LLONG - -/* Should we define BN_DIV2W here? */ - +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG /* Only one for the following should be defined */ -#define SIXTY_FOUR_BIT_LONG -#undef SIXTY_FOUR_BIT -#undef THIRTY_TWO_BIT +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT #endif -#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) -#define CONFIG_HEADER_RC4_LOCL_H -/* if this is defined data[i] is used instead of *data, this is a %20 - * speedup on x86 */ -#undef RC4_INDEX -#endif +#define RC4_INT unsigned int -#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) -#define CONFIG_HEADER_BF_LOCL_H -#undef BF_PTR -#endif /* HEADER_BF_LOCL_H */ - -#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) -#define CONFIG_HEADER_DES_LOCL_H -#ifndef DES_DEFAULT_OPTIONS -/* the following is tweaked from a config script, that is why it is a - * protected undef/define */ -#ifndef DES_PTR -#undef DES_PTR -#endif - -/* This helps C compiler generate the correct code for multiple functional - * units. It reduces register dependancies at the expense of 2 more - * registers */ -#ifndef DES_RISC1 -#undef DES_RISC1 -#endif - -#ifndef DES_RISC2 -#undef DES_RISC2 -#endif - -#if defined(DES_RISC1) && defined(DES_RISC2) -#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! -#endif - -/* Unroll the inner loop, this sometimes helps, sometimes hinders. - * Very mucy CPU dependant */ -#ifndef DES_UNROLL -#define DES_UNROLL -#endif - -/* These default values were supplied by - * Peter Gutman - * They are only used if nothing else has been defined */ -#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) -/* Special defines which change the way the code is built depending on the - CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find - even newer MIPS CPU's, but at the moment one size fits all for - optimization options. Older Sparc's work better with only UNROLL, but - there's no way to tell at compile time what it is you're running on */ - -#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ -# define DES_PTR -# define DES_RISC1 -# define DES_UNROLL -#elif defined( __ultrix ) /* Older MIPS */ -# define DES_PTR -# define DES_RISC2 -# define DES_UNROLL -#elif defined( __osf1__ ) /* Alpha */ -# define DES_PTR -# define DES_RISC2 -#elif defined ( _AIX ) /* RS6000 */ - /* Unknown */ -#elif defined( __hpux ) /* HP-PA */ - /* Unknown */ -#elif defined( __aux ) /* 68K */ - /* Unknown */ -#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ -# define DES_UNROLL -#elif defined( __sgi ) /* Newer MIPS */ -# define DES_PTR -# define DES_RISC2 -# define DES_UNROLL -#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ -# define DES_PTR -# define DES_RISC1 -# define DES_UNROLL -#endif /* Systems-specific speed defines */ -#endif - -#endif /* DES_DEFAULT_OPTIONS */ -#endif /* HEADER_DES_LOCL_H */ #ifdef __cplusplus } #endif diff --git a/libs/mac/include/openssl/opensslv.h b/libs/mac/include/openssl/opensslv.h index 77f124e2..4fb437f2 100644 --- a/libs/mac/include/openssl/opensslv.h +++ b/libs/mac/include/openssl/opensslv.h @@ -1,3 +1,12 @@ +/* + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + #ifndef HEADER_OPENSSLV_H # define HEADER_OPENSSLV_H @@ -30,13 +39,17 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x100020ffL +# define OPENSSL_VERSION_NUMBER 0x1010008fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2o-fips 27 Mar 2018" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h-fips 27 Mar 2018" # else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2o 27 Mar 2018" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h 27 Mar 2018" # endif -# define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT + +#define OPENSSL_MAKE_VERSION(maj,min,fix,patch) ((0x10000000L)+((maj&0xff)<<20)+((min&0xff)<<12)+((fix&0xff)<<4)+patch) + +/* use this for #if tests, should never depend upon fix/patch */ +#define OPENSSL_VERSION_AT_LEAST(maj,min) (OPENSSL_MAKE_VERSION(maj,min, 0, 0) >= OPENSSL_VERSION_NUMBER) /*- * The macros below are to be used for shared library (.so, .dll, ...) @@ -49,7 +62,7 @@ extern "C" { * * libcrypto.so.0.9 * - * Some unixen also make a softlink with the major verson number only: + * Some unixen also make a softlink with the major version number only: * * libcrypto.so.0 * @@ -88,7 +101,7 @@ extern "C" { * should only keep the versions that are binary compatible with the current. */ # define SHLIB_VERSION_HISTORY "" -# define SHLIB_VERSION_NUMBER "1.0.0" +# define SHLIB_VERSION_NUMBER "1.1" #ifdef __cplusplus diff --git a/libs/mac/include/openssl/ossl_typ.h b/libs/mac/include/openssl/ossl_typ.h index 364d2623..129a67f0 100644 --- a/libs/mac/include/openssl/ossl_typ.h +++ b/libs/mac/include/openssl/ossl_typ.h @@ -1,60 +1,17 @@ -/* ==================================================================== - * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_OPENSSL_TYPES_H # define HEADER_OPENSSL_TYPES_H +#include + #ifdef __cplusplus extern "C" { #endif @@ -104,12 +61,13 @@ typedef struct asn1_object_st ASN1_OBJECT; typedef struct ASN1_ITEM_st ASN1_ITEM; typedef struct asn1_pctx_st ASN1_PCTX; +typedef struct asn1_sctx_st ASN1_SCTX; -# ifdef OPENSSL_SYS_WIN32 +# ifdef _WIN32 # undef X509_NAME # undef X509_EXTENSIONS -# undef X509_CERT_PAIR # undef PKCS7_ISSUER_AND_SERIAL +# undef PKCS7_SIGNER_INFO # undef OCSP_REQUEST # undef OCSP_RESPONSE # endif @@ -117,6 +75,8 @@ typedef struct asn1_pctx_st ASN1_PCTX; # ifdef BIGNUM # undef BIGNUM # endif +struct dane_st; +typedef struct bio_st BIO; typedef struct bignum_st BIGNUM; typedef struct bignum_ctx BN_CTX; typedef struct bn_blinding_st BN_BLINDING; @@ -128,8 +88,8 @@ typedef struct buf_mem_st BUF_MEM; typedef struct evp_cipher_st EVP_CIPHER; typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct env_md_st EVP_MD; -typedef struct env_md_ctx_st EVP_MD_CTX; +typedef struct evp_md_st EVP_MD; +typedef struct evp_md_ctx_st EVP_MD_CTX; typedef struct evp_pkey_st EVP_PKEY; typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; @@ -137,6 +97,10 @@ typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; typedef struct evp_pkey_method_st EVP_PKEY_METHOD; typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; +typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; + +typedef struct hmac_ctx_st HMAC_CTX; + typedef struct dh_st DH; typedef struct dh_method DH_METHOD; @@ -146,11 +110,12 @@ typedef struct dsa_method DSA_METHOD; typedef struct rsa_st RSA; typedef struct rsa_meth_st RSA_METHOD; +typedef struct ec_key_st EC_KEY; +typedef struct ec_key_method_st EC_KEY_METHOD; + typedef struct rand_meth_st RAND_METHOD; -typedef struct ecdh_method ECDH_METHOD; -typedef struct ecdsa_method ECDSA_METHOD; - +typedef struct ssl_dane_st SSL_DANE; typedef struct x509_st X509; typedef struct X509_algor_st X509_ALGOR; typedef struct X509_crl_st X509_CRL; @@ -161,23 +126,25 @@ typedef struct X509_pubkey_st X509_PUBKEY; typedef struct x509_store_st X509_STORE; typedef struct x509_store_ctx_st X509_STORE_CTX; +typedef struct x509_object_st X509_OBJECT; +typedef struct x509_lookup_st X509_LOOKUP; +typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; +typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; + typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; typedef struct v3_ext_ctx X509V3_CTX; typedef struct conf_st CONF; - -typedef struct store_st STORE; -typedef struct store_method_st STORE_METHOD; +typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; typedef struct ui_st UI; typedef struct ui_method_st UI_METHOD; -typedef struct st_ERR_FNS ERR_FNS; - typedef struct engine_st ENGINE; typedef struct ssl_st SSL; typedef struct ssl_ctx_st SSL_CTX; +typedef struct comp_ctx_st COMP_CTX; typedef struct comp_method_st COMP_METHOD; typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; @@ -190,23 +157,33 @@ typedef struct DIST_POINT_st DIST_POINT; typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ -# define DECLARE_PKCS12_STACK_OF(type)/* Nothing */ -# define IMPLEMENT_PKCS12_STACK_OF(type)/* Nothing */ - typedef struct crypto_ex_data_st CRYPTO_EX_DATA; -/* Callback types for crypto.h */ -typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; typedef struct ocsp_response_st OCSP_RESPONSE; typedef struct ocsp_responder_id_st OCSP_RESPID; +typedef struct sct_st SCT; +typedef struct sct_ctx_st SCT_CTX; +typedef struct ctlog_st CTLOG; +typedef struct ctlog_store_st CTLOG_STORE; +typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; + +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ + defined(INTMAX_MAX) && defined(UINTMAX_MAX) +typedef intmax_t ossl_intmax_t; +typedef uintmax_t ossl_uintmax_t; +#else +/* + * Not long long, because the C-library can only be expected to provide + * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), + * strtoumax(). Since we use these for parsing arguments, we need the + * conversion functions, not just the sizes. + */ +typedef long ossl_intmax_t; +typedef unsigned long ossl_uintmax_t; +#endif + #ifdef __cplusplus } #endif diff --git a/libs/mac/include/openssl/pem.h b/libs/mac/include/openssl/pem.h index aac72fb2..2375d635 100644 --- a/libs/mac/include/openssl/pem.h +++ b/libs/mac/include/openssl/pem.h @@ -1,71 +1,18 @@ -/* crypto/pem/pem.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_PEM_H # define HEADER_PEM_H # include -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_STACK -# include -# endif +# include +# include # include # include # include @@ -76,44 +23,8 @@ extern "C" { # define PEM_BUFSIZE 1024 -# define PEM_OBJ_UNDEF 0 -# define PEM_OBJ_X509 1 -# define PEM_OBJ_X509_REQ 2 -# define PEM_OBJ_CRL 3 -# define PEM_OBJ_SSL_SESSION 4 -# define PEM_OBJ_PRIV_KEY 10 -# define PEM_OBJ_PRIV_RSA 11 -# define PEM_OBJ_PRIV_DSA 12 -# define PEM_OBJ_PRIV_DH 13 -# define PEM_OBJ_PUB_RSA 14 -# define PEM_OBJ_PUB_DSA 15 -# define PEM_OBJ_PUB_DH 16 -# define PEM_OBJ_DHPARAMS 17 -# define PEM_OBJ_DSAPARAMS 18 -# define PEM_OBJ_PRIV_RSA_PUBLIC 19 -# define PEM_OBJ_PRIV_ECDSA 20 -# define PEM_OBJ_PUB_ECDSA 21 -# define PEM_OBJ_ECPARAMETERS 22 - -# define PEM_ERROR 30 -# define PEM_DEK_DES_CBC 40 -# define PEM_DEK_IDEA_CBC 45 -# define PEM_DEK_DES_EDE 50 -# define PEM_DEK_DES_ECB 60 -# define PEM_DEK_RSA 70 -# define PEM_DEK_RSA_MD2 80 -# define PEM_DEK_RSA_MD5 90 - -# define PEM_MD_MD2 NID_md2 -# define PEM_MD_MD5 NID_md5 -# define PEM_MD_SHA NID_sha -# define PEM_MD_MD2_RSA NID_md2WithRSAEncryption -# define PEM_MD_MD5_RSA NID_md5WithRSAEncryption -# define PEM_MD_SHA_RSA NID_sha1WithRSAEncryption - # define PEM_STRING_X509_OLD "X509 CERTIFICATE" # define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_PAIR "CERTIFICATE PAIR" # define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" # define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" # define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" @@ -138,17 +49,6 @@ extern "C" { # define PEM_STRING_PARAMETERS "PARAMETERS" # define PEM_STRING_CMS "CMS" - /* - * Note that this structure is initialised by PEM_SealInit and cleaned up - * by PEM_SealFinal (at least for now) - */ -typedef struct PEM_Encode_Seal_st { - EVP_ENCODE_CTX encode; - EVP_MD_CTX md; - EVP_CIPHER_CTX cipher; -} PEM_ENCODE_SEAL_CTX; - -/* enc_type is one off */ # define PEM_TYPE_ENCRYPTED 10 # define PEM_TYPE_MIC_ONLY 20 # define PEM_TYPE_MIC_CLEAR 30 @@ -182,6 +82,7 @@ typedef struct pem_ctx_st { int num_recipient; PEM_USER **recipient; + /*- XXX(ben): don#t think this is used! STACK *x509_chain; / * certificate chain */ @@ -209,7 +110,7 @@ typedef struct pem_ctx_st { * IMPLEMENT_PEM_rw_cb(...) */ -# ifdef OPENSSL_NO_FP_API +# ifdef OPENSSL_NO_STDIO # define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ # define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ @@ -320,10 +221,11 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ /* These are the same except they are for the declarations */ -# if defined(OPENSSL_NO_FP_API) +# if defined(OPENSSL_NO_STDIO) # define DECLARE_PEM_read_fp(name, type) /**/ # define DECLARE_PEM_write_fp(name, type) /**/ +# define DECLARE_PEM_write_fp_const(name, type) /**/ # define DECLARE_PEM_write_cb_fp(name, type) /**/ # else @@ -342,7 +244,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ # endif -# ifndef OPENSSL_NO_BIO # define DECLARE_PEM_read_bio(name, type) \ type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); @@ -356,13 +257,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ unsigned char *kstr, int klen, pem_password_cb *cb, void *u); -# else - -# define DECLARE_PEM_read_bio(name, type) /**/ -# define DECLARE_PEM_write_bio(name, type) /**/ -# define DECLARE_PEM_write_bio_const(name, type) /**/ -# define DECLARE_PEM_write_cb_bio(name, type) /**/ -# endif # define DECLARE_PEM_write(name, type) \ DECLARE_PEM_write_bio(name, type) \ DECLARE_PEM_write_fp(name, type) @@ -384,19 +278,12 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ # define DECLARE_PEM_rw_cb(name, type) \ DECLARE_PEM_read(name, type) \ DECLARE_PEM_write_cb(name, type) -# if 1 -/* "userdata": new with OpenSSL 0.9.4 */ typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); -# else -/* OpenSSL 0.9.3, 0.9.3a */ -typedef int pem_password_cb (char *buf, int size, int rwflag); -# endif int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, pem_password_cb *callback, void *u); -# ifndef OPENSSL_NO_BIO int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, long *len); int PEM_write_bio(BIO *bp, const char *name, const char *hdr, @@ -415,8 +302,8 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cd, void *u); -# endif +#ifndef OPENSSL_NO_STDIO int PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len); int PEM_write(FILE *fp, const char *name, const char *hdr, @@ -428,17 +315,10 @@ int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, int klen, pem_password_cb *callback, void *u); STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u); +#endif -int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, - EVP_MD *md_type, unsigned char **ek, int *ekl, - unsigned char *iv, EVP_PKEY **pubk, int npubk); -void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, - unsigned char *in, int inl); -int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, - unsigned char *out, int *outl, EVP_PKEY *priv); - -void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -void PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); +int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); +int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen, EVP_PKEY *pkey); @@ -450,7 +330,6 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str); DECLARE_PEM_rw(X509, X509) DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) DECLARE_PEM_rw(X509_REQ, X509_REQ) DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) DECLARE_PEM_rw(X509_CRL, X509_CRL) @@ -480,6 +359,11 @@ DECLARE_PEM_write_const(DHxparams, DH) DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) DECLARE_PEM_rw(PUBKEY, EVP_PKEY) +int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, + const EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); + int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u); @@ -494,6 +378,7 @@ int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); +# ifndef OPENSSL_NO_STDIO int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u); @@ -510,20 +395,22 @@ EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cd, void *u); - +# endif EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); +# ifndef OPENSSL_NO_DSA EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); EVP_PKEY *b2i_PrivateKey_bio(BIO *in); EVP_PKEY *b2i_PublicKey_bio(BIO *in); int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); -# ifndef OPENSSL_NO_RC4 +# ifndef OPENSSL_NO_RC4 EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, pem_password_cb *cb, void *u); +# endif # endif /* BEGIN ERROR CODES */ @@ -532,7 +419,7 @@ int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, * made after this point may be overwritten when the script is next run. */ -void ERR_load_PEM_strings(void); +int ERR_load_PEM_strings(void); /* Error codes for the PEM functions. */ @@ -560,9 +447,7 @@ void ERR_load_PEM_strings(void); # define PEM_F_PEM_ASN1_WRITE_BIO 105 # define PEM_F_PEM_DEF_CALLBACK 100 # define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 # define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_PK8PKEY 119 # define PEM_F_PEM_READ 108 # define PEM_F_PEM_READ_BIO 109 # define PEM_F_PEM_READ_BIO_DHPARAMS 141 @@ -570,8 +455,6 @@ void ERR_load_PEM_strings(void); # define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 # define PEM_F_PEM_READ_DHPARAMS 142 # define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SEALFINAL 110 -# define PEM_F_PEM_SEALINIT 111 # define PEM_F_PEM_SIGNFINAL 112 # define PEM_F_PEM_WRITE 113 # define PEM_F_PEM_WRITE_BIO 114 @@ -597,16 +480,17 @@ void ERR_load_PEM_strings(void); # define PEM_R_INCONSISTENT_HEADER 121 # define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 # define PEM_R_KEYBLOB_TOO_SHORT 123 +# define PEM_R_MISSING_DEK_IV 129 # define PEM_R_NOT_DEK_INFO 105 # define PEM_R_NOT_ENCRYPTED 106 # define PEM_R_NOT_PROC_TYPE 107 # define PEM_R_NO_START_LINE 108 # define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PUBLIC_KEY_NO_RSA 110 # define PEM_R_PVK_DATA_TOO_SHORT 124 # define PEM_R_PVK_TOO_SHORT 125 # define PEM_R_READ_KEY 111 # define PEM_R_SHORT_HEADER 112 +# define PEM_R_UNEXPECTED_DEK_IV 130 # define PEM_R_UNSUPPORTED_CIPHER 113 # define PEM_R_UNSUPPORTED_ENCRYPTION 114 # define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 diff --git a/libs/mac/include/openssl/pem2.h b/libs/mac/include/openssl/pem2.h index 84897d5e..cfe73f13 100644 --- a/libs/mac/include/openssl/pem2.h +++ b/libs/mac/include/openssl/pem2.h @@ -1,60 +1,10 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - /* - * This header only exists to break a circular dependency between pem and err - * Ben 30 Jan 1999. + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifdef __cplusplus @@ -62,7 +12,7 @@ extern "C" { #endif #ifndef HEADER_PEM_H -void ERR_load_PEM_strings(void); +int ERR_load_PEM_strings(void); #endif #ifdef __cplusplus diff --git a/libs/mac/include/openssl/pkcs12.h b/libs/mac/include/openssl/pkcs12.h index 21f1f62b..deaded9d 100644 --- a/libs/mac/include/openssl/pkcs12.h +++ b/libs/mac/include/openssl/pkcs12.h @@ -1,60 +1,10 @@ -/* pkcs12.h */ /* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 1999. - */ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_PKCS12_H @@ -80,114 +30,92 @@ extern "C" { # define PKCS12_SALT_LEN 8 -/* Uncomment out next line for unicode password and names, otherwise ASCII */ - -/* - * #define PBE_UNICODE - */ - -# ifdef PBE_UNICODE -# define PKCS12_key_gen PKCS12_key_gen_uni -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_uni -# else -# define PKCS12_key_gen PKCS12_key_gen_asc -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_asc -# endif +/* It's not clear if these are actually needed... */ +# define PKCS12_key_gen PKCS12_key_gen_utf8 +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 /* MS key usage constants */ # define KEY_EX 0x10 # define KEY_SIG 0x80 -typedef struct { - X509_SIG *dinfo; - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; /* defaults to 1 */ -} PKCS12_MAC_DATA; +typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; -typedef struct { - ASN1_INTEGER *version; - PKCS12_MAC_DATA *mac; - PKCS7 *authsafes; -} PKCS12; +typedef struct PKCS12_st PKCS12; -typedef struct { - ASN1_OBJECT *type; - union { - struct pkcs12_bag_st *bag; /* secret, crl and certbag */ - struct pkcs8_priv_key_info_st *keybag; /* keybag */ - X509_SIG *shkeybag; /* shrouded key bag */ - STACK_OF(PKCS12_SAFEBAG) *safes; - ASN1_TYPE *other; - } value; - STACK_OF(X509_ATTRIBUTE) *attrib; -} PKCS12_SAFEBAG; +typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; -DECLARE_STACK_OF(PKCS12_SAFEBAG) -DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG) -DECLARE_PKCS12_STACK_OF(PKCS12_SAFEBAG) +DEFINE_STACK_OF(PKCS12_SAFEBAG) -typedef struct pkcs12_bag_st { - ASN1_OBJECT *type; - union { - ASN1_OCTET_STRING *x509cert; - ASN1_OCTET_STRING *x509crl; - ASN1_OCTET_STRING *octet; - ASN1_IA5STRING *sdsicert; - ASN1_TYPE *other; /* Secret or other bag */ - } value; -} PKCS12_BAGS; +typedef struct pkcs12_bag_st PKCS12_BAGS; # define PKCS12_ERROR 0 # define PKCS12_OK 1 /* Compatibility macros */ -# define M_PKCS12_x5092certbag PKCS12_x5092certbag -# define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag +#if OPENSSL_API_COMPAT < 0x10100000L -# define M_PKCS12_certbag2x509 PKCS12_certbag2x509 -# define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl +# define M_PKCS12_bag_type PKCS12_bag_type +# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type +# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type -# define M_PKCS12_unpack_p7data PKCS12_unpack_p7data -# define M_PKCS12_pack_authsafes PKCS12_pack_authsafes -# define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes -# define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata +# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert +# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl +# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid +# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid +# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert +# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl +# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf +# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt -# define M_PKCS12_decrypt_skey PKCS12_decrypt_skey -# define M_PKCS8_decrypt PKCS8_decrypt +#endif -# define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type) -# define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type) -# define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type +DEPRECATEDIN_1_1_0(ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)) -# define PKCS12_get_attr(bag, attr_nid) \ - PKCS12_get_attr_gen(bag->attrib, attr_nid) +ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); +int PKCS12_mac_present(const PKCS12 *p12); +void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, + const X509_ALGOR **pmacalg, + const ASN1_OCTET_STRING **psalt, + const ASN1_INTEGER **piter, + const PKCS12 *p12); -# define PKCS8_get_attr(p8, attr_nid) \ - PKCS12_get_attr_gen(p8->attributes, attr_nid) +const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, + int attr_nid); +const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); -# define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0) +X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); +const STACK_OF(PKCS12_SAFEBAG) * +PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); +const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); +const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); -PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509); -PKCS12_SAFEBAG *PKCS12_x509crl2certbag(X509_CRL *crl); -X509 *PKCS12_certbag2x509(PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_certbag2x509crl(PKCS12_SAFEBAG *bag); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, + const char *pass, + int passlen, + unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8inf); PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2); -PKCS12_SAFEBAG *PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *p8, const char *pass, +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(PKCS12_SAFEBAG *bag, +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, const char *pass, int passlen); X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, - int passlen, unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8); +X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, + PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, @@ -197,26 +125,32 @@ STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, int passlen); int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(PKCS12 *p12); +STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, int namelen); int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, int namelen); +int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, + int namelen); int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, int namelen); int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, const unsigned char *name, int namelen); int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(STACK_OF(X509_ATTRIBUTE) *attrs, int attr_nid); +ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, + int attr_nid); char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -unsigned char *PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass, - int passlen, unsigned char *in, int inlen, +const STACK_OF(X509_ATTRIBUTE) * +PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, + const char *pass, int passlen, + const unsigned char *in, int inlen, unsigned char **data, int *datalen, int en_de); -void *PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, +void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, const char *pass, int passlen, - ASN1_OCTET_STRING *oct, int zbuf); + const ASN1_OCTET_STRING *oct, int zbuf); ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, const ASN1_ITEM *it, const char *pass, int passlen, @@ -228,6 +162,9 @@ int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, int saltlen, int id, int iter, int n, unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md_type, int en_de); @@ -241,7 +178,10 @@ int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(unsigned char *uni, int unilen); +char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); +unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); DECLARE_ASN1_FUNCTIONS(PKCS12) DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) @@ -254,22 +194,26 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); -PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, - STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, - int mac_iter, int keytype); +PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, EVP_PKEY *key, int key_usage, int iter, - int key_nid, char *pass); + int key_nid, const char *pass); int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, char *pass); + int safe_nid, int iter, const char *pass); PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); +# ifndef OPENSSL_NO_STDIO int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); +# endif PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); +# ifndef OPENSSL_NO_STDIO PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); +# endif int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); /* BEGIN ERROR CODES */ @@ -277,17 +221,12 @@ int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_PKCS12_strings(void); + +int ERR_load_PKCS12_strings(void); /* Error codes for the PKCS12 functions. */ /* Function codes. */ -# define PKCS12_F_PARSE_BAG 129 -# define PKCS12_F_PARSE_BAGS 103 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102 -# define PKCS12_F_PKCS12_ADD_LOCALKEYID 104 # define PKCS12_F_PKCS12_CREATE 105 # define PKCS12_F_PKCS12_GEN_MAC 107 # define PKCS12_F_PKCS12_INIT 109 @@ -296,21 +235,23 @@ void ERR_load_PKCS12_strings(void); # define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 # define PKCS12_F_PKCS12_KEY_GEN_ASC 110 # define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_MAKE_KEYBAG 112 -# define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113 +# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 # define PKCS12_F_PKCS12_NEWPASS 128 # define PKCS12_F_PKCS12_PACK_P7DATA 114 # define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 # define PKCS12_F_PKCS12_PARSE 118 # define PKCS12_F_PKCS12_PBE_CRYPT 119 # define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 # define PKCS12_F_PKCS12_SETUP_MAC 122 # define PKCS12_F_PKCS12_SET_MAC 123 # define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 # define PKCS12_F_PKCS12_UNPACK_P7DATA 131 # define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ADD_KEYUSAGE 124 # define PKCS12_F_PKCS8_ENCRYPT 125 +# define PKCS12_F_PKCS8_SET0_PBE 132 /* Reason codes. */ # define PKCS12_R_CANT_PACK_STRUCTURE 100 @@ -327,7 +268,6 @@ void ERR_load_PKCS12_strings(void); # define PKCS12_R_MAC_GENERATION_ERROR 109 # define PKCS12_R_MAC_SETUP_ERROR 110 # define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_ERROR 112 # define PKCS12_R_MAC_VERIFY_FAILURE 113 # define PKCS12_R_PARSE_ERROR 114 # define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 @@ -336,7 +276,7 @@ void ERR_load_PKCS12_strings(void); # define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 # define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/pkcs7.h b/libs/mac/include/openssl/pkcs7.h index b51b3863..691f7220 100644 --- a/libs/mac/include/openssl/pkcs7.h +++ b/libs/mac/include/openssl/pkcs7.h @@ -1,59 +1,10 @@ -/* crypto/pkcs7/pkcs7.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_PKCS7_H @@ -70,12 +21,6 @@ extern "C" { #endif -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 thes are defined in wincrypt.h */ -# undef PKCS7_ISSUER_AND_SERIAL -# undef PKCS7_SIGNER_INFO -# endif - /*- Encryption_ID DES-CBC Digest_ID MD5 @@ -100,8 +45,7 @@ typedef struct pkcs7_signer_info_st { EVP_PKEY *pkey; } PKCS7_SIGNER_INFO; -DECLARE_STACK_OF(PKCS7_SIGNER_INFO) -DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) +DEFINE_STACK_OF(PKCS7_SIGNER_INFO) typedef struct pkcs7_recip_info_st { ASN1_INTEGER *version; /* version 0 */ @@ -111,8 +55,7 @@ typedef struct pkcs7_recip_info_st { X509 *cert; /* get the pub-key from this */ } PKCS7_RECIP_INFO; -DECLARE_STACK_OF(PKCS7_RECIP_INFO) -DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) +DEFINE_STACK_OF(PKCS7_RECIP_INFO) typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ @@ -199,9 +142,7 @@ typedef struct pkcs7_st { } d; } PKCS7; -DECLARE_STACK_OF(PKCS7) -DECLARE_ASN1_SET_OF(PKCS7) -DECLARE_PKCS12_STACK_OF(PKCS7) +DEFINE_STACK_OF(PKCS7) # define PKCS7_OP_SET_DETACHED_SIGNATURE 1 # define PKCS7_OP_GET_DETACHED_SIGNATURE 2 @@ -242,6 +183,7 @@ DECLARE_PKCS12_STACK_OF(PKCS7) # define PKCS7_NOCRL 0x2000 # define PKCS7_PARTIAL 0x4000 # define PKCS7_REUSE_DIGEST 0x8000 +# define PKCS7_NO_DUAL_CONTENT 0x10000 /* Flags: for compatibility with older code */ @@ -255,12 +197,15 @@ DECLARE_PKCS12_STACK_OF(PKCS7) # define SMIME_BINARY PKCS7_BINARY # define SMIME_NOATTR PKCS7_NOATTR +/* CRLF ASCII canonicalisation */ +# define SMIME_ASCIICRLF 0x80000 + DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *type, unsigned char *md, unsigned int *len); -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); # endif @@ -372,15 +317,13 @@ BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_PKCS7_strings(void); + +int ERR_load_PKCS7_strings(void); /* Error codes for the PKCS7 functions. */ /* Function codes. */ -# define PKCS7_F_B64_READ_PKCS7 120 -# define PKCS7_F_B64_WRITE_PKCS7 121 # define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_I2D_PKCS7_BIO_STREAM 140 # define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 # define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 # define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 @@ -394,7 +337,6 @@ void ERR_load_PKCS7_strings(void); # define PKCS7_F_PKCS7_DATADECODE 112 # define PKCS7_F_PKCS7_DATAFINAL 128 # define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATASIGN 106 # define PKCS7_F_PKCS7_DATAVERIFY 107 # define PKCS7_F_PKCS7_DECRYPT 114 # define PKCS7_F_PKCS7_DECRYPT_RINFO 133 @@ -415,8 +357,6 @@ void ERR_load_PKCS7_strings(void); # define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 # define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 # define PKCS7_F_PKCS7_VERIFY 117 -# define PKCS7_F_SMIME_READ_PKCS7 122 -# define PKCS7_F_SMIME_TEXT 123 /* Reason codes. */ # define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 @@ -424,46 +364,29 @@ void ERR_load_PKCS7_strings(void); # define PKCS7_R_CIPHER_NOT_INITIALIZED 116 # define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 # define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECODE_ERROR 130 -# define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 # define PKCS7_R_DECRYPT_ERROR 119 # define PKCS7_R_DIGEST_FAILURE 101 # define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 # define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 # define PKCS7_R_ERROR_ADDING_RECIPIENT 120 # define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_MIME_TYPE 131 # define PKCS7_R_INVALID_NULL_POINTER 143 # define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_MIME_NO_CONTENT_TYPE 132 -# define PKCS7_R_MIME_PARSE_ERROR 133 -# define PKCS7_R_MIME_SIG_PARSE_ERROR 134 -# define PKCS7_R_MISSING_CERIPEND_INFO 103 # define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_CONTENT_TYPE 135 # define PKCS7_R_NO_DEFAULT_DIGEST 151 # define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 -# define PKCS7_R_NO_MULTIPART_BOUNDARY 137 # define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146 # define PKCS7_R_NO_SIGNATURES_ON_DATA 123 # define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_NO_SIG_CONTENT_TYPE 138 # define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 # define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 # define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATAFINAL 126 -# define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 # define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PKCS7_PARSE_ERROR 139 -# define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 # define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 # define PKCS7_R_SIGNATURE_FAILURE 105 # define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 # define PKCS7_R_SIGNING_CTRL_FAILURE 147 # define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SIG_INVALID_MIME_TYPE 141 # define PKCS7_R_SMIME_TEXT_ERROR 129 # define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 # define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 @@ -475,7 +398,7 @@ void ERR_load_PKCS7_strings(void); # define PKCS7_R_WRONG_CONTENT_TYPE 113 # define PKCS7_R_WRONG_PKCS7_TYPE 114 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/rand.h b/libs/mac/include/openssl/rand.h index 2553afda..d521ae19 100644 --- a/libs/mac/include/openssl/rand.h +++ b/libs/mac/include/openssl/rand.h @@ -1,59 +1,10 @@ -/* crypto/rand/rand.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_RAND_H @@ -63,26 +14,18 @@ # include # include -# if defined(OPENSSL_SYS_WINDOWS) -# include -# endif - #ifdef __cplusplus extern "C" { #endif -# if defined(OPENSSL_FIPS) -# define FIPS_RAND_SIZE_T size_t -# endif - /* Already defined in ossl_typ.h */ /* typedef struct rand_meth_st RAND_METHOD; */ struct rand_meth_st { - void (*seed) (const void *buf, int num); + int (*seed) (const void *buf, int num); int (*bytes) (unsigned char *buf, int num); void (*cleanup) (void); - void (*add) (const void *buf, int num, double entropy); + int (*add) (const void *buf, int num, double entropy); int (*pseudorand) (unsigned char *buf, int num); int (*status) (void); }; @@ -96,55 +39,51 @@ const RAND_METHOD *RAND_get_rand_method(void); # ifndef OPENSSL_NO_ENGINE int RAND_set_rand_engine(ENGINE *engine); # endif -RAND_METHOD *RAND_SSLeay(void); -void RAND_cleanup(void); +RAND_METHOD *RAND_OpenSSL(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define RAND_cleanup() while(0) continue +#endif int RAND_bytes(unsigned char *buf, int num); -int RAND_pseudo_bytes(unsigned char *buf, int num); +DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) void RAND_seed(const void *buf, int num); +#if defined(__ANDROID__) && defined(__NDK_FPABI__) +__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ +#endif void RAND_add(const void *buf, int num, double entropy); int RAND_load_file(const char *file, long max_bytes); int RAND_write_file(const char *file); const char *RAND_file_name(char *file, size_t num); int RAND_status(void); +# ifndef OPENSSL_NO_EGD int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); int RAND_egd(const char *path); int RAND_egd_bytes(const char *path, int bytes); +# endif int RAND_poll(void); -# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) - -void RAND_screen(void); -int RAND_event(UINT, WPARAM, LPARAM); - -# endif - -# ifdef OPENSSL_FIPS -void RAND_set_fips_drbg_type(int type, int flags); -int RAND_init_fips(void); -# endif +#if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) +/* application has to include in order to use these */ +DEPRECATEDIN_1_1_0(void RAND_screen(void)) +DEPRECATEDIN_1_1_0(int RAND_event(UINT, WPARAM, LPARAM)) +#endif /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_RAND_strings(void); + +int ERR_load_RAND_strings(void); /* Error codes for the RAND functions. */ /* Function codes. */ -# define RAND_F_RAND_GET_RAND_METHOD 101 -# define RAND_F_RAND_INIT_FIPS 102 -# define RAND_F_SSLEAY_RAND_BYTES 100 +# define RAND_F_RAND_BYTES 100 /* Reason codes. */ -# define RAND_R_DUAL_EC_DRBG_DISABLED 104 -# define RAND_R_ERROR_INITIALISING_DRBG 102 -# define RAND_R_ERROR_INSTANTIATING_DRBG 103 -# define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 # define RAND_R_PRNG_NOT_SEEDED 100 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/rc2.h b/libs/mac/include/openssl/rc2.h index 29d02d73..585f9e4c 100644 --- a/libs/mac/include/openssl/rc2.h +++ b/libs/mac/include/openssl/rc2.h @@ -1,87 +1,34 @@ -/* crypto/rc2/rc2.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_RC2_H # define HEADER_RC2_H -# include /* OPENSSL_NO_RC2, RC2_INT */ -# ifdef OPENSSL_NO_RC2 -# error RC2 is disabled. +# include + +# ifndef OPENSSL_NO_RC2 +# ifdef __cplusplus +extern "C" { # endif +typedef unsigned int RC2_INT; + # define RC2_ENCRYPT 1 # define RC2_DECRYPT 0 # define RC2_BLOCK 8 # define RC2_KEY_LENGTH 16 -#ifdef __cplusplus -extern "C" { -#endif - typedef struct rc2_key_st { RC2_INT data[64]; } RC2_KEY; -# ifdef OPENSSL_FIPS -void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, - int bits); -# endif void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, RC2_KEY *key, int enc); @@ -96,8 +43,9 @@ void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, RC2_KEY *schedule, unsigned char *ivec, int *num); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/rc4.h b/libs/mac/include/openssl/rc4.h index 39162b16..86803b37 100644 --- a/libs/mac/include/openssl/rc4.h +++ b/libs/mac/include/openssl/rc4.h @@ -1,71 +1,19 @@ -/* crypto/rc4/rc4.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_RC4_H # define HEADER_RC4_H -# include /* OPENSSL_NO_RC4, RC4_INT */ -# ifdef OPENSSL_NO_RC4 -# error RC4 is disabled. -# endif +# include +# ifndef OPENSSL_NO_RC4 # include - #ifdef __cplusplus extern "C" { #endif @@ -77,12 +25,12 @@ typedef struct rc4_key_st { const char *RC4_options(void); void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, unsigned char *outdata); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/rc5.h b/libs/mac/include/openssl/rc5.h new file mode 100644 index 00000000..793f88e4 --- /dev/null +++ b/libs/mac/include/openssl/rc5.h @@ -0,0 +1,63 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RC5_H +# define HEADER_RC5_H + +# include + +# ifndef OPENSSL_NO_RC5 +# ifdef __cplusplus +extern "C" { +# endif + +# define RC5_ENCRYPT 1 +# define RC5_DECRYPT 0 + +# define RC5_32_INT unsigned int + +# define RC5_32_BLOCK 8 +# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ + +/* + * This are the only values supported. Tweak the code if you want more The + * most supported modes will be RC5-32/12/16 RC5-32/16/8 + */ +# define RC5_8_ROUNDS 8 +# define RC5_12_ROUNDS 12 +# define RC5_16_ROUNDS 16 + +typedef struct rc5_key_st { + /* Number of rounds */ + int rounds; + RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; +} RC5_32_KEY; + +void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, + int rounds); +void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out, + RC5_32_KEY *key, int enc); +void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); +void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); +void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *ks, unsigned char *iv, + int enc); +void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *schedule, + unsigned char *ivec, int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/libs/mac/include/openssl/ripemd.h b/libs/mac/include/openssl/ripemd.h index b88ef25e..c42026aa 100644 --- a/libs/mac/include/openssl/ripemd.h +++ b/libs/mac/include/openssl/ripemd.h @@ -1,83 +1,25 @@ -/* crypto/ripemd/ripemd.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_RIPEMD_H # define HEADER_RIPEMD_H +# include + +#ifndef OPENSSL_NO_RMD160 # include # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - -# ifdef OPENSSL_NO_RIPEMD -# error RIPEMD is disabled. # endif -# if defined(__LP32__) -# define RIPEMD160_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define RIPEMD160_LONG unsigned long -# define RIPEMD160_LONG_LOG2 3 -# else -# define RIPEMD160_LONG unsigned int -# endif +# define RIPEMD160_LONG unsigned int # define RIPEMD160_CBLOCK 64 # define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) @@ -90,16 +32,16 @@ typedef struct RIPEMD160state_st { unsigned int num; } RIPEMD160_CTX; -# ifdef OPENSSL_FIPS -int private_RIPEMD160_Init(RIPEMD160_CTX *c); -# endif int RIPEMD160_Init(RIPEMD160_CTX *c); int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); -#ifdef __cplusplus + +# ifdef __cplusplus } -#endif +# endif +# endif + #endif diff --git a/libs/mac/include/openssl/rsa.h b/libs/mac/include/openssl/rsa.h index d2ee3740..d97d6e07 100644 --- a/libs/mac/include/openssl/rsa.h +++ b/libs/mac/include/openssl/rsa.h @@ -1,173 +1,37 @@ -/* crypto/rsa/rsa.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_RSA_H # define HEADER_RSA_H -# include +# include -# ifndef OPENSSL_NO_BIO -# include -# endif +# ifndef OPENSSL_NO_RSA +# include +# include # include # include -# ifndef OPENSSL_NO_DEPRECATED +# if OPENSSL_API_COMPAT < 0x10100000L # include # endif - -# ifdef OPENSSL_NO_RSA -# error RSA is disabled. +# ifdef __cplusplus +extern "C" { # endif -#ifdef __cplusplus -extern "C" { -#endif - -/* Declared already in ossl_typ.h */ -/* typedef struct rsa_st RSA; */ -/* typedef struct rsa_meth_st RSA_METHOD; */ - -struct rsa_meth_st { - const char *name; - int (*rsa_pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_priv_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - /* Can be null */ - int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); - /* Can be null */ - int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); - /* called at new */ - int (*init) (RSA *rsa); - /* called at free */ - int (*finish) (RSA *rsa); - /* RSA_METHOD_FLAG_* things */ - int flags; - /* may be needed! */ - char *app_data; - /* - * New sign and verify functions: some libraries don't allow arbitrary - * data to be signed/verified: this allows them to be used. Note: for - * this to work the RSA_public_decrypt() and RSA_private_encrypt() should - * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: - * for backwards compatibility this functionality is only enabled if the - * RSA_FLAG_SIGN_VER option is set in 'flags'. - */ - int (*rsa_sign) (int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa); - int (*rsa_verify) (int dtype, const unsigned char *m, - unsigned int m_length, const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa); - /* - * If this callback is NULL, the builtin software RSA key-gen will be - * used. This is for behavioural compatibility whilst the code gets - * rewired, but one day it would be nice to assume there are no such - * things as "builtin software" implementations. - */ - int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -}; - -struct rsa_st { - /* - * The first parameter is used to pickup errors where this is passed - * instead of aEVP_PKEY, it is set to 0 - */ - int pad; - long version; - const RSA_METHOD *meth; - /* functional reference if 'meth' is ENGINE-provided */ - ENGINE *engine; - BIGNUM *n; - BIGNUM *e; - BIGNUM *d; - BIGNUM *p; - BIGNUM *q; - BIGNUM *dmp1; - BIGNUM *dmq1; - BIGNUM *iqmp; - /* be careful using this if the RSA structure is shared */ - CRYPTO_EX_DATA ex_data; - int references; - int flags; - /* Used to cache montgomery values */ - BN_MONT_CTX *_method_mod_n; - BN_MONT_CTX *_method_mod_p; - BN_MONT_CTX *_method_mod_q; - /* - * all BIGNUM values are actually in the following data, if it is not - * NULL - */ - char *bignum_data; - BN_BLINDING *blinding; - BN_BLINDING *mt_blinding; -}; +/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ # ifndef OPENSSL_RSA_MAX_MODULUS_BITS # define OPENSSL_RSA_MAX_MODULUS_BITS 16384 # endif +# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024 + # ifndef OPENSSL_RSA_SMALL_MODULUS_BITS # define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 # endif @@ -195,12 +59,6 @@ struct rsa_st { */ # define RSA_FLAG_EXT_PKEY 0x0020 -/* - * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify - * functions. - */ -# define RSA_FLAG_SIGN_VER 0x0040 - /* * new with 0.9.6j and 0.9.7b; the built-in * RSA implementation now uses blinding by @@ -208,19 +66,13 @@ struct rsa_st { * but other engines might not need it */ # define RSA_FLAG_NO_BLINDING 0x0080 +# if OPENSSL_API_COMPAT < 0x10100000L /* - * new with 0.9.8f; the built-in RSA - * implementation now uses constant time - * operations by default in private key operations, - * e.g., constant time modular exponentiation, - * modular inverse without leaking branches, - * division without leaking branches. This - * flag disables these constant time - * operations and results in faster RSA - * private key operations. + * Does nothing. Previously this switched off constant time behaviour. */ -# define RSA_FLAG_NO_CONSTTIME 0x0100 -# ifdef OPENSSL_USE_DEPRECATED +# define RSA_FLAG_NO_CONSTTIME 0x0000 +# endif +# if OPENSSL_API_COMPAT < 0x00908000L /* deprecated name for the flag*/ /* * new with 0.9.7h; the built-in RSA @@ -319,18 +171,41 @@ struct rsa_st { RSA *RSA_new(void); RSA *RSA_new_method(ENGINE *engine); +int RSA_bits(const RSA *rsa); int RSA_size(const RSA *rsa); +int RSA_security_bits(const RSA *rsa); + +int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); +int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); +int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); +void RSA_get0_key(const RSA *r, + const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); +void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); +void RSA_get0_crt_params(const RSA *r, + const BIGNUM **dmp1, const BIGNUM **dmq1, + const BIGNUM **iqmp); +void RSA_clear_flags(RSA *r, int flags); +int RSA_test_flags(const RSA *r, int flags); +void RSA_set_flags(RSA *r, int flags); +ENGINE *RSA_get0_engine(const RSA *r); /* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ +DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void + (*callback) (int, int, void *), + void *cb_arg)) /* New version */ int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, + BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2, + const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, + const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); +int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, + BN_GENCB *cb); + int RSA_check_key(const RSA *); +int RSA_check_key_ex(const RSA *, BN_GENCB *cb); /* next 4 return -1 on error */ int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding); @@ -351,11 +226,8 @@ const RSA_METHOD *RSA_get_default_method(void); const RSA_METHOD *RSA_get_method(const RSA *rsa); int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); -/* This function needs the memory locking malloc callbacks to be installed */ -int RSA_memory_lock(RSA *r); - -/* these are the actual SSLeay RSA functions */ -const RSA_METHOD *RSA_PKCS1_SSLeay(void); +/* these are the actual RSA functions */ +const RSA_METHOD *RSA_PKCS1_OpenSSL(void); const RSA_METHOD *RSA_null_method(void); @@ -379,29 +251,11 @@ typedef struct rsa_oaep_params_st { DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO int RSA_print_fp(FILE *fp, const RSA *r, int offset); # endif -# ifndef OPENSSL_NO_BIO int RSA_print(BIO *bp, const RSA *r, int offset); -# endif - -# ifndef OPENSSL_NO_RC4 -int i2d_RSA_NET(const RSA *a, unsigned char **pp, - int (*cb) (char *buf, int len, const char *prompt, - int verify), int sgckey); -RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, - int (*cb) (char *buf, int len, const char *prompt, - int verify), int sgckey); - -int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, - int (*cb) (char *buf, int len, const char *prompt, - int verify)); -RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, - int (*cb) (char *buf, int len, const char *prompt, - int verify)); -# endif /* * The following 2 functions sign and verify a X509_SIG ASN1 object inside @@ -485,8 +339,8 @@ int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, const EVP_MD *Hash, const EVP_MD *mgf1Hash, int sLen); -int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +#define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) int RSA_set_ex_data(RSA *r, int idx, void *arg); void *RSA_get_ex_data(const RSA *r, int idx); @@ -515,79 +369,154 @@ RSA *RSAPrivateKey_dup(RSA *rsa); */ # define RSA_FLAG_CHECKED 0x0800 +RSA_METHOD *RSA_meth_new(const char *name, int flags); +void RSA_meth_free(RSA_METHOD *meth); +RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); +const char *RSA_meth_get0_name(const RSA_METHOD *meth); +int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); +int RSA_meth_get_flags(RSA_METHOD *meth); +int RSA_meth_set_flags(RSA_METHOD *meth, int flags); +void *RSA_meth_get0_app_data(const RSA_METHOD *meth); +int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); +int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_enc(RSA_METHOD *rsa, + int (*pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_dec(RSA_METHOD *rsa, + int (*pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_enc(RSA_METHOD *rsa, + int (*priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_dec(RSA_METHOD *rsa, + int (*priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); +int RSA_meth_set_mod_exp(RSA_METHOD *rsa, + int (*mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, + BN_CTX *ctx)); +int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx)); +int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); +int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); +int (*RSA_meth_get_sign(const RSA_METHOD *meth)) + (int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa); +int RSA_meth_set_sign(RSA_METHOD *rsa, + int (*sign) (int type, const unsigned char *m, + unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa)); +int (*RSA_meth_get_verify(const RSA_METHOD *meth)) + (int dtype, const unsigned char *m, + unsigned int m_length, const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa); +int RSA_meth_set_verify(RSA_METHOD *rsa, + int (*verify) (int dtype, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa)); +int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_keygen(RSA_METHOD *rsa, + int (*keygen) (RSA *rsa, int bits, BIGNUM *e, + BN_GENCB *cb)); + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_RSA_strings(void); + +int ERR_load_RSA_strings(void); /* Error codes for the RSA functions. */ /* Function codes. */ # define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_DO_RSA_PRINT 146 +# define RSA_F_ENCODE_PKCS1 146 # define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_MEMORY_LOCK 100 # define RSA_F_OLD_RSA_PRIV_DECODE 147 # define RSA_F_PKEY_RSA_CTRL 143 # define RSA_F_PKEY_RSA_CTRL_STR 144 # define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 154 +# define RSA_F_PKEY_RSA_VERIFY 149 # define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 157 +# define RSA_F_RSA_ALGOR_TO_MD 156 # define RSA_F_RSA_BUILTIN_KEYGEN 129 # define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CMS_DECRYPT 158 -# define RSA_F_RSA_EAY_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_EAY_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_EAY_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_GENERATE_KEY 105 -# define RSA_F_RSA_GENERATE_KEY_EX 155 -# define RSA_F_RSA_ITEM_VERIFY 156 -# define RSA_F_RSA_MEMORY_LOCK 130 -# define RSA_F_RSA_MGF1_TO_MD 159 +# define RSA_F_RSA_CHECK_KEY_EX 160 +# define RSA_F_RSA_CMS_DECRYPT 159 +# define RSA_F_RSA_ITEM_VERIFY 148 +# define RSA_F_RSA_METH_DUP 161 +# define RSA_F_RSA_METH_NEW 162 +# define RSA_F_RSA_METH_SET1_NAME 163 +# define RSA_F_RSA_MGF1_TO_MD 157 # define RSA_F_RSA_NEW_METHOD 106 # define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_MOD_EXP 131 # define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 # define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 # define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 # define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 +# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 +# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 +# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 +# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 # define RSA_F_RSA_PADDING_ADD_NONE 107 # define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 160 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 # define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 148 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 # define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 # define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 # define RSA_F_RSA_PADDING_ADD_SSLV23 110 # define RSA_F_RSA_PADDING_ADD_X931 127 # define RSA_F_RSA_PADDING_CHECK_NONE 111 # define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 161 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 # define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 # define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 # define RSA_F_RSA_PADDING_CHECK_SSLV23 114 # define RSA_F_RSA_PADDING_CHECK_X931 128 # define RSA_F_RSA_PRINT 115 # define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIVATE_DECRYPT 150 -# define RSA_F_RSA_PRIVATE_ENCRYPT 151 -# define RSA_F_RSA_PRIV_DECODE 137 # define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 162 -# define RSA_F_RSA_PUBLIC_DECRYPT 152 -# define RSA_F_RSA_PUBLIC_ENCRYPT 153 +# define RSA_F_RSA_PSS_TO_CTX 155 # define RSA_F_RSA_PUB_DECODE 139 # define RSA_F_RSA_SETUP_BLINDING 136 # define RSA_F_RSA_SIGN 117 # define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 # define RSA_F_RSA_VERIFY 119 # define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS 126 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 149 +# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 /* Reason codes. */ # define RSA_R_ALGORITHM_MISMATCH 100 @@ -603,21 +532,20 @@ void ERR_load_RSA_strings(void); # define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 # define RSA_R_DATA_TOO_SMALL 111 # define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 166 +# define RSA_R_DIGEST_DOES_NOT_MATCH 158 # define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 # define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 # define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 # define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 # define RSA_R_FIRST_OCTET_INVALID 133 # define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 160 +# define RSA_R_INVALID_DIGEST 157 # define RSA_R_INVALID_DIGEST_LENGTH 143 # define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_KEYBITS 145 -# define RSA_R_INVALID_LABEL 161 +# define RSA_R_INVALID_LABEL 160 # define RSA_R_INVALID_MESSAGE_LENGTH 131 # define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 162 +# define RSA_R_INVALID_OAEP_PARAMETERS 161 # define RSA_R_INVALID_PADDING 138 # define RSA_R_INVALID_PADDING_MODE 141 # define RSA_R_INVALID_PSS_PARAMETERS 149 @@ -629,12 +557,10 @@ void ERR_load_RSA_strings(void); # define RSA_R_KEY_SIZE_TOO_SMALL 120 # define RSA_R_LAST_OCTET_INVALID 134 # define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NON_FIPS_RSA_METHOD 157 # define RSA_R_NO_PUBLIC_EXPONENT 140 # define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 # define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 # define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE 158 # define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 # define RSA_R_PADDING_CHECK_FAILED 114 # define RSA_R_PKCS_DECODING_ERROR 159 @@ -646,19 +572,19 @@ void ERR_load_RSA_strings(void); # define RSA_R_SSLV3_ROLLBACK_ATTACK 115 # define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 # define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 163 +# define RSA_R_UNKNOWN_DIGEST 166 # define RSA_R_UNKNOWN_MASK_DIGEST 151 # define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNKNOWN_PSS_DIGEST 152 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 164 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 165 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 # define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 # define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 # define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 # define RSA_R_VALUE_MISSING 147 # define RSA_R_WRONG_SIGNATURE_LENGTH 119 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/safestack.h b/libs/mac/include/openssl/safestack.h index 1d4f87ea..9fe733c2 100644 --- a/libs/mac/include/openssl/safestack.h +++ b/libs/mac/include/openssl/safestack.h @@ -1,106 +1,128 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_SAFESTACK_H # define HEADER_SAFESTACK_H # include +# include #ifdef __cplusplus extern "C" { #endif -# ifndef CHECKED_PTR_OF -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# endif - -/* - * In C++ we get problems because an explicit cast is needed from (void *) we - * use CHECKED_STACK_OF to ensure the correct type is passed in the macros - * below. - */ - -# define CHECKED_STACK_OF(type, p) \ - ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) - -# define CHECKED_SK_COPY_FUNC(type, p) \ - ((void *(*)(void *)) ((1 ? p : (type *(*)(const type *))0))) - -# define CHECKED_SK_FREE_FUNC(type, p) \ - ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) - -# define CHECKED_SK_CMP_FUNC(type, p) \ - ((int (*)(const void *, const void *)) \ - ((1 ? p : (int (*)(const type * const *, const type * const *))0))) - # define STACK_OF(type) struct stack_st_##type -# define PREDECLARE_STACK_OF(type) STACK_OF(type); -# define DECLARE_STACK_OF(type) \ -STACK_OF(type) \ +# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ + STACK_OF(t1); \ + typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ + typedef void (*sk_##t1##_freefunc)(t3 *a); \ + typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ + static ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ { \ - _STACK stack; \ - }; -# define DECLARE_SPECIAL_STACK_OF(type, type2) \ -STACK_OF(type) \ + return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ + } \ + static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ { \ - _STACK stack; \ - }; + return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ + } \ + static ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ + } \ + static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ + } \ + static ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_free((OPENSSL_STACK *)sk); \ + } \ + static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ + } \ + static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ + { \ + return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ + } \ + static ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ + (const void *)ptr); \ + } \ + static ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ + } \ + static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ + } \ + static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ + { \ + OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ + { \ + return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ + } \ + static ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ + } \ + static ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ + } \ + static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ + { \ + return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ + } \ + static ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ + } \ + static ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ + sk_##t1##_copyfunc copyfunc, \ + sk_##t1##_freefunc freefunc) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ + (OPENSSL_sk_copyfunc)copyfunc, \ + (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ + { \ + return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ + } -/* nada (obsolete in new safestack approach)*/ -# define IMPLEMENT_STACK_OF(type) +# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) +# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) +# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ + SKM_DEFINE_STACK_OF(t1, const t2, t2) +# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) /*- * Strings are special: normally an lhash entry will point to a single @@ -117,2556 +139,26 @@ STACK_OF(type) \ * string at all. */ typedef char *OPENSSL_STRING; - typedef const char *OPENSSL_CSTRING; -/* +/*- * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned * above, instead of a single char each entry is a NUL-terminated array of * chars. So, we have to implement STRING specially for STACK_OF. This is * dealt with in the autogenerated macros below. */ - -DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char) +DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char) +DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) /* * Similarly, we sometimes use a block of characters, NOT nul-terminated. * These should also be distinguished from "normal" stacks. */ typedef void *OPENSSL_BLOCK; -DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) +DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) -/* - * SKM_sk_... stack macros are internal to safestack.h: never use them - * directly, use sk__... instead - */ -# define SKM_sk_new(type, cmp) \ - ((STACK_OF(type) *)sk_new(CHECKED_SK_CMP_FUNC(type, cmp))) -# define SKM_sk_new_null(type) \ - ((STACK_OF(type) *)sk_new_null()) -# define SKM_sk_free(type, st) \ - sk_free(CHECKED_STACK_OF(type, st)) -# define SKM_sk_num(type, st) \ - sk_num(CHECKED_STACK_OF(type, st)) -# define SKM_sk_value(type, st,i) \ - ((type *)sk_value(CHECKED_STACK_OF(type, st), i)) -# define SKM_sk_set(type, st,i,val) \ - sk_set(CHECKED_STACK_OF(type, st), i, CHECKED_PTR_OF(type, val)) -# define SKM_sk_zero(type, st) \ - sk_zero(CHECKED_STACK_OF(type, st)) -# define SKM_sk_push(type, st, val) \ - sk_push(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_unshift(type, st, val) \ - sk_unshift(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_find(type, st, val) \ - sk_find(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_find_ex(type, st, val) \ - sk_find_ex(CHECKED_STACK_OF(type, st), \ - CHECKED_PTR_OF(type, val)) -# define SKM_sk_delete(type, st, i) \ - (type *)sk_delete(CHECKED_STACK_OF(type, st), i) -# define SKM_sk_delete_ptr(type, st, ptr) \ - (type *)sk_delete_ptr(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, ptr)) -# define SKM_sk_insert(type, st,val, i) \ - sk_insert(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val), i) -# define SKM_sk_set_cmp_func(type, st, cmp) \ - ((int (*)(const type * const *,const type * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(type, st), CHECKED_SK_CMP_FUNC(type, cmp))) -# define SKM_sk_dup(type, st) \ - (STACK_OF(type) *)sk_dup(CHECKED_STACK_OF(type, st)) -# define SKM_sk_pop_free(type, st, free_func) \ - sk_pop_free(CHECKED_STACK_OF(type, st), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_sk_deep_copy(type, st, copy_func, free_func) \ - (STACK_OF(type) *)sk_deep_copy(CHECKED_STACK_OF(type, st), CHECKED_SK_COPY_FUNC(type, copy_func), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_sk_shift(type, st) \ - (type *)sk_shift(CHECKED_STACK_OF(type, st)) -# define SKM_sk_pop(type, st) \ - (type *)sk_pop(CHECKED_STACK_OF(type, st)) -# define SKM_sk_sort(type, st) \ - sk_sort(CHECKED_STACK_OF(type, st)) -# define SKM_sk_is_sorted(type, st) \ - sk_is_sorted(CHECKED_STACK_OF(type, st)) -# define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - (STACK_OF(type) *)d2i_ASN1_SET( \ - (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \ - pp, length, \ - CHECKED_D2I_OF(type, d2i_func), \ - CHECKED_SK_FREE_FUNC(type, free_func), \ - ex_tag, ex_class) -# define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \ - i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \ - CHECKED_I2D_OF(type, i2d_func), \ - ex_tag, ex_class, is_set) -# define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \ - ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \ - CHECKED_I2D_OF(type, i2d_func), buf, len) -# define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \ - (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \ - (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \ - CHECKED_D2I_OF(type, d2i_func), \ - CHECKED_SK_FREE_FUNC(type, free_func), \ - pass, passlen, oct, seq) -/* - * This block of defines is updated by util/mkstack.pl, please do not touch! - */ -# define sk_ACCESS_DESCRIPTION_new(cmp) SKM_sk_new(ACCESS_DESCRIPTION, (cmp)) -# define sk_ACCESS_DESCRIPTION_new_null() SKM_sk_new_null(ACCESS_DESCRIPTION) -# define sk_ACCESS_DESCRIPTION_free(st) SKM_sk_free(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_num(st) SKM_sk_num(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_value(st, i) SKM_sk_value(ACCESS_DESCRIPTION, (st), (i)) -# define sk_ACCESS_DESCRIPTION_set(st, i, val) SKM_sk_set(ACCESS_DESCRIPTION, (st), (i), (val)) -# define sk_ACCESS_DESCRIPTION_zero(st) SKM_sk_zero(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_push(st, val) SKM_sk_push(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_unshift(st, val) SKM_sk_unshift(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_find(st, val) SKM_sk_find(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_find_ex(st, val) SKM_sk_find_ex(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_delete(st, i) SKM_sk_delete(ACCESS_DESCRIPTION, (st), (i)) -# define sk_ACCESS_DESCRIPTION_delete_ptr(st, ptr) SKM_sk_delete_ptr(ACCESS_DESCRIPTION, (st), (ptr)) -# define sk_ACCESS_DESCRIPTION_insert(st, val, i) SKM_sk_insert(ACCESS_DESCRIPTION, (st), (val), (i)) -# define sk_ACCESS_DESCRIPTION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (st), (cmp)) -# define sk_ACCESS_DESCRIPTION_dup(st) SKM_sk_dup(ACCESS_DESCRIPTION, st) -# define sk_ACCESS_DESCRIPTION_pop_free(st, free_func) SKM_sk_pop_free(ACCESS_DESCRIPTION, (st), (free_func)) -# define sk_ACCESS_DESCRIPTION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ACCESS_DESCRIPTION, (st), (copy_func), (free_func)) -# define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st)) -# define sk_ASIdOrRange_new(cmp) SKM_sk_new(ASIdOrRange, (cmp)) -# define sk_ASIdOrRange_new_null() SKM_sk_new_null(ASIdOrRange) -# define sk_ASIdOrRange_free(st) SKM_sk_free(ASIdOrRange, (st)) -# define sk_ASIdOrRange_num(st) SKM_sk_num(ASIdOrRange, (st)) -# define sk_ASIdOrRange_value(st, i) SKM_sk_value(ASIdOrRange, (st), (i)) -# define sk_ASIdOrRange_set(st, i, val) SKM_sk_set(ASIdOrRange, (st), (i), (val)) -# define sk_ASIdOrRange_zero(st) SKM_sk_zero(ASIdOrRange, (st)) -# define sk_ASIdOrRange_push(st, val) SKM_sk_push(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_unshift(st, val) SKM_sk_unshift(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_find(st, val) SKM_sk_find(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_find_ex(st, val) SKM_sk_find_ex(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_delete(st, i) SKM_sk_delete(ASIdOrRange, (st), (i)) -# define sk_ASIdOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASIdOrRange, (st), (ptr)) -# define sk_ASIdOrRange_insert(st, val, i) SKM_sk_insert(ASIdOrRange, (st), (val), (i)) -# define sk_ASIdOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASIdOrRange, (st), (cmp)) -# define sk_ASIdOrRange_dup(st) SKM_sk_dup(ASIdOrRange, st) -# define sk_ASIdOrRange_pop_free(st, free_func) SKM_sk_pop_free(ASIdOrRange, (st), (free_func)) -# define sk_ASIdOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASIdOrRange, (st), (copy_func), (free_func)) -# define sk_ASIdOrRange_shift(st) SKM_sk_shift(ASIdOrRange, (st)) -# define sk_ASIdOrRange_pop(st) SKM_sk_pop(ASIdOrRange, (st)) -# define sk_ASIdOrRange_sort(st) SKM_sk_sort(ASIdOrRange, (st)) -# define sk_ASIdOrRange_is_sorted(st) SKM_sk_is_sorted(ASIdOrRange, (st)) -# define sk_ASN1_GENERALSTRING_new(cmp) SKM_sk_new(ASN1_GENERALSTRING, (cmp)) -# define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING) -# define sk_ASN1_GENERALSTRING_free(st) SKM_sk_free(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_num(st) SKM_sk_num(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_value(st, i) SKM_sk_value(ASN1_GENERALSTRING, (st), (i)) -# define sk_ASN1_GENERALSTRING_set(st, i, val) SKM_sk_set(ASN1_GENERALSTRING, (st), (i), (val)) -# define sk_ASN1_GENERALSTRING_zero(st) SKM_sk_zero(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_push(st, val) SKM_sk_push(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_unshift(st, val) SKM_sk_unshift(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_find(st, val) SKM_sk_find(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_find_ex(st, val) SKM_sk_find_ex(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_delete(st, i) SKM_sk_delete(ASN1_GENERALSTRING, (st), (i)) -# define sk_ASN1_GENERALSTRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_GENERALSTRING, (st), (ptr)) -# define sk_ASN1_GENERALSTRING_insert(st, val, i) SKM_sk_insert(ASN1_GENERALSTRING, (st), (val), (i)) -# define sk_ASN1_GENERALSTRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_GENERALSTRING, (st), (cmp)) -# define sk_ASN1_GENERALSTRING_dup(st) SKM_sk_dup(ASN1_GENERALSTRING, st) -# define sk_ASN1_GENERALSTRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_GENERALSTRING, (st), (free_func)) -# define sk_ASN1_GENERALSTRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_GENERALSTRING, (st), (copy_func), (free_func)) -# define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_INTEGER_new(cmp) SKM_sk_new(ASN1_INTEGER, (cmp)) -# define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER) -# define sk_ASN1_INTEGER_free(st) SKM_sk_free(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_num(st) SKM_sk_num(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_value(st, i) SKM_sk_value(ASN1_INTEGER, (st), (i)) -# define sk_ASN1_INTEGER_set(st, i, val) SKM_sk_set(ASN1_INTEGER, (st), (i), (val)) -# define sk_ASN1_INTEGER_zero(st) SKM_sk_zero(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_push(st, val) SKM_sk_push(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_unshift(st, val) SKM_sk_unshift(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_find(st, val) SKM_sk_find(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_find_ex(st, val) SKM_sk_find_ex(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_delete(st, i) SKM_sk_delete(ASN1_INTEGER, (st), (i)) -# define sk_ASN1_INTEGER_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_INTEGER, (st), (ptr)) -# define sk_ASN1_INTEGER_insert(st, val, i) SKM_sk_insert(ASN1_INTEGER, (st), (val), (i)) -# define sk_ASN1_INTEGER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_INTEGER, (st), (cmp)) -# define sk_ASN1_INTEGER_dup(st) SKM_sk_dup(ASN1_INTEGER, st) -# define sk_ASN1_INTEGER_pop_free(st, free_func) SKM_sk_pop_free(ASN1_INTEGER, (st), (free_func)) -# define sk_ASN1_INTEGER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_INTEGER, (st), (copy_func), (free_func)) -# define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st)) -# define sk_ASN1_OBJECT_new(cmp) SKM_sk_new(ASN1_OBJECT, (cmp)) -# define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT) -# define sk_ASN1_OBJECT_free(st) SKM_sk_free(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_num(st) SKM_sk_num(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_value(st, i) SKM_sk_value(ASN1_OBJECT, (st), (i)) -# define sk_ASN1_OBJECT_set(st, i, val) SKM_sk_set(ASN1_OBJECT, (st), (i), (val)) -# define sk_ASN1_OBJECT_zero(st) SKM_sk_zero(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_push(st, val) SKM_sk_push(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_unshift(st, val) SKM_sk_unshift(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_find(st, val) SKM_sk_find(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_find_ex(st, val) SKM_sk_find_ex(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_delete(st, i) SKM_sk_delete(ASN1_OBJECT, (st), (i)) -# define sk_ASN1_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_OBJECT, (st), (ptr)) -# define sk_ASN1_OBJECT_insert(st, val, i) SKM_sk_insert(ASN1_OBJECT, (st), (val), (i)) -# define sk_ASN1_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_OBJECT, (st), (cmp)) -# define sk_ASN1_OBJECT_dup(st) SKM_sk_dup(ASN1_OBJECT, st) -# define sk_ASN1_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(ASN1_OBJECT, (st), (free_func)) -# define sk_ASN1_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_OBJECT, (st), (copy_func), (free_func)) -# define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st)) -# define sk_ASN1_STRING_TABLE_new(cmp) SKM_sk_new(ASN1_STRING_TABLE, (cmp)) -# define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE) -# define sk_ASN1_STRING_TABLE_free(st) SKM_sk_free(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_num(st) SKM_sk_num(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_value(st, i) SKM_sk_value(ASN1_STRING_TABLE, (st), (i)) -# define sk_ASN1_STRING_TABLE_set(st, i, val) SKM_sk_set(ASN1_STRING_TABLE, (st), (i), (val)) -# define sk_ASN1_STRING_TABLE_zero(st) SKM_sk_zero(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_push(st, val) SKM_sk_push(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_unshift(st, val) SKM_sk_unshift(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_find(st, val) SKM_sk_find(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_find_ex(st, val) SKM_sk_find_ex(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_delete(st, i) SKM_sk_delete(ASN1_STRING_TABLE, (st), (i)) -# define sk_ASN1_STRING_TABLE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_STRING_TABLE, (st), (ptr)) -# define sk_ASN1_STRING_TABLE_insert(st, val, i) SKM_sk_insert(ASN1_STRING_TABLE, (st), (val), (i)) -# define sk_ASN1_STRING_TABLE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (st), (cmp)) -# define sk_ASN1_STRING_TABLE_dup(st) SKM_sk_dup(ASN1_STRING_TABLE, st) -# define sk_ASN1_STRING_TABLE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_STRING_TABLE, (st), (free_func)) -# define sk_ASN1_STRING_TABLE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_STRING_TABLE, (st), (copy_func), (free_func)) -# define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_TYPE_new(cmp) SKM_sk_new(ASN1_TYPE, (cmp)) -# define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE) -# define sk_ASN1_TYPE_free(st) SKM_sk_free(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_num(st) SKM_sk_num(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_value(st, i) SKM_sk_value(ASN1_TYPE, (st), (i)) -# define sk_ASN1_TYPE_set(st, i, val) SKM_sk_set(ASN1_TYPE, (st), (i), (val)) -# define sk_ASN1_TYPE_zero(st) SKM_sk_zero(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_push(st, val) SKM_sk_push(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_unshift(st, val) SKM_sk_unshift(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_find(st, val) SKM_sk_find(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_find_ex(st, val) SKM_sk_find_ex(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_delete(st, i) SKM_sk_delete(ASN1_TYPE, (st), (i)) -# define sk_ASN1_TYPE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_TYPE, (st), (ptr)) -# define sk_ASN1_TYPE_insert(st, val, i) SKM_sk_insert(ASN1_TYPE, (st), (val), (i)) -# define sk_ASN1_TYPE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_TYPE, (st), (cmp)) -# define sk_ASN1_TYPE_dup(st) SKM_sk_dup(ASN1_TYPE, st) -# define sk_ASN1_TYPE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_TYPE, (st), (free_func)) -# define sk_ASN1_TYPE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_TYPE, (st), (copy_func), (free_func)) -# define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st)) -# define sk_ASN1_UTF8STRING_new(cmp) SKM_sk_new(ASN1_UTF8STRING, (cmp)) -# define sk_ASN1_UTF8STRING_new_null() SKM_sk_new_null(ASN1_UTF8STRING) -# define sk_ASN1_UTF8STRING_free(st) SKM_sk_free(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_num(st) SKM_sk_num(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_value(st, i) SKM_sk_value(ASN1_UTF8STRING, (st), (i)) -# define sk_ASN1_UTF8STRING_set(st, i, val) SKM_sk_set(ASN1_UTF8STRING, (st), (i), (val)) -# define sk_ASN1_UTF8STRING_zero(st) SKM_sk_zero(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_push(st, val) SKM_sk_push(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_unshift(st, val) SKM_sk_unshift(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_find(st, val) SKM_sk_find(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_find_ex(st, val) SKM_sk_find_ex(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_delete(st, i) SKM_sk_delete(ASN1_UTF8STRING, (st), (i)) -# define sk_ASN1_UTF8STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_UTF8STRING, (st), (ptr)) -# define sk_ASN1_UTF8STRING_insert(st, val, i) SKM_sk_insert(ASN1_UTF8STRING, (st), (val), (i)) -# define sk_ASN1_UTF8STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_UTF8STRING, (st), (cmp)) -# define sk_ASN1_UTF8STRING_dup(st) SKM_sk_dup(ASN1_UTF8STRING, st) -# define sk_ASN1_UTF8STRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_UTF8STRING, (st), (free_func)) -# define sk_ASN1_UTF8STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_UTF8STRING, (st), (copy_func), (free_func)) -# define sk_ASN1_UTF8STRING_shift(st) SKM_sk_shift(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_pop(st) SKM_sk_pop(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_sort(st) SKM_sk_sort(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_is_sorted(st) SKM_sk_is_sorted(ASN1_UTF8STRING, (st)) -# define sk_ASN1_VALUE_new(cmp) SKM_sk_new(ASN1_VALUE, (cmp)) -# define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE) -# define sk_ASN1_VALUE_free(st) SKM_sk_free(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_num(st) SKM_sk_num(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_value(st, i) SKM_sk_value(ASN1_VALUE, (st), (i)) -# define sk_ASN1_VALUE_set(st, i, val) SKM_sk_set(ASN1_VALUE, (st), (i), (val)) -# define sk_ASN1_VALUE_zero(st) SKM_sk_zero(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_push(st, val) SKM_sk_push(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_unshift(st, val) SKM_sk_unshift(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_find(st, val) SKM_sk_find(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_find_ex(st, val) SKM_sk_find_ex(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_delete(st, i) SKM_sk_delete(ASN1_VALUE, (st), (i)) -# define sk_ASN1_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_VALUE, (st), (ptr)) -# define sk_ASN1_VALUE_insert(st, val, i) SKM_sk_insert(ASN1_VALUE, (st), (val), (i)) -# define sk_ASN1_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_VALUE, (st), (cmp)) -# define sk_ASN1_VALUE_dup(st) SKM_sk_dup(ASN1_VALUE, st) -# define sk_ASN1_VALUE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_VALUE, (st), (free_func)) -# define sk_ASN1_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_VALUE, (st), (copy_func), (free_func)) -# define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st)) -# define sk_BIO_new(cmp) SKM_sk_new(BIO, (cmp)) -# define sk_BIO_new_null() SKM_sk_new_null(BIO) -# define sk_BIO_free(st) SKM_sk_free(BIO, (st)) -# define sk_BIO_num(st) SKM_sk_num(BIO, (st)) -# define sk_BIO_value(st, i) SKM_sk_value(BIO, (st), (i)) -# define sk_BIO_set(st, i, val) SKM_sk_set(BIO, (st), (i), (val)) -# define sk_BIO_zero(st) SKM_sk_zero(BIO, (st)) -# define sk_BIO_push(st, val) SKM_sk_push(BIO, (st), (val)) -# define sk_BIO_unshift(st, val) SKM_sk_unshift(BIO, (st), (val)) -# define sk_BIO_find(st, val) SKM_sk_find(BIO, (st), (val)) -# define sk_BIO_find_ex(st, val) SKM_sk_find_ex(BIO, (st), (val)) -# define sk_BIO_delete(st, i) SKM_sk_delete(BIO, (st), (i)) -# define sk_BIO_delete_ptr(st, ptr) SKM_sk_delete_ptr(BIO, (st), (ptr)) -# define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i)) -# define sk_BIO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BIO, (st), (cmp)) -# define sk_BIO_dup(st) SKM_sk_dup(BIO, st) -# define sk_BIO_pop_free(st, free_func) SKM_sk_pop_free(BIO, (st), (free_func)) -# define sk_BIO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BIO, (st), (copy_func), (free_func)) -# define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) -# define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) -# define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) -# define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st)) -# define sk_BY_DIR_ENTRY_new(cmp) SKM_sk_new(BY_DIR_ENTRY, (cmp)) -# define sk_BY_DIR_ENTRY_new_null() SKM_sk_new_null(BY_DIR_ENTRY) -# define sk_BY_DIR_ENTRY_free(st) SKM_sk_free(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_num(st) SKM_sk_num(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_value(st, i) SKM_sk_value(BY_DIR_ENTRY, (st), (i)) -# define sk_BY_DIR_ENTRY_set(st, i, val) SKM_sk_set(BY_DIR_ENTRY, (st), (i), (val)) -# define sk_BY_DIR_ENTRY_zero(st) SKM_sk_zero(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_push(st, val) SKM_sk_push(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_unshift(st, val) SKM_sk_unshift(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_find(st, val) SKM_sk_find(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_find_ex(st, val) SKM_sk_find_ex(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_delete(st, i) SKM_sk_delete(BY_DIR_ENTRY, (st), (i)) -# define sk_BY_DIR_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_ENTRY, (st), (ptr)) -# define sk_BY_DIR_ENTRY_insert(st, val, i) SKM_sk_insert(BY_DIR_ENTRY, (st), (val), (i)) -# define sk_BY_DIR_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_ENTRY, (st), (cmp)) -# define sk_BY_DIR_ENTRY_dup(st) SKM_sk_dup(BY_DIR_ENTRY, st) -# define sk_BY_DIR_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_ENTRY, (st), (free_func)) -# define sk_BY_DIR_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_ENTRY, (st), (copy_func), (free_func)) -# define sk_BY_DIR_ENTRY_shift(st) SKM_sk_shift(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_pop(st) SKM_sk_pop(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_sort(st) SKM_sk_sort(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_is_sorted(st) SKM_sk_is_sorted(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_HASH_new(cmp) SKM_sk_new(BY_DIR_HASH, (cmp)) -# define sk_BY_DIR_HASH_new_null() SKM_sk_new_null(BY_DIR_HASH) -# define sk_BY_DIR_HASH_free(st) SKM_sk_free(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_num(st) SKM_sk_num(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_value(st, i) SKM_sk_value(BY_DIR_HASH, (st), (i)) -# define sk_BY_DIR_HASH_set(st, i, val) SKM_sk_set(BY_DIR_HASH, (st), (i), (val)) -# define sk_BY_DIR_HASH_zero(st) SKM_sk_zero(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_push(st, val) SKM_sk_push(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_unshift(st, val) SKM_sk_unshift(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_find(st, val) SKM_sk_find(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_find_ex(st, val) SKM_sk_find_ex(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_delete(st, i) SKM_sk_delete(BY_DIR_HASH, (st), (i)) -# define sk_BY_DIR_HASH_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_HASH, (st), (ptr)) -# define sk_BY_DIR_HASH_insert(st, val, i) SKM_sk_insert(BY_DIR_HASH, (st), (val), (i)) -# define sk_BY_DIR_HASH_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_HASH, (st), (cmp)) -# define sk_BY_DIR_HASH_dup(st) SKM_sk_dup(BY_DIR_HASH, st) -# define sk_BY_DIR_HASH_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_HASH, (st), (free_func)) -# define sk_BY_DIR_HASH_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_HASH, (st), (copy_func), (free_func)) -# define sk_BY_DIR_HASH_shift(st) SKM_sk_shift(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_pop(st) SKM_sk_pop(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_sort(st) SKM_sk_sort(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_is_sorted(st) SKM_sk_is_sorted(BY_DIR_HASH, (st)) -# define sk_CMS_CertificateChoices_new(cmp) SKM_sk_new(CMS_CertificateChoices, (cmp)) -# define sk_CMS_CertificateChoices_new_null() SKM_sk_new_null(CMS_CertificateChoices) -# define sk_CMS_CertificateChoices_free(st) SKM_sk_free(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_num(st) SKM_sk_num(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_value(st, i) SKM_sk_value(CMS_CertificateChoices, (st), (i)) -# define sk_CMS_CertificateChoices_set(st, i, val) SKM_sk_set(CMS_CertificateChoices, (st), (i), (val)) -# define sk_CMS_CertificateChoices_zero(st) SKM_sk_zero(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_push(st, val) SKM_sk_push(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_unshift(st, val) SKM_sk_unshift(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_find(st, val) SKM_sk_find(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_find_ex(st, val) SKM_sk_find_ex(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_delete(st, i) SKM_sk_delete(CMS_CertificateChoices, (st), (i)) -# define sk_CMS_CertificateChoices_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_CertificateChoices, (st), (ptr)) -# define sk_CMS_CertificateChoices_insert(st, val, i) SKM_sk_insert(CMS_CertificateChoices, (st), (val), (i)) -# define sk_CMS_CertificateChoices_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_CertificateChoices, (st), (cmp)) -# define sk_CMS_CertificateChoices_dup(st) SKM_sk_dup(CMS_CertificateChoices, st) -# define sk_CMS_CertificateChoices_pop_free(st, free_func) SKM_sk_pop_free(CMS_CertificateChoices, (st), (free_func)) -# define sk_CMS_CertificateChoices_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_CertificateChoices, (st), (copy_func), (free_func)) -# define sk_CMS_CertificateChoices_shift(st) SKM_sk_shift(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_pop(st) SKM_sk_pop(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_sort(st) SKM_sk_sort(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_is_sorted(st) SKM_sk_is_sorted(CMS_CertificateChoices, (st)) -# define sk_CMS_RecipientEncryptedKey_new(cmp) SKM_sk_new(CMS_RecipientEncryptedKey, (cmp)) -# define sk_CMS_RecipientEncryptedKey_new_null() SKM_sk_new_null(CMS_RecipientEncryptedKey) -# define sk_CMS_RecipientEncryptedKey_free(st) SKM_sk_free(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_num(st) SKM_sk_num(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_value(st, i) SKM_sk_value(CMS_RecipientEncryptedKey, (st), (i)) -# define sk_CMS_RecipientEncryptedKey_set(st, i, val) SKM_sk_set(CMS_RecipientEncryptedKey, (st), (i), (val)) -# define sk_CMS_RecipientEncryptedKey_zero(st) SKM_sk_zero(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_push(st, val) SKM_sk_push(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_unshift(st, val) SKM_sk_unshift(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_find(st, val) SKM_sk_find(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_delete(st, i) SKM_sk_delete(CMS_RecipientEncryptedKey, (st), (i)) -# define sk_CMS_RecipientEncryptedKey_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientEncryptedKey, (st), (ptr)) -# define sk_CMS_RecipientEncryptedKey_insert(st, val, i) SKM_sk_insert(CMS_RecipientEncryptedKey, (st), (val), (i)) -# define sk_CMS_RecipientEncryptedKey_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientEncryptedKey, (st), (cmp)) -# define sk_CMS_RecipientEncryptedKey_dup(st) SKM_sk_dup(CMS_RecipientEncryptedKey, st) -# define sk_CMS_RecipientEncryptedKey_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientEncryptedKey, (st), (free_func)) -# define sk_CMS_RecipientEncryptedKey_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientEncryptedKey, (st), (copy_func), (free_func)) -# define sk_CMS_RecipientEncryptedKey_shift(st) SKM_sk_shift(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_pop(st) SKM_sk_pop(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_sort(st) SKM_sk_sort(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientInfo_new(cmp) SKM_sk_new(CMS_RecipientInfo, (cmp)) -# define sk_CMS_RecipientInfo_new_null() SKM_sk_new_null(CMS_RecipientInfo) -# define sk_CMS_RecipientInfo_free(st) SKM_sk_free(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_num(st) SKM_sk_num(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_value(st, i) SKM_sk_value(CMS_RecipientInfo, (st), (i)) -# define sk_CMS_RecipientInfo_set(st, i, val) SKM_sk_set(CMS_RecipientInfo, (st), (i), (val)) -# define sk_CMS_RecipientInfo_zero(st) SKM_sk_zero(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_push(st, val) SKM_sk_push(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_unshift(st, val) SKM_sk_unshift(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_find(st, val) SKM_sk_find(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_delete(st, i) SKM_sk_delete(CMS_RecipientInfo, (st), (i)) -# define sk_CMS_RecipientInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientInfo, (st), (ptr)) -# define sk_CMS_RecipientInfo_insert(st, val, i) SKM_sk_insert(CMS_RecipientInfo, (st), (val), (i)) -# define sk_CMS_RecipientInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientInfo, (st), (cmp)) -# define sk_CMS_RecipientInfo_dup(st) SKM_sk_dup(CMS_RecipientInfo, st) -# define sk_CMS_RecipientInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientInfo, (st), (free_func)) -# define sk_CMS_RecipientInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientInfo, (st), (copy_func), (free_func)) -# define sk_CMS_RecipientInfo_shift(st) SKM_sk_shift(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_pop(st) SKM_sk_pop(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_sort(st) SKM_sk_sort(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientInfo, (st)) -# define sk_CMS_RevocationInfoChoice_new(cmp) SKM_sk_new(CMS_RevocationInfoChoice, (cmp)) -# define sk_CMS_RevocationInfoChoice_new_null() SKM_sk_new_null(CMS_RevocationInfoChoice) -# define sk_CMS_RevocationInfoChoice_free(st) SKM_sk_free(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_num(st) SKM_sk_num(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_value(st, i) SKM_sk_value(CMS_RevocationInfoChoice, (st), (i)) -# define sk_CMS_RevocationInfoChoice_set(st, i, val) SKM_sk_set(CMS_RevocationInfoChoice, (st), (i), (val)) -# define sk_CMS_RevocationInfoChoice_zero(st) SKM_sk_zero(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_push(st, val) SKM_sk_push(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_unshift(st, val) SKM_sk_unshift(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_find(st, val) SKM_sk_find(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_find_ex(st, val) SKM_sk_find_ex(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_delete(st, i) SKM_sk_delete(CMS_RevocationInfoChoice, (st), (i)) -# define sk_CMS_RevocationInfoChoice_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RevocationInfoChoice, (st), (ptr)) -# define sk_CMS_RevocationInfoChoice_insert(st, val, i) SKM_sk_insert(CMS_RevocationInfoChoice, (st), (val), (i)) -# define sk_CMS_RevocationInfoChoice_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RevocationInfoChoice, (st), (cmp)) -# define sk_CMS_RevocationInfoChoice_dup(st) SKM_sk_dup(CMS_RevocationInfoChoice, st) -# define sk_CMS_RevocationInfoChoice_pop_free(st, free_func) SKM_sk_pop_free(CMS_RevocationInfoChoice, (st), (free_func)) -# define sk_CMS_RevocationInfoChoice_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RevocationInfoChoice, (st), (copy_func), (free_func)) -# define sk_CMS_RevocationInfoChoice_shift(st) SKM_sk_shift(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_pop(st) SKM_sk_pop(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_sort(st) SKM_sk_sort(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_is_sorted(st) SKM_sk_is_sorted(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_SignerInfo_new(cmp) SKM_sk_new(CMS_SignerInfo, (cmp)) -# define sk_CMS_SignerInfo_new_null() SKM_sk_new_null(CMS_SignerInfo) -# define sk_CMS_SignerInfo_free(st) SKM_sk_free(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_num(st) SKM_sk_num(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_value(st, i) SKM_sk_value(CMS_SignerInfo, (st), (i)) -# define sk_CMS_SignerInfo_set(st, i, val) SKM_sk_set(CMS_SignerInfo, (st), (i), (val)) -# define sk_CMS_SignerInfo_zero(st) SKM_sk_zero(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_push(st, val) SKM_sk_push(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_unshift(st, val) SKM_sk_unshift(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_find(st, val) SKM_sk_find(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_find_ex(st, val) SKM_sk_find_ex(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_delete(st, i) SKM_sk_delete(CMS_SignerInfo, (st), (i)) -# define sk_CMS_SignerInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_SignerInfo, (st), (ptr)) -# define sk_CMS_SignerInfo_insert(st, val, i) SKM_sk_insert(CMS_SignerInfo, (st), (val), (i)) -# define sk_CMS_SignerInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_SignerInfo, (st), (cmp)) -# define sk_CMS_SignerInfo_dup(st) SKM_sk_dup(CMS_SignerInfo, st) -# define sk_CMS_SignerInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_SignerInfo, (st), (free_func)) -# define sk_CMS_SignerInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_SignerInfo, (st), (copy_func), (free_func)) -# define sk_CMS_SignerInfo_shift(st) SKM_sk_shift(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_pop(st) SKM_sk_pop(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_sort(st) SKM_sk_sort(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_is_sorted(st) SKM_sk_is_sorted(CMS_SignerInfo, (st)) -# define sk_CONF_IMODULE_new(cmp) SKM_sk_new(CONF_IMODULE, (cmp)) -# define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE) -# define sk_CONF_IMODULE_free(st) SKM_sk_free(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_num(st) SKM_sk_num(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_value(st, i) SKM_sk_value(CONF_IMODULE, (st), (i)) -# define sk_CONF_IMODULE_set(st, i, val) SKM_sk_set(CONF_IMODULE, (st), (i), (val)) -# define sk_CONF_IMODULE_zero(st) SKM_sk_zero(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_push(st, val) SKM_sk_push(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_unshift(st, val) SKM_sk_unshift(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_find(st, val) SKM_sk_find(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_find_ex(st, val) SKM_sk_find_ex(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_delete(st, i) SKM_sk_delete(CONF_IMODULE, (st), (i)) -# define sk_CONF_IMODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_IMODULE, (st), (ptr)) -# define sk_CONF_IMODULE_insert(st, val, i) SKM_sk_insert(CONF_IMODULE, (st), (val), (i)) -# define sk_CONF_IMODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_IMODULE, (st), (cmp)) -# define sk_CONF_IMODULE_dup(st) SKM_sk_dup(CONF_IMODULE, st) -# define sk_CONF_IMODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_IMODULE, (st), (free_func)) -# define sk_CONF_IMODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_IMODULE, (st), (copy_func), (free_func)) -# define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st)) -# define sk_CONF_MODULE_new(cmp) SKM_sk_new(CONF_MODULE, (cmp)) -# define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE) -# define sk_CONF_MODULE_free(st) SKM_sk_free(CONF_MODULE, (st)) -# define sk_CONF_MODULE_num(st) SKM_sk_num(CONF_MODULE, (st)) -# define sk_CONF_MODULE_value(st, i) SKM_sk_value(CONF_MODULE, (st), (i)) -# define sk_CONF_MODULE_set(st, i, val) SKM_sk_set(CONF_MODULE, (st), (i), (val)) -# define sk_CONF_MODULE_zero(st) SKM_sk_zero(CONF_MODULE, (st)) -# define sk_CONF_MODULE_push(st, val) SKM_sk_push(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_unshift(st, val) SKM_sk_unshift(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_find(st, val) SKM_sk_find(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_find_ex(st, val) SKM_sk_find_ex(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_delete(st, i) SKM_sk_delete(CONF_MODULE, (st), (i)) -# define sk_CONF_MODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_MODULE, (st), (ptr)) -# define sk_CONF_MODULE_insert(st, val, i) SKM_sk_insert(CONF_MODULE, (st), (val), (i)) -# define sk_CONF_MODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_MODULE, (st), (cmp)) -# define sk_CONF_MODULE_dup(st) SKM_sk_dup(CONF_MODULE, st) -# define sk_CONF_MODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_MODULE, (st), (free_func)) -# define sk_CONF_MODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_MODULE, (st), (copy_func), (free_func)) -# define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) -# define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) -# define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) -# define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st)) -# define sk_CONF_VALUE_new(cmp) SKM_sk_new(CONF_VALUE, (cmp)) -# define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE) -# define sk_CONF_VALUE_free(st) SKM_sk_free(CONF_VALUE, (st)) -# define sk_CONF_VALUE_num(st) SKM_sk_num(CONF_VALUE, (st)) -# define sk_CONF_VALUE_value(st, i) SKM_sk_value(CONF_VALUE, (st), (i)) -# define sk_CONF_VALUE_set(st, i, val) SKM_sk_set(CONF_VALUE, (st), (i), (val)) -# define sk_CONF_VALUE_zero(st) SKM_sk_zero(CONF_VALUE, (st)) -# define sk_CONF_VALUE_push(st, val) SKM_sk_push(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_unshift(st, val) SKM_sk_unshift(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_find(st, val) SKM_sk_find(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_find_ex(st, val) SKM_sk_find_ex(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_delete(st, i) SKM_sk_delete(CONF_VALUE, (st), (i)) -# define sk_CONF_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_VALUE, (st), (ptr)) -# define sk_CONF_VALUE_insert(st, val, i) SKM_sk_insert(CONF_VALUE, (st), (val), (i)) -# define sk_CONF_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_VALUE, (st), (cmp)) -# define sk_CONF_VALUE_dup(st) SKM_sk_dup(CONF_VALUE, st) -# define sk_CONF_VALUE_pop_free(st, free_func) SKM_sk_pop_free(CONF_VALUE, (st), (free_func)) -# define sk_CONF_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_VALUE, (st), (copy_func), (free_func)) -# define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) -# define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) -# define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) -# define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_new(cmp) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (cmp)) -# define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS) -# define sk_CRYPTO_EX_DATA_FUNCS_free(st) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_num(st) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_value(st, i) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (st), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_set(st, i, val) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (st), (i), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_zero(st) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_push(st, val) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_unshift(st, val) SKM_sk_unshift(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_find(st, val) SKM_sk_find(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_find_ex(st, val) SKM_sk_find_ex(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_delete(st, i) SKM_sk_delete(CRYPTO_EX_DATA_FUNCS, (st), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_EX_DATA_FUNCS, (st), (ptr)) -# define sk_CRYPTO_EX_DATA_FUNCS_insert(st, val, i) SKM_sk_insert(CRYPTO_EX_DATA_FUNCS, (st), (val), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (st), (cmp)) -# define sk_CRYPTO_EX_DATA_FUNCS_dup(st) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, st) -# define sk_CRYPTO_EX_DATA_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (st), (free_func)) -# define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_EX_DATA_FUNCS, (st), (copy_func), (free_func)) -# define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_dynlock_new(cmp) SKM_sk_new(CRYPTO_dynlock, (cmp)) -# define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock) -# define sk_CRYPTO_dynlock_free(st) SKM_sk_free(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_num(st) SKM_sk_num(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_value(st, i) SKM_sk_value(CRYPTO_dynlock, (st), (i)) -# define sk_CRYPTO_dynlock_set(st, i, val) SKM_sk_set(CRYPTO_dynlock, (st), (i), (val)) -# define sk_CRYPTO_dynlock_zero(st) SKM_sk_zero(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_push(st, val) SKM_sk_push(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_unshift(st, val) SKM_sk_unshift(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_find(st, val) SKM_sk_find(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_find_ex(st, val) SKM_sk_find_ex(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_delete(st, i) SKM_sk_delete(CRYPTO_dynlock, (st), (i)) -# define sk_CRYPTO_dynlock_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_dynlock, (st), (ptr)) -# define sk_CRYPTO_dynlock_insert(st, val, i) SKM_sk_insert(CRYPTO_dynlock, (st), (val), (i)) -# define sk_CRYPTO_dynlock_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_dynlock, (st), (cmp)) -# define sk_CRYPTO_dynlock_dup(st) SKM_sk_dup(CRYPTO_dynlock, st) -# define sk_CRYPTO_dynlock_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_dynlock, (st), (free_func)) -# define sk_CRYPTO_dynlock_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_dynlock, (st), (copy_func), (free_func)) -# define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st)) -# define sk_DIST_POINT_new(cmp) SKM_sk_new(DIST_POINT, (cmp)) -# define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT) -# define sk_DIST_POINT_free(st) SKM_sk_free(DIST_POINT, (st)) -# define sk_DIST_POINT_num(st) SKM_sk_num(DIST_POINT, (st)) -# define sk_DIST_POINT_value(st, i) SKM_sk_value(DIST_POINT, (st), (i)) -# define sk_DIST_POINT_set(st, i, val) SKM_sk_set(DIST_POINT, (st), (i), (val)) -# define sk_DIST_POINT_zero(st) SKM_sk_zero(DIST_POINT, (st)) -# define sk_DIST_POINT_push(st, val) SKM_sk_push(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_unshift(st, val) SKM_sk_unshift(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_find(st, val) SKM_sk_find(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_find_ex(st, val) SKM_sk_find_ex(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_delete(st, i) SKM_sk_delete(DIST_POINT, (st), (i)) -# define sk_DIST_POINT_delete_ptr(st, ptr) SKM_sk_delete_ptr(DIST_POINT, (st), (ptr)) -# define sk_DIST_POINT_insert(st, val, i) SKM_sk_insert(DIST_POINT, (st), (val), (i)) -# define sk_DIST_POINT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(DIST_POINT, (st), (cmp)) -# define sk_DIST_POINT_dup(st) SKM_sk_dup(DIST_POINT, st) -# define sk_DIST_POINT_pop_free(st, free_func) SKM_sk_pop_free(DIST_POINT, (st), (free_func)) -# define sk_DIST_POINT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(DIST_POINT, (st), (copy_func), (free_func)) -# define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) -# define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) -# define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) -# define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st)) -# define sk_ENGINE_new(cmp) SKM_sk_new(ENGINE, (cmp)) -# define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE) -# define sk_ENGINE_free(st) SKM_sk_free(ENGINE, (st)) -# define sk_ENGINE_num(st) SKM_sk_num(ENGINE, (st)) -# define sk_ENGINE_value(st, i) SKM_sk_value(ENGINE, (st), (i)) -# define sk_ENGINE_set(st, i, val) SKM_sk_set(ENGINE, (st), (i), (val)) -# define sk_ENGINE_zero(st) SKM_sk_zero(ENGINE, (st)) -# define sk_ENGINE_push(st, val) SKM_sk_push(ENGINE, (st), (val)) -# define sk_ENGINE_unshift(st, val) SKM_sk_unshift(ENGINE, (st), (val)) -# define sk_ENGINE_find(st, val) SKM_sk_find(ENGINE, (st), (val)) -# define sk_ENGINE_find_ex(st, val) SKM_sk_find_ex(ENGINE, (st), (val)) -# define sk_ENGINE_delete(st, i) SKM_sk_delete(ENGINE, (st), (i)) -# define sk_ENGINE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE, (st), (ptr)) -# define sk_ENGINE_insert(st, val, i) SKM_sk_insert(ENGINE, (st), (val), (i)) -# define sk_ENGINE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE, (st), (cmp)) -# define sk_ENGINE_dup(st) SKM_sk_dup(ENGINE, st) -# define sk_ENGINE_pop_free(st, free_func) SKM_sk_pop_free(ENGINE, (st), (free_func)) -# define sk_ENGINE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE, (st), (copy_func), (free_func)) -# define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) -# define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) -# define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) -# define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st)) -# define sk_ENGINE_CLEANUP_ITEM_new(cmp) SKM_sk_new(ENGINE_CLEANUP_ITEM, (cmp)) -# define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM) -# define sk_ENGINE_CLEANUP_ITEM_free(st) SKM_sk_free(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_num(st) SKM_sk_num(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_value(st, i) SKM_sk_value(ENGINE_CLEANUP_ITEM, (st), (i)) -# define sk_ENGINE_CLEANUP_ITEM_set(st, i, val) SKM_sk_set(ENGINE_CLEANUP_ITEM, (st), (i), (val)) -# define sk_ENGINE_CLEANUP_ITEM_zero(st) SKM_sk_zero(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_push(st, val) SKM_sk_push(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_unshift(st, val) SKM_sk_unshift(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_find(st, val) SKM_sk_find(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_find_ex(st, val) SKM_sk_find_ex(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_delete(st, i) SKM_sk_delete(ENGINE_CLEANUP_ITEM, (st), (i)) -# define sk_ENGINE_CLEANUP_ITEM_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE_CLEANUP_ITEM, (st), (ptr)) -# define sk_ENGINE_CLEANUP_ITEM_insert(st, val, i) SKM_sk_insert(ENGINE_CLEANUP_ITEM, (st), (val), (i)) -# define sk_ENGINE_CLEANUP_ITEM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE_CLEANUP_ITEM, (st), (cmp)) -# define sk_ENGINE_CLEANUP_ITEM_dup(st) SKM_sk_dup(ENGINE_CLEANUP_ITEM, st) -# define sk_ENGINE_CLEANUP_ITEM_pop_free(st, free_func) SKM_sk_pop_free(ENGINE_CLEANUP_ITEM, (st), (free_func)) -# define sk_ENGINE_CLEANUP_ITEM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE_CLEANUP_ITEM, (st), (copy_func), (free_func)) -# define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ESS_CERT_ID_new(cmp) SKM_sk_new(ESS_CERT_ID, (cmp)) -# define sk_ESS_CERT_ID_new_null() SKM_sk_new_null(ESS_CERT_ID) -# define sk_ESS_CERT_ID_free(st) SKM_sk_free(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_num(st) SKM_sk_num(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_value(st, i) SKM_sk_value(ESS_CERT_ID, (st), (i)) -# define sk_ESS_CERT_ID_set(st, i, val) SKM_sk_set(ESS_CERT_ID, (st), (i), (val)) -# define sk_ESS_CERT_ID_zero(st) SKM_sk_zero(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_push(st, val) SKM_sk_push(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_unshift(st, val) SKM_sk_unshift(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_find(st, val) SKM_sk_find(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_find_ex(st, val) SKM_sk_find_ex(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_delete(st, i) SKM_sk_delete(ESS_CERT_ID, (st), (i)) -# define sk_ESS_CERT_ID_delete_ptr(st, ptr) SKM_sk_delete_ptr(ESS_CERT_ID, (st), (ptr)) -# define sk_ESS_CERT_ID_insert(st, val, i) SKM_sk_insert(ESS_CERT_ID, (st), (val), (i)) -# define sk_ESS_CERT_ID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ESS_CERT_ID, (st), (cmp)) -# define sk_ESS_CERT_ID_dup(st) SKM_sk_dup(ESS_CERT_ID, st) -# define sk_ESS_CERT_ID_pop_free(st, free_func) SKM_sk_pop_free(ESS_CERT_ID, (st), (free_func)) -# define sk_ESS_CERT_ID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ESS_CERT_ID, (st), (copy_func), (free_func)) -# define sk_ESS_CERT_ID_shift(st) SKM_sk_shift(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_pop(st) SKM_sk_pop(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_sort(st) SKM_sk_sort(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_is_sorted(st) SKM_sk_is_sorted(ESS_CERT_ID, (st)) -# define sk_EVP_MD_new(cmp) SKM_sk_new(EVP_MD, (cmp)) -# define sk_EVP_MD_new_null() SKM_sk_new_null(EVP_MD) -# define sk_EVP_MD_free(st) SKM_sk_free(EVP_MD, (st)) -# define sk_EVP_MD_num(st) SKM_sk_num(EVP_MD, (st)) -# define sk_EVP_MD_value(st, i) SKM_sk_value(EVP_MD, (st), (i)) -# define sk_EVP_MD_set(st, i, val) SKM_sk_set(EVP_MD, (st), (i), (val)) -# define sk_EVP_MD_zero(st) SKM_sk_zero(EVP_MD, (st)) -# define sk_EVP_MD_push(st, val) SKM_sk_push(EVP_MD, (st), (val)) -# define sk_EVP_MD_unshift(st, val) SKM_sk_unshift(EVP_MD, (st), (val)) -# define sk_EVP_MD_find(st, val) SKM_sk_find(EVP_MD, (st), (val)) -# define sk_EVP_MD_find_ex(st, val) SKM_sk_find_ex(EVP_MD, (st), (val)) -# define sk_EVP_MD_delete(st, i) SKM_sk_delete(EVP_MD, (st), (i)) -# define sk_EVP_MD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_MD, (st), (ptr)) -# define sk_EVP_MD_insert(st, val, i) SKM_sk_insert(EVP_MD, (st), (val), (i)) -# define sk_EVP_MD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_MD, (st), (cmp)) -# define sk_EVP_MD_dup(st) SKM_sk_dup(EVP_MD, st) -# define sk_EVP_MD_pop_free(st, free_func) SKM_sk_pop_free(EVP_MD, (st), (free_func)) -# define sk_EVP_MD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_MD, (st), (copy_func), (free_func)) -# define sk_EVP_MD_shift(st) SKM_sk_shift(EVP_MD, (st)) -# define sk_EVP_MD_pop(st) SKM_sk_pop(EVP_MD, (st)) -# define sk_EVP_MD_sort(st) SKM_sk_sort(EVP_MD, (st)) -# define sk_EVP_MD_is_sorted(st) SKM_sk_is_sorted(EVP_MD, (st)) -# define sk_EVP_PBE_CTL_new(cmp) SKM_sk_new(EVP_PBE_CTL, (cmp)) -# define sk_EVP_PBE_CTL_new_null() SKM_sk_new_null(EVP_PBE_CTL) -# define sk_EVP_PBE_CTL_free(st) SKM_sk_free(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_num(st) SKM_sk_num(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_value(st, i) SKM_sk_value(EVP_PBE_CTL, (st), (i)) -# define sk_EVP_PBE_CTL_set(st, i, val) SKM_sk_set(EVP_PBE_CTL, (st), (i), (val)) -# define sk_EVP_PBE_CTL_zero(st) SKM_sk_zero(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_push(st, val) SKM_sk_push(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_unshift(st, val) SKM_sk_unshift(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_find(st, val) SKM_sk_find(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_find_ex(st, val) SKM_sk_find_ex(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_delete(st, i) SKM_sk_delete(EVP_PBE_CTL, (st), (i)) -# define sk_EVP_PBE_CTL_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PBE_CTL, (st), (ptr)) -# define sk_EVP_PBE_CTL_insert(st, val, i) SKM_sk_insert(EVP_PBE_CTL, (st), (val), (i)) -# define sk_EVP_PBE_CTL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PBE_CTL, (st), (cmp)) -# define sk_EVP_PBE_CTL_dup(st) SKM_sk_dup(EVP_PBE_CTL, st) -# define sk_EVP_PBE_CTL_pop_free(st, free_func) SKM_sk_pop_free(EVP_PBE_CTL, (st), (free_func)) -# define sk_EVP_PBE_CTL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PBE_CTL, (st), (copy_func), (free_func)) -# define sk_EVP_PBE_CTL_shift(st) SKM_sk_shift(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_pop(st) SKM_sk_pop(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_sort(st) SKM_sk_sort(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_is_sorted(st) SKM_sk_is_sorted(EVP_PBE_CTL, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_ASN1_METHOD, (cmp)) -# define sk_EVP_PKEY_ASN1_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_ASN1_METHOD) -# define sk_EVP_PKEY_ASN1_METHOD_free(st) SKM_sk_free(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_num(st) SKM_sk_num(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_ASN1_METHOD, (st), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_ASN1_METHOD, (st), (i), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_ASN1_METHOD, (st), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_ASN1_METHOD, (st), (ptr)) -# define sk_EVP_PKEY_ASN1_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_ASN1_METHOD, (st), (val), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_ASN1_METHOD, (st), (cmp)) -# define sk_EVP_PKEY_ASN1_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_ASN1_METHOD, st) -# define sk_EVP_PKEY_ASN1_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_ASN1_METHOD, (st), (free_func)) -# define sk_EVP_PKEY_ASN1_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_ASN1_METHOD, (st), (copy_func), (free_func)) -# define sk_EVP_PKEY_ASN1_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_METHOD, (cmp)) -# define sk_EVP_PKEY_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_METHOD) -# define sk_EVP_PKEY_METHOD_free(st) SKM_sk_free(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_num(st) SKM_sk_num(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_METHOD, (st), (i)) -# define sk_EVP_PKEY_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_METHOD, (st), (i), (val)) -# define sk_EVP_PKEY_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_METHOD, (st), (i)) -# define sk_EVP_PKEY_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_METHOD, (st), (ptr)) -# define sk_EVP_PKEY_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_METHOD, (st), (val), (i)) -# define sk_EVP_PKEY_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_METHOD, (st), (cmp)) -# define sk_EVP_PKEY_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_METHOD, st) -# define sk_EVP_PKEY_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_METHOD, (st), (free_func)) -# define sk_EVP_PKEY_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_METHOD, (st), (copy_func), (free_func)) -# define sk_EVP_PKEY_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_METHOD, (st)) -# define sk_GENERAL_NAME_new(cmp) SKM_sk_new(GENERAL_NAME, (cmp)) -# define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME) -# define sk_GENERAL_NAME_free(st) SKM_sk_free(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_num(st) SKM_sk_num(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_value(st, i) SKM_sk_value(GENERAL_NAME, (st), (i)) -# define sk_GENERAL_NAME_set(st, i, val) SKM_sk_set(GENERAL_NAME, (st), (i), (val)) -# define sk_GENERAL_NAME_zero(st) SKM_sk_zero(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_push(st, val) SKM_sk_push(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_unshift(st, val) SKM_sk_unshift(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_find(st, val) SKM_sk_find(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_delete(st, i) SKM_sk_delete(GENERAL_NAME, (st), (i)) -# define sk_GENERAL_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAME, (st), (ptr)) -# define sk_GENERAL_NAME_insert(st, val, i) SKM_sk_insert(GENERAL_NAME, (st), (val), (i)) -# define sk_GENERAL_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAME, (st), (cmp)) -# define sk_GENERAL_NAME_dup(st) SKM_sk_dup(GENERAL_NAME, st) -# define sk_GENERAL_NAME_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAME, (st), (free_func)) -# define sk_GENERAL_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAME, (st), (copy_func), (free_func)) -# define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st)) -# define sk_GENERAL_NAMES_new(cmp) SKM_sk_new(GENERAL_NAMES, (cmp)) -# define sk_GENERAL_NAMES_new_null() SKM_sk_new_null(GENERAL_NAMES) -# define sk_GENERAL_NAMES_free(st) SKM_sk_free(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_num(st) SKM_sk_num(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_value(st, i) SKM_sk_value(GENERAL_NAMES, (st), (i)) -# define sk_GENERAL_NAMES_set(st, i, val) SKM_sk_set(GENERAL_NAMES, (st), (i), (val)) -# define sk_GENERAL_NAMES_zero(st) SKM_sk_zero(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_push(st, val) SKM_sk_push(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_unshift(st, val) SKM_sk_unshift(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_find(st, val) SKM_sk_find(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_delete(st, i) SKM_sk_delete(GENERAL_NAMES, (st), (i)) -# define sk_GENERAL_NAMES_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAMES, (st), (ptr)) -# define sk_GENERAL_NAMES_insert(st, val, i) SKM_sk_insert(GENERAL_NAMES, (st), (val), (i)) -# define sk_GENERAL_NAMES_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAMES, (st), (cmp)) -# define sk_GENERAL_NAMES_dup(st) SKM_sk_dup(GENERAL_NAMES, st) -# define sk_GENERAL_NAMES_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAMES, (st), (free_func)) -# define sk_GENERAL_NAMES_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAMES, (st), (copy_func), (free_func)) -# define sk_GENERAL_NAMES_shift(st) SKM_sk_shift(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_pop(st) SKM_sk_pop(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_sort(st) SKM_sk_sort(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAMES, (st)) -# define sk_GENERAL_SUBTREE_new(cmp) SKM_sk_new(GENERAL_SUBTREE, (cmp)) -# define sk_GENERAL_SUBTREE_new_null() SKM_sk_new_null(GENERAL_SUBTREE) -# define sk_GENERAL_SUBTREE_free(st) SKM_sk_free(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_num(st) SKM_sk_num(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_value(st, i) SKM_sk_value(GENERAL_SUBTREE, (st), (i)) -# define sk_GENERAL_SUBTREE_set(st, i, val) SKM_sk_set(GENERAL_SUBTREE, (st), (i), (val)) -# define sk_GENERAL_SUBTREE_zero(st) SKM_sk_zero(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_push(st, val) SKM_sk_push(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_unshift(st, val) SKM_sk_unshift(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_find(st, val) SKM_sk_find(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_find_ex(st, val) SKM_sk_find_ex(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_delete(st, i) SKM_sk_delete(GENERAL_SUBTREE, (st), (i)) -# define sk_GENERAL_SUBTREE_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_SUBTREE, (st), (ptr)) -# define sk_GENERAL_SUBTREE_insert(st, val, i) SKM_sk_insert(GENERAL_SUBTREE, (st), (val), (i)) -# define sk_GENERAL_SUBTREE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_SUBTREE, (st), (cmp)) -# define sk_GENERAL_SUBTREE_dup(st) SKM_sk_dup(GENERAL_SUBTREE, st) -# define sk_GENERAL_SUBTREE_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_SUBTREE, (st), (free_func)) -# define sk_GENERAL_SUBTREE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_SUBTREE, (st), (copy_func), (free_func)) -# define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_is_sorted(st) SKM_sk_is_sorted(GENERAL_SUBTREE, (st)) -# define sk_IPAddressFamily_new(cmp) SKM_sk_new(IPAddressFamily, (cmp)) -# define sk_IPAddressFamily_new_null() SKM_sk_new_null(IPAddressFamily) -# define sk_IPAddressFamily_free(st) SKM_sk_free(IPAddressFamily, (st)) -# define sk_IPAddressFamily_num(st) SKM_sk_num(IPAddressFamily, (st)) -# define sk_IPAddressFamily_value(st, i) SKM_sk_value(IPAddressFamily, (st), (i)) -# define sk_IPAddressFamily_set(st, i, val) SKM_sk_set(IPAddressFamily, (st), (i), (val)) -# define sk_IPAddressFamily_zero(st) SKM_sk_zero(IPAddressFamily, (st)) -# define sk_IPAddressFamily_push(st, val) SKM_sk_push(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_unshift(st, val) SKM_sk_unshift(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_find(st, val) SKM_sk_find(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_find_ex(st, val) SKM_sk_find_ex(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_delete(st, i) SKM_sk_delete(IPAddressFamily, (st), (i)) -# define sk_IPAddressFamily_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressFamily, (st), (ptr)) -# define sk_IPAddressFamily_insert(st, val, i) SKM_sk_insert(IPAddressFamily, (st), (val), (i)) -# define sk_IPAddressFamily_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressFamily, (st), (cmp)) -# define sk_IPAddressFamily_dup(st) SKM_sk_dup(IPAddressFamily, st) -# define sk_IPAddressFamily_pop_free(st, free_func) SKM_sk_pop_free(IPAddressFamily, (st), (free_func)) -# define sk_IPAddressFamily_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressFamily, (st), (copy_func), (free_func)) -# define sk_IPAddressFamily_shift(st) SKM_sk_shift(IPAddressFamily, (st)) -# define sk_IPAddressFamily_pop(st) SKM_sk_pop(IPAddressFamily, (st)) -# define sk_IPAddressFamily_sort(st) SKM_sk_sort(IPAddressFamily, (st)) -# define sk_IPAddressFamily_is_sorted(st) SKM_sk_is_sorted(IPAddressFamily, (st)) -# define sk_IPAddressOrRange_new(cmp) SKM_sk_new(IPAddressOrRange, (cmp)) -# define sk_IPAddressOrRange_new_null() SKM_sk_new_null(IPAddressOrRange) -# define sk_IPAddressOrRange_free(st) SKM_sk_free(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_num(st) SKM_sk_num(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_value(st, i) SKM_sk_value(IPAddressOrRange, (st), (i)) -# define sk_IPAddressOrRange_set(st, i, val) SKM_sk_set(IPAddressOrRange, (st), (i), (val)) -# define sk_IPAddressOrRange_zero(st) SKM_sk_zero(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_push(st, val) SKM_sk_push(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_unshift(st, val) SKM_sk_unshift(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_find(st, val) SKM_sk_find(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_find_ex(st, val) SKM_sk_find_ex(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_delete(st, i) SKM_sk_delete(IPAddressOrRange, (st), (i)) -# define sk_IPAddressOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressOrRange, (st), (ptr)) -# define sk_IPAddressOrRange_insert(st, val, i) SKM_sk_insert(IPAddressOrRange, (st), (val), (i)) -# define sk_IPAddressOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressOrRange, (st), (cmp)) -# define sk_IPAddressOrRange_dup(st) SKM_sk_dup(IPAddressOrRange, st) -# define sk_IPAddressOrRange_pop_free(st, free_func) SKM_sk_pop_free(IPAddressOrRange, (st), (free_func)) -# define sk_IPAddressOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressOrRange, (st), (copy_func), (free_func)) -# define sk_IPAddressOrRange_shift(st) SKM_sk_shift(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_pop(st) SKM_sk_pop(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_sort(st) SKM_sk_sort(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_is_sorted(st) SKM_sk_is_sorted(IPAddressOrRange, (st)) -# define sk_KRB5_APREQBODY_new(cmp) SKM_sk_new(KRB5_APREQBODY, (cmp)) -# define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY) -# define sk_KRB5_APREQBODY_free(st) SKM_sk_free(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_num(st) SKM_sk_num(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_value(st, i) SKM_sk_value(KRB5_APREQBODY, (st), (i)) -# define sk_KRB5_APREQBODY_set(st, i, val) SKM_sk_set(KRB5_APREQBODY, (st), (i), (val)) -# define sk_KRB5_APREQBODY_zero(st) SKM_sk_zero(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_push(st, val) SKM_sk_push(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_unshift(st, val) SKM_sk_unshift(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_find(st, val) SKM_sk_find(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_delete(st, i) SKM_sk_delete(KRB5_APREQBODY, (st), (i)) -# define sk_KRB5_APREQBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_APREQBODY, (st), (ptr)) -# define sk_KRB5_APREQBODY_insert(st, val, i) SKM_sk_insert(KRB5_APREQBODY, (st), (val), (i)) -# define sk_KRB5_APREQBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_APREQBODY, (st), (cmp)) -# define sk_KRB5_APREQBODY_dup(st) SKM_sk_dup(KRB5_APREQBODY, st) -# define sk_KRB5_APREQBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_APREQBODY, (st), (free_func)) -# define sk_KRB5_APREQBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_APREQBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st)) -# define sk_KRB5_AUTHDATA_new(cmp) SKM_sk_new(KRB5_AUTHDATA, (cmp)) -# define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA) -# define sk_KRB5_AUTHDATA_free(st) SKM_sk_free(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_num(st) SKM_sk_num(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_value(st, i) SKM_sk_value(KRB5_AUTHDATA, (st), (i)) -# define sk_KRB5_AUTHDATA_set(st, i, val) SKM_sk_set(KRB5_AUTHDATA, (st), (i), (val)) -# define sk_KRB5_AUTHDATA_zero(st) SKM_sk_zero(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_push(st, val) SKM_sk_push(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_unshift(st, val) SKM_sk_unshift(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_find(st, val) SKM_sk_find(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_delete(st, i) SKM_sk_delete(KRB5_AUTHDATA, (st), (i)) -# define sk_KRB5_AUTHDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHDATA, (st), (ptr)) -# define sk_KRB5_AUTHDATA_insert(st, val, i) SKM_sk_insert(KRB5_AUTHDATA, (st), (val), (i)) -# define sk_KRB5_AUTHDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHDATA, (st), (cmp)) -# define sk_KRB5_AUTHDATA_dup(st) SKM_sk_dup(KRB5_AUTHDATA, st) -# define sk_KRB5_AUTHDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHDATA, (st), (free_func)) -# define sk_KRB5_AUTHDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHDATA, (st), (copy_func), (free_func)) -# define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHENTBODY_new(cmp) SKM_sk_new(KRB5_AUTHENTBODY, (cmp)) -# define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY) -# define sk_KRB5_AUTHENTBODY_free(st) SKM_sk_free(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_num(st) SKM_sk_num(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_value(st, i) SKM_sk_value(KRB5_AUTHENTBODY, (st), (i)) -# define sk_KRB5_AUTHENTBODY_set(st, i, val) SKM_sk_set(KRB5_AUTHENTBODY, (st), (i), (val)) -# define sk_KRB5_AUTHENTBODY_zero(st) SKM_sk_zero(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_push(st, val) SKM_sk_push(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_unshift(st, val) SKM_sk_unshift(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_find(st, val) SKM_sk_find(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_delete(st, i) SKM_sk_delete(KRB5_AUTHENTBODY, (st), (i)) -# define sk_KRB5_AUTHENTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHENTBODY, (st), (ptr)) -# define sk_KRB5_AUTHENTBODY_insert(st, val, i) SKM_sk_insert(KRB5_AUTHENTBODY, (st), (val), (i)) -# define sk_KRB5_AUTHENTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHENTBODY, (st), (cmp)) -# define sk_KRB5_AUTHENTBODY_dup(st) SKM_sk_dup(KRB5_AUTHENTBODY, st) -# define sk_KRB5_AUTHENTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHENTBODY, (st), (free_func)) -# define sk_KRB5_AUTHENTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHENTBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_CHECKSUM_new(cmp) SKM_sk_new(KRB5_CHECKSUM, (cmp)) -# define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM) -# define sk_KRB5_CHECKSUM_free(st) SKM_sk_free(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_num(st) SKM_sk_num(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_value(st, i) SKM_sk_value(KRB5_CHECKSUM, (st), (i)) -# define sk_KRB5_CHECKSUM_set(st, i, val) SKM_sk_set(KRB5_CHECKSUM, (st), (i), (val)) -# define sk_KRB5_CHECKSUM_zero(st) SKM_sk_zero(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_push(st, val) SKM_sk_push(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_unshift(st, val) SKM_sk_unshift(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_find(st, val) SKM_sk_find(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_find_ex(st, val) SKM_sk_find_ex(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_delete(st, i) SKM_sk_delete(KRB5_CHECKSUM, (st), (i)) -# define sk_KRB5_CHECKSUM_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_CHECKSUM, (st), (ptr)) -# define sk_KRB5_CHECKSUM_insert(st, val, i) SKM_sk_insert(KRB5_CHECKSUM, (st), (val), (i)) -# define sk_KRB5_CHECKSUM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_CHECKSUM, (st), (cmp)) -# define sk_KRB5_CHECKSUM_dup(st) SKM_sk_dup(KRB5_CHECKSUM, st) -# define sk_KRB5_CHECKSUM_pop_free(st, free_func) SKM_sk_pop_free(KRB5_CHECKSUM, (st), (free_func)) -# define sk_KRB5_CHECKSUM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_CHECKSUM, (st), (copy_func), (free_func)) -# define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st)) -# define sk_KRB5_ENCDATA_new(cmp) SKM_sk_new(KRB5_ENCDATA, (cmp)) -# define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA) -# define sk_KRB5_ENCDATA_free(st) SKM_sk_free(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_num(st) SKM_sk_num(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_value(st, i) SKM_sk_value(KRB5_ENCDATA, (st), (i)) -# define sk_KRB5_ENCDATA_set(st, i, val) SKM_sk_set(KRB5_ENCDATA, (st), (i), (val)) -# define sk_KRB5_ENCDATA_zero(st) SKM_sk_zero(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_push(st, val) SKM_sk_push(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_unshift(st, val) SKM_sk_unshift(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_find(st, val) SKM_sk_find(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_delete(st, i) SKM_sk_delete(KRB5_ENCDATA, (st), (i)) -# define sk_KRB5_ENCDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCDATA, (st), (ptr)) -# define sk_KRB5_ENCDATA_insert(st, val, i) SKM_sk_insert(KRB5_ENCDATA, (st), (val), (i)) -# define sk_KRB5_ENCDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCDATA, (st), (cmp)) -# define sk_KRB5_ENCDATA_dup(st) SKM_sk_dup(KRB5_ENCDATA, st) -# define sk_KRB5_ENCDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCDATA, (st), (free_func)) -# define sk_KRB5_ENCDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCDATA, (st), (copy_func), (free_func)) -# define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCKEY_new(cmp) SKM_sk_new(KRB5_ENCKEY, (cmp)) -# define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY) -# define sk_KRB5_ENCKEY_free(st) SKM_sk_free(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_num(st) SKM_sk_num(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_value(st, i) SKM_sk_value(KRB5_ENCKEY, (st), (i)) -# define sk_KRB5_ENCKEY_set(st, i, val) SKM_sk_set(KRB5_ENCKEY, (st), (i), (val)) -# define sk_KRB5_ENCKEY_zero(st) SKM_sk_zero(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_push(st, val) SKM_sk_push(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_unshift(st, val) SKM_sk_unshift(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_find(st, val) SKM_sk_find(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_delete(st, i) SKM_sk_delete(KRB5_ENCKEY, (st), (i)) -# define sk_KRB5_ENCKEY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCKEY, (st), (ptr)) -# define sk_KRB5_ENCKEY_insert(st, val, i) SKM_sk_insert(KRB5_ENCKEY, (st), (val), (i)) -# define sk_KRB5_ENCKEY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCKEY, (st), (cmp)) -# define sk_KRB5_ENCKEY_dup(st) SKM_sk_dup(KRB5_ENCKEY, st) -# define sk_KRB5_ENCKEY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCKEY, (st), (free_func)) -# define sk_KRB5_ENCKEY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCKEY, (st), (copy_func), (free_func)) -# define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st)) -# define sk_KRB5_PRINCNAME_new(cmp) SKM_sk_new(KRB5_PRINCNAME, (cmp)) -# define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME) -# define sk_KRB5_PRINCNAME_free(st) SKM_sk_free(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_num(st) SKM_sk_num(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_value(st, i) SKM_sk_value(KRB5_PRINCNAME, (st), (i)) -# define sk_KRB5_PRINCNAME_set(st, i, val) SKM_sk_set(KRB5_PRINCNAME, (st), (i), (val)) -# define sk_KRB5_PRINCNAME_zero(st) SKM_sk_zero(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_push(st, val) SKM_sk_push(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_unshift(st, val) SKM_sk_unshift(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_find(st, val) SKM_sk_find(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_find_ex(st, val) SKM_sk_find_ex(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_delete(st, i) SKM_sk_delete(KRB5_PRINCNAME, (st), (i)) -# define sk_KRB5_PRINCNAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_PRINCNAME, (st), (ptr)) -# define sk_KRB5_PRINCNAME_insert(st, val, i) SKM_sk_insert(KRB5_PRINCNAME, (st), (val), (i)) -# define sk_KRB5_PRINCNAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_PRINCNAME, (st), (cmp)) -# define sk_KRB5_PRINCNAME_dup(st) SKM_sk_dup(KRB5_PRINCNAME, st) -# define sk_KRB5_PRINCNAME_pop_free(st, free_func) SKM_sk_pop_free(KRB5_PRINCNAME, (st), (free_func)) -# define sk_KRB5_PRINCNAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_PRINCNAME, (st), (copy_func), (free_func)) -# define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st)) -# define sk_KRB5_TKTBODY_new(cmp) SKM_sk_new(KRB5_TKTBODY, (cmp)) -# define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY) -# define sk_KRB5_TKTBODY_free(st) SKM_sk_free(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_num(st) SKM_sk_num(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_value(st, i) SKM_sk_value(KRB5_TKTBODY, (st), (i)) -# define sk_KRB5_TKTBODY_set(st, i, val) SKM_sk_set(KRB5_TKTBODY, (st), (i), (val)) -# define sk_KRB5_TKTBODY_zero(st) SKM_sk_zero(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_push(st, val) SKM_sk_push(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_unshift(st, val) SKM_sk_unshift(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_find(st, val) SKM_sk_find(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_delete(st, i) SKM_sk_delete(KRB5_TKTBODY, (st), (i)) -# define sk_KRB5_TKTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_TKTBODY, (st), (ptr)) -# define sk_KRB5_TKTBODY_insert(st, val, i) SKM_sk_insert(KRB5_TKTBODY, (st), (val), (i)) -# define sk_KRB5_TKTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_TKTBODY, (st), (cmp)) -# define sk_KRB5_TKTBODY_dup(st) SKM_sk_dup(KRB5_TKTBODY, st) -# define sk_KRB5_TKTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_TKTBODY, (st), (free_func)) -# define sk_KRB5_TKTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_TKTBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st)) -# define sk_MEM_OBJECT_DATA_new(cmp) SKM_sk_new(MEM_OBJECT_DATA, (cmp)) -# define sk_MEM_OBJECT_DATA_new_null() SKM_sk_new_null(MEM_OBJECT_DATA) -# define sk_MEM_OBJECT_DATA_free(st) SKM_sk_free(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_num(st) SKM_sk_num(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_value(st, i) SKM_sk_value(MEM_OBJECT_DATA, (st), (i)) -# define sk_MEM_OBJECT_DATA_set(st, i, val) SKM_sk_set(MEM_OBJECT_DATA, (st), (i), (val)) -# define sk_MEM_OBJECT_DATA_zero(st) SKM_sk_zero(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_push(st, val) SKM_sk_push(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_unshift(st, val) SKM_sk_unshift(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_find(st, val) SKM_sk_find(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_find_ex(st, val) SKM_sk_find_ex(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_delete(st, i) SKM_sk_delete(MEM_OBJECT_DATA, (st), (i)) -# define sk_MEM_OBJECT_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(MEM_OBJECT_DATA, (st), (ptr)) -# define sk_MEM_OBJECT_DATA_insert(st, val, i) SKM_sk_insert(MEM_OBJECT_DATA, (st), (val), (i)) -# define sk_MEM_OBJECT_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MEM_OBJECT_DATA, (st), (cmp)) -# define sk_MEM_OBJECT_DATA_dup(st) SKM_sk_dup(MEM_OBJECT_DATA, st) -# define sk_MEM_OBJECT_DATA_pop_free(st, free_func) SKM_sk_pop_free(MEM_OBJECT_DATA, (st), (free_func)) -# define sk_MEM_OBJECT_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MEM_OBJECT_DATA, (st), (copy_func), (free_func)) -# define sk_MEM_OBJECT_DATA_shift(st) SKM_sk_shift(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_pop(st) SKM_sk_pop(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_sort(st) SKM_sk_sort(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_is_sorted(st) SKM_sk_is_sorted(MEM_OBJECT_DATA, (st)) -# define sk_MIME_HEADER_new(cmp) SKM_sk_new(MIME_HEADER, (cmp)) -# define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER) -# define sk_MIME_HEADER_free(st) SKM_sk_free(MIME_HEADER, (st)) -# define sk_MIME_HEADER_num(st) SKM_sk_num(MIME_HEADER, (st)) -# define sk_MIME_HEADER_value(st, i) SKM_sk_value(MIME_HEADER, (st), (i)) -# define sk_MIME_HEADER_set(st, i, val) SKM_sk_set(MIME_HEADER, (st), (i), (val)) -# define sk_MIME_HEADER_zero(st) SKM_sk_zero(MIME_HEADER, (st)) -# define sk_MIME_HEADER_push(st, val) SKM_sk_push(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_unshift(st, val) SKM_sk_unshift(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_find(st, val) SKM_sk_find(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_find_ex(st, val) SKM_sk_find_ex(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_delete(st, i) SKM_sk_delete(MIME_HEADER, (st), (i)) -# define sk_MIME_HEADER_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_HEADER, (st), (ptr)) -# define sk_MIME_HEADER_insert(st, val, i) SKM_sk_insert(MIME_HEADER, (st), (val), (i)) -# define sk_MIME_HEADER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_HEADER, (st), (cmp)) -# define sk_MIME_HEADER_dup(st) SKM_sk_dup(MIME_HEADER, st) -# define sk_MIME_HEADER_pop_free(st, free_func) SKM_sk_pop_free(MIME_HEADER, (st), (free_func)) -# define sk_MIME_HEADER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_HEADER, (st), (copy_func), (free_func)) -# define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) -# define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) -# define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) -# define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st)) -# define sk_MIME_PARAM_new(cmp) SKM_sk_new(MIME_PARAM, (cmp)) -# define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM) -# define sk_MIME_PARAM_free(st) SKM_sk_free(MIME_PARAM, (st)) -# define sk_MIME_PARAM_num(st) SKM_sk_num(MIME_PARAM, (st)) -# define sk_MIME_PARAM_value(st, i) SKM_sk_value(MIME_PARAM, (st), (i)) -# define sk_MIME_PARAM_set(st, i, val) SKM_sk_set(MIME_PARAM, (st), (i), (val)) -# define sk_MIME_PARAM_zero(st) SKM_sk_zero(MIME_PARAM, (st)) -# define sk_MIME_PARAM_push(st, val) SKM_sk_push(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_unshift(st, val) SKM_sk_unshift(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_find(st, val) SKM_sk_find(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_find_ex(st, val) SKM_sk_find_ex(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_delete(st, i) SKM_sk_delete(MIME_PARAM, (st), (i)) -# define sk_MIME_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_PARAM, (st), (ptr)) -# define sk_MIME_PARAM_insert(st, val, i) SKM_sk_insert(MIME_PARAM, (st), (val), (i)) -# define sk_MIME_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_PARAM, (st), (cmp)) -# define sk_MIME_PARAM_dup(st) SKM_sk_dup(MIME_PARAM, st) -# define sk_MIME_PARAM_pop_free(st, free_func) SKM_sk_pop_free(MIME_PARAM, (st), (free_func)) -# define sk_MIME_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_PARAM, (st), (copy_func), (free_func)) -# define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) -# define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) -# define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) -# define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st)) -# define sk_NAME_FUNCS_new(cmp) SKM_sk_new(NAME_FUNCS, (cmp)) -# define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS) -# define sk_NAME_FUNCS_free(st) SKM_sk_free(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_num(st) SKM_sk_num(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_value(st, i) SKM_sk_value(NAME_FUNCS, (st), (i)) -# define sk_NAME_FUNCS_set(st, i, val) SKM_sk_set(NAME_FUNCS, (st), (i), (val)) -# define sk_NAME_FUNCS_zero(st) SKM_sk_zero(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_push(st, val) SKM_sk_push(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_unshift(st, val) SKM_sk_unshift(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_find(st, val) SKM_sk_find(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_find_ex(st, val) SKM_sk_find_ex(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_delete(st, i) SKM_sk_delete(NAME_FUNCS, (st), (i)) -# define sk_NAME_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(NAME_FUNCS, (st), (ptr)) -# define sk_NAME_FUNCS_insert(st, val, i) SKM_sk_insert(NAME_FUNCS, (st), (val), (i)) -# define sk_NAME_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(NAME_FUNCS, (st), (cmp)) -# define sk_NAME_FUNCS_dup(st) SKM_sk_dup(NAME_FUNCS, st) -# define sk_NAME_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(NAME_FUNCS, (st), (free_func)) -# define sk_NAME_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(NAME_FUNCS, (st), (copy_func), (free_func)) -# define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st)) -# define sk_OCSP_CERTID_new(cmp) SKM_sk_new(OCSP_CERTID, (cmp)) -# define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID) -# define sk_OCSP_CERTID_free(st) SKM_sk_free(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_num(st) SKM_sk_num(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_value(st, i) SKM_sk_value(OCSP_CERTID, (st), (i)) -# define sk_OCSP_CERTID_set(st, i, val) SKM_sk_set(OCSP_CERTID, (st), (i), (val)) -# define sk_OCSP_CERTID_zero(st) SKM_sk_zero(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_push(st, val) SKM_sk_push(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_unshift(st, val) SKM_sk_unshift(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_find(st, val) SKM_sk_find(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_find_ex(st, val) SKM_sk_find_ex(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_delete(st, i) SKM_sk_delete(OCSP_CERTID, (st), (i)) -# define sk_OCSP_CERTID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_CERTID, (st), (ptr)) -# define sk_OCSP_CERTID_insert(st, val, i) SKM_sk_insert(OCSP_CERTID, (st), (val), (i)) -# define sk_OCSP_CERTID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_CERTID, (st), (cmp)) -# define sk_OCSP_CERTID_dup(st) SKM_sk_dup(OCSP_CERTID, st) -# define sk_OCSP_CERTID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_CERTID, (st), (free_func)) -# define sk_OCSP_CERTID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_CERTID, (st), (copy_func), (free_func)) -# define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st)) -# define sk_OCSP_ONEREQ_new(cmp) SKM_sk_new(OCSP_ONEREQ, (cmp)) -# define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ) -# define sk_OCSP_ONEREQ_free(st) SKM_sk_free(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_num(st) SKM_sk_num(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_value(st, i) SKM_sk_value(OCSP_ONEREQ, (st), (i)) -# define sk_OCSP_ONEREQ_set(st, i, val) SKM_sk_set(OCSP_ONEREQ, (st), (i), (val)) -# define sk_OCSP_ONEREQ_zero(st) SKM_sk_zero(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_push(st, val) SKM_sk_push(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_unshift(st, val) SKM_sk_unshift(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_find(st, val) SKM_sk_find(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_find_ex(st, val) SKM_sk_find_ex(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_delete(st, i) SKM_sk_delete(OCSP_ONEREQ, (st), (i)) -# define sk_OCSP_ONEREQ_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_ONEREQ, (st), (ptr)) -# define sk_OCSP_ONEREQ_insert(st, val, i) SKM_sk_insert(OCSP_ONEREQ, (st), (val), (i)) -# define sk_OCSP_ONEREQ_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_ONEREQ, (st), (cmp)) -# define sk_OCSP_ONEREQ_dup(st) SKM_sk_dup(OCSP_ONEREQ, st) -# define sk_OCSP_ONEREQ_pop_free(st, free_func) SKM_sk_pop_free(OCSP_ONEREQ, (st), (free_func)) -# define sk_OCSP_ONEREQ_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_ONEREQ, (st), (copy_func), (free_func)) -# define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st)) -# define sk_OCSP_RESPID_new(cmp) SKM_sk_new(OCSP_RESPID, (cmp)) -# define sk_OCSP_RESPID_new_null() SKM_sk_new_null(OCSP_RESPID) -# define sk_OCSP_RESPID_free(st) SKM_sk_free(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_num(st) SKM_sk_num(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_value(st, i) SKM_sk_value(OCSP_RESPID, (st), (i)) -# define sk_OCSP_RESPID_set(st, i, val) SKM_sk_set(OCSP_RESPID, (st), (i), (val)) -# define sk_OCSP_RESPID_zero(st) SKM_sk_zero(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_push(st, val) SKM_sk_push(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_unshift(st, val) SKM_sk_unshift(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_find(st, val) SKM_sk_find(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_find_ex(st, val) SKM_sk_find_ex(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_delete(st, i) SKM_sk_delete(OCSP_RESPID, (st), (i)) -# define sk_OCSP_RESPID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_RESPID, (st), (ptr)) -# define sk_OCSP_RESPID_insert(st, val, i) SKM_sk_insert(OCSP_RESPID, (st), (val), (i)) -# define sk_OCSP_RESPID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_RESPID, (st), (cmp)) -# define sk_OCSP_RESPID_dup(st) SKM_sk_dup(OCSP_RESPID, st) -# define sk_OCSP_RESPID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_RESPID, (st), (free_func)) -# define sk_OCSP_RESPID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_RESPID, (st), (copy_func), (free_func)) -# define sk_OCSP_RESPID_shift(st) SKM_sk_shift(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_pop(st) SKM_sk_pop(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_sort(st) SKM_sk_sort(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_is_sorted(st) SKM_sk_is_sorted(OCSP_RESPID, (st)) -# define sk_OCSP_SINGLERESP_new(cmp) SKM_sk_new(OCSP_SINGLERESP, (cmp)) -# define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP) -# define sk_OCSP_SINGLERESP_free(st) SKM_sk_free(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_num(st) SKM_sk_num(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_value(st, i) SKM_sk_value(OCSP_SINGLERESP, (st), (i)) -# define sk_OCSP_SINGLERESP_set(st, i, val) SKM_sk_set(OCSP_SINGLERESP, (st), (i), (val)) -# define sk_OCSP_SINGLERESP_zero(st) SKM_sk_zero(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_push(st, val) SKM_sk_push(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_unshift(st, val) SKM_sk_unshift(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_find(st, val) SKM_sk_find(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_find_ex(st, val) SKM_sk_find_ex(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_delete(st, i) SKM_sk_delete(OCSP_SINGLERESP, (st), (i)) -# define sk_OCSP_SINGLERESP_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_SINGLERESP, (st), (ptr)) -# define sk_OCSP_SINGLERESP_insert(st, val, i) SKM_sk_insert(OCSP_SINGLERESP, (st), (val), (i)) -# define sk_OCSP_SINGLERESP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_SINGLERESP, (st), (cmp)) -# define sk_OCSP_SINGLERESP_dup(st) SKM_sk_dup(OCSP_SINGLERESP, st) -# define sk_OCSP_SINGLERESP_pop_free(st, free_func) SKM_sk_pop_free(OCSP_SINGLERESP, (st), (free_func)) -# define sk_OCSP_SINGLERESP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_SINGLERESP, (st), (copy_func), (free_func)) -# define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st)) -# define sk_PKCS12_SAFEBAG_new(cmp) SKM_sk_new(PKCS12_SAFEBAG, (cmp)) -# define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG) -# define sk_PKCS12_SAFEBAG_free(st) SKM_sk_free(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_num(st) SKM_sk_num(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_value(st, i) SKM_sk_value(PKCS12_SAFEBAG, (st), (i)) -# define sk_PKCS12_SAFEBAG_set(st, i, val) SKM_sk_set(PKCS12_SAFEBAG, (st), (i), (val)) -# define sk_PKCS12_SAFEBAG_zero(st) SKM_sk_zero(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_push(st, val) SKM_sk_push(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_unshift(st, val) SKM_sk_unshift(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_find(st, val) SKM_sk_find(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_find_ex(st, val) SKM_sk_find_ex(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_delete(st, i) SKM_sk_delete(PKCS12_SAFEBAG, (st), (i)) -# define sk_PKCS12_SAFEBAG_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS12_SAFEBAG, (st), (ptr)) -# define sk_PKCS12_SAFEBAG_insert(st, val, i) SKM_sk_insert(PKCS12_SAFEBAG, (st), (val), (i)) -# define sk_PKCS12_SAFEBAG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (st), (cmp)) -# define sk_PKCS12_SAFEBAG_dup(st) SKM_sk_dup(PKCS12_SAFEBAG, st) -# define sk_PKCS12_SAFEBAG_pop_free(st, free_func) SKM_sk_pop_free(PKCS12_SAFEBAG, (st), (free_func)) -# define sk_PKCS12_SAFEBAG_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS12_SAFEBAG, (st), (copy_func), (free_func)) -# define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st)) -# define sk_PKCS7_new(cmp) SKM_sk_new(PKCS7, (cmp)) -# define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7) -# define sk_PKCS7_free(st) SKM_sk_free(PKCS7, (st)) -# define sk_PKCS7_num(st) SKM_sk_num(PKCS7, (st)) -# define sk_PKCS7_value(st, i) SKM_sk_value(PKCS7, (st), (i)) -# define sk_PKCS7_set(st, i, val) SKM_sk_set(PKCS7, (st), (i), (val)) -# define sk_PKCS7_zero(st) SKM_sk_zero(PKCS7, (st)) -# define sk_PKCS7_push(st, val) SKM_sk_push(PKCS7, (st), (val)) -# define sk_PKCS7_unshift(st, val) SKM_sk_unshift(PKCS7, (st), (val)) -# define sk_PKCS7_find(st, val) SKM_sk_find(PKCS7, (st), (val)) -# define sk_PKCS7_find_ex(st, val) SKM_sk_find_ex(PKCS7, (st), (val)) -# define sk_PKCS7_delete(st, i) SKM_sk_delete(PKCS7, (st), (i)) -# define sk_PKCS7_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7, (st), (ptr)) -# define sk_PKCS7_insert(st, val, i) SKM_sk_insert(PKCS7, (st), (val), (i)) -# define sk_PKCS7_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7, (st), (cmp)) -# define sk_PKCS7_dup(st) SKM_sk_dup(PKCS7, st) -# define sk_PKCS7_pop_free(st, free_func) SKM_sk_pop_free(PKCS7, (st), (free_func)) -# define sk_PKCS7_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7, (st), (copy_func), (free_func)) -# define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) -# define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) -# define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) -# define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st)) -# define sk_PKCS7_RECIP_INFO_new(cmp) SKM_sk_new(PKCS7_RECIP_INFO, (cmp)) -# define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO) -# define sk_PKCS7_RECIP_INFO_free(st) SKM_sk_free(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_num(st) SKM_sk_num(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_value(st, i) SKM_sk_value(PKCS7_RECIP_INFO, (st), (i)) -# define sk_PKCS7_RECIP_INFO_set(st, i, val) SKM_sk_set(PKCS7_RECIP_INFO, (st), (i), (val)) -# define sk_PKCS7_RECIP_INFO_zero(st) SKM_sk_zero(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_push(st, val) SKM_sk_push(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_find(st, val) SKM_sk_find(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_delete(st, i) SKM_sk_delete(PKCS7_RECIP_INFO, (st), (i)) -# define sk_PKCS7_RECIP_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_RECIP_INFO, (st), (ptr)) -# define sk_PKCS7_RECIP_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_RECIP_INFO, (st), (val), (i)) -# define sk_PKCS7_RECIP_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (st), (cmp)) -# define sk_PKCS7_RECIP_INFO_dup(st) SKM_sk_dup(PKCS7_RECIP_INFO, st) -# define sk_PKCS7_RECIP_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_RECIP_INFO, (st), (free_func)) -# define sk_PKCS7_RECIP_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_RECIP_INFO, (st), (copy_func), (free_func)) -# define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_new(cmp) SKM_sk_new(PKCS7_SIGNER_INFO, (cmp)) -# define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO) -# define sk_PKCS7_SIGNER_INFO_free(st) SKM_sk_free(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_num(st) SKM_sk_num(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_value(st, i) SKM_sk_value(PKCS7_SIGNER_INFO, (st), (i)) -# define sk_PKCS7_SIGNER_INFO_set(st, i, val) SKM_sk_set(PKCS7_SIGNER_INFO, (st), (i), (val)) -# define sk_PKCS7_SIGNER_INFO_zero(st) SKM_sk_zero(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_push(st, val) SKM_sk_push(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_find(st, val) SKM_sk_find(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_delete(st, i) SKM_sk_delete(PKCS7_SIGNER_INFO, (st), (i)) -# define sk_PKCS7_SIGNER_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_SIGNER_INFO, (st), (ptr)) -# define sk_PKCS7_SIGNER_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_SIGNER_INFO, (st), (val), (i)) -# define sk_PKCS7_SIGNER_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (st), (cmp)) -# define sk_PKCS7_SIGNER_INFO_dup(st) SKM_sk_dup(PKCS7_SIGNER_INFO, st) -# define sk_PKCS7_SIGNER_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (st), (free_func)) -# define sk_PKCS7_SIGNER_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_SIGNER_INFO, (st), (copy_func), (free_func)) -# define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st)) -# define sk_POLICYINFO_new(cmp) SKM_sk_new(POLICYINFO, (cmp)) -# define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO) -# define sk_POLICYINFO_free(st) SKM_sk_free(POLICYINFO, (st)) -# define sk_POLICYINFO_num(st) SKM_sk_num(POLICYINFO, (st)) -# define sk_POLICYINFO_value(st, i) SKM_sk_value(POLICYINFO, (st), (i)) -# define sk_POLICYINFO_set(st, i, val) SKM_sk_set(POLICYINFO, (st), (i), (val)) -# define sk_POLICYINFO_zero(st) SKM_sk_zero(POLICYINFO, (st)) -# define sk_POLICYINFO_push(st, val) SKM_sk_push(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_unshift(st, val) SKM_sk_unshift(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_find(st, val) SKM_sk_find(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_find_ex(st, val) SKM_sk_find_ex(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_delete(st, i) SKM_sk_delete(POLICYINFO, (st), (i)) -# define sk_POLICYINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYINFO, (st), (ptr)) -# define sk_POLICYINFO_insert(st, val, i) SKM_sk_insert(POLICYINFO, (st), (val), (i)) -# define sk_POLICYINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYINFO, (st), (cmp)) -# define sk_POLICYINFO_dup(st) SKM_sk_dup(POLICYINFO, st) -# define sk_POLICYINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYINFO, (st), (free_func)) -# define sk_POLICYINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYINFO, (st), (copy_func), (free_func)) -# define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) -# define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) -# define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) -# define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st)) -# define sk_POLICYQUALINFO_new(cmp) SKM_sk_new(POLICYQUALINFO, (cmp)) -# define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO) -# define sk_POLICYQUALINFO_free(st) SKM_sk_free(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_num(st) SKM_sk_num(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_value(st, i) SKM_sk_value(POLICYQUALINFO, (st), (i)) -# define sk_POLICYQUALINFO_set(st, i, val) SKM_sk_set(POLICYQUALINFO, (st), (i), (val)) -# define sk_POLICYQUALINFO_zero(st) SKM_sk_zero(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_push(st, val) SKM_sk_push(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_unshift(st, val) SKM_sk_unshift(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_find(st, val) SKM_sk_find(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_find_ex(st, val) SKM_sk_find_ex(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_delete(st, i) SKM_sk_delete(POLICYQUALINFO, (st), (i)) -# define sk_POLICYQUALINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYQUALINFO, (st), (ptr)) -# define sk_POLICYQUALINFO_insert(st, val, i) SKM_sk_insert(POLICYQUALINFO, (st), (val), (i)) -# define sk_POLICYQUALINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYQUALINFO, (st), (cmp)) -# define sk_POLICYQUALINFO_dup(st) SKM_sk_dup(POLICYQUALINFO, st) -# define sk_POLICYQUALINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYQUALINFO, (st), (free_func)) -# define sk_POLICYQUALINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYQUALINFO, (st), (copy_func), (free_func)) -# define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st)) -# define sk_POLICY_MAPPING_new(cmp) SKM_sk_new(POLICY_MAPPING, (cmp)) -# define sk_POLICY_MAPPING_new_null() SKM_sk_new_null(POLICY_MAPPING) -# define sk_POLICY_MAPPING_free(st) SKM_sk_free(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_num(st) SKM_sk_num(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_value(st, i) SKM_sk_value(POLICY_MAPPING, (st), (i)) -# define sk_POLICY_MAPPING_set(st, i, val) SKM_sk_set(POLICY_MAPPING, (st), (i), (val)) -# define sk_POLICY_MAPPING_zero(st) SKM_sk_zero(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_push(st, val) SKM_sk_push(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_unshift(st, val) SKM_sk_unshift(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_find(st, val) SKM_sk_find(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_find_ex(st, val) SKM_sk_find_ex(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_delete(st, i) SKM_sk_delete(POLICY_MAPPING, (st), (i)) -# define sk_POLICY_MAPPING_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICY_MAPPING, (st), (ptr)) -# define sk_POLICY_MAPPING_insert(st, val, i) SKM_sk_insert(POLICY_MAPPING, (st), (val), (i)) -# define sk_POLICY_MAPPING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICY_MAPPING, (st), (cmp)) -# define sk_POLICY_MAPPING_dup(st) SKM_sk_dup(POLICY_MAPPING, st) -# define sk_POLICY_MAPPING_pop_free(st, free_func) SKM_sk_pop_free(POLICY_MAPPING, (st), (free_func)) -# define sk_POLICY_MAPPING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICY_MAPPING, (st), (copy_func), (free_func)) -# define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st)) -# define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) -# define sk_SCT_new_null() SKM_sk_new_null(SCT) -# define sk_SCT_free(st) SKM_sk_free(SCT, (st)) -# define sk_SCT_num(st) SKM_sk_num(SCT, (st)) -# define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) -# define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) -# define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) -# define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) -# define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) -# define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) -# define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) -# define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) -# define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) -# define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) -# define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) -# define sk_SCT_dup(st) SKM_sk_dup(SCT, st) -# define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) -# define sk_SCT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SCT, (st), (copy_func), (free_func)) -# define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) -# define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) -# define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) -# define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) -# define sk_SRP_gN_new(cmp) SKM_sk_new(SRP_gN, (cmp)) -# define sk_SRP_gN_new_null() SKM_sk_new_null(SRP_gN) -# define sk_SRP_gN_free(st) SKM_sk_free(SRP_gN, (st)) -# define sk_SRP_gN_num(st) SKM_sk_num(SRP_gN, (st)) -# define sk_SRP_gN_value(st, i) SKM_sk_value(SRP_gN, (st), (i)) -# define sk_SRP_gN_set(st, i, val) SKM_sk_set(SRP_gN, (st), (i), (val)) -# define sk_SRP_gN_zero(st) SKM_sk_zero(SRP_gN, (st)) -# define sk_SRP_gN_push(st, val) SKM_sk_push(SRP_gN, (st), (val)) -# define sk_SRP_gN_unshift(st, val) SKM_sk_unshift(SRP_gN, (st), (val)) -# define sk_SRP_gN_find(st, val) SKM_sk_find(SRP_gN, (st), (val)) -# define sk_SRP_gN_find_ex(st, val) SKM_sk_find_ex(SRP_gN, (st), (val)) -# define sk_SRP_gN_delete(st, i) SKM_sk_delete(SRP_gN, (st), (i)) -# define sk_SRP_gN_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN, (st), (ptr)) -# define sk_SRP_gN_insert(st, val, i) SKM_sk_insert(SRP_gN, (st), (val), (i)) -# define sk_SRP_gN_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN, (st), (cmp)) -# define sk_SRP_gN_dup(st) SKM_sk_dup(SRP_gN, st) -# define sk_SRP_gN_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN, (st), (free_func)) -# define sk_SRP_gN_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN, (st), (copy_func), (free_func)) -# define sk_SRP_gN_shift(st) SKM_sk_shift(SRP_gN, (st)) -# define sk_SRP_gN_pop(st) SKM_sk_pop(SRP_gN, (st)) -# define sk_SRP_gN_sort(st) SKM_sk_sort(SRP_gN, (st)) -# define sk_SRP_gN_is_sorted(st) SKM_sk_is_sorted(SRP_gN, (st)) -# define sk_SRP_gN_cache_new(cmp) SKM_sk_new(SRP_gN_cache, (cmp)) -# define sk_SRP_gN_cache_new_null() SKM_sk_new_null(SRP_gN_cache) -# define sk_SRP_gN_cache_free(st) SKM_sk_free(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_num(st) SKM_sk_num(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_value(st, i) SKM_sk_value(SRP_gN_cache, (st), (i)) -# define sk_SRP_gN_cache_set(st, i, val) SKM_sk_set(SRP_gN_cache, (st), (i), (val)) -# define sk_SRP_gN_cache_zero(st) SKM_sk_zero(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_push(st, val) SKM_sk_push(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_unshift(st, val) SKM_sk_unshift(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_find(st, val) SKM_sk_find(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_find_ex(st, val) SKM_sk_find_ex(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_delete(st, i) SKM_sk_delete(SRP_gN_cache, (st), (i)) -# define sk_SRP_gN_cache_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN_cache, (st), (ptr)) -# define sk_SRP_gN_cache_insert(st, val, i) SKM_sk_insert(SRP_gN_cache, (st), (val), (i)) -# define sk_SRP_gN_cache_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN_cache, (st), (cmp)) -# define sk_SRP_gN_cache_dup(st) SKM_sk_dup(SRP_gN_cache, st) -# define sk_SRP_gN_cache_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN_cache, (st), (free_func)) -# define sk_SRP_gN_cache_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN_cache, (st), (copy_func), (free_func)) -# define sk_SRP_gN_cache_shift(st) SKM_sk_shift(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_pop(st) SKM_sk_pop(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_sort(st) SKM_sk_sort(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_is_sorted(st) SKM_sk_is_sorted(SRP_gN_cache, (st)) -# define sk_SRP_user_pwd_new(cmp) SKM_sk_new(SRP_user_pwd, (cmp)) -# define sk_SRP_user_pwd_new_null() SKM_sk_new_null(SRP_user_pwd) -# define sk_SRP_user_pwd_free(st) SKM_sk_free(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_num(st) SKM_sk_num(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_value(st, i) SKM_sk_value(SRP_user_pwd, (st), (i)) -# define sk_SRP_user_pwd_set(st, i, val) SKM_sk_set(SRP_user_pwd, (st), (i), (val)) -# define sk_SRP_user_pwd_zero(st) SKM_sk_zero(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_push(st, val) SKM_sk_push(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_unshift(st, val) SKM_sk_unshift(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_find(st, val) SKM_sk_find(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_find_ex(st, val) SKM_sk_find_ex(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_delete(st, i) SKM_sk_delete(SRP_user_pwd, (st), (i)) -# define sk_SRP_user_pwd_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_user_pwd, (st), (ptr)) -# define sk_SRP_user_pwd_insert(st, val, i) SKM_sk_insert(SRP_user_pwd, (st), (val), (i)) -# define sk_SRP_user_pwd_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_user_pwd, (st), (cmp)) -# define sk_SRP_user_pwd_dup(st) SKM_sk_dup(SRP_user_pwd, st) -# define sk_SRP_user_pwd_pop_free(st, free_func) SKM_sk_pop_free(SRP_user_pwd, (st), (free_func)) -# define sk_SRP_user_pwd_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_user_pwd, (st), (copy_func), (free_func)) -# define sk_SRP_user_pwd_shift(st) SKM_sk_shift(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_pop(st) SKM_sk_pop(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_sort(st) SKM_sk_sort(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_is_sorted(st) SKM_sk_is_sorted(SRP_user_pwd, (st)) -# define sk_SRTP_PROTECTION_PROFILE_new(cmp) SKM_sk_new(SRTP_PROTECTION_PROFILE, (cmp)) -# define sk_SRTP_PROTECTION_PROFILE_new_null() SKM_sk_new_null(SRTP_PROTECTION_PROFILE) -# define sk_SRTP_PROTECTION_PROFILE_free(st) SKM_sk_free(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_num(st) SKM_sk_num(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_value(st, i) SKM_sk_value(SRTP_PROTECTION_PROFILE, (st), (i)) -# define sk_SRTP_PROTECTION_PROFILE_set(st, i, val) SKM_sk_set(SRTP_PROTECTION_PROFILE, (st), (i), (val)) -# define sk_SRTP_PROTECTION_PROFILE_zero(st) SKM_sk_zero(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_push(st, val) SKM_sk_push(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_unshift(st, val) SKM_sk_unshift(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_find(st, val) SKM_sk_find(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_find_ex(st, val) SKM_sk_find_ex(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_delete(st, i) SKM_sk_delete(SRTP_PROTECTION_PROFILE, (st), (i)) -# define sk_SRTP_PROTECTION_PROFILE_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRTP_PROTECTION_PROFILE, (st), (ptr)) -# define sk_SRTP_PROTECTION_PROFILE_insert(st, val, i) SKM_sk_insert(SRTP_PROTECTION_PROFILE, (st), (val), (i)) -# define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRTP_PROTECTION_PROFILE, (st), (cmp)) -# define sk_SRTP_PROTECTION_PROFILE_dup(st) SKM_sk_dup(SRTP_PROTECTION_PROFILE, st) -# define sk_SRTP_PROTECTION_PROFILE_pop_free(st, free_func) SKM_sk_pop_free(SRTP_PROTECTION_PROFILE, (st), (free_func)) -# define sk_SRTP_PROTECTION_PROFILE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRTP_PROTECTION_PROFILE, (st), (copy_func), (free_func)) -# define sk_SRTP_PROTECTION_PROFILE_shift(st) SKM_sk_shift(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_pop(st) SKM_sk_pop(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_sort(st) SKM_sk_sort(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_is_sorted(st) SKM_sk_is_sorted(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SSL_CIPHER_new(cmp) SKM_sk_new(SSL_CIPHER, (cmp)) -# define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER) -# define sk_SSL_CIPHER_free(st) SKM_sk_free(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_num(st) SKM_sk_num(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_value(st, i) SKM_sk_value(SSL_CIPHER, (st), (i)) -# define sk_SSL_CIPHER_set(st, i, val) SKM_sk_set(SSL_CIPHER, (st), (i), (val)) -# define sk_SSL_CIPHER_zero(st) SKM_sk_zero(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_push(st, val) SKM_sk_push(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_unshift(st, val) SKM_sk_unshift(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_find(st, val) SKM_sk_find(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_find_ex(st, val) SKM_sk_find_ex(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_delete(st, i) SKM_sk_delete(SSL_CIPHER, (st), (i)) -# define sk_SSL_CIPHER_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_CIPHER, (st), (ptr)) -# define sk_SSL_CIPHER_insert(st, val, i) SKM_sk_insert(SSL_CIPHER, (st), (val), (i)) -# define sk_SSL_CIPHER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_CIPHER, (st), (cmp)) -# define sk_SSL_CIPHER_dup(st) SKM_sk_dup(SSL_CIPHER, st) -# define sk_SSL_CIPHER_pop_free(st, free_func) SKM_sk_pop_free(SSL_CIPHER, (st), (free_func)) -# define sk_SSL_CIPHER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_CIPHER, (st), (copy_func), (free_func)) -# define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st)) -# define sk_SSL_COMP_new(cmp) SKM_sk_new(SSL_COMP, (cmp)) -# define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP) -# define sk_SSL_COMP_free(st) SKM_sk_free(SSL_COMP, (st)) -# define sk_SSL_COMP_num(st) SKM_sk_num(SSL_COMP, (st)) -# define sk_SSL_COMP_value(st, i) SKM_sk_value(SSL_COMP, (st), (i)) -# define sk_SSL_COMP_set(st, i, val) SKM_sk_set(SSL_COMP, (st), (i), (val)) -# define sk_SSL_COMP_zero(st) SKM_sk_zero(SSL_COMP, (st)) -# define sk_SSL_COMP_push(st, val) SKM_sk_push(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_unshift(st, val) SKM_sk_unshift(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_find(st, val) SKM_sk_find(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_find_ex(st, val) SKM_sk_find_ex(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_delete(st, i) SKM_sk_delete(SSL_COMP, (st), (i)) -# define sk_SSL_COMP_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_COMP, (st), (ptr)) -# define sk_SSL_COMP_insert(st, val, i) SKM_sk_insert(SSL_COMP, (st), (val), (i)) -# define sk_SSL_COMP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_COMP, (st), (cmp)) -# define sk_SSL_COMP_dup(st) SKM_sk_dup(SSL_COMP, st) -# define sk_SSL_COMP_pop_free(st, free_func) SKM_sk_pop_free(SSL_COMP, (st), (free_func)) -# define sk_SSL_COMP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_COMP, (st), (copy_func), (free_func)) -# define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) -# define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) -# define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) -# define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_new(cmp) SKM_sk_new(STACK_OF_X509_NAME_ENTRY, (cmp)) -# define sk_STACK_OF_X509_NAME_ENTRY_new_null() SKM_sk_new_null(STACK_OF_X509_NAME_ENTRY) -# define sk_STACK_OF_X509_NAME_ENTRY_free(st) SKM_sk_free(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_num(st) SKM_sk_num(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_value(st, i) SKM_sk_value(STACK_OF_X509_NAME_ENTRY, (st), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(STACK_OF_X509_NAME_ENTRY, (st), (i), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_zero(st) SKM_sk_zero(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_push(st, val) SKM_sk_push(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_find(st, val) SKM_sk_find(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(STACK_OF_X509_NAME_ENTRY, (st), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(STACK_OF_X509_NAME_ENTRY, (st), (ptr)) -# define sk_STACK_OF_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(STACK_OF_X509_NAME_ENTRY, (st), (val), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STACK_OF_X509_NAME_ENTRY, (st), (cmp)) -# define sk_STACK_OF_X509_NAME_ENTRY_dup(st) SKM_sk_dup(STACK_OF_X509_NAME_ENTRY, st) -# define sk_STACK_OF_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(STACK_OF_X509_NAME_ENTRY, (st), (free_func)) -# define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STACK_OF_X509_NAME_ENTRY, (st), (copy_func), (free_func)) -# define sk_STACK_OF_X509_NAME_ENTRY_shift(st) SKM_sk_shift(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_pop(st) SKM_sk_pop(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_sort(st) SKM_sk_sort(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STORE_ATTR_INFO_new(cmp) SKM_sk_new(STORE_ATTR_INFO, (cmp)) -# define sk_STORE_ATTR_INFO_new_null() SKM_sk_new_null(STORE_ATTR_INFO) -# define sk_STORE_ATTR_INFO_free(st) SKM_sk_free(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_num(st) SKM_sk_num(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_value(st, i) SKM_sk_value(STORE_ATTR_INFO, (st), (i)) -# define sk_STORE_ATTR_INFO_set(st, i, val) SKM_sk_set(STORE_ATTR_INFO, (st), (i), (val)) -# define sk_STORE_ATTR_INFO_zero(st) SKM_sk_zero(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_push(st, val) SKM_sk_push(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_unshift(st, val) SKM_sk_unshift(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_find(st, val) SKM_sk_find(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_find_ex(st, val) SKM_sk_find_ex(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_delete(st, i) SKM_sk_delete(STORE_ATTR_INFO, (st), (i)) -# define sk_STORE_ATTR_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_ATTR_INFO, (st), (ptr)) -# define sk_STORE_ATTR_INFO_insert(st, val, i) SKM_sk_insert(STORE_ATTR_INFO, (st), (val), (i)) -# define sk_STORE_ATTR_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_ATTR_INFO, (st), (cmp)) -# define sk_STORE_ATTR_INFO_dup(st) SKM_sk_dup(STORE_ATTR_INFO, st) -# define sk_STORE_ATTR_INFO_pop_free(st, free_func) SKM_sk_pop_free(STORE_ATTR_INFO, (st), (free_func)) -# define sk_STORE_ATTR_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_ATTR_INFO, (st), (copy_func), (free_func)) -# define sk_STORE_ATTR_INFO_shift(st) SKM_sk_shift(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_pop(st) SKM_sk_pop(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_sort(st) SKM_sk_sort(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_is_sorted(st) SKM_sk_is_sorted(STORE_ATTR_INFO, (st)) -# define sk_STORE_OBJECT_new(cmp) SKM_sk_new(STORE_OBJECT, (cmp)) -# define sk_STORE_OBJECT_new_null() SKM_sk_new_null(STORE_OBJECT) -# define sk_STORE_OBJECT_free(st) SKM_sk_free(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_num(st) SKM_sk_num(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_value(st, i) SKM_sk_value(STORE_OBJECT, (st), (i)) -# define sk_STORE_OBJECT_set(st, i, val) SKM_sk_set(STORE_OBJECT, (st), (i), (val)) -# define sk_STORE_OBJECT_zero(st) SKM_sk_zero(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_push(st, val) SKM_sk_push(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_unshift(st, val) SKM_sk_unshift(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_find(st, val) SKM_sk_find(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_find_ex(st, val) SKM_sk_find_ex(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_delete(st, i) SKM_sk_delete(STORE_OBJECT, (st), (i)) -# define sk_STORE_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_OBJECT, (st), (ptr)) -# define sk_STORE_OBJECT_insert(st, val, i) SKM_sk_insert(STORE_OBJECT, (st), (val), (i)) -# define sk_STORE_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_OBJECT, (st), (cmp)) -# define sk_STORE_OBJECT_dup(st) SKM_sk_dup(STORE_OBJECT, st) -# define sk_STORE_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(STORE_OBJECT, (st), (free_func)) -# define sk_STORE_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_OBJECT, (st), (copy_func), (free_func)) -# define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_is_sorted(st) SKM_sk_is_sorted(STORE_OBJECT, (st)) -# define sk_SXNETID_new(cmp) SKM_sk_new(SXNETID, (cmp)) -# define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID) -# define sk_SXNETID_free(st) SKM_sk_free(SXNETID, (st)) -# define sk_SXNETID_num(st) SKM_sk_num(SXNETID, (st)) -# define sk_SXNETID_value(st, i) SKM_sk_value(SXNETID, (st), (i)) -# define sk_SXNETID_set(st, i, val) SKM_sk_set(SXNETID, (st), (i), (val)) -# define sk_SXNETID_zero(st) SKM_sk_zero(SXNETID, (st)) -# define sk_SXNETID_push(st, val) SKM_sk_push(SXNETID, (st), (val)) -# define sk_SXNETID_unshift(st, val) SKM_sk_unshift(SXNETID, (st), (val)) -# define sk_SXNETID_find(st, val) SKM_sk_find(SXNETID, (st), (val)) -# define sk_SXNETID_find_ex(st, val) SKM_sk_find_ex(SXNETID, (st), (val)) -# define sk_SXNETID_delete(st, i) SKM_sk_delete(SXNETID, (st), (i)) -# define sk_SXNETID_delete_ptr(st, ptr) SKM_sk_delete_ptr(SXNETID, (st), (ptr)) -# define sk_SXNETID_insert(st, val, i) SKM_sk_insert(SXNETID, (st), (val), (i)) -# define sk_SXNETID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SXNETID, (st), (cmp)) -# define sk_SXNETID_dup(st) SKM_sk_dup(SXNETID, st) -# define sk_SXNETID_pop_free(st, free_func) SKM_sk_pop_free(SXNETID, (st), (free_func)) -# define sk_SXNETID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SXNETID, (st), (copy_func), (free_func)) -# define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) -# define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) -# define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) -# define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st)) -# define sk_UI_STRING_new(cmp) SKM_sk_new(UI_STRING, (cmp)) -# define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING) -# define sk_UI_STRING_free(st) SKM_sk_free(UI_STRING, (st)) -# define sk_UI_STRING_num(st) SKM_sk_num(UI_STRING, (st)) -# define sk_UI_STRING_value(st, i) SKM_sk_value(UI_STRING, (st), (i)) -# define sk_UI_STRING_set(st, i, val) SKM_sk_set(UI_STRING, (st), (i), (val)) -# define sk_UI_STRING_zero(st) SKM_sk_zero(UI_STRING, (st)) -# define sk_UI_STRING_push(st, val) SKM_sk_push(UI_STRING, (st), (val)) -# define sk_UI_STRING_unshift(st, val) SKM_sk_unshift(UI_STRING, (st), (val)) -# define sk_UI_STRING_find(st, val) SKM_sk_find(UI_STRING, (st), (val)) -# define sk_UI_STRING_find_ex(st, val) SKM_sk_find_ex(UI_STRING, (st), (val)) -# define sk_UI_STRING_delete(st, i) SKM_sk_delete(UI_STRING, (st), (i)) -# define sk_UI_STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(UI_STRING, (st), (ptr)) -# define sk_UI_STRING_insert(st, val, i) SKM_sk_insert(UI_STRING, (st), (val), (i)) -# define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp)) -# define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st) -# define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func)) -# define sk_UI_STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(UI_STRING, (st), (copy_func), (free_func)) -# define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) -# define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) -# define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) -# define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st)) -# define sk_X509_new(cmp) SKM_sk_new(X509, (cmp)) -# define sk_X509_new_null() SKM_sk_new_null(X509) -# define sk_X509_free(st) SKM_sk_free(X509, (st)) -# define sk_X509_num(st) SKM_sk_num(X509, (st)) -# define sk_X509_value(st, i) SKM_sk_value(X509, (st), (i)) -# define sk_X509_set(st, i, val) SKM_sk_set(X509, (st), (i), (val)) -# define sk_X509_zero(st) SKM_sk_zero(X509, (st)) -# define sk_X509_push(st, val) SKM_sk_push(X509, (st), (val)) -# define sk_X509_unshift(st, val) SKM_sk_unshift(X509, (st), (val)) -# define sk_X509_find(st, val) SKM_sk_find(X509, (st), (val)) -# define sk_X509_find_ex(st, val) SKM_sk_find_ex(X509, (st), (val)) -# define sk_X509_delete(st, i) SKM_sk_delete(X509, (st), (i)) -# define sk_X509_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509, (st), (ptr)) -# define sk_X509_insert(st, val, i) SKM_sk_insert(X509, (st), (val), (i)) -# define sk_X509_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509, (st), (cmp)) -# define sk_X509_dup(st) SKM_sk_dup(X509, st) -# define sk_X509_pop_free(st, free_func) SKM_sk_pop_free(X509, (st), (free_func)) -# define sk_X509_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509, (st), (copy_func), (free_func)) -# define sk_X509_shift(st) SKM_sk_shift(X509, (st)) -# define sk_X509_pop(st) SKM_sk_pop(X509, (st)) -# define sk_X509_sort(st) SKM_sk_sort(X509, (st)) -# define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st)) -# define sk_X509V3_EXT_METHOD_new(cmp) SKM_sk_new(X509V3_EXT_METHOD, (cmp)) -# define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD) -# define sk_X509V3_EXT_METHOD_free(st) SKM_sk_free(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_num(st) SKM_sk_num(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_value(st, i) SKM_sk_value(X509V3_EXT_METHOD, (st), (i)) -# define sk_X509V3_EXT_METHOD_set(st, i, val) SKM_sk_set(X509V3_EXT_METHOD, (st), (i), (val)) -# define sk_X509V3_EXT_METHOD_zero(st) SKM_sk_zero(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_push(st, val) SKM_sk_push(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_unshift(st, val) SKM_sk_unshift(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_find(st, val) SKM_sk_find(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_find_ex(st, val) SKM_sk_find_ex(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_delete(st, i) SKM_sk_delete(X509V3_EXT_METHOD, (st), (i)) -# define sk_X509V3_EXT_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509V3_EXT_METHOD, (st), (ptr)) -# define sk_X509V3_EXT_METHOD_insert(st, val, i) SKM_sk_insert(X509V3_EXT_METHOD, (st), (val), (i)) -# define sk_X509V3_EXT_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (st), (cmp)) -# define sk_X509V3_EXT_METHOD_dup(st) SKM_sk_dup(X509V3_EXT_METHOD, st) -# define sk_X509V3_EXT_METHOD_pop_free(st, free_func) SKM_sk_pop_free(X509V3_EXT_METHOD, (st), (free_func)) -# define sk_X509V3_EXT_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509V3_EXT_METHOD, (st), (copy_func), (free_func)) -# define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st)) -# define sk_X509_ALGOR_new(cmp) SKM_sk_new(X509_ALGOR, (cmp)) -# define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR) -# define sk_X509_ALGOR_free(st) SKM_sk_free(X509_ALGOR, (st)) -# define sk_X509_ALGOR_num(st) SKM_sk_num(X509_ALGOR, (st)) -# define sk_X509_ALGOR_value(st, i) SKM_sk_value(X509_ALGOR, (st), (i)) -# define sk_X509_ALGOR_set(st, i, val) SKM_sk_set(X509_ALGOR, (st), (i), (val)) -# define sk_X509_ALGOR_zero(st) SKM_sk_zero(X509_ALGOR, (st)) -# define sk_X509_ALGOR_push(st, val) SKM_sk_push(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_unshift(st, val) SKM_sk_unshift(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_find(st, val) SKM_sk_find(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_find_ex(st, val) SKM_sk_find_ex(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_delete(st, i) SKM_sk_delete(X509_ALGOR, (st), (i)) -# define sk_X509_ALGOR_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ALGOR, (st), (ptr)) -# define sk_X509_ALGOR_insert(st, val, i) SKM_sk_insert(X509_ALGOR, (st), (val), (i)) -# define sk_X509_ALGOR_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ALGOR, (st), (cmp)) -# define sk_X509_ALGOR_dup(st) SKM_sk_dup(X509_ALGOR, st) -# define sk_X509_ALGOR_pop_free(st, free_func) SKM_sk_pop_free(X509_ALGOR, (st), (free_func)) -# define sk_X509_ALGOR_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ALGOR, (st), (copy_func), (free_func)) -# define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) -# define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) -# define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) -# define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st)) -# define sk_X509_ATTRIBUTE_new(cmp) SKM_sk_new(X509_ATTRIBUTE, (cmp)) -# define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE) -# define sk_X509_ATTRIBUTE_free(st) SKM_sk_free(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_num(st) SKM_sk_num(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_value(st, i) SKM_sk_value(X509_ATTRIBUTE, (st), (i)) -# define sk_X509_ATTRIBUTE_set(st, i, val) SKM_sk_set(X509_ATTRIBUTE, (st), (i), (val)) -# define sk_X509_ATTRIBUTE_zero(st) SKM_sk_zero(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_push(st, val) SKM_sk_push(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_unshift(st, val) SKM_sk_unshift(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_find(st, val) SKM_sk_find(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_find_ex(st, val) SKM_sk_find_ex(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_delete(st, i) SKM_sk_delete(X509_ATTRIBUTE, (st), (i)) -# define sk_X509_ATTRIBUTE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ATTRIBUTE, (st), (ptr)) -# define sk_X509_ATTRIBUTE_insert(st, val, i) SKM_sk_insert(X509_ATTRIBUTE, (st), (val), (i)) -# define sk_X509_ATTRIBUTE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (st), (cmp)) -# define sk_X509_ATTRIBUTE_dup(st) SKM_sk_dup(X509_ATTRIBUTE, st) -# define sk_X509_ATTRIBUTE_pop_free(st, free_func) SKM_sk_pop_free(X509_ATTRIBUTE, (st), (free_func)) -# define sk_X509_ATTRIBUTE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ATTRIBUTE, (st), (copy_func), (free_func)) -# define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st)) -# define sk_X509_CRL_new(cmp) SKM_sk_new(X509_CRL, (cmp)) -# define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL) -# define sk_X509_CRL_free(st) SKM_sk_free(X509_CRL, (st)) -# define sk_X509_CRL_num(st) SKM_sk_num(X509_CRL, (st)) -# define sk_X509_CRL_value(st, i) SKM_sk_value(X509_CRL, (st), (i)) -# define sk_X509_CRL_set(st, i, val) SKM_sk_set(X509_CRL, (st), (i), (val)) -# define sk_X509_CRL_zero(st) SKM_sk_zero(X509_CRL, (st)) -# define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)) -# define sk_X509_CRL_unshift(st, val) SKM_sk_unshift(X509_CRL, (st), (val)) -# define sk_X509_CRL_find(st, val) SKM_sk_find(X509_CRL, (st), (val)) -# define sk_X509_CRL_find_ex(st, val) SKM_sk_find_ex(X509_CRL, (st), (val)) -# define sk_X509_CRL_delete(st, i) SKM_sk_delete(X509_CRL, (st), (i)) -# define sk_X509_CRL_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_CRL, (st), (ptr)) -# define sk_X509_CRL_insert(st, val, i) SKM_sk_insert(X509_CRL, (st), (val), (i)) -# define sk_X509_CRL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_CRL, (st), (cmp)) -# define sk_X509_CRL_dup(st) SKM_sk_dup(X509_CRL, st) -# define sk_X509_CRL_pop_free(st, free_func) SKM_sk_pop_free(X509_CRL, (st), (free_func)) -# define sk_X509_CRL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_CRL, (st), (copy_func), (free_func)) -# define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) -# define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) -# define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) -# define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st)) -# define sk_X509_EXTENSION_new(cmp) SKM_sk_new(X509_EXTENSION, (cmp)) -# define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION) -# define sk_X509_EXTENSION_free(st) SKM_sk_free(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_num(st) SKM_sk_num(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_value(st, i) SKM_sk_value(X509_EXTENSION, (st), (i)) -# define sk_X509_EXTENSION_set(st, i, val) SKM_sk_set(X509_EXTENSION, (st), (i), (val)) -# define sk_X509_EXTENSION_zero(st) SKM_sk_zero(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_push(st, val) SKM_sk_push(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_unshift(st, val) SKM_sk_unshift(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_find(st, val) SKM_sk_find(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_find_ex(st, val) SKM_sk_find_ex(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_delete(st, i) SKM_sk_delete(X509_EXTENSION, (st), (i)) -# define sk_X509_EXTENSION_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_EXTENSION, (st), (ptr)) -# define sk_X509_EXTENSION_insert(st, val, i) SKM_sk_insert(X509_EXTENSION, (st), (val), (i)) -# define sk_X509_EXTENSION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_EXTENSION, (st), (cmp)) -# define sk_X509_EXTENSION_dup(st) SKM_sk_dup(X509_EXTENSION, st) -# define sk_X509_EXTENSION_pop_free(st, free_func) SKM_sk_pop_free(X509_EXTENSION, (st), (free_func)) -# define sk_X509_EXTENSION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_EXTENSION, (st), (copy_func), (free_func)) -# define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st)) -# define sk_X509_INFO_new(cmp) SKM_sk_new(X509_INFO, (cmp)) -# define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO) -# define sk_X509_INFO_free(st) SKM_sk_free(X509_INFO, (st)) -# define sk_X509_INFO_num(st) SKM_sk_num(X509_INFO, (st)) -# define sk_X509_INFO_value(st, i) SKM_sk_value(X509_INFO, (st), (i)) -# define sk_X509_INFO_set(st, i, val) SKM_sk_set(X509_INFO, (st), (i), (val)) -# define sk_X509_INFO_zero(st) SKM_sk_zero(X509_INFO, (st)) -# define sk_X509_INFO_push(st, val) SKM_sk_push(X509_INFO, (st), (val)) -# define sk_X509_INFO_unshift(st, val) SKM_sk_unshift(X509_INFO, (st), (val)) -# define sk_X509_INFO_find(st, val) SKM_sk_find(X509_INFO, (st), (val)) -# define sk_X509_INFO_find_ex(st, val) SKM_sk_find_ex(X509_INFO, (st), (val)) -# define sk_X509_INFO_delete(st, i) SKM_sk_delete(X509_INFO, (st), (i)) -# define sk_X509_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_INFO, (st), (ptr)) -# define sk_X509_INFO_insert(st, val, i) SKM_sk_insert(X509_INFO, (st), (val), (i)) -# define sk_X509_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_INFO, (st), (cmp)) -# define sk_X509_INFO_dup(st) SKM_sk_dup(X509_INFO, st) -# define sk_X509_INFO_pop_free(st, free_func) SKM_sk_pop_free(X509_INFO, (st), (free_func)) -# define sk_X509_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_INFO, (st), (copy_func), (free_func)) -# define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) -# define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) -# define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) -# define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st)) -# define sk_X509_LOOKUP_new(cmp) SKM_sk_new(X509_LOOKUP, (cmp)) -# define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP) -# define sk_X509_LOOKUP_free(st) SKM_sk_free(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_num(st) SKM_sk_num(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_value(st, i) SKM_sk_value(X509_LOOKUP, (st), (i)) -# define sk_X509_LOOKUP_set(st, i, val) SKM_sk_set(X509_LOOKUP, (st), (i), (val)) -# define sk_X509_LOOKUP_zero(st) SKM_sk_zero(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_push(st, val) SKM_sk_push(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_unshift(st, val) SKM_sk_unshift(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_find(st, val) SKM_sk_find(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_find_ex(st, val) SKM_sk_find_ex(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_delete(st, i) SKM_sk_delete(X509_LOOKUP, (st), (i)) -# define sk_X509_LOOKUP_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_LOOKUP, (st), (ptr)) -# define sk_X509_LOOKUP_insert(st, val, i) SKM_sk_insert(X509_LOOKUP, (st), (val), (i)) -# define sk_X509_LOOKUP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_LOOKUP, (st), (cmp)) -# define sk_X509_LOOKUP_dup(st) SKM_sk_dup(X509_LOOKUP, st) -# define sk_X509_LOOKUP_pop_free(st, free_func) SKM_sk_pop_free(X509_LOOKUP, (st), (free_func)) -# define sk_X509_LOOKUP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_LOOKUP, (st), (copy_func), (free_func)) -# define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st)) -# define sk_X509_NAME_new(cmp) SKM_sk_new(X509_NAME, (cmp)) -# define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME) -# define sk_X509_NAME_free(st) SKM_sk_free(X509_NAME, (st)) -# define sk_X509_NAME_num(st) SKM_sk_num(X509_NAME, (st)) -# define sk_X509_NAME_value(st, i) SKM_sk_value(X509_NAME, (st), (i)) -# define sk_X509_NAME_set(st, i, val) SKM_sk_set(X509_NAME, (st), (i), (val)) -# define sk_X509_NAME_zero(st) SKM_sk_zero(X509_NAME, (st)) -# define sk_X509_NAME_push(st, val) SKM_sk_push(X509_NAME, (st), (val)) -# define sk_X509_NAME_unshift(st, val) SKM_sk_unshift(X509_NAME, (st), (val)) -# define sk_X509_NAME_find(st, val) SKM_sk_find(X509_NAME, (st), (val)) -# define sk_X509_NAME_find_ex(st, val) SKM_sk_find_ex(X509_NAME, (st), (val)) -# define sk_X509_NAME_delete(st, i) SKM_sk_delete(X509_NAME, (st), (i)) -# define sk_X509_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME, (st), (ptr)) -# define sk_X509_NAME_insert(st, val, i) SKM_sk_insert(X509_NAME, (st), (val), (i)) -# define sk_X509_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME, (st), (cmp)) -# define sk_X509_NAME_dup(st) SKM_sk_dup(X509_NAME, st) -# define sk_X509_NAME_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME, (st), (free_func)) -# define sk_X509_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME, (st), (copy_func), (free_func)) -# define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) -# define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) -# define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) -# define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st)) -# define sk_X509_NAME_ENTRY_new(cmp) SKM_sk_new(X509_NAME_ENTRY, (cmp)) -# define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY) -# define sk_X509_NAME_ENTRY_free(st) SKM_sk_free(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_num(st) SKM_sk_num(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_value(st, i) SKM_sk_value(X509_NAME_ENTRY, (st), (i)) -# define sk_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(X509_NAME_ENTRY, (st), (i), (val)) -# define sk_X509_NAME_ENTRY_zero(st) SKM_sk_zero(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_push(st, val) SKM_sk_push(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_find(st, val) SKM_sk_find(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(X509_NAME_ENTRY, (st), (i)) -# define sk_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME_ENTRY, (st), (ptr)) -# define sk_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(X509_NAME_ENTRY, (st), (val), (i)) -# define sk_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (st), (cmp)) -# define sk_X509_NAME_ENTRY_dup(st) SKM_sk_dup(X509_NAME_ENTRY, st) -# define sk_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME_ENTRY, (st), (free_func)) -# define sk_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME_ENTRY, (st), (copy_func), (free_func)) -# define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st)) -# define sk_X509_OBJECT_new(cmp) SKM_sk_new(X509_OBJECT, (cmp)) -# define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT) -# define sk_X509_OBJECT_free(st) SKM_sk_free(X509_OBJECT, (st)) -# define sk_X509_OBJECT_num(st) SKM_sk_num(X509_OBJECT, (st)) -# define sk_X509_OBJECT_value(st, i) SKM_sk_value(X509_OBJECT, (st), (i)) -# define sk_X509_OBJECT_set(st, i, val) SKM_sk_set(X509_OBJECT, (st), (i), (val)) -# define sk_X509_OBJECT_zero(st) SKM_sk_zero(X509_OBJECT, (st)) -# define sk_X509_OBJECT_push(st, val) SKM_sk_push(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_unshift(st, val) SKM_sk_unshift(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_find(st, val) SKM_sk_find(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_find_ex(st, val) SKM_sk_find_ex(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_delete(st, i) SKM_sk_delete(X509_OBJECT, (st), (i)) -# define sk_X509_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_OBJECT, (st), (ptr)) -# define sk_X509_OBJECT_insert(st, val, i) SKM_sk_insert(X509_OBJECT, (st), (val), (i)) -# define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp)) -# define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st) -# define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func)) -# define sk_X509_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_OBJECT, (st), (copy_func), (free_func)) -# define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) -# define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) -# define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) -# define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st)) -# define sk_X509_POLICY_DATA_new(cmp) SKM_sk_new(X509_POLICY_DATA, (cmp)) -# define sk_X509_POLICY_DATA_new_null() SKM_sk_new_null(X509_POLICY_DATA) -# define sk_X509_POLICY_DATA_free(st) SKM_sk_free(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_num(st) SKM_sk_num(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_value(st, i) SKM_sk_value(X509_POLICY_DATA, (st), (i)) -# define sk_X509_POLICY_DATA_set(st, i, val) SKM_sk_set(X509_POLICY_DATA, (st), (i), (val)) -# define sk_X509_POLICY_DATA_zero(st) SKM_sk_zero(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_push(st, val) SKM_sk_push(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_unshift(st, val) SKM_sk_unshift(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_find(st, val) SKM_sk_find(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_delete(st, i) SKM_sk_delete(X509_POLICY_DATA, (st), (i)) -# define sk_X509_POLICY_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_DATA, (st), (ptr)) -# define sk_X509_POLICY_DATA_insert(st, val, i) SKM_sk_insert(X509_POLICY_DATA, (st), (val), (i)) -# define sk_X509_POLICY_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_DATA, (st), (cmp)) -# define sk_X509_POLICY_DATA_dup(st) SKM_sk_dup(X509_POLICY_DATA, st) -# define sk_X509_POLICY_DATA_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_DATA, (st), (free_func)) -# define sk_X509_POLICY_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_DATA, (st), (copy_func), (free_func)) -# define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_NODE_new(cmp) SKM_sk_new(X509_POLICY_NODE, (cmp)) -# define sk_X509_POLICY_NODE_new_null() SKM_sk_new_null(X509_POLICY_NODE) -# define sk_X509_POLICY_NODE_free(st) SKM_sk_free(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_num(st) SKM_sk_num(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_value(st, i) SKM_sk_value(X509_POLICY_NODE, (st), (i)) -# define sk_X509_POLICY_NODE_set(st, i, val) SKM_sk_set(X509_POLICY_NODE, (st), (i), (val)) -# define sk_X509_POLICY_NODE_zero(st) SKM_sk_zero(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_push(st, val) SKM_sk_push(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_unshift(st, val) SKM_sk_unshift(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_find(st, val) SKM_sk_find(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_delete(st, i) SKM_sk_delete(X509_POLICY_NODE, (st), (i)) -# define sk_X509_POLICY_NODE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_NODE, (st), (ptr)) -# define sk_X509_POLICY_NODE_insert(st, val, i) SKM_sk_insert(X509_POLICY_NODE, (st), (val), (i)) -# define sk_X509_POLICY_NODE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_NODE, (st), (cmp)) -# define sk_X509_POLICY_NODE_dup(st) SKM_sk_dup(X509_POLICY_NODE, st) -# define sk_X509_POLICY_NODE_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_NODE, (st), (free_func)) -# define sk_X509_POLICY_NODE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_NODE, (st), (copy_func), (free_func)) -# define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_NODE, (st)) -# define sk_X509_PURPOSE_new(cmp) SKM_sk_new(X509_PURPOSE, (cmp)) -# define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE) -# define sk_X509_PURPOSE_free(st) SKM_sk_free(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_num(st) SKM_sk_num(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_value(st, i) SKM_sk_value(X509_PURPOSE, (st), (i)) -# define sk_X509_PURPOSE_set(st, i, val) SKM_sk_set(X509_PURPOSE, (st), (i), (val)) -# define sk_X509_PURPOSE_zero(st) SKM_sk_zero(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_push(st, val) SKM_sk_push(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_unshift(st, val) SKM_sk_unshift(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_find(st, val) SKM_sk_find(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_find_ex(st, val) SKM_sk_find_ex(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_delete(st, i) SKM_sk_delete(X509_PURPOSE, (st), (i)) -# define sk_X509_PURPOSE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_PURPOSE, (st), (ptr)) -# define sk_X509_PURPOSE_insert(st, val, i) SKM_sk_insert(X509_PURPOSE, (st), (val), (i)) -# define sk_X509_PURPOSE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_PURPOSE, (st), (cmp)) -# define sk_X509_PURPOSE_dup(st) SKM_sk_dup(X509_PURPOSE, st) -# define sk_X509_PURPOSE_pop_free(st, free_func) SKM_sk_pop_free(X509_PURPOSE, (st), (free_func)) -# define sk_X509_PURPOSE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_PURPOSE, (st), (copy_func), (free_func)) -# define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st)) -# define sk_X509_REVOKED_new(cmp) SKM_sk_new(X509_REVOKED, (cmp)) -# define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED) -# define sk_X509_REVOKED_free(st) SKM_sk_free(X509_REVOKED, (st)) -# define sk_X509_REVOKED_num(st) SKM_sk_num(X509_REVOKED, (st)) -# define sk_X509_REVOKED_value(st, i) SKM_sk_value(X509_REVOKED, (st), (i)) -# define sk_X509_REVOKED_set(st, i, val) SKM_sk_set(X509_REVOKED, (st), (i), (val)) -# define sk_X509_REVOKED_zero(st) SKM_sk_zero(X509_REVOKED, (st)) -# define sk_X509_REVOKED_push(st, val) SKM_sk_push(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_unshift(st, val) SKM_sk_unshift(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_find(st, val) SKM_sk_find(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_find_ex(st, val) SKM_sk_find_ex(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_delete(st, i) SKM_sk_delete(X509_REVOKED, (st), (i)) -# define sk_X509_REVOKED_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_REVOKED, (st), (ptr)) -# define sk_X509_REVOKED_insert(st, val, i) SKM_sk_insert(X509_REVOKED, (st), (val), (i)) -# define sk_X509_REVOKED_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_REVOKED, (st), (cmp)) -# define sk_X509_REVOKED_dup(st) SKM_sk_dup(X509_REVOKED, st) -# define sk_X509_REVOKED_pop_free(st, free_func) SKM_sk_pop_free(X509_REVOKED, (st), (free_func)) -# define sk_X509_REVOKED_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_REVOKED, (st), (copy_func), (free_func)) -# define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) -# define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) -# define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) -# define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st)) -# define sk_X509_TRUST_new(cmp) SKM_sk_new(X509_TRUST, (cmp)) -# define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST) -# define sk_X509_TRUST_free(st) SKM_sk_free(X509_TRUST, (st)) -# define sk_X509_TRUST_num(st) SKM_sk_num(X509_TRUST, (st)) -# define sk_X509_TRUST_value(st, i) SKM_sk_value(X509_TRUST, (st), (i)) -# define sk_X509_TRUST_set(st, i, val) SKM_sk_set(X509_TRUST, (st), (i), (val)) -# define sk_X509_TRUST_zero(st) SKM_sk_zero(X509_TRUST, (st)) -# define sk_X509_TRUST_push(st, val) SKM_sk_push(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_unshift(st, val) SKM_sk_unshift(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_find(st, val) SKM_sk_find(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_find_ex(st, val) SKM_sk_find_ex(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_delete(st, i) SKM_sk_delete(X509_TRUST, (st), (i)) -# define sk_X509_TRUST_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_TRUST, (st), (ptr)) -# define sk_X509_TRUST_insert(st, val, i) SKM_sk_insert(X509_TRUST, (st), (val), (i)) -# define sk_X509_TRUST_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_TRUST, (st), (cmp)) -# define sk_X509_TRUST_dup(st) SKM_sk_dup(X509_TRUST, st) -# define sk_X509_TRUST_pop_free(st, free_func) SKM_sk_pop_free(X509_TRUST, (st), (free_func)) -# define sk_X509_TRUST_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_TRUST, (st), (copy_func), (free_func)) -# define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) -# define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) -# define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) -# define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st)) -# define sk_X509_VERIFY_PARAM_new(cmp) SKM_sk_new(X509_VERIFY_PARAM, (cmp)) -# define sk_X509_VERIFY_PARAM_new_null() SKM_sk_new_null(X509_VERIFY_PARAM) -# define sk_X509_VERIFY_PARAM_free(st) SKM_sk_free(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_num(st) SKM_sk_num(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_value(st, i) SKM_sk_value(X509_VERIFY_PARAM, (st), (i)) -# define sk_X509_VERIFY_PARAM_set(st, i, val) SKM_sk_set(X509_VERIFY_PARAM, (st), (i), (val)) -# define sk_X509_VERIFY_PARAM_zero(st) SKM_sk_zero(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_push(st, val) SKM_sk_push(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_unshift(st, val) SKM_sk_unshift(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_find(st, val) SKM_sk_find(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_find_ex(st, val) SKM_sk_find_ex(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_delete(st, i) SKM_sk_delete(X509_VERIFY_PARAM, (st), (i)) -# define sk_X509_VERIFY_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_VERIFY_PARAM, (st), (ptr)) -# define sk_X509_VERIFY_PARAM_insert(st, val, i) SKM_sk_insert(X509_VERIFY_PARAM, (st), (val), (i)) -# define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp)) -# define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st) -# define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func)) -# define sk_X509_VERIFY_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_VERIFY_PARAM, (st), (copy_func), (free_func)) -# define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_is_sorted(st) SKM_sk_is_sorted(X509_VERIFY_PARAM, (st)) -# define sk_nid_triple_new(cmp) SKM_sk_new(nid_triple, (cmp)) -# define sk_nid_triple_new_null() SKM_sk_new_null(nid_triple) -# define sk_nid_triple_free(st) SKM_sk_free(nid_triple, (st)) -# define sk_nid_triple_num(st) SKM_sk_num(nid_triple, (st)) -# define sk_nid_triple_value(st, i) SKM_sk_value(nid_triple, (st), (i)) -# define sk_nid_triple_set(st, i, val) SKM_sk_set(nid_triple, (st), (i), (val)) -# define sk_nid_triple_zero(st) SKM_sk_zero(nid_triple, (st)) -# define sk_nid_triple_push(st, val) SKM_sk_push(nid_triple, (st), (val)) -# define sk_nid_triple_unshift(st, val) SKM_sk_unshift(nid_triple, (st), (val)) -# define sk_nid_triple_find(st, val) SKM_sk_find(nid_triple, (st), (val)) -# define sk_nid_triple_find_ex(st, val) SKM_sk_find_ex(nid_triple, (st), (val)) -# define sk_nid_triple_delete(st, i) SKM_sk_delete(nid_triple, (st), (i)) -# define sk_nid_triple_delete_ptr(st, ptr) SKM_sk_delete_ptr(nid_triple, (st), (ptr)) -# define sk_nid_triple_insert(st, val, i) SKM_sk_insert(nid_triple, (st), (val), (i)) -# define sk_nid_triple_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(nid_triple, (st), (cmp)) -# define sk_nid_triple_dup(st) SKM_sk_dup(nid_triple, st) -# define sk_nid_triple_pop_free(st, free_func) SKM_sk_pop_free(nid_triple, (st), (free_func)) -# define sk_nid_triple_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(nid_triple, (st), (copy_func), (free_func)) -# define sk_nid_triple_shift(st) SKM_sk_shift(nid_triple, (st)) -# define sk_nid_triple_pop(st) SKM_sk_pop(nid_triple, (st)) -# define sk_nid_triple_sort(st) SKM_sk_sort(nid_triple, (st)) -# define sk_nid_triple_is_sorted(st) SKM_sk_is_sorted(nid_triple, (st)) -# define sk_void_new(cmp) SKM_sk_new(void, (cmp)) -# define sk_void_new_null() SKM_sk_new_null(void) -# define sk_void_free(st) SKM_sk_free(void, (st)) -# define sk_void_num(st) SKM_sk_num(void, (st)) -# define sk_void_value(st, i) SKM_sk_value(void, (st), (i)) -# define sk_void_set(st, i, val) SKM_sk_set(void, (st), (i), (val)) -# define sk_void_zero(st) SKM_sk_zero(void, (st)) -# define sk_void_push(st, val) SKM_sk_push(void, (st), (val)) -# define sk_void_unshift(st, val) SKM_sk_unshift(void, (st), (val)) -# define sk_void_find(st, val) SKM_sk_find(void, (st), (val)) -# define sk_void_find_ex(st, val) SKM_sk_find_ex(void, (st), (val)) -# define sk_void_delete(st, i) SKM_sk_delete(void, (st), (i)) -# define sk_void_delete_ptr(st, ptr) SKM_sk_delete_ptr(void, (st), (ptr)) -# define sk_void_insert(st, val, i) SKM_sk_insert(void, (st), (val), (i)) -# define sk_void_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(void, (st), (cmp)) -# define sk_void_dup(st) SKM_sk_dup(void, st) -# define sk_void_pop_free(st, free_func) SKM_sk_pop_free(void, (st), (free_func)) -# define sk_void_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(void, (st), (copy_func), (free_func)) -# define sk_void_shift(st) SKM_sk_shift(void, (st)) -# define sk_void_pop(st) SKM_sk_pop(void, (st)) -# define sk_void_sort(st) SKM_sk_sort(void, (st)) -# define sk_void_is_sorted(st) SKM_sk_is_sorted(void, (st)) -# define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_SK_CMP_FUNC(char, cmp))) -# define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) -# define sk_OPENSSL_STRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_value(st, i) ((OPENSSL_STRING)sk_value(CHECKED_STACK_OF(OPENSSL_STRING, st), i)) -# define sk_OPENSSL_STRING_num(st) SKM_sk_num(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC(char, free_func)) -# define sk_OPENSSL_STRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_COPY_FUNC(char, copy_func), CHECKED_SK_FREE_FUNC(char, free_func))) -# define sk_OPENSSL_STRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val), i) -# define sk_OPENSSL_STRING_free(st) SKM_sk_free(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_STRING, st), i, CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_zero(st) SKM_sk_zero(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_STRING), st), CHECKED_CONST_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_delete(st, i) SKM_sk_delete(OPENSSL_STRING, (st), (i)) -# define sk_OPENSSL_STRING_delete_ptr(st, ptr) (OPENSSL_STRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, ptr)) -# define sk_OPENSSL_STRING_set_cmp_func(st, cmp) \ - ((int (*)(const char * const *,const char * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_CMP_FUNC(char, cmp))) -# define sk_OPENSSL_STRING_dup(st) SKM_sk_dup(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_shift(st) SKM_sk_shift(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_pop(st) (char *)sk_pop(CHECKED_STACK_OF(OPENSSL_STRING, st)) -# define sk_OPENSSL_STRING_sort(st) SKM_sk_sort(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_STRING, (st)) -# define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_SK_CMP_FUNC(void, cmp))) -# define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) -# define sk_OPENSSL_BLOCK_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_value(st, i) ((OPENSSL_BLOCK)sk_value(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i)) -# define sk_OPENSSL_BLOCK_num(st) SKM_sk_num(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC(void, free_func)) -# define sk_OPENSSL_BLOCK_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_COPY_FUNC(void, copy_func), CHECKED_SK_FREE_FUNC(void, free_func))) -# define sk_OPENSSL_BLOCK_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val), i) -# define sk_OPENSSL_BLOCK_free(st) SKM_sk_free(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i, CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_zero(st) SKM_sk_zero(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_BLOCK), st), CHECKED_CONST_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_delete(st, i) SKM_sk_delete(OPENSSL_BLOCK, (st), (i)) -# define sk_OPENSSL_BLOCK_delete_ptr(st, ptr) (OPENSSL_BLOCK *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, ptr)) -# define sk_OPENSSL_BLOCK_set_cmp_func(st, cmp) \ - ((int (*)(const void * const *,const void * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_CMP_FUNC(void, cmp))) -# define sk_OPENSSL_BLOCK_dup(st) SKM_sk_dup(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_shift(st) SKM_sk_shift(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_pop(st) (void *)sk_pop(CHECKED_STACK_OF(OPENSSL_BLOCK, st)) -# define sk_OPENSSL_BLOCK_sort(st) SKM_sk_sort(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_is_sorted(st) SKM_sk_is_sorted(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_PSTRING_new(cmp) ((STACK_OF(OPENSSL_PSTRING) *)sk_new(CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) -# define sk_OPENSSL_PSTRING_new_null() ((STACK_OF(OPENSSL_PSTRING) *)sk_new_null()) -# define sk_OPENSSL_PSTRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_value(st, i) ((OPENSSL_PSTRING)sk_value(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i)) -# define sk_OPENSSL_PSTRING_num(st) SKM_sk_num(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func)) -# define sk_OPENSSL_PSTRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_PSTRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_COPY_FUNC(OPENSSL_STRING, copy_func), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func))) -# define sk_OPENSSL_PSTRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val), i) -# define sk_OPENSSL_PSTRING_free(st) SKM_sk_free(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i, CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_zero(st) SKM_sk_zero(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_PSTRING), st), CHECKED_CONST_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_delete(st, i) SKM_sk_delete(OPENSSL_PSTRING, (st), (i)) -# define sk_OPENSSL_PSTRING_delete_ptr(st, ptr) (OPENSSL_PSTRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, ptr)) -# define sk_OPENSSL_PSTRING_set_cmp_func(st, cmp) \ - ((int (*)(const OPENSSL_STRING * const *,const OPENSSL_STRING * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) -# define sk_OPENSSL_PSTRING_dup(st) SKM_sk_dup(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_shift(st) SKM_sk_shift(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_pop(st) (OPENSSL_STRING *)sk_pop(CHECKED_STACK_OF(OPENSSL_PSTRING, st)) -# define sk_OPENSSL_PSTRING_sort(st) SKM_sk_sort(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_PSTRING, (st)) -# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func)) -# define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \ - SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) -# define PKCS12_decrypt_d2i_PKCS7(algor, d2i_func, free_func, pass, passlen, oct, seq) \ - SKM_PKCS12_decrypt_d2i(PKCS7, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) -# define lh_ADDED_OBJ_new() LHM_lh_new(ADDED_OBJ,added_obj) -# define lh_ADDED_OBJ_insert(lh,inst) LHM_lh_insert(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_retrieve(lh,inst) LHM_lh_retrieve(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_delete(lh,inst) LHM_lh_delete(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_doall(lh,fn) LHM_lh_doall(ADDED_OBJ,lh,fn) -# define lh_ADDED_OBJ_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) -# define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_stats_bio(lh,out) \ - LHM_lh_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) -# define lh_APP_INFO_new() LHM_lh_new(APP_INFO,app_info) -# define lh_APP_INFO_insert(lh,inst) LHM_lh_insert(APP_INFO,lh,inst) -# define lh_APP_INFO_retrieve(lh,inst) LHM_lh_retrieve(APP_INFO,lh,inst) -# define lh_APP_INFO_delete(lh,inst) LHM_lh_delete(APP_INFO,lh,inst) -# define lh_APP_INFO_doall(lh,fn) LHM_lh_doall(APP_INFO,lh,fn) -# define lh_APP_INFO_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(APP_INFO,lh,fn,arg_type,arg) -# define lh_APP_INFO_error(lh) LHM_lh_error(APP_INFO,lh) -# define lh_APP_INFO_num_items(lh) LHM_lh_num_items(APP_INFO,lh) -# define lh_APP_INFO_down_load(lh) LHM_lh_down_load(APP_INFO,lh) -# define lh_APP_INFO_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_stats_bio(lh,out) \ - LHM_lh_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_free(lh) LHM_lh_free(APP_INFO,lh) -# define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) -# define lh_CONF_VALUE_insert(lh,inst) LHM_lh_insert(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_retrieve(lh,inst) LHM_lh_retrieve(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_delete(lh,inst) LHM_lh_delete(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_doall(lh,fn) LHM_lh_doall(CONF_VALUE,lh,fn) -# define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) -# define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) -# define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) -# define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) -# define lh_CONF_VALUE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_stats_bio(lh,out) \ - LHM_lh_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) -# define lh_ENGINE_PILE_new() LHM_lh_new(ENGINE_PILE,engine_pile) -# define lh_ENGINE_PILE_insert(lh,inst) LHM_lh_insert(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_retrieve(lh,inst) LHM_lh_retrieve(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_delete(lh,inst) LHM_lh_delete(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_doall(lh,fn) LHM_lh_doall(ENGINE_PILE,lh,fn) -# define lh_ENGINE_PILE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ENGINE_PILE,lh,fn,arg_type,arg) -# define lh_ENGINE_PILE_error(lh) LHM_lh_error(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_num_items(lh) LHM_lh_num_items(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_down_load(lh) LHM_lh_down_load(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_free(lh) LHM_lh_free(ENGINE_PILE,lh) -# define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) -# define lh_ERR_STATE_insert(lh,inst) LHM_lh_insert(ERR_STATE,lh,inst) -# define lh_ERR_STATE_retrieve(lh,inst) LHM_lh_retrieve(ERR_STATE,lh,inst) -# define lh_ERR_STATE_delete(lh,inst) LHM_lh_delete(ERR_STATE,lh,inst) -# define lh_ERR_STATE_doall(lh,fn) LHM_lh_doall(ERR_STATE,lh,fn) -# define lh_ERR_STATE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) -# define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) -# define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) -# define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) -# define lh_ERR_STATE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) -# define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) -# define lh_ERR_STRING_DATA_insert(lh,inst) LHM_lh_insert(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_retrieve(lh,inst) LHM_lh_retrieve(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_delete(lh,inst) LHM_lh_delete(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_doall(lh,fn) LHM_lh_doall(ERR_STRING_DATA,lh,fn) -# define lh_ERR_STRING_DATA_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) -# define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) -# define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) -# define lh_EX_CLASS_ITEM_insert(lh,inst) LHM_lh_insert(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_retrieve(lh,inst) LHM_lh_retrieve(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_delete(lh,inst) LHM_lh_delete(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_doall(lh,fn) LHM_lh_doall(EX_CLASS_ITEM,lh,fn) -# define lh_EX_CLASS_ITEM_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg) -# define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_stats_bio(lh,out) \ - LHM_lh_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) -# define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) -# define lh_FUNCTION_insert(lh,inst) LHM_lh_insert(FUNCTION,lh,inst) -# define lh_FUNCTION_retrieve(lh,inst) LHM_lh_retrieve(FUNCTION,lh,inst) -# define lh_FUNCTION_delete(lh,inst) LHM_lh_delete(FUNCTION,lh,inst) -# define lh_FUNCTION_doall(lh,fn) LHM_lh_doall(FUNCTION,lh,fn) -# define lh_FUNCTION_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) -# define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) -# define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) -# define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) -# define lh_FUNCTION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_stats_bio(lh,out) \ - LHM_lh_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) -# define lh_MEM_new() LHM_lh_new(MEM,mem) -# define lh_MEM_insert(lh,inst) LHM_lh_insert(MEM,lh,inst) -# define lh_MEM_retrieve(lh,inst) LHM_lh_retrieve(MEM,lh,inst) -# define lh_MEM_delete(lh,inst) LHM_lh_delete(MEM,lh,inst) -# define lh_MEM_doall(lh,fn) LHM_lh_doall(MEM,lh,fn) -# define lh_MEM_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(MEM,lh,fn,arg_type,arg) -# define lh_MEM_error(lh) LHM_lh_error(MEM,lh) -# define lh_MEM_num_items(lh) LHM_lh_num_items(MEM,lh) -# define lh_MEM_down_load(lh) LHM_lh_down_load(MEM,lh) -# define lh_MEM_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(MEM,lh,out) -# define lh_MEM_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(MEM,lh,out) -# define lh_MEM_stats_bio(lh,out) \ - LHM_lh_stats_bio(MEM,lh,out) -# define lh_MEM_free(lh) LHM_lh_free(MEM,lh) -# define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) -# define lh_OBJ_NAME_insert(lh,inst) LHM_lh_insert(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_retrieve(lh,inst) LHM_lh_retrieve(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_delete(lh,inst) LHM_lh_delete(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_doall(lh,fn) LHM_lh_doall(OBJ_NAME,lh,fn) -# define lh_OBJ_NAME_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) -# define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) -# define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) -# define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) -# define lh_OBJ_NAME_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_stats_bio(lh,out) \ - LHM_lh_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) -# define lh_OPENSSL_CSTRING_new() LHM_lh_new(OPENSSL_CSTRING,openssl_cstring) -# define lh_OPENSSL_CSTRING_insert(lh,inst) LHM_lh_insert(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_delete(lh,inst) LHM_lh_delete(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_doall(lh,fn) LHM_lh_doall(OPENSSL_CSTRING,lh,fn) -# define lh_OPENSSL_CSTRING_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OPENSSL_CSTRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_CSTRING_error(lh) LHM_lh_error(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_num_items(lh) LHM_lh_num_items(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_down_load(lh) LHM_lh_down_load(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_free(lh) LHM_lh_free(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) -# define lh_OPENSSL_STRING_insert(lh,inst) LHM_lh_insert(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_delete(lh,inst) LHM_lh_delete(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_doall(lh,fn) LHM_lh_doall(OPENSSL_STRING,lh,fn) -# define lh_OPENSSL_STRING_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) -# define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) -# define lh_SSL_SESSION_insert(lh,inst) LHM_lh_insert(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_retrieve(lh,inst) LHM_lh_retrieve(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_delete(lh,inst) LHM_lh_delete(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_doall(lh,fn) LHM_lh_doall(SSL_SESSION,lh,fn) -# define lh_SSL_SESSION_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) -# define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) -# define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) -# define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) -# define lh_SSL_SESSION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_stats_bio(lh,out) \ - LHM_lh_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) -#ifdef __cplusplus +# ifdef __cplusplus } +# endif #endif -#endif /* !defined HEADER_SAFESTACK_H */ diff --git a/libs/mac/include/openssl/seed.h b/libs/mac/include/openssl/seed.h index 8cbf0d92..de10b085 100644 --- a/libs/mac/include/openssl/seed.h +++ b/libs/mac/include/openssl/seed.h @@ -1,3 +1,12 @@ +/* + * Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + /* * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. * @@ -21,72 +30,20 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - */ -/* ==================================================================== - * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * */ #ifndef HEADER_SEED_H # define HEADER_SEED_H # include + +# ifndef OPENSSL_NO_SEED # include # include -# ifdef OPENSSL_NO_SEED -# error SEED is disabled. -# endif +#ifdef __cplusplus +extern "C" { +#endif /* look whether we need 'long' to get 32 bits */ # ifdef AES_LONG @@ -95,18 +52,11 @@ # endif # endif -# if !defined(NO_SYS_TYPES_H) -# include -# endif +# include # define SEED_BLOCK_SIZE 16 # define SEED_KEY_LENGTH 16 - -#ifdef __cplusplus -extern "C" { -#endif - typedef struct seed_key_st { # ifdef SEED_LONG unsigned long data[32]; @@ -115,10 +65,6 @@ typedef struct seed_key_st { # endif } SEED_KEY_SCHEDULE; -# ifdef OPENSSL_FIPS -void private_SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); -# endif void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], SEED_KEY_SCHEDULE *ks); @@ -142,8 +88,9 @@ void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int *num); -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif -#endif /* HEADER_SEED_H */ +#endif diff --git a/libs/mac/include/openssl/sha.h b/libs/mac/include/openssl/sha.h index e5169e4f..6a1eb0de 100644 --- a/libs/mac/include/openssl/sha.h +++ b/libs/mac/include/openssl/sha.h @@ -1,59 +1,10 @@ -/* crypto/sha/sha.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_SHA_H @@ -66,29 +17,12 @@ extern "C" { #endif -# if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1)) -# error SHA is disabled. -# endif - -# if defined(OPENSSL_FIPS) -# define FIPS_SHA_SIZE_T size_t -# endif - /*- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! SHA_LONG_LOG2 has to be defined along. ! + * ! SHA_LONG has to be at least 32 bits wide. ! * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ - -# if defined(__LP32__) -# define SHA_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define SHA_LONG unsigned long -# define SHA_LONG_LOG2 3 -# else -# define SHA_LONG unsigned int -# endif +# define SHA_LONG unsigned int # define SHA_LBLOCK 16 # define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a @@ -104,32 +38,15 @@ typedef struct SHAstate_st { unsigned int num; } SHA_CTX; -# ifndef OPENSSL_NO_SHA0 -# ifdef OPENSSL_FIPS -int private_SHA_Init(SHA_CTX *c); -# endif -int SHA_Init(SHA_CTX *c); -int SHA_Update(SHA_CTX *c, const void *data, size_t len); -int SHA_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); -void SHA_Transform(SHA_CTX *c, const unsigned char *data); -# endif -# ifndef OPENSSL_NO_SHA1 -# ifdef OPENSSL_FIPS -int private_SHA1_Init(SHA_CTX *c); -# endif int SHA1_Init(SHA_CTX *c); int SHA1_Update(SHA_CTX *c, const void *data, size_t len); int SHA1_Final(unsigned char *md, SHA_CTX *c); unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); void SHA1_Transform(SHA_CTX *c, const unsigned char *data); -# endif # define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a * contiguous array of 32 bit wide * big-endian values. */ -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 typedef struct SHA256state_st { SHA_LONG h[8]; @@ -138,11 +55,6 @@ typedef struct SHA256state_st { unsigned int num, md_len; } SHA256_CTX; -# ifndef OPENSSL_NO_SHA256 -# ifdef OPENSSL_FIPS -int private_SHA224_Init(SHA256_CTX *c); -int private_SHA256_Init(SHA256_CTX *c); -# endif int SHA224_Init(SHA256_CTX *c); int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); int SHA224_Final(unsigned char *md, SHA256_CTX *c); @@ -152,12 +64,12 @@ int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); int SHA256_Final(unsigned char *md, SHA256_CTX *c); unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); -# endif +# define SHA224_DIGEST_LENGTH 28 +# define SHA256_DIGEST_LENGTH 32 # define SHA384_DIGEST_LENGTH 48 # define SHA512_DIGEST_LENGTH 64 -# ifndef OPENSSL_NO_SHA512 /* * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 * being exactly 64-bit wide. See Implementation Notes in sha512.c @@ -168,17 +80,17 @@ void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); * contiguous array of 64 bit * wide big-endian values. */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# define U64(C) C##UI64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# define U64(C) C##UL -# else -# define SHA_LONG64 unsigned long long -# define U64(C) C##ULL -# endif +# define SHA512_CBLOCK (SHA_LBLOCK*8) +# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) +# define SHA_LONG64 unsigned __int64 +# define U64(C) C##UI64 +# elif defined(__arch64__) +# define SHA_LONG64 unsigned long +# define U64(C) C##UL +# else +# define SHA_LONG64 unsigned long long +# define U64(C) C##ULL +# endif typedef struct SHA512state_st { SHA_LONG64 h[8]; @@ -189,13 +101,7 @@ typedef struct SHA512state_st { } u; unsigned int num, md_len; } SHA512_CTX; -# endif -# ifndef OPENSSL_NO_SHA512 -# ifdef OPENSSL_FIPS -int private_SHA384_Init(SHA512_CTX *c); -int private_SHA512_Init(SHA512_CTX *c); -# endif int SHA384_Init(SHA512_CTX *c); int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); int SHA384_Final(unsigned char *md, SHA512_CTX *c); @@ -205,7 +111,6 @@ int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); int SHA512_Final(unsigned char *md, SHA512_CTX *c); unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); -# endif #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/srp.h b/libs/mac/include/openssl/srp.h index 028892a1..f2b6ec75 100644 --- a/libs/mac/include/openssl/srp.h +++ b/libs/mac/include/openssl/srp.h @@ -1,77 +1,27 @@ -/* crypto/srp/srp.h */ /* - * Written by Christophe Renou (christophe.renou@edelweb.fr) with the - * precious help of Peter Sylvester (peter.sylvester@edelweb.fr) for the - * EdelKey project and contributed to the OpenSSL project 2004. + * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright (c) 2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef __SRP_H__ -# define __SRP_H__ -# ifndef OPENSSL_NO_SRP +#ifndef HEADER_SRP_H +# define HEADER_SRP_H -# include -# include +#include -#ifdef __cplusplus +#ifndef OPENSSL_NO_SRP +# include +# include +# include +# include +# include + +# ifdef __cplusplus extern "C" { -#endif - -# include -# include -# include +# endif typedef struct SRP_gN_cache_st { char *b64_bn; @@ -79,7 +29,7 @@ typedef struct SRP_gN_cache_st { } SRP_gN_cache; -DECLARE_STACK_OF(SRP_gN_cache) +DEFINE_STACK_OF(SRP_gN_cache) typedef struct SRP_user_pwd_st { /* Owned by us. */ @@ -93,87 +43,89 @@ typedef struct SRP_user_pwd_st { char *info; } SRP_user_pwd; -DECLARE_STACK_OF(SRP_user_pwd) - void SRP_user_pwd_free(SRP_user_pwd *user_pwd); +DEFINE_STACK_OF(SRP_user_pwd) + typedef struct SRP_VBASE_st { STACK_OF(SRP_user_pwd) *users_pwd; STACK_OF(SRP_gN_cache) *gN_cache; /* to simulate a user */ char *seed_key; - BIGNUM *default_g; - BIGNUM *default_N; + const BIGNUM *default_g; + const BIGNUM *default_N; } SRP_VBASE; /* - * Structure interne pour retenir les couples N et g + * Internal structure storing N and g pair */ typedef struct SRP_gN_st { char *id; - BIGNUM *g; - BIGNUM *N; + const BIGNUM *g; + const BIGNUM *N; } SRP_gN; -DECLARE_STACK_OF(SRP_gN) +DEFINE_STACK_OF(SRP_gN) SRP_VBASE *SRP_VBASE_new(char *seed_key); -int SRP_VBASE_free(SRP_VBASE *vb); +void SRP_VBASE_free(SRP_VBASE *vb); int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); /* This method ignores the configured seed and fails for an unknown user. */ -SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); +DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) /* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); char *SRP_create_verifier(const char *user, const char *pass, char **salt, char **verifier, const char *N, const char *g); int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, BIGNUM *N, BIGNUM *g); + BIGNUM **verifier, const BIGNUM *N, + const BIGNUM *g); -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 +# define SRP_NO_ERROR 0 +# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 +# define SRP_ERR_VBASE_BN_LIB 2 +# define SRP_ERR_OPEN_FILE 3 +# define SRP_ERR_MEMORY 4 -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 +# define DB_srptype 0 +# define DB_srpverifier 1 +# define DB_srpsalt 2 +# define DB_srpid 3 +# define DB_srpgN 4 +# define DB_srpinfo 5 +# undef DB_NUMBER +# define DB_NUMBER 6 -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' +# define DB_SRP_INDEX 'I' +# define DB_SRP_VALID 'V' +# define DB_SRP_REVOKED 'R' +# define DB_SRP_MODIF 'v' /* see srp.c */ -char *SRP_check_known_gN_param(BIGNUM *g, BIGNUM *N); +char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); SRP_gN *SRP_get_default_gN(const char *id); /* server side .... */ -BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, - BIGNUM *N); -BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v); -int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N); -BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N); +BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, + const BIGNUM *b, const BIGNUM *N); +BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, + const BIGNUM *v); +int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); +BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); /* client side .... */ -BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass); -BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g); -BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, - BIGNUM *a, BIGNUM *u); -int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N); +BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); +BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); +BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, + const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); +int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); -# define SRP_MINIMAL_N 1024 +# define SRP_MINIMAL_N 1024 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif - # endif +# endif + #endif diff --git a/libs/mac/include/openssl/srtp.h b/libs/mac/include/openssl/srtp.h index 2279c32b..0b57c235 100644 --- a/libs/mac/include/openssl/srtp.h +++ b/libs/mac/include/openssl/srtp.h @@ -1,113 +1,12 @@ -/* ssl/srtp.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* * DTLS code by Eric Rescorla * @@ -130,13 +29,17 @@ extern "C" { # define SRTP_NULL_SHA1_80 0x0005 # define SRTP_NULL_SHA1_32 0x0006 +/* AEAD SRTP protection profiles from RFC 7714 */ +# define SRTP_AEAD_AES_128_GCM 0x0007 +# define SRTP_AEAD_AES_256_GCM 0x0008 + # ifndef OPENSSL_NO_SRTP -int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles); +__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); +__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); -STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); +__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); +__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); # endif diff --git a/libs/mac/include/openssl/ssl.h b/libs/mac/include/openssl/ssl.h index 3cf96a23..f070bd2d 100644 --- a/libs/mac/include/openssl/ssl.h +++ b/libs/mac/include/openssl/ssl.h @@ -1,113 +1,12 @@ -/* ssl/ssl.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * ECC cipher suite support in OpenSSL originally developed by @@ -144,78 +43,34 @@ # define HEADER_SSL_H # include - -# ifndef OPENSSL_NO_COMP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_DEPRECATED -# ifndef OPENSSL_NO_X509 -# include -# endif +# include +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include # include # include # include # endif # include # include +# include -# include # include # include +# include #ifdef __cplusplus extern "C" { #endif -/* SSLeay version number for ASN.1 encoding of the session information */ +/* OpenSSL version number for ASN.1 encoding of the session information */ /*- * Version 0 - initial version * Version 1 - added the optional peer certificate */ # define SSL_SESSION_ASN1_VERSION 0x0001 -/* text strings for the ciphers */ -# define SSL_TXT_NULL_WITH_MD5 SSL2_TXT_NULL_WITH_MD5 -# define SSL_TXT_RC4_128_WITH_MD5 SSL2_TXT_RC4_128_WITH_MD5 -# define SSL_TXT_RC4_128_EXPORT40_WITH_MD5 SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 -# define SSL_TXT_RC2_128_CBC_WITH_MD5 SSL2_TXT_RC2_128_CBC_WITH_MD5 -# define SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 -# define SSL_TXT_IDEA_128_CBC_WITH_MD5 SSL2_TXT_IDEA_128_CBC_WITH_MD5 -# define SSL_TXT_DES_64_CBC_WITH_MD5 SSL2_TXT_DES_64_CBC_WITH_MD5 -# define SSL_TXT_DES_64_CBC_WITH_SHA SSL2_TXT_DES_64_CBC_WITH_SHA -# define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 -# define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA - -/* - * VRS Additional Kerberos5 entries - */ -# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA -# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA -# define SSL_TXT_KRB5_RC4_128_SHA SSL3_TXT_KRB5_RC4_128_SHA -# define SSL_TXT_KRB5_IDEA_128_CBC_SHA SSL3_TXT_KRB5_IDEA_128_CBC_SHA -# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 -# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 -# define SSL_TXT_KRB5_RC4_128_MD5 SSL3_TXT_KRB5_RC4_128_MD5 -# define SSL_TXT_KRB5_IDEA_128_CBC_MD5 SSL3_TXT_KRB5_IDEA_128_CBC_MD5 - -# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA -# define SSL_TXT_KRB5_RC2_40_CBC_SHA SSL3_TXT_KRB5_RC2_40_CBC_SHA -# define SSL_TXT_KRB5_RC4_40_SHA SSL3_TXT_KRB5_RC4_40_SHA -# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 -# define SSL_TXT_KRB5_RC2_40_CBC_MD5 SSL3_TXT_KRB5_RC2_40_CBC_MD5 -# define SSL_TXT_KRB5_RC4_40_MD5 SSL3_TXT_KRB5_RC4_40_MD5 - -# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA -# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 -# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA -# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 -# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA -# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 -# define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256 - # define SSL_MAX_SSL_SESSION_ID_LENGTH 32 # define SSL_MAX_SID_CTX_LENGTH 32 @@ -223,64 +78,63 @@ extern "C" { # define SSL_MAX_KEY_ARG_LENGTH 8 # define SSL_MAX_MASTER_KEY_LENGTH 48 +/* The maximum number of encrypt/decrypt pipelines we can support */ +# define SSL_MAX_PIPELINES 32 + +/* text strings for the ciphers */ + /* These are used to specify which ciphers to use and not to use */ -# define SSL_TXT_EXP40 "EXPORT40" -# define SSL_TXT_EXP56 "EXPORT56" # define SSL_TXT_LOW "LOW" # define SSL_TXT_MEDIUM "MEDIUM" # define SSL_TXT_HIGH "HIGH" # define SSL_TXT_FIPS "FIPS" -# define SSL_TXT_kFZA "kFZA"/* unused! */ -# define SSL_TXT_aFZA "aFZA"/* unused! */ -# define SSL_TXT_eFZA "eFZA"/* unused! */ -# define SSL_TXT_FZA "FZA"/* unused! */ - # define SSL_TXT_aNULL "aNULL" # define SSL_TXT_eNULL "eNULL" # define SSL_TXT_NULL "NULL" # define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr" -# define SSL_TXT_kDHd "kDHd" -# define SSL_TXT_kDH "kDH" -# define SSL_TXT_kEDH "kEDH" -# define SSL_TXT_kDHE "kDHE"/* alias for kEDH */ -# define SSL_TXT_kKRB5 "kKRB5" -# define SSL_TXT_kECDHr "kECDHr" -# define SSL_TXT_kECDHe "kECDHe" -# define SSL_TXT_kECDH "kECDH" -# define SSL_TXT_kEECDH "kEECDH" -# define SSL_TXT_kECDHE "kECDHE"/* alias for kEECDH */ +# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ +# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ +# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ +# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ +# define SSL_TXT_kDHE "kDHE" +# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ +# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ +# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ +# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ +# define SSL_TXT_kECDHE "kECDHE" # define SSL_TXT_kPSK "kPSK" +# define SSL_TXT_kRSAPSK "kRSAPSK" +# define SSL_TXT_kECDHEPSK "kECDHEPSK" +# define SSL_TXT_kDHEPSK "kDHEPSK" # define SSL_TXT_kGOST "kGOST" # define SSL_TXT_kSRP "kSRP" # define SSL_TXT_aRSA "aRSA" # define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH" -# define SSL_TXT_aECDH "aECDH" -# define SSL_TXT_aKRB5 "aKRB5" +# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ +# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ # define SSL_TXT_aECDSA "aECDSA" # define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST "aGOST" +# define SSL_TXT_aGOST94 "aGOST94" +# define SSL_TXT_aGOST01 "aGOST01" +# define SSL_TXT_aGOST12 "aGOST12" +# define SSL_TXT_aGOST "aGOST" # define SSL_TXT_aSRP "aSRP" # define SSL_TXT_DSS "DSS" # define SSL_TXT_DH "DH" -# define SSL_TXT_EDH "EDH"/* same as "kEDH:-ADH" */ -# define SSL_TXT_DHE "DHE"/* alias for EDH */ +# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ +# define SSL_TXT_EDH "EDH"/* alias for DHE */ # define SSL_TXT_ADH "ADH" # define SSL_TXT_RSA "RSA" # define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* same as "kEECDH:-AECDH" */ -# define SSL_TXT_ECDHE "ECDHE"/* alias for ECDHE" */ +# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ +# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ # define SSL_TXT_AECDH "AECDH" # define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_KRB5 "KRB5" # define SSL_TXT_PSK "PSK" # define SSL_TXT_SRP "SRP" @@ -294,27 +148,29 @@ extern "C" { # define SSL_TXT_AES256 "AES256" # define SSL_TXT_AES "AES" # define SSL_TXT_AES_GCM "AESGCM" +# define SSL_TXT_AES_CCM "AESCCM" +# define SSL_TXT_AES_CCM_8 "AESCCM8" # define SSL_TXT_CAMELLIA128 "CAMELLIA128" # define SSL_TXT_CAMELLIA256 "CAMELLIA256" # define SSL_TXT_CAMELLIA "CAMELLIA" +# define SSL_TXT_CHACHA20 "CHACHA20" +# define SSL_TXT_GOST "GOST89" # define SSL_TXT_MD5 "MD5" # define SSL_TXT_SHA1 "SHA1" # define SSL_TXT_SHA "SHA"/* same as "SHA1" */ # define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_GOST12 "GOST12" +# define SSL_TXT_GOST89MAC12 "GOST89MAC12" # define SSL_TXT_SHA256 "SHA256" # define SSL_TXT_SHA384 "SHA384" -# define SSL_TXT_SSLV2 "SSLv2" # define SSL_TXT_SSLV3 "SSLv3" # define SSL_TXT_TLSV1 "TLSv1" # define SSL_TXT_TLSV1_1 "TLSv1.1" # define SSL_TXT_TLSV1_2 "TLSv1.2" -# define SSL_TXT_EXP "EXP" -# define SSL_TXT_EXPORT "EXPORT" - # define SSL_TXT_ALL "ALL" /*- @@ -338,7 +194,7 @@ extern "C" { * The following cipher list is used by default. It also is substituted when * an application-defined cipher list string starts with 'DEFAULT'. */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2" +# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" /* * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always * starts with a reasonable order, and all we have to do for DEFAULT is @@ -358,10 +214,6 @@ extern "C" { extern "C" { #endif -# if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2) -# define OPENSSL_NO_SSL2 -# endif - # define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 # define SSL_FILETYPE_PEM X509_FILETYPE_PEM @@ -376,8 +228,10 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; +typedef struct ssl_comp_st SSL_COMP; -DECLARE_STACK_OF(SSL_CIPHER) +STACK_OF(SSL_CIPHER); +STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -385,7 +239,7 @@ typedef struct srtp_protection_profile_st { unsigned long id; } SRTP_PROTECTION_PROFILE; -DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE) +DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE) typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, const unsigned char *data, @@ -393,9 +247,7 @@ typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, int *secret_len, STACK_OF(SSL_CIPHER) *peer_ciphers, - SSL_CIPHER **cipher, void *arg); - -# ifndef OPENSSL_NO_TLSEXT + const SSL_CIPHER **cipher, void *arg); /* Typedefs for handling custom extensions */ @@ -410,300 +262,161 @@ typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, const unsigned char *in, size_t inlen, int *al, void *parse_arg); -# endif +/* Typedef for verification callback */ +typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); -# ifndef OPENSSL_NO_SSL_INTERN - -/* used to hold info on the particular ciphers used */ -struct ssl_cipher_st { - int valid; - const char *name; /* text name */ - unsigned long id; /* id, 4 bytes, first is version */ - /* - * changed in 0.9.9: these four used to be portions of a single value - * 'algorithms' - */ - unsigned long algorithm_mkey; /* key exchange algorithm */ - unsigned long algorithm_auth; /* server authentication */ - unsigned long algorithm_enc; /* symmetric encryption */ - unsigned long algorithm_mac; /* symmetric authentication */ - unsigned long algorithm_ssl; /* (major) protocol version */ - unsigned long algo_strength; /* strength and export flags */ - unsigned long algorithm2; /* Extra flags */ - int strength_bits; /* Number of bits really used */ - int alg_bits; /* Number of bits for algorithm */ -}; - -/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ -struct ssl_method_st { - int version; - int (*ssl_new) (SSL *s); - void (*ssl_clear) (SSL *s); - void (*ssl_free) (SSL *s); - int (*ssl_accept) (SSL *s); - int (*ssl_connect) (SSL *s); - int (*ssl_read) (SSL *s, void *buf, int len); - int (*ssl_peek) (SSL *s, void *buf, int len); - int (*ssl_write) (SSL *s, const void *buf, int len); - int (*ssl_shutdown) (SSL *s); - int (*ssl_renegotiate) (SSL *s); - int (*ssl_renegotiate_check) (SSL *s); - long (*ssl_get_message) (SSL *s, int st1, int stn, int mt, long - max, int *ok); - int (*ssl_read_bytes) (SSL *s, int type, unsigned char *buf, int len, - int peek); - int (*ssl_write_bytes) (SSL *s, int type, const void *buf_, int len); - int (*ssl_dispatch_alert) (SSL *s); - long (*ssl_ctrl) (SSL *s, int cmd, long larg, void *parg); - long (*ssl_ctx_ctrl) (SSL_CTX *ctx, int cmd, long larg, void *parg); - const SSL_CIPHER *(*get_cipher_by_char) (const unsigned char *ptr); - int (*put_cipher_by_char) (const SSL_CIPHER *cipher, unsigned char *ptr); - int (*ssl_pending) (const SSL *s); - int (*num_ciphers) (void); - const SSL_CIPHER *(*get_cipher) (unsigned ncipher); - const struct ssl_method_st *(*get_ssl_method) (int version); - long (*get_timeout) (void); - struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ - int (*ssl_version) (void); - long (*ssl_callback_ctrl) (SSL *s, int cb_id, void (*fp) (void)); - long (*ssl_ctx_callback_ctrl) (SSL_CTX *s, int cb_id, void (*fp) (void)); -}; - -/*- - * Lets make this into an ASN.1 type structure as follows - * SSL_SESSION_ID ::= SEQUENCE { - * version INTEGER, -- structure version number - * SSLversion INTEGER, -- SSL version number - * Cipher OCTET STRING, -- the 3 byte cipher ID - * Session_ID OCTET STRING, -- the Session ID - * Master_key OCTET STRING, -- the master key - * KRB5_principal OCTET STRING -- optional Kerberos principal - * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument - * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time - * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds - * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate - * Session_ID_context [ 4 ] EXPLICIT OCTET STRING, -- the Session ID context - * Verify_result [ 5 ] EXPLICIT INTEGER, -- X509_V_... code for `Peer' - * HostName [ 6 ] EXPLICIT OCTET STRING, -- optional HostName from servername TLS extension - * PSK_identity_hint [ 7 ] EXPLICIT OCTET STRING, -- optional PSK identity hint - * PSK_identity [ 8 ] EXPLICIT OCTET STRING, -- optional PSK identity - * Ticket_lifetime_hint [9] EXPLICIT INTEGER, -- server's lifetime hint for session ticket - * Ticket [10] EXPLICIT OCTET STRING, -- session ticket (clients only) - * Compression_meth [11] EXPLICIT OCTET STRING, -- optional compression method - * SRP_username [ 12 ] EXPLICIT OCTET STRING -- optional SRP username - * } - * Look in ssl/ssl_asn1.c for more details - * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). - */ -struct ssl_session_st { - int ssl_version; /* what ssl version session info is being - * kept in here? */ - /* only really used in SSLv2 */ - unsigned int key_arg_length; - unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; - int master_key_length; - unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; - /* session_id - valid? */ - unsigned int session_id_length; - unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH]; - /* - * this is used to determine whether the session is being reused in the - * appropriate context. It is up to the application to set this, via - * SSL_new - */ - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; -# ifndef OPENSSL_NO_KRB5 - unsigned int krb5_client_princ_len; - unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; -# endif /* OPENSSL_NO_KRB5 */ -# ifndef OPENSSL_NO_PSK - char *psk_identity_hint; - char *psk_identity; -# endif - /* - * Used to indicate that session resumption is not allowed. Applications - * can also set this bit for a new session via not_resumable_session_cb - * to disable session caching and tickets. - */ - int not_resumable; - /* The cert is the certificate used to establish this connection */ - struct sess_cert_st /* SESS_CERT */ *sess_cert; - /* - * This is the cert for the other end. On clients, it will be the same as - * sess_cert->peer_key->x509 (the latter is not enough as sess_cert is - * not retained in the external representation of sessions, see - * ssl_asn1.c). - */ - X509 *peer; - /* - * when app_verify_callback accepts a session where the peer's - * certificate is not ok, we must remember the error for session reuse: - */ - long verify_result; /* only for servers */ - int references; - long timeout; - long time; - unsigned int compress_meth; /* Need to lookup the method */ - const SSL_CIPHER *cipher; - unsigned long cipher_id; /* when ASN.1 loaded, this needs to be used - * to load the 'cipher' structure */ - STACK_OF(SSL_CIPHER) *ciphers; /* shared ciphers? */ - CRYPTO_EX_DATA ex_data; /* application specific data */ - /* - * These are used to make removal of session-ids more efficient and to - * implement a maximum cache size. - */ - struct ssl_session_st *prev, *next; -# ifndef OPENSSL_NO_TLSEXT - char *tlsext_hostname; -# ifndef OPENSSL_NO_EC - size_t tlsext_ecpointformatlist_length; - unsigned char *tlsext_ecpointformatlist; /* peer's list */ - size_t tlsext_ellipticcurvelist_length; - unsigned char *tlsext_ellipticcurvelist; /* peer's list */ -# endif /* OPENSSL_NO_EC */ - /* RFC4507 info */ - unsigned char *tlsext_tick; /* Session ticket */ - size_t tlsext_ticklen; /* Session ticket length */ - long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ -# endif -# ifndef OPENSSL_NO_SRP - char *srp_username; -# endif -}; - -# endif - -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L /* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004L -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L -# define SSL_OP_TLSEXT_PADDING 0x00000010L -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040L -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L -# define SSL_OP_TLS_D5_BUG 0x00000100L -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L - -/* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */ -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -/* Refers to ancient SSLREF and SSLv2, retained for compatibility */ -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 +# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U +# define SSL_OP_TLSEXT_PADDING 0x00000010U +# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U /* * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in * OpenSSL 0.9.6d. Usually (depending on the application protocol) the * workaround is not needed. Unfortunately some broken SSL/TLS * implementations cannot handle it at all, which is why we include it in - * SSL_OP_ALL. + * SSL_OP_ALL. Added in 0.9.6e */ -/* added in 0.9.6e */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L - -/* - * SSL_OP_ALL: various bug workarounds that should be rather harmless. This - * used to be 0x000FFFFFL before 0.9.7. - */ -# define SSL_OP_ALL 0x80000BFFL +# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U /* DTLS options */ -# define SSL_OP_NO_QUERY_MTU 0x00001000L +# define SSL_OP_NO_QUERY_MTU 0x00001000U /* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE 0x00002000L +# define SSL_OP_COOKIE_EXCHANGE 0x00002000U /* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET 0x00004000L -/* Use Cisco's "speshul" version of DTLS_BAD_VER (as client) */ -# define SSL_OP_CISCO_ANYCONNECT 0x00008000L +# define SSL_OP_NO_TICKET 0x00004000U +# ifndef OPENSSL_NO_DTLS1_METHOD +/* Use Cisco's "speshul" version of DTLS_BAD_VER + * (only with deprecated DTLSv1_client_method()) */ +# define SSL_OP_CISCO_ANYCONNECT 0x00008000U +# endif /* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L +# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U /* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION 0x00020000L +# define SSL_OP_NO_COMPRESSION 0x00020000U /* Permit unsafe legacy renegotiation */ -# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L -/* If set, always create a new key when using tmp_ecdh parameters */ -# define SSL_OP_SINGLE_ECDH_USE 0x00080000L -/* Does nothing: retained for compatibility */ -# define SSL_OP_SINGLE_DH_USE 0x00100000L -/* Does nothing: retained for compatibiity */ -# define SSL_OP_EPHEMERAL_RSA 0x0 +# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U +/* Disable encrypt-then-mac */ +# define SSL_OP_NO_ENCRYPT_THEN_MAC 0x00080000U /* * Set on servers to choose the cipher according to the server's preferences */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L +# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U /* * If set, a server will allow a client to issue a SSLv3.0 version number as * latest version supported in the premaster secret, even when TLSv1.0 * (version 3.1) was announced in the client hello. Normally this is * forbidden to prevent version rollback attacks. */ -# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L +# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U -# define SSL_OP_NO_SSLv2 0x01000000L -# define SSL_OP_NO_SSLv3 0x02000000L -# define SSL_OP_NO_TLSv1 0x04000000L -# define SSL_OP_NO_TLSv1_2 0x08000000L -# define SSL_OP_NO_TLSv1_1 0x10000000L +# define SSL_OP_NO_SSLv3 0x02000000U +# define SSL_OP_NO_TLSv1 0x04000000U +# define SSL_OP_NO_TLSv1_2 0x08000000U +# define SSL_OP_NO_TLSv1_1 0x10000000U -# define SSL_OP_NO_DTLSv1 0x04000000L -# define SSL_OP_NO_DTLSv1_2 0x08000000L +# define SSL_OP_NO_DTLSv1 0x04000000U +# define SSL_OP_NO_DTLSv1_2 0x08000000U -# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|\ +# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\ SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) +# define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) -/* - * These next two were never actually used for anything since SSLeay zap so - * we have some more flags. - */ -/* - * The next flag deliberately changes the ciphertest, this is a check for the - * PKCS#1 attack - */ -# define SSL_OP_PKCS1_CHECK_1 0x0 -# define SSL_OP_PKCS1_CHECK_2 0x0 +/* Disallow all renegotiation */ +# define SSL_OP_NO_RENEGOTIATION 0x40000000U -# define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L -# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L /* * Make server add server-hello extension from early version of cryptopro * draft, when GOST ciphersuite is negotiated. Required for interoperability * with CryptoPro CSP 3.x */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000L +# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U + +/* + * SSL_OP_ALL: various bug workarounds that should be rather harmless. + * This used to be 0x000FFFFFL before 0.9.7. + * This used to be 0x80000BFFU before 1.1.1. + */ +# define SSL_OP_ALL (SSL_OP_CRYPTOPRO_TLSEXT_BUG|\ + SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS|\ + SSL_OP_LEGACY_SERVER_CONNECT|\ + SSL_OP_TLSEXT_PADDING|\ + SSL_OP_SAFARI_ECDHE_ECDSA_BUG) + +/* OBSOLETE OPTIONS: retained for compatibility */ + +/* Removed from OpenSSL 1.1.0. Was 0x00000001L */ +/* Related to removed SSLv2. */ +# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000002L */ +/* Related to removed SSLv2. */ +# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 +/* Removed from OpenSSL 0.9.8q and 1.0.0c. Was 0x00000008L */ +/* Dead forever, see CVE-2010-4180 */ +# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 +/* Removed from OpenSSL 1.0.1h and 1.0.2. Was 0x00000010L */ +/* Refers to ancient SSLREF and SSLv2. */ +# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000020 */ +# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 +/* Removed from OpenSSL 0.9.7h and 0.9.8b. Was 0x00000040L */ +# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000080 */ +/* Ancient SSLeay version. */ +# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000100L */ +# define SSL_OP_TLS_D5_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000200L */ +# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00080000L */ +# define SSL_OP_SINGLE_ECDH_USE 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00100000L */ +# define SSL_OP_SINGLE_DH_USE 0x0 +/* Removed from OpenSSL 1.0.1k and 1.0.2. Was 0x00200000L */ +# define SSL_OP_EPHEMERAL_RSA 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x01000000L */ +# define SSL_OP_NO_SSLv2 0x0 +/* Removed from OpenSSL 1.0.1. Was 0x08000000L */ +# define SSL_OP_PKCS1_CHECK_1 0x0 +/* Removed from OpenSSL 1.0.1. Was 0x10000000L */ +# define SSL_OP_PKCS1_CHECK_2 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ +# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x40000000L */ +# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 /* * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success * when just a single record has been written): */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L +# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U /* * Make it possible to retry SSL_write() with changed buffer location (buffer * contents must stay the same!); this is not the default to avoid the * misconception that non-blocking SSL_write() behaves like non-blocking * write(): */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002L +# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U /* * Never bother the application with retries if the transport is blocking: */ -# define SSL_MODE_AUTO_RETRY 0x00000004L +# define SSL_MODE_AUTO_RETRY 0x00000004U /* Don't attempt to automatically build certificate chain */ -# define SSL_MODE_NO_AUTO_CHAIN 0x00000008L +# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U /* * Save RAM by releasing read and write buffers when they're empty. (SSL3 and * TLS only.) "Released" buffers are put onto a free-list in the context or * just freed (depending on the context's setting for freelist_max_len). */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010L +# define SSL_MODE_RELEASE_BUFFERS 0x00000010U /* * Send the current time in the Random fields of the ClientHello and * ServerHello records for compatibility with hypothetical implementations * that require it. */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L +# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U +# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U /* * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications * that reconnect with a downgraded protocol version; see @@ -712,14 +425,18 @@ struct ssl_session_st { * fallback retries, following the guidance in * draft-ietf-tls-downgrade-scsv-00. */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L +# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U +/* + * Support Asynchronous operation + */ +# define SSL_MODE_ASYNC 0x00000100U /* Cert related flags */ /* * Many implementations ignore some aspects of the TLS standards such as - * enforcing certifcate chain algorithms. When this is set we enforce them. + * enforcing certificate chain algorithms. When this is set we enforce them. */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001L +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U /* Suite B modes, takes same values as certificate verify flags */ # define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 @@ -771,29 +488,25 @@ struct ssl_session_st { # define SSL_CONF_FLAG_SERVER 0x8 # define SSL_CONF_FLAG_SHOW_ERRORS 0x10 # define SSL_CONF_FLAG_CERTIFICATE 0x20 +# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 /* Configuration value types */ # define SSL_CONF_TYPE_UNKNOWN 0x0 # define SSL_CONF_TYPE_STRING 0x1 # define SSL_CONF_TYPE_FILE 0x2 # define SSL_CONF_TYPE_DIR 0x3 +# define SSL_CONF_TYPE_NONE 0x4 /* * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they * cannot be used to clear bits. */ -# define SSL_CTX_set_options(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) -# define SSL_CTX_clear_options(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) -# define SSL_CTX_get_options(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL) -# define SSL_set_options(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL) -# define SSL_clear_options(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) -# define SSL_get_options(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL) +unsigned long SSL_CTX_get_options(const SSL_CTX *ctx); +unsigned long SSL_get_options(const SSL* s); +unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op); +unsigned long SSL_clear_options(SSL *s, unsigned long op); +unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op); +unsigned long SSL_set_options(SSL *s, unsigned long op); # define SSL_CTX_set_mode(ctx,op) \ SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) @@ -819,7 +532,7 @@ struct ssl_session_st { # ifndef OPENSSL_NO_HEARTBEATS # define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) + SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL) # endif # define SSL_CTX_set_cert_flags(ctx,op) \ @@ -842,48 +555,23 @@ void SSL_set_msg_callback(SSL *ssl, # define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) # define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) +# define SSL_get_extms_support(s) \ + SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) + # ifndef OPENSSL_NO_SRP -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct srp_ctx_st { - /* param for all the callbacks */ - void *SRP_cb_arg; - /* set client Hello login callback */ - int (*TLS_ext_srp_username_callback) (SSL *, int *, void *); - /* set SRP N/g param callback for verification */ - int (*SRP_verify_param_callback) (SSL *, void *); - /* set SRP client passwd callback */ - char *(*SRP_give_srp_client_pwd_callback) (SSL *, void *); - char *login; - BIGNUM *N, *g, *s, *B, *A; - BIGNUM *a, *b, *v; - char *info; - int strength; - unsigned long srp_Mask; -} SRP_CTX; - -# endif - /* see tls_srp.c */ -int SSL_SRP_CTX_init(SSL *s); -int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); +__owur int SSL_SRP_CTX_init(SSL *s); +__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); int SSL_SRP_CTX_free(SSL *ctx); int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -int SSL_srp_server_param_with_username(SSL *s, int *ad); -int SRP_generate_server_master_secret(SSL *s, unsigned char *master_key); -int SRP_Calc_A_param(SSL *s); -int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key); +__owur int SSL_srp_server_param_with_username(SSL *s, int *ad); +__owur int SRP_Calc_A_param(SSL *s); # endif -# if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) -# define SSL_MAX_CERT_LIST_DEFAULT 1024*30 - /* 30k max cert list :-) */ -# else -# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 - /* 100k max cert list :-) */ -# endif +/* 100k max cert list */ +# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 # define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) @@ -895,296 +583,13 @@ int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key); * otherwise the SSL handshake will fail with an error - callbacks can do * this using the 'ssl' value they're passed by; * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv2 this is 16 - * bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback can alter this - * length to be less if desired, but under SSLv2 session IDs are supposed to - * be fixed at 16 bytes so the id will be padded after the callback returns - * in this case. It is also an error for the callback to set the size to - * zero. + * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 + * bytes. The callback can alter this length to be less if desired. It is + * also an error for the callback to set the size to zero. */ typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id, unsigned int *id_len); -typedef struct ssl_comp_st SSL_COMP; - -# ifndef OPENSSL_NO_SSL_INTERN - -struct ssl_comp_st { - int id; - const char *name; -# ifndef OPENSSL_NO_COMP - COMP_METHOD *method; -# else - char *method; -# endif -}; - -DECLARE_STACK_OF(SSL_COMP) -DECLARE_LHASH_OF(SSL_SESSION); - -struct ssl_ctx_st { - const SSL_METHOD *method; - STACK_OF(SSL_CIPHER) *cipher_list; - /* same as above but sorted for lookup */ - STACK_OF(SSL_CIPHER) *cipher_list_by_id; - struct x509_store_st /* X509_STORE */ *cert_store; - LHASH_OF(SSL_SESSION) *sessions; - /* - * Most session-ids that will be cached, default is - * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. - */ - unsigned long session_cache_size; - struct ssl_session_st *session_cache_head; - struct ssl_session_st *session_cache_tail; - /* - * This can have one of 2 values, ored together, SSL_SESS_CACHE_CLIENT, - * SSL_SESS_CACHE_SERVER, Default is SSL_SESSION_CACHE_SERVER, which - * means only SSL_accept which cache SSL_SESSIONS. - */ - int session_cache_mode; - /* - * If timeout is not 0, it is the default timeout value set when - * SSL_new() is called. This has been put in to make life easier to set - * things up - */ - long session_timeout; - /* - * If this callback is not null, it will be called each time a session id - * is added to the cache. If this function returns 1, it means that the - * callback will do a SSL_SESSION_free() when it has finished using it. - * Otherwise, on 0, it means the callback has finished with it. If - * remove_session_cb is not null, it will be called when a session-id is - * removed from the cache. After the call, OpenSSL will - * SSL_SESSION_free() it. - */ - int (*new_session_cb) (struct ssl_st *ssl, SSL_SESSION *sess); - void (*remove_session_cb) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); - SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, - unsigned char *data, int len, int *copy); - struct { - int sess_connect; /* SSL new conn - started */ - int sess_connect_renegotiate; /* SSL reneg - requested */ - int sess_connect_good; /* SSL new conne/reneg - finished */ - int sess_accept; /* SSL new accept - started */ - int sess_accept_renegotiate; /* SSL reneg - requested */ - int sess_accept_good; /* SSL accept/reneg - finished */ - int sess_miss; /* session lookup misses */ - int sess_timeout; /* reuse attempt on timeouted session */ - int sess_cache_full; /* session removed due to full cache */ - int sess_hit; /* session reuse actually done */ - int sess_cb_hit; /* session-id that was not in the cache was - * passed back via the callback. This - * indicates that the application is - * supplying session-id's from other - * processes - spooky :-) */ - } stats; - - int references; - - /* if defined, these override the X509_verify_cert() calls */ - int (*app_verify_callback) (X509_STORE_CTX *, void *); - void *app_verify_arg; - /* - * before OpenSSL 0.9.7, 'app_verify_arg' was ignored - * ('app_verify_callback' was called with just one argument) - */ - - /* Default password callback. */ - pem_password_cb *default_passwd_callback; - - /* Default password callback user data. */ - void *default_passwd_callback_userdata; - - /* get client cert callback */ - int (*client_cert_cb) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); - - /* cookie generate callback */ - int (*app_gen_cookie_cb) (SSL *ssl, unsigned char *cookie, - unsigned int *cookie_len); - - /* verify cookie callback */ - int (*app_verify_cookie_cb) (SSL *ssl, unsigned char *cookie, - unsigned int cookie_len); - - CRYPTO_EX_DATA ex_data; - - const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ - const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ - const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ - - STACK_OF(X509) *extra_certs; - STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ - - /* Default values used when no per-SSL value is defined follow */ - - /* used if SSL's info_callback is NULL */ - void (*info_callback) (const SSL *ssl, int type, int val); - - /* what we put in client cert requests */ - STACK_OF(X509_NAME) *client_CA; - - /* - * Default values to use in SSL structures follow (these are copied by - * SSL_new) - */ - - unsigned long options; - unsigned long mode; - long max_cert_list; - - struct cert_st /* CERT */ *cert; - int read_ahead; - - /* callback that allows applications to peek at protocol messages */ - void (*msg_callback) (int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); - void *msg_callback_arg; - - int verify_mode; - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; - /* called 'verify_callback' in the SSL */ - int (*default_verify_callback) (int ok, X509_STORE_CTX *ctx); - - /* Default generate session ID callback. */ - GEN_SESSION_CB generate_session_id; - - X509_VERIFY_PARAM *param; - -# if 0 - int purpose; /* Purpose setting */ - int trust; /* Trust setting */ -# endif - - int quiet_shutdown; - - /* - * Maximum amount of data to send in one fragment. actual record size can - * be more than this due to padding and MAC overheads. - */ - unsigned int max_send_fragment; - -# ifndef OPENSSL_NO_ENGINE - /* - * Engine to pass requests for client certs to - */ - ENGINE *client_cert_engine; -# endif - -# ifndef OPENSSL_NO_TLSEXT - /* TLS extensions servername callback */ - int (*tlsext_servername_callback) (SSL *, int *, void *); - void *tlsext_servername_arg; - /* RFC 4507 session ticket keys */ - unsigned char tlsext_tick_key_name[16]; - unsigned char tlsext_tick_hmac_key[16]; - unsigned char tlsext_tick_aes_key[16]; - /* Callback to support customisation of ticket key setting */ - int (*tlsext_ticket_key_cb) (SSL *ssl, - unsigned char *name, unsigned char *iv, - EVP_CIPHER_CTX *ectx, - HMAC_CTX *hctx, int enc); - - /* certificate status request info */ - /* Callback for status request */ - int (*tlsext_status_cb) (SSL *ssl, void *arg); - void *tlsext_status_arg; - - /* draft-rescorla-tls-opaque-prf-input-00.txt information */ - int (*tlsext_opaque_prf_input_callback) (SSL *, void *peerinput, - size_t len, void *arg); - void *tlsext_opaque_prf_input_callback_arg; -# endif - -# ifndef OPENSSL_NO_PSK - char *psk_identity_hint; - unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); - unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -# endif - -# ifndef OPENSSL_NO_BUF_FREELISTS -# define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 - unsigned int freelist_max_len; - struct ssl3_buf_freelist_st *wbuf_freelist; - struct ssl3_buf_freelist_st *rbuf_freelist; -# endif -# ifndef OPENSSL_NO_SRP - SRP_CTX srp_ctx; /* ctx for SRP authentication */ -# endif - -# ifndef OPENSSL_NO_TLSEXT - -# ifndef OPENSSL_NO_NEXTPROTONEG - /* Next protocol negotiation information */ - /* (for experimental NPN extension). */ - - /* - * For a server, this contains a callback function by which the set of - * advertised protocols can be provided. - */ - int (*next_protos_advertised_cb) (SSL *s, const unsigned char **buf, - unsigned int *len, void *arg); - void *next_protos_advertised_cb_arg; - /* - * For a client, this contains a callback function that selects the next - * protocol from the list provided by the server. - */ - int (*next_proto_select_cb) (SSL *s, unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, void *arg); - void *next_proto_select_cb_arg; -# endif - /* SRTP profiles we are willing to do from RFC 5764 */ - STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; - - /* - * ALPN information (we are in the process of transitioning from NPN to - * ALPN.) - */ - - /*- - * For a server, this contains a callback function that allows the - * server to select the protocol for the connection. - * out: on successful return, this must point to the raw protocol - * name (without the length prefix). - * outlen: on successful return, this contains the length of |*out|. - * in: points to the client's list of supported protocols in - * wire-format. - * inlen: the length of |in|. - */ - int (*alpn_select_cb) (SSL *s, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, void *arg); - void *alpn_select_cb_arg; - - /* - * For a client, this contains the list of supported protocols in wire - * format. - */ - unsigned char *alpn_client_proto_list; - unsigned alpn_client_proto_list_len; - -# ifndef OPENSSL_NO_EC - /* EC extension values inherited by SSL structure */ - size_t tlsext_ecpointformatlist_length; - unsigned char *tlsext_ecpointformatlist; - size_t tlsext_ellipticcurvelist_length; - unsigned char *tlsext_ellipticcurvelist; -# endif /* OPENSSL_NO_EC */ -# endif -}; - -# endif - # define SSL_SESS_CACHE_OFF 0x0000 # define SSL_SESS_CACHE_CLIENT 0x0001 # define SSL_SESS_CACHE_SERVER 0x0002 @@ -1237,11 +642,11 @@ void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, - unsigned char + const unsigned char *data, int len, int *copy)); SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - unsigned char *Data, + const unsigned char *data, int len, int *copy); void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb) (const SSL *ssl, int type, @@ -1254,7 +659,7 @@ void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); # ifndef OPENSSL_NO_ENGINE -int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); +__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); # endif void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int (*app_gen_cookie_cb) (SSL *ssl, @@ -1264,7 +669,7 @@ void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, *cookie_len)); void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb) (SSL *ssl, - unsigned char + const unsigned char *cookie, unsigned int cookie_len)); @@ -1286,21 +691,19 @@ void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len); # endif -# ifndef OPENSSL_NO_TLSEXT -int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, +__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len); -# endif # define OPENSSL_NPN_UNSUPPORTED 0 # define OPENSSL_NPN_NEGOTIATED 1 # define OPENSSL_NPN_NO_OVERLAP 2 -int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, - unsigned protos_len); -int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, - unsigned protos_len); +__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned int protos_len); +__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned int protos_len); void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, int (*cb) (SSL *ssl, const unsigned char **out, @@ -1309,7 +712,7 @@ void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, unsigned int inlen, void *arg), void *arg); void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, - unsigned *len); + unsigned int *len); # ifndef OPENSSL_NO_PSK /* @@ -1376,319 +779,51 @@ void SSL_set_psk_server_callback(SSL *ssl, unsigned int max_psk_len)); -int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); -int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); +__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); +__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); const char *SSL_get_psk_identity_hint(const SSL *s); const char *SSL_get_psk_identity(const SSL *s); # endif -# ifndef OPENSSL_NO_TLSEXT /* Register callbacks to handle custom TLS Extensions for client or server. */ -int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, +__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, + unsigned int ext_type); + +__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); -int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, +__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg); -int SSL_extension_supported(unsigned int ext_type); +__owur int SSL_extension_supported(unsigned int ext_type); -# endif - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# define SSL_X509_LOOKUP 4 +# define SSL_NOTHING 1 +# define SSL_WRITING 2 +# define SSL_READING 3 +# define SSL_X509_LOOKUP 4 +# define SSL_ASYNC_PAUSED 5 +# define SSL_ASYNC_NO_JOBS 6 /* These will only be used when doing non-blocking IO */ # define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) # define SSL_want_read(s) (SSL_want(s) == SSL_READING) # define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) # define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) +# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) +# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) # define SSL_MAC_FLAG_READ_MAC_STREAM 1 # define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 -# ifndef OPENSSL_NO_SSL_INTERN - -struct ssl_st { - /* - * protocol version (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, - * DTLS1_VERSION) - */ - int version; - /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ - int type; - /* SSLv3 */ - const SSL_METHOD *method; - /* - * There are 2 BIO's even though they are normally both the same. This - * is so data can be read and written to different handlers - */ -# ifndef OPENSSL_NO_BIO - /* used by SSL_read */ - BIO *rbio; - /* used by SSL_write */ - BIO *wbio; - /* used during session-id reuse to concatenate messages */ - BIO *bbio; -# else - /* used by SSL_read */ - char *rbio; - /* used by SSL_write */ - char *wbio; - char *bbio; -# endif - /* - * This holds a variable that indicates what we were doing when a 0 or -1 - * is returned. This is needed for non-blocking IO so we know what - * request needs re-doing when in SSL_accept or SSL_connect - */ - int rwstate; - /* true when we are actually in SSL_accept() or SSL_connect() */ - int in_handshake; - int (*handshake_func) (SSL *); - /* - * Imagine that here's a boolean member "init" that is switched as soon - * as SSL_set_{accept/connect}_state is called for the first time, so - * that "state" and "handshake_func" are properly initialized. But as - * handshake_func is == 0 until then, we use this test instead of an - * "init" member. - */ - /* are we the server side? - mostly used by SSL_clear */ - int server; - /* - * Generate a new session or reuse an old one. - * NB: For servers, the 'new' session may actually be a previously - * cached session or even the previous session unless - * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set - */ - int new_session; - /* don't send shutdown packets */ - int quiet_shutdown; - /* we have shut things down, 0x01 sent, 0x02 for received */ - int shutdown; - /* where we are */ - int state; - /* where we are when reading */ - int rstate; - BUF_MEM *init_buf; /* buffer used during init */ - void *init_msg; /* pointer to handshake message body, set by - * ssl3_get_message() */ - int init_num; /* amount read/written */ - int init_off; /* amount read/written */ - /* used internally to point at a raw packet */ - unsigned char *packet; - unsigned int packet_length; - struct ssl2_state_st *s2; /* SSLv2 variables */ - struct ssl3_state_st *s3; /* SSLv3 variables */ - struct dtls1_state_st *d1; /* DTLSv1 variables */ - int read_ahead; /* Read as many input bytes as possible (for - * non-blocking reads) */ - /* callback that allows applications to peek at protocol messages */ - void (*msg_callback) (int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); - void *msg_callback_arg; - int hit; /* reusing a previous session */ - X509_VERIFY_PARAM *param; -# if 0 - int purpose; /* Purpose setting */ - int trust; /* Trust setting */ -# endif - /* crypto */ - STACK_OF(SSL_CIPHER) *cipher_list; - STACK_OF(SSL_CIPHER) *cipher_list_by_id; - /* - * These are the ones being used, the ones in SSL_SESSION are the ones to - * be 'copied' into these ones - */ - int mac_flags; - EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ - EVP_MD_CTX *read_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *expand; /* uncompress */ -# else - char *expand; -# endif - EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ - EVP_MD_CTX *write_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *compress; /* compression */ -# else - char *compress; -# endif - /* session info */ - /* client cert? */ - /* This is used to hold the server certificate used */ - struct cert_st /* CERT */ *cert; - /* - * the session_id_context is used to ensure sessions are only reused in - * the appropriate context - */ - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; - /* This can also be in the session once a session is established */ - SSL_SESSION *session; - /* Default generate session ID callback. */ - GEN_SESSION_CB generate_session_id; - /* Used in SSL2 and SSL3 */ - /* - * 0 don't care about verify failure. - * 1 fail if verify fails - */ - int verify_mode; - /* fail if callback returns 0 */ - int (*verify_callback) (int ok, X509_STORE_CTX *ctx); - /* optional informational callback */ - void (*info_callback) (const SSL *ssl, int type, int val); - /* error bytes to be written */ - int error; - /* actual code */ - int error_code; -# ifndef OPENSSL_NO_KRB5 - /* Kerberos 5 context */ - KSSL_CTX *kssl_ctx; -# endif /* OPENSSL_NO_KRB5 */ -# ifndef OPENSSL_NO_PSK - unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); - unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -# endif - SSL_CTX *ctx; - /* - * set this flag to 1 and a sleep(1) is put into all SSL_read() and - * SSL_write() calls, good for nbio debuging :-) - */ - int debug; - /* extra application data */ - long verify_result; - CRYPTO_EX_DATA ex_data; - /* for server side, keep the list of CA_dn we can use */ - STACK_OF(X509_NAME) *client_CA; - int references; - /* protocol behaviour */ - unsigned long options; - /* API behaviour */ - unsigned long mode; - long max_cert_list; - int first_packet; - /* what was passed, used for SSLv3/TLS rollback check */ - int client_version; - unsigned int max_send_fragment; -# ifndef OPENSSL_NO_TLSEXT - /* TLS extension debug callback */ - void (*tlsext_debug_cb) (SSL *s, int client_server, int type, - unsigned char *data, int len, void *arg); - void *tlsext_debug_arg; - char *tlsext_hostname; - /*- - * no further mod of servername - * 0 : call the servername extension callback. - * 1 : prepare 2, allow last ack just after in server callback. - * 2 : don't call servername callback, no ack in server hello - */ - int servername_done; - /* certificate status request info */ - /* Status type or -1 if no status type */ - int tlsext_status_type; - /* Expect OCSP CertificateStatus message */ - int tlsext_status_expected; - /* OCSP status request only */ - STACK_OF(OCSP_RESPID) *tlsext_ocsp_ids; - X509_EXTENSIONS *tlsext_ocsp_exts; - /* OCSP response received or to be sent */ - unsigned char *tlsext_ocsp_resp; - int tlsext_ocsp_resplen; - /* RFC4507 session ticket expected to be received or sent */ - int tlsext_ticket_expected; -# ifndef OPENSSL_NO_EC - size_t tlsext_ecpointformatlist_length; - /* our list */ - unsigned char *tlsext_ecpointformatlist; - size_t tlsext_ellipticcurvelist_length; - /* our list */ - unsigned char *tlsext_ellipticcurvelist; -# endif /* OPENSSL_NO_EC */ - /* - * draft-rescorla-tls-opaque-prf-input-00.txt information to be used for - * handshakes - */ - void *tlsext_opaque_prf_input; - size_t tlsext_opaque_prf_input_len; - /* TLS Session Ticket extension override */ - TLS_SESSION_TICKET_EXT *tlsext_session_ticket; - /* TLS Session Ticket extension callback */ - tls_session_ticket_ext_cb_fn tls_session_ticket_ext_cb; - void *tls_session_ticket_ext_cb_arg; - /* TLS pre-shared secret session resumption */ - tls_session_secret_cb_fn tls_session_secret_cb; - void *tls_session_secret_cb_arg; - SSL_CTX *initial_ctx; /* initial ctx, used to store sessions */ -# ifndef OPENSSL_NO_NEXTPROTONEG - /* - * Next protocol negotiation. For the client, this is the protocol that - * we sent in NextProtocol and is set when handling ServerHello - * extensions. For a server, this is the client's selected_protocol from - * NextProtocol and is set when handling the NextProtocol message, before - * the Finished message. - */ - unsigned char *next_proto_negotiated; - unsigned char next_proto_negotiated_len; -# endif -# define session_ctx initial_ctx - /* What we'll do */ - STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; - /* What's been chosen */ - SRTP_PROTECTION_PROFILE *srtp_profile; - /*- - * Is use of the Heartbeat extension negotiated? - * 0: disabled - * 1: enabled - * 2: enabled, but not allowed to send Requests - */ - unsigned int tlsext_heartbeat; - /* Indicates if a HeartbeatRequest is in flight */ - unsigned int tlsext_hb_pending; - /* HeartbeatRequest sequence number */ - unsigned int tlsext_hb_seq; -# else -# define session_ctx ctx -# endif /* OPENSSL_NO_TLSEXT */ - /*- - * 1 if we are renegotiating. - * 2 if we are a server and are inside a handshake - * (i.e. not just sending a HelloRequest) - */ - int renegotiate; -# ifndef OPENSSL_NO_SRP - /* ctx for SRP authentication */ - SRP_CTX srp_ctx; -# endif -# ifndef OPENSSL_NO_TLSEXT - /* - * For a client, this contains the list of supported protocols in wire - * format. - */ - unsigned char *alpn_client_proto_list; - unsigned alpn_client_proto_list_len; -# endif /* OPENSSL_NO_TLSEXT */ -}; - -# endif - #ifdef __cplusplus } #endif @@ -1697,13 +832,19 @@ struct ssl_st { # include # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ -# include # include /* Support for the use_srtp extension */ #ifdef __cplusplus extern "C" { #endif +/* + * These need to be after the above set of includes due to a compiler bug + * in VisualStudio 2015 + */ +DEFINE_STACK_OF_CONST(SSL_CIPHER) +DEFINE_STACK_OF(SSL_COMP) + /* compatibility */ # define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) # define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) @@ -1711,23 +852,73 @@ extern "C" { # define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) # define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) # define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) +DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug)) + /* - * The following are the possible values for ssl->state are are used to - * indicate where we are up to in the SSL connection establishment. The - * macros that follow are about the only things you should need to use and - * even then, only when using non-blocking IO. It can also be useful to work - * out where you were when the connection failed + * The valid handshake states (one for each type message sent and one for each + * type of message received). There are also two "special" states: + * TLS = TLS or DTLS state + * DTLS = DTLS specific state + * CR/SR = Client Read/Server Read + * CW/SW = Client Write/Server Write + * + * The "special" states are: + * TLS_ST_BEFORE = No handshake has been initiated yet + * TLS_ST_OK = A handshake has been successfully completed + */ +typedef enum { + TLS_ST_BEFORE, + TLS_ST_OK, + DTLS_ST_CR_HELLO_VERIFY_REQUEST, + TLS_ST_CR_SRVR_HELLO, + TLS_ST_CR_CERT, + TLS_ST_CR_CERT_STATUS, + TLS_ST_CR_KEY_EXCH, + TLS_ST_CR_CERT_REQ, + TLS_ST_CR_SRVR_DONE, + TLS_ST_CR_SESSION_TICKET, + TLS_ST_CR_CHANGE, + TLS_ST_CR_FINISHED, + TLS_ST_CW_CLNT_HELLO, + TLS_ST_CW_CERT, + TLS_ST_CW_KEY_EXCH, + TLS_ST_CW_CERT_VRFY, + TLS_ST_CW_CHANGE, + TLS_ST_CW_NEXT_PROTO, + TLS_ST_CW_FINISHED, + TLS_ST_SW_HELLO_REQ, + TLS_ST_SR_CLNT_HELLO, + DTLS_ST_SW_HELLO_VERIFY_REQUEST, + TLS_ST_SW_SRVR_HELLO, + TLS_ST_SW_CERT, + TLS_ST_SW_KEY_EXCH, + TLS_ST_SW_CERT_REQ, + TLS_ST_SW_SRVR_DONE, + TLS_ST_SR_CERT, + TLS_ST_SR_KEY_EXCH, + TLS_ST_SR_CERT_VRFY, + TLS_ST_SR_NEXT_PROTO, + TLS_ST_SR_CHANGE, + TLS_ST_SR_FINISHED, + TLS_ST_SW_SESSION_TICKET, + TLS_ST_SW_CERT_STATUS, + TLS_ST_SW_CHANGE, + TLS_ST_SW_FINISHED +} OSSL_HANDSHAKE_STATE; + +/* + * Most of the following state values are no longer used and are defined to be + * the closest equivalent value in the current state machine code. Not all + * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT + * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, + * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. */ # define SSL_ST_CONNECT 0x1000 # define SSL_ST_ACCEPT 0x2000 + # define SSL_ST_MASK 0x0FFF -# define SSL_ST_INIT (SSL_ST_CONNECT|SSL_ST_ACCEPT) -# define SSL_ST_BEFORE 0x4000 -# define SSL_ST_OK 0x03 -# define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT) -# define SSL_ST_ERR (0x05|SSL_ST_INIT) # define SSL_CB_LOOP 0x01 # define SSL_CB_EXIT 0x02 @@ -1744,16 +935,15 @@ extern "C" { # define SSL_CB_HANDSHAKE_DONE 0x20 /* Is the SSL_connection established? */ -# define SSL_get_state(a) SSL_state(a) -# define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK) -# define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT) -# define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE) -# define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT) -# define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT) +# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) +# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) +int SSL_in_init(SSL *s); +int SSL_in_before(SSL *s); +int SSL_is_init_finished(SSL *s); /* - * The following 2 states are kept in ssl->rstate when reads fail, you should - * not need these + * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you + * should not need these */ # define SSL_ST_READ_HEADER 0xF0 # define SSL_ST_READ_BODY 0xF1 @@ -1778,16 +968,10 @@ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); # define SSL_VERIFY_CLIENT_ONCE 0x04 # define OpenSSL_add_ssl_algorithms() SSL_library_init() -# define SSLeay_add_ssl_algorithms() SSL_library_init() - -/* this is for backward compatibility */ -# if 0 /* NEW_SSLEAY */ -# define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) -# define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) -# define SSL_add_session(a,b) SSL_CTX_add_session((a),(b)) -# define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) -# define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSLeay_add_ssl_algorithms() SSL_library_init() # endif + /* More backward compatibility */ # define SSL_get_cipher(s) \ SSL_CIPHER_get_name(SSL_get_current_cipher(s)) @@ -1855,6 +1039,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY /* fatal */ # define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK +# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL # define SSL_ERROR_NONE 0 # define SSL_ERROR_SSL 1 # define SSL_ERROR_WANT_READ 2 @@ -1865,14 +1050,11 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_ERROR_ZERO_RETURN 6 # define SSL_ERROR_WANT_CONNECT 7 # define SSL_ERROR_WANT_ACCEPT 8 -# define SSL_CTRL_NEED_TMP_RSA 1 -# define SSL_CTRL_SET_TMP_RSA 2 +# define SSL_ERROR_WANT_ASYNC 9 +# define SSL_ERROR_WANT_ASYNC_JOB 10 # define SSL_CTRL_SET_TMP_DH 3 # define SSL_CTRL_SET_TMP_ECDH 4 -# define SSL_CTRL_SET_TMP_RSA_CB 5 # define SSL_CTRL_SET_TMP_DH_CB 6 -# define SSL_CTRL_SET_TMP_ECDH_CB 7 -# define SSL_CTRL_GET_SESSION_REUSED 8 # define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 # define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 # define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 @@ -1896,7 +1078,6 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_SESS_MISSES 29 # define SSL_CTRL_SESS_TIMEOUTS 30 # define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_OPTIONS 32 # define SSL_CTRL_MODE 33 # define SSL_CTRL_GET_READ_AHEAD 40 # define SSL_CTRL_SET_READ_AHEAD 41 @@ -1908,46 +1089,43 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_SET_MAX_CERT_LIST 51 # define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 /* see tls1.h for macros based on these */ -# ifndef OPENSSL_NO_TLSEXT -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT 85 -# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING 86 -# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS 87 -# endif -# endif /* OPENSSL_NO_TLSEXT */ +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 +# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 +# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 +# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 +# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 +# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 +# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 +# define SSL_CTRL_SET_SRP_ARG 78 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 +# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 +# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85 +# define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86 +# define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87 +# endif # define DTLS_CTRL_GET_TIMEOUT 73 # define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define DTLS_CTRL_LISTEN 75 # define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_OPTIONS 77 # define SSL_CTRL_CLEAR_MODE 78 +# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 # define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 # define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 # define SSL_CTRL_CHAIN 88 @@ -1956,7 +1134,6 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_SET_CURVES 91 # define SSL_CTRL_SET_CURVES_LIST 92 # define SSL_CTRL_GET_SHARED_CURVE 93 -# define SSL_CTRL_SET_ECDH_AUTO 94 # define SSL_CTRL_SET_SIGALGS 97 # define SSL_CTRL_SET_SIGALGS_LIST 98 # define SSL_CTRL_CERT_FLAGS 99 @@ -1975,9 +1152,19 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_CHAIN_CERTS 115 # define SSL_CTRL_SELECT_CURRENT_CERT 116 # define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_CHECK_PROTO_VERSION 119 +# define SSL_CTRL_SET_DH_AUTO 118 # define DTLS_CTRL_SET_LINK_MTU 120 # define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CTRL_GET_EXTMS_SUPPORT 122 +# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 +# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 +# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 +# define SSL_CTRL_SET_MAX_PIPELINES 126 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 +# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 +# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1985,28 +1172,20 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) # define DTLSv1_handle_timeout(ssl) \ SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define DTLSv1_listen(ssl, peer) \ - SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer) -# define SSL_session_reused(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) # define SSL_num_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) # define SSL_clear_num_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) # define SSL_total_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) -# define SSL_CTX_need_tmp_RSA(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL) -# define SSL_CTX_set_tmp_rsa(ctx,rsa) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) # define SSL_CTX_set_tmp_dh(ctx,dh) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh) # define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) -# define SSL_need_tmp_RSA(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL) -# define SSL_set_tmp_rsa(ssl,rsa) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) +# define SSL_CTX_set_dh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) +# define SSL_set_dh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) # define SSL_set_tmp_dh(ssl,dh) \ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) # define SSL_set_tmp_ecdh(ssl,ecdh) \ @@ -2083,10 +1262,6 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) # define SSL_get_shared_curve(s, n) \ SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) -# define SSL_CTX_set_ecdh_auto(ctx, onoff) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) -# define SSL_set_ecdh_auto(s, onoff) \ - SSL_ctrl(s,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) # define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) # define SSL_CTX_set1_sigalgs_list(ctx, s) \ @@ -2114,153 +1289,195 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_server_tmp_key(s, pk) \ SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) # define SSL_get0_raw_cipherlist(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,(char *)plst) + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) # define SSL_get0_ec_point_formats(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,(char *)plst) -# ifndef OPENSSL_NO_BIO -BIO_METHOD *BIO_f_ssl(void); -BIO *BIO_new_ssl(SSL_CTX *ctx, int client); -BIO *BIO_new_ssl_connect(SSL_CTX *ctx); -BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -int BIO_ssl_copy_session_id(BIO *to, BIO *from); + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) +#define SSL_CTX_set_min_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +#define SSL_CTX_set_max_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +#define SSL_CTX_get_min_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +#define SSL_CTX_get_max_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +#define SSL_set_min_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +#define SSL_set_max_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +#define SSL_get_min_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +#define SSL_get_max_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) + +#if OPENSSL_API_COMPAT < 0x10100000L +/* Provide some compatibility macros for removed functionality. */ +# define SSL_CTX_need_tmp_RSA(ctx) 0 +# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 +# define SSL_need_tmp_RSA(ssl) 0 +# define SSL_set_tmp_rsa(ssl,rsa) 1 +# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +/* + * We "pretend" to call the callback to avoid warnings about unused static + * functions. + */ +# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) +# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) +#endif + +__owur const BIO_METHOD *BIO_f_ssl(void); +__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); +__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); +__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); +__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); void BIO_ssl_shutdown(BIO *ssl_bio); -# endif - -int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); +__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +int SSL_CTX_up_ref(SSL_CTX *ctx); void SSL_CTX_free(SSL_CTX *); -long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); -long SSL_CTX_get_timeout(const SSL_CTX *ctx); -X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); +__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); +__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); +__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); -int SSL_want(const SSL *s); -int SSL_clear(SSL *s); +__owur int SSL_want(const SSL *s); +__owur int SSL_clear(SSL *s); void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); -const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); -int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); -char *SSL_CIPHER_get_version(const SSL_CIPHER *c); -const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); -unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); +__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); +__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); +__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); -int SSL_get_fd(const SSL *s); -int SSL_get_rfd(const SSL *s); -int SSL_get_wfd(const SSL *s); -const char *SSL_get_cipher_list(const SSL *s, int n); -char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); -int SSL_get_read_ahead(const SSL *s); -int SSL_pending(const SSL *s); +__owur int SSL_get_fd(const SSL *s); +__owur int SSL_get_rfd(const SSL *s); +__owur int SSL_get_wfd(const SSL *s); +__owur const char *SSL_get_cipher_list(const SSL *s, int n); +__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); +__owur int SSL_get_read_ahead(const SSL *s); +__owur int SSL_pending(const SSL *s); +__owur int SSL_has_pending(const SSL *s); # ifndef OPENSSL_NO_SOCK -int SSL_set_fd(SSL *s, int fd); -int SSL_set_rfd(SSL *s, int fd); -int SSL_set_wfd(SSL *s, int fd); +__owur int SSL_set_fd(SSL *s, int fd); +__owur int SSL_set_rfd(SSL *s, int fd); +__owur int SSL_set_wfd(SSL *s, int fd); # endif -# ifndef OPENSSL_NO_BIO +void SSL_set0_rbio(SSL *s, BIO *rbio); +void SSL_set0_wbio(SSL *s, BIO *wbio); void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); -BIO *SSL_get_rbio(const SSL *s); -BIO *SSL_get_wbio(const SSL *s); -# endif -int SSL_set_cipher_list(SSL *s, const char *str); +__owur BIO *SSL_get_rbio(const SSL *s); +__owur BIO *SSL_get_wbio(const SSL *s); +__owur int SSL_set_cipher_list(SSL *s, const char *str); void SSL_set_read_ahead(SSL *s, int yes); -int SSL_get_verify_mode(const SSL *s); -int SSL_get_verify_depth(const SSL *s); -int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *); -void SSL_set_verify(SSL *s, int mode, - int (*callback) (int ok, X509_STORE_CTX *ctx)); +__owur int SSL_get_verify_mode(const SSL *s); +__owur int SSL_get_verify_depth(const SSL *s); +__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); +void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); void SSL_set_verify_depth(SSL *s, int depth); void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); # ifndef OPENSSL_NO_RSA -int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +__owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len); # endif -int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); -int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); -int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, +__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); +__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, long len); -int SSL_use_certificate(SSL *ssl, X509 *x); -int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); +__owur int SSL_use_certificate(SSL *ssl, X509 *x); +__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); -# ifndef OPENSSL_NO_TLSEXT /* Set serverinfo data for the current active cert. */ -int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, +__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, size_t serverinfo_length); -# ifndef OPENSSL_NO_STDIO -int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); -# endif /* NO_STDIO */ +__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); -# endif +#ifndef OPENSSL_NO_RSA +__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); +#endif -# ifndef OPENSSL_NO_STDIO -int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); -int SSL_use_certificate_file(SSL *ssl, const char *file, int type); -int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); -int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); -int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); +__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); +__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); + +#ifndef OPENSSL_NO_RSA +__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); +#endif +__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); +__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); /* PEM type */ -int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); -STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); -int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, +__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); +__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); +__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); +__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, const char *file); -# ifndef OPENSSL_SYS_VMS -/* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ -# ifndef OPENSSL_SYS_MACINTOSH_CLASSIC int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, const char *dir); -# endif -# endif -# endif +#if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_load_error_strings() \ + OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +#endif -void SSL_load_error_strings(void); -const char *SSL_state_string(const SSL *s); -const char *SSL_rstate_string(const SSL *s); -const char *SSL_state_string_long(const SSL *s); -const char *SSL_rstate_string_long(const SSL *s); -long SSL_SESSION_get_time(const SSL_SESSION *s); -long SSL_SESSION_set_time(SSL_SESSION *s, long t); -long SSL_SESSION_get_timeout(const SSL_SESSION *s); -long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); -void SSL_copy_session_id(SSL *to, const SSL *from); -X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, +__owur const char *SSL_state_string(const SSL *s); +__owur const char *SSL_rstate_string(const SSL *s); +__owur const char *SSL_state_string_long(const SSL *s); +__owur const char *SSL_rstate_string_long(const SSL *s); +__owur long SSL_SESSION_get_time(const SSL_SESSION *s); +__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); +__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); +__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); +__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); +__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); +__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); +__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); +void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, + size_t *len); +__owur int SSL_copy_session_id(SSL *to, const SSL *from); +__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); +__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len); +__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, + unsigned int sid_len); -SSL_SESSION *SSL_SESSION_new(void); +__owur SSL_SESSION *SSL_SESSION_new(void); const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len); -unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); -# ifndef OPENSSL_NO_FP_API +const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, + unsigned int *len); +__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +# ifndef OPENSSL_NO_STDIO int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); # endif -# ifndef OPENSSL_NO_BIO int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -# endif +int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); +int SSL_SESSION_up_ref(SSL_SESSION *ses); void SSL_SESSION_free(SSL_SESSION *ses); -int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); -int SSL_set_session(SSL *to, SSL_SESSION *session); +__owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); +__owur int SSL_set_session(SSL *to, SSL_SESSION *session); int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, +__owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); +__owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); +__owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); # ifdef HEADER_X509_H -X509 *SSL_get_peer_certificate(const SSL *s); +__owur X509 *SSL_get_peer_certificate(const SSL *s); # endif -STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); +__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); -int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, - X509_STORE_CTX *); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, - int (*callback) (int, X509_STORE_CTX *)); +__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); +__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); +__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); +void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb) (X509_STORE_CTX *, void *), @@ -2268,40 +1485,76 @@ void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), void *arg); # ifndef OPENSSL_NO_RSA -int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); -# endif -int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, +__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); +__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len); -int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, +# endif +__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); +__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, const unsigned char *d, long len); -int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); -int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, +__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); +__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d); void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); +pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); +void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); +void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); +void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); +pem_password_cb *SSL_get_default_passwd_cb(SSL *s); +void *SSL_get_default_passwd_cb_userdata(SSL *s); -int SSL_CTX_check_private_key(const SSL_CTX *ctx); -int SSL_check_private_key(const SSL *ctx); +__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); +__owur int SSL_check_private_key(const SSL *ctx); -int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, +__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, unsigned int sid_ctx_len); SSL *SSL_new(SSL_CTX *ctx); -int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, +int SSL_up_ref(SSL *s); +int SSL_is_dtls(const SSL *s); +__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); -int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); -int SSL_set_purpose(SSL *s, int purpose); -int SSL_CTX_set_trust(SSL_CTX *s, int trust); -int SSL_set_trust(SSL *s, int trust); +__owur int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); +__owur int SSL_set_purpose(SSL *s, int purpose); +__owur int SSL_CTX_set_trust(SSL_CTX *s, int trust); +__owur int SSL_set_trust(SSL *s, int trust); -int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); +__owur int SSL_set1_host(SSL *s, const char *hostname); +__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur const char *SSL_get0_peername(SSL *s); +void SSL_set_hostflags(SSL *s, unsigned int flags); -X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); +__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); +__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, + uint8_t mtype, uint8_t ord); +__owur int SSL_dane_enable(SSL *s, const char *basedomain); +__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, + uint8_t mtype, unsigned const char *data, size_t dlen); +__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); +__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, + uint8_t *mtype, unsigned const char **data, + size_t *dlen); +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +SSL_DANE *SSL_get0_dane(SSL *ssl); +/* + * DANE flags + */ +unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); +unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); + +__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); +__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); + +__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); # ifndef OPENSSL_NO_SRP int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); @@ -2320,161 +1573,187 @@ int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, const char *grp); -BIGNUM *SSL_get_srp_g(SSL *s); -BIGNUM *SSL_get_srp_N(SSL *s); +__owur BIGNUM *SSL_get_srp_g(SSL *s); +__owur BIGNUM *SSL_get_srp_N(SSL *s); -char *SSL_get_srp_username(SSL *s); -char *SSL_get_srp_userinfo(SSL *s); +__owur char *SSL_get_srp_username(SSL *s); +__owur char *SSL_get_srp_userinfo(SSL *s); # endif void SSL_certs_clear(SSL *s); void SSL_free(SSL *ssl); -int SSL_accept(SSL *ssl); -int SSL_connect(SSL *ssl); -int SSL_read(SSL *ssl, void *buf, int num); -int SSL_peek(SSL *ssl, void *buf, int num); -int SSL_write(SSL *ssl, const void *buf, int num); +# ifdef OSSL_ASYNC_FD +/* + * Windows application developer has to include windows.h to use these. + */ +__owur int SSL_waiting_for_async(SSL *s); +__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); +__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, + size_t *numaddfds, OSSL_ASYNC_FD *delfd, + size_t *numdelfds); +# endif +__owur int SSL_accept(SSL *ssl); +__owur int SSL_connect(SSL *ssl); +__owur int SSL_read(SSL *ssl, void *buf, int num); +__owur int SSL_peek(SSL *ssl, void *buf, int num); +__owur int SSL_write(SSL *ssl, const void *buf, int num); long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); -int SSL_get_error(const SSL *s, int ret_code); -const char *SSL_get_version(const SSL *s); +__owur int SSL_get_error(const SSL *s, int ret_code); +__owur const char *SSL_get_version(const SSL *s); /* This sets the 'default' SSL version that SSL_new() will create */ -int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); - -# ifndef OPENSSL_NO_SSL2_METHOD -const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ -# endif +__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); # ifndef OPENSSL_NO_SSL3_METHOD -const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) /* SSLv3 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */ # endif -const SSL_METHOD *SSLv23_method(void); /* Negotiate highest available SSL/TLS - * version */ -const SSL_METHOD *SSLv23_server_method(void); /* Negotiate highest available - * SSL/TLS version */ -const SSL_METHOD *SSLv23_client_method(void); /* Negotiate highest available - * SSL/TLS version */ +#define SSLv23_method TLS_method +#define SSLv23_server_method TLS_server_method +#define SSLv23_client_method TLS_client_method -const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ -const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ -const SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ +/* Negotiate highest available SSL/TLS version */ +__owur const SSL_METHOD *TLS_method(void); +__owur const SSL_METHOD *TLS_server_method(void); +__owur const SSL_METHOD *TLS_client_method(void); -const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ -const SSL_METHOD *TLSv1_1_server_method(void); /* TLSv1.1 */ -const SSL_METHOD *TLSv1_1_client_method(void); /* TLSv1.1 */ +# ifndef OPENSSL_NO_TLS1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ +# endif -const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ -const SSL_METHOD *TLSv1_2_server_method(void); /* TLSv1.2 */ -const SSL_METHOD *TLSv1_2_client_method(void); /* TLSv1.2 */ +# ifndef OPENSSL_NO_TLS1_1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ +# endif -const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ -const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ -const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ +# ifndef OPENSSL_NO_TLS1_2_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ +# endif -const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ -const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ -const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ +# ifndef OPENSSL_NO_DTLS1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ +# endif -const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ -const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ -const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ +# ifndef OPENSSL_NO_DTLS1_2_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ +#endif -STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); +__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ -int SSL_do_handshake(SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); +__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); + +__owur int SSL_do_handshake(SSL *s); int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -int SSL_renegotiate_pending(SSL *s); +__owur int SSL_renegotiate_abbreviated(SSL *s); +__owur int SSL_renegotiate_pending(SSL *s); int SSL_shutdown(SSL *s); -const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -const SSL_METHOD *SSL_get_ssl_method(SSL *s); -int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); -const char *SSL_alert_type_string_long(int value); -const char *SSL_alert_type_string(int value); -const char *SSL_alert_desc_string_long(int value); -const char *SSL_alert_desc_string(int value); +__owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); +__owur const SSL_METHOD *SSL_get_ssl_method(SSL *s); +__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); +__owur const char *SSL_alert_type_string_long(int value); +__owur const char *SSL_alert_type_string(int value); +__owur const char *SSL_alert_desc_string_long(int value); +__owur const char *SSL_alert_desc_string(int value); void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); -STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -int SSL_add_client_CA(SSL *ssl, X509 *x); -int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); +__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); +__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); +__owur int SSL_add_client_CA(SSL *ssl, X509 *x); +__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); void SSL_set_connect_state(SSL *s); void SSL_set_accept_state(SSL *s); -long SSL_get_default_timeout(const SSL *s); +__owur long SSL_get_default_timeout(const SSL *s); -int SSL_library_init(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_library_init() OPENSSL_init_ssl(0, NULL) +#endif -char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); +__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); +__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); -SSL *SSL_dup(SSL *ssl); +__owur SSL *SSL_dup(SSL *ssl); -X509 *SSL_get_certificate(const SSL *ssl); +__owur X509 *SSL_get_certificate(const SSL *ssl); /* * EVP_PKEY */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); -X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); +__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); +__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); void SSL_set_quiet_shutdown(SSL *ssl, int mode); -int SSL_get_quiet_shutdown(const SSL *ssl); +__owur int SSL_get_quiet_shutdown(const SSL *ssl); void SSL_set_shutdown(SSL *ssl, int mode); -int SSL_get_shutdown(const SSL *ssl); -int SSL_version(const SSL *ssl); -int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); -int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, +__owur int SSL_get_shutdown(const SSL *ssl); +__owur int SSL_version(const SSL *ssl); +__owur int SSL_client_version(const SSL *s); +__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); +__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath); # define SSL_get0_session SSL_get_session/* just peek at pointer */ -SSL_SESSION *SSL_get_session(const SSL *ssl); -SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ -SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); +__owur SSL_SESSION *SSL_get_session(const SSL *ssl); +__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ +__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); void SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val)); void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, int val); -int SSL_state(const SSL *ssl); -void SSL_set_state(SSL *ssl, int state); +__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); void SSL_set_verify_result(SSL *ssl, long v); -long SSL_get_verify_result(const SSL *ssl); +__owur long SSL_get_verify_result(const SSL *ssl); +__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); -int SSL_set_ex_data(SSL *ssl, int idx, void *data); +__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *ssl, + unsigned char *out, size_t outlen); + +#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) +__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); void *SSL_get_ex_data(const SSL *ssl, int idx); -int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); - -int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); +#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) +__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -int SSL_SESSION_get_ex_new_index(long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); - -int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); +#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) +__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); -int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int SSL_get_ex_data_X509_STORE_CTX_idx(void); +__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); # define SSL_CTX_sess_set_cache_size(ctx,t) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) @@ -2504,18 +1783,20 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void); SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) # define SSL_set_max_send_fragment(ssl,m) \ SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_split_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_set_split_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_max_pipelines(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) +# define SSL_set_max_pipelines(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) - /* NB: the keylength is only applicable when is_export is true */ -# ifndef OPENSSL_NO_RSA -void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, - RSA *(*cb) (SSL *ssl, int is_export, - int keylength)); +void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); +void SSL_set_default_read_buffer_len(SSL *s, size_t len); -void SSL_set_tmp_rsa_callback(SSL *ssl, - RSA *(*cb) (SSL *ssl, int is_export, - int keylength)); -# endif # ifndef OPENSSL_NO_DH +/* NB: the |keylength| is only applicable when is_export is true */ void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, DH *(*dh) (SSL *ssl, int is_export, int keylength)); @@ -2523,192 +1804,338 @@ void SSL_set_tmp_dh_callback(SSL *ssl, DH *(*dh) (SSL *ssl, int is_export, int keylength)); # endif -# ifndef OPENSSL_NO_ECDH -void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx, - EC_KEY *(*ecdh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_ecdh_callback(SSL *ssl, - EC_KEY *(*ecdh) (SSL *ssl, int is_export, - int keylength)); -# endif -const COMP_METHOD *SSL_get_current_compression(SSL *s); -const COMP_METHOD *SSL_get_current_expansion(SSL *s); -const char *SSL_COMP_get_name(const COMP_METHOD *comp); +__owur const COMP_METHOD *SSL_get_current_compression(SSL *s); +__owur const COMP_METHOD *SSL_get_current_expansion(SSL *s); +__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); +__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); +__owur int SSL_COMP_get_id(const SSL_COMP *comp); STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) +__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) *meths); -void SSL_COMP_free_compression_methods(void); -int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); +#if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_COMP_free_compression_methods() while(0) continue +#endif +__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); +int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); +int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); /* TLS extensions functions */ -int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); +__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); -int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, +__owur int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, void *arg); /* Pre-shared secret session resumption functions */ -int SSL_set_session_secret_cb(SSL *s, +__owur int SSL_set_session_secret_cb(SSL *s, tls_session_secret_cb_fn tls_session_secret_cb, void *arg); -void SSL_set_debug(SSL *s, int debug); -int SSL_cache_hit(SSL *s); -int SSL_is_server(SSL *s); +void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + int + is_forward_secure)); -SSL_CONF_CTX *SSL_CONF_CTX_new(void); +void SSL_set_not_resumable_session_callback(SSL *ssl, + int (*cb) (SSL *ssl, + int + is_forward_secure)); +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_cache_hit(s) SSL_session_reused(s) +# endif + +__owur int SSL_session_reused(SSL *s); +__owur int SSL_is_server(const SSL *s); + +__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); -int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); +__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); +__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); -int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); +__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +void SSL_add_ssl_module(void); +int SSL_config(SSL *s, const char *name); +int SSL_CTX_config(SSL_CTX *ctx, const char *name); # ifndef OPENSSL_NO_SSL_TRACE void SSL_trace(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); -const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); # endif -# ifndef OPENSSL_NO_UNIT_TEST -const struct openssl_ssl_test_functions *SSL_test_functions(void); +# ifndef OPENSSL_NO_SOCK +int DTLSv1_listen(SSL *s, BIO_ADDR *client); # endif +# ifndef OPENSSL_NO_CT + +/* + * A callback for verifying that the received SCTs are sufficient. + * Expected to return 1 if they are sufficient, otherwise 0. + * May return a negative integer if an error occurs. + * A connection should be aborted if the SCTs are deemed insufficient. + */ +typedef int(*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, + const STACK_OF(SCT) *scts, void *arg); + +/* + * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate + * the received SCTs. + * If the callback returns a non-positive result, the connection is terminated. + * Call this function before beginning a handshake. + * If a NULL |callback| is provided, SCT validation is disabled. + * |arg| is arbitrary userdata that will be passed to the callback whenever it + * is invoked. Ownership of |arg| remains with the caller. + * + * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response + * will be requested. + */ +int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, + void *arg); +int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, + ssl_ct_validation_cb callback, + void *arg); +#define SSL_disable_ct(s) \ + ((void) SSL_set_validation_callback((s), NULL, NULL)) +#define SSL_CTX_disable_ct(ctx) \ + ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) + +/* + * The validation type enumerates the available behaviours of the built-in SSL + * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). + * The underlying callback is a static function in libssl. + */ +enum { + SSL_CT_VALIDATION_PERMISSIVE = 0, + SSL_CT_VALIDATION_STRICT +}; + +/* + * Enable CT by setting up a callback that implements one of the built-in + * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always + * continues the handshake, the application can make appropriate decisions at + * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at + * least one valid SCT, or else handshake termination will be requested. The + * handshake may continue anyway if SSL_VERIFY_NONE is in effect. + */ +int SSL_enable_ct(SSL *s, int validation_mode); +int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); + +/* + * Report whether a non-NULL callback is enabled. + */ +int SSL_ct_is_enabled(const SSL *s); +int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); + +/* Gets the SCTs received from a connection */ +const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); + +/* + * Loads the CT log list from the default location. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); + +/* + * Loads the CT log list from the specified file path. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); + +/* + * Sets the CT log list used by all SSL connections created from this SSL_CTX. + * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. + */ +void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); + +/* + * Gets the CT log list used by all SSL connections created from this SSL_CTX. + * This will be NULL unless one of the following functions has been called: + * - SSL_CTX_set_default_ctlog_list_file + * - SSL_CTX_set_ctlog_list_file + * - SSL_CTX_set_ctlog_store + */ +const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); + +# endif /* OPENSSL_NO_CT */ + +/* What the "other" parameter contains in security callback */ +/* Mask for type */ +# define SSL_SECOP_OTHER_TYPE 0xffff0000 +# define SSL_SECOP_OTHER_NONE 0 +# define SSL_SECOP_OTHER_CIPHER (1 << 16) +# define SSL_SECOP_OTHER_CURVE (2 << 16) +# define SSL_SECOP_OTHER_DH (3 << 16) +# define SSL_SECOP_OTHER_PKEY (4 << 16) +# define SSL_SECOP_OTHER_SIGALG (5 << 16) +# define SSL_SECOP_OTHER_CERT (6 << 16) + +/* Indicated operation refers to peer key or certificate */ +# define SSL_SECOP_PEER 0x1000 + +/* Values for "op" parameter in security callback */ + +/* Called to filter ciphers */ +/* Ciphers client supports */ +# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) +/* Cipher shared by client/server */ +# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) +/* Sanity check of cipher server selects */ +# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) +/* Curves supported by client */ +# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) +/* Curves shared by client/server */ +# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) +/* Sanity check of curve server selects */ +# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) +/* Temporary DH key */ +# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) +/* SSL/TLS version */ +# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) +/* Session tickets */ +# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) +/* Supported signature algorithms sent to peer */ +# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) +/* Shared signature algorithm */ +# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) +/* Sanity check signature algorithm allowed */ +# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) +/* Used to get mask of supported public key signature algorithms */ +# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) +/* Use to see if compression is allowed */ +# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) +/* EE key in certificate */ +# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) +/* CA key in certificate */ +# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) +/* CA digest algorithm in certificate */ +# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) +/* Peer EE key in certificate */ +# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) +/* Peer CA key in certificate */ +# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) +/* Peer CA digest algorithm in certificate */ +# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) + +void SSL_set_security_level(SSL *s, int level); +__owur int SSL_get_security_level(const SSL *s); +void SSL_set_security_callback(SSL *s, + int (*cb) (const SSL *s, const SSL_CTX *ctx, int op, + int bits, int nid, void *other, + void *ex)); +int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, const SSL_CTX *ctx, int op, + int bits, int nid, + void *other, void *ex); +void SSL_set0_security_ex_data(SSL *s, void *ex); +__owur void *SSL_get0_security_ex_data(const SSL *s); + +void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); +__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); +void SSL_CTX_set_security_callback(SSL_CTX *ctx, + int (*cb) (const SSL *s, const SSL_CTX *ctx, int op, + int bits, int nid, void *other, + void *ex)); +int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, + const SSL_CTX *ctx, + int op, int bits, + int nid, + void *other, + void *ex); +void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); +__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); + +/* OPENSSL_INIT flag 0x010000 reserved for internal use */ +#define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L +#define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L + +#define OPENSSL_INIT_SSL_DEFAULT \ + (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) + +int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); + +# ifndef OPENSSL_NO_UNIT_TEST +__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); +# endif + +extern const char SSL_version_str[]; + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_SSL_strings(void); + +int ERR_load_SSL_strings(void); /* Error codes for the SSL functions. */ /* Function codes. */ # define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CLIENT_CERTIFICATE 100 -# define SSL_F_CLIENT_FINISHED 167 -# define SSL_F_CLIENT_HELLO 101 -# define SSL_F_CLIENT_MASTER_KEY 102 +# define SSL_F_CT_MOVE_SCTS 345 +# define SSL_F_CT_STRICT 349 # define SSL_F_D2I_SSL_SESSION 103 +# define SSL_F_DANE_CTX_ENABLE 347 +# define SSL_F_DANE_MTYPE_SET 393 +# define SSL_F_DANE_TLSA_ADD 394 # define SSL_F_DO_DTLS1_WRITE 245 # define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_ACCEPT 246 -# define SSL_F_DTLS1_ADD_CERT_TO_BUF 295 # define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 316 -# define SSL_F_DTLS1_CLIENT_HELLO 248 -# define SSL_F_DTLS1_CONNECT 249 -# define SSL_F_DTLS1_ENC 250 -# define SSL_F_DTLS1_GET_HELLO_VERIFY 251 -# define SSL_F_DTLS1_GET_MESSAGE 252 -# define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253 -# define SSL_F_DTLS1_GET_RECORD 254 -# define SSL_F_DTLS1_HANDLE_TIMEOUT 297 +# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 # define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 # define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 # define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 # define SSL_F_DTLS1_PROCESS_RECORD 257 # define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 259 -# define SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST 260 -# define SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE 261 -# define SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE 262 -# define SSL_F_DTLS1_SEND_CLIENT_VERIFY 263 -# define SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST 264 -# define SSL_F_DTLS1_SEND_SERVER_CERTIFICATE 265 -# define SSL_F_DTLS1_SEND_SERVER_HELLO 266 -# define SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE 267 +# define SSL_F_DTLS1_READ_FAILED 339 +# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 # define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_GET_CLIENT_FINISHED 105 -# define SSL_F_GET_CLIENT_HELLO 106 -# define SSL_F_GET_CLIENT_MASTER_KEY 107 -# define SSL_F_GET_SERVER_FINISHED 108 -# define SSL_F_GET_SERVER_HELLO 109 -# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 -# define SSL_F_GET_SERVER_VERIFY 110 -# define SSL_F_I2D_SSL_SESSION 111 -# define SSL_F_READ_N 112 -# define SSL_F_REQUEST_CERTIFICATE 113 -# define SSL_F_SERVER_FINISH 239 -# define SSL_F_SERVER_HELLO 114 -# define SSL_F_SERVER_VERIFY 240 -# define SSL_F_SSL23_ACCEPT 115 -# define SSL_F_SSL23_CLIENT_HELLO 116 -# define SSL_F_SSL23_CONNECT 117 -# define SSL_F_SSL23_GET_CLIENT_HELLO 118 -# define SSL_F_SSL23_GET_SERVER_HELLO 119 -# define SSL_F_SSL23_PEEK 237 -# define SSL_F_SSL23_READ 120 -# define SSL_F_SSL23_WRITE 121 -# define SSL_F_SSL2_ACCEPT 122 -# define SSL_F_SSL2_CONNECT 123 -# define SSL_F_SSL2_ENC_INIT 124 -# define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241 -# define SSL_F_SSL2_PEEK 234 -# define SSL_F_SSL2_READ 125 -# define SSL_F_SSL2_READ_INTERNAL 236 -# define SSL_F_SSL2_SET_CERTIFICATE 126 -# define SSL_F_SSL2_WRITE 127 -# define SSL_F_SSL3_ACCEPT 128 -# define SSL_F_SSL3_ADD_CERT_TO_BUF 296 -# define SSL_F_SSL3_CALLBACK_CTRL 233 +# define SSL_F_DTLSV1_LISTEN 350 +# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 +# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 +# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 +# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 +# define SSL_F_DTLS_WAIT_FOR_DRY 592 +# define SSL_F_OPENSSL_INIT_SSL 342 +# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 +# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 +# define SSL_F_READ_STATE_MACHINE 352 # define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 # define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 -# define SSL_F_SSL3_CHECK_FINISHED 339 -# define SSL_F_SSL3_CLIENT_HELLO 131 -# define SSL_F_SSL3_CONNECT 132 # define SSL_F_SSL3_CTRL 213 # define SSL_F_SSL3_CTX_CTRL 133 # define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 # define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_ENC 134 +# define SSL_F_SSL3_FINAL_FINISH_MAC 285 # define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 # define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 -# define SSL_F_SSL3_GET_CERT_STATUS 289 -# define SSL_F_SSL3_GET_CERT_VERIFY 136 -# define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 -# define SSL_F_SSL3_GET_CLIENT_HELLO 138 -# define SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE 139 -# define SSL_F_SSL3_GET_FINISHED 140 -# define SSL_F_SSL3_GET_KEY_EXCHANGE 141 -# define SSL_F_SSL3_GET_MESSAGE 142 -# define SSL_F_SSL3_GET_NEW_SESSION_TICKET 283 -# define SSL_F_SSL3_GET_NEXT_PROTO 306 # define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144 -# define SSL_F_SSL3_GET_SERVER_DONE 145 -# define SSL_F_SSL3_GET_SERVER_HELLO 146 -# define SSL_F_SSL3_HANDSHAKE_MAC 285 -# define SSL_F_SSL3_NEW_SESSION_TICKET 287 +# define SSL_F_SSL3_INIT_FINISHED_MAC 397 # define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_PEEK 235 # define SSL_F_SSL3_READ_BYTES 148 # define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SEND_CERTIFICATE_REQUEST 150 -# define SSL_F_SSL3_SEND_CLIENT_CERTIFICATE 151 -# define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152 -# define SSL_F_SSL3_SEND_CLIENT_VERIFY 153 -# define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 -# define SSL_F_SSL3_SEND_SERVER_HELLO 242 -# define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 # define SSL_F_SSL3_SETUP_KEY_BLOCK 157 # define SSL_F_SSL3_SETUP_READ_BUFFER 156 # define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 +# define SSL_F_SSL3_TAKE_MAC 425 # define SSL_F_SSL3_WRITE_BYTES 158 # define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 318 +# define SSL_F_SSL_ADD_CERT_CHAIN 316 # define SSL_F_SSL_ADD_CERT_TO_BUF 319 # define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 # define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 @@ -2721,10 +2148,10 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_BAD_METHOD 160 # define SSL_F_SSL_BUILD_CERT_CHAIN 332 # define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 +# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 # define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_INST 222 -# define SSL_F_SSL_CERT_INSTANTIATE 214 # define SSL_F_SSL_CERT_NEW 162 +# define SSL_F_SSL_CERT_SET0_CHAIN 340 # define SSL_F_SSL_CHECK_PRIVATE_KEY 163 # define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 # define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 @@ -2736,17 +2163,17 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_CREATE_CIPHER_LIST 166 # define SSL_F_SSL_CTRL 232 # define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 +# define SSL_F_SSL_CTX_ENABLE_CT 398 # define SSL_F_SSL_CTX_MAKE_PROFILES 309 # define SSL_F_SSL_CTX_NEW 169 +# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 # define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 # define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_PURPOSE 226 +# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 # define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 # define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_SET_TRUST 229 # define SSL_F_SSL_CTX_USE_CERTIFICATE 171 # define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 # define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 # define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 # define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 @@ -2757,15 +2184,19 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 # define SSL_F_SSL_CTX_USE_SERVERINFO 336 # define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 +# define SSL_F_SSL_DANE_DUP 403 +# define SSL_F_SSL_DANE_ENABLE 395 +# define SSL_F_SSL_DO_CONFIG 391 # define SSL_F_SSL_DO_HANDSHAKE 180 +# define SSL_F_SSL_DUP_CA_LIST 408 +# define SSL_F_SSL_ENABLE_CT 402 # define SSL_F_SSL_GET_NEW_SESSION 181 # define SSL_F_SSL_GET_PREV_SESSION 217 # define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SERVER_SEND_CERT 182 -# define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 # define SSL_F_SSL_GET_SIGN_PKEY 183 # define SSL_F_SSL_INIT_WBIO_BUFFER 184 # define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 +# define SSL_F_SSL_MODULE_INIT 392 # define SSL_F_SSL_NEW 186 # define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 # define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 @@ -2774,32 +2205,30 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 # define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 # define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 281 -# define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 282 # define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 -# define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 +# define SSL_F_SSL_RENEGOTIATE 516 +# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 # define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 # define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 # define SSL_F_SSL_SESSION_DUP 348 # define SSL_F_SSL_SESSION_NEW 189 # define SSL_F_SSL_SESSION_PRINT_FP 190 +# define SSL_F_SSL_SESSION_SET1_ID 423 # define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SESS_CERT_NEW 225 +# define SSL_F_SSL_SET_ALPN_PROTOS 344 # define SSL_F_SSL_SET_CERT 191 # define SSL_F_SSL_SET_CIPHER_LIST 271 +# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 # define SSL_F_SSL_SET_FD 192 # define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_PURPOSE 227 # define SSL_F_SSL_SET_RFD 194 # define SSL_F_SSL_SET_SESSION 195 # define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 # define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_TRUST 228 # define SSL_F_SSL_SET_WFD 196 # define SSL_F_SSL_SHUTDOWN 224 # define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243 +# define SSL_F_SSL_START_ASYNC_JOB 389 # define SSL_F_SSL_UNDEFINED_FUNCTION 197 # define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 # define SSL_F_SSL_USE_CERTIFICATE 198 @@ -2812,243 +2241,229 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_USE_RSAPRIVATEKEY 204 # define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 # define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 +# define SSL_F_SSL_VALIDATE_CT 400 # define SSL_F_SSL_VERIFY_CERT_CHAIN 207 # define SSL_F_SSL_WRITE 208 +# define SSL_F_STATE_MACHINE 353 # define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CERT_VERIFY_MAC 286 # define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 -# define SSL_F_TLS1_ENC 210 +# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 +# define SSL_F_TLS1_ENC 401 # define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 # define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_HEARTBEAT 315 -# define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 -# define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 # define SSL_F_TLS1_PRF 284 # define SSL_F_TLS1_SETUP_KEY_BLOCK 211 # define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_WRITE_PENDING 212 +# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 +# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 +# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 +# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 +# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 +# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 +# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 +# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 +# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355 +# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356 +# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357 +# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358 +# define SSL_F_TLS_CONSTRUCT_FINISHED 359 +# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 +# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 +# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374 +# define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375 +# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376 +# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377 +# define SSL_F_TLS_GET_MESSAGE_BODY 351 +# define SSL_F_TLS_GET_MESSAGE_HEADER 387 +# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 +# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 +# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 +# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 +# define SSL_F_TLS_PROCESS_CERT_STATUS 362 +# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 +# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 +# define SSL_F_TLS_PROCESS_CKE_DHE 411 +# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 +# define SSL_F_TLS_PROCESS_CKE_GOST 413 +# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 +# define SSL_F_TLS_PROCESS_CKE_RSA 415 +# define SSL_F_TLS_PROCESS_CKE_SRP 416 +# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 +# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 +# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 +# define SSL_F_TLS_PROCESS_FINISHED 364 +# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 +# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 +# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 +# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 +# define SSL_F_TLS_PROCESS_SERVER_DONE 368 +# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 +# define SSL_F_TLS_PROCESS_SKE_DHE 419 +# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 +# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 +# define SSL_F_TLS_PROCESS_SKE_SRP 422 +# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 /* Reason codes. */ # define SSL_R_APP_DATA_IN_HANDSHAKE 100 # define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_BAD_ALERT_RECORD 101 -# define SSL_R_BAD_AUTHENTICATION_TYPE 102 +# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 +# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 # define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_CHECKSUM 104 # define SSL_R_BAD_DATA 390 # define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 # define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_G_LENGTH 108 -# define SSL_R_BAD_DH_G_VALUE 375 -# define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 -# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 -# define SSL_R_BAD_DH_P_LENGTH 110 -# define SSL_R_BAD_DH_P_VALUE 395 +# define SSL_R_BAD_DH_VALUE 102 # define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_DSA_SIGNATURE 112 # define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECDSA_SIGNATURE 305 # define SSL_R_BAD_ECPOINT 306 # define SSL_R_BAD_HANDSHAKE_LENGTH 332 # define SSL_R_BAD_HELLO_REQUEST 105 # define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_MAC_DECODE 113 -# define SSL_R_BAD_MAC_LENGTH 333 -# define SSL_R_BAD_MESSAGE_TYPE 114 # define SSL_R_BAD_PACKET_LENGTH 115 # define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH 316 -# define SSL_R_BAD_RESPONSE_ARGUMENT 117 -# define SSL_R_BAD_RSA_DECRYPT 118 # define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_RSA_E_LENGTH 120 -# define SSL_R_BAD_RSA_MODULUS_LENGTH 121 -# define SSL_R_BAD_RSA_SIGNATURE 122 # define SSL_R_BAD_SIGNATURE 123 # define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_B_LENGTH 348 -# define SSL_R_BAD_SRP_G_LENGTH 349 -# define SSL_R_BAD_SRP_N_LENGTH 350 # define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRP_S_LENGTH 351 # define SSL_R_BAD_SRTP_MKI_VALUE 352 # define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 # define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125 -# define SSL_R_BAD_STATE 126 # define SSL_R_BAD_VALUE 384 # define SSL_R_BAD_WRITE_RETRY 127 # define SSL_R_BIO_NOT_SET 128 # define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 # define SSL_R_BN_LIB 130 # define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_DN_TOO_LONG 132 +# define SSL_R_CA_KEY_TOO_SMALL 397 +# define SSL_R_CA_MD_TOO_WEAK 398 # define SSL_R_CCS_RECEIVED_EARLY 133 # define SSL_R_CERTIFICATE_VERIFY_FAILED 134 # define SSL_R_CERT_CB_ERROR 377 # define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CHALLENGE_IS_DIFFERENT 136 # define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 # define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CIPHER_TABLE_SRC_ERROR 139 # define SSL_R_CLIENTHELLO_TLSEXT 226 # define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 # define SSL_R_COMPRESSION_DISABLED 343 # define SSL_R_COMPRESSION_FAILURE 141 # define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 # define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_ID_IS_DIFFERENT 143 # define SSL_R_CONNECTION_TYPE_NOT_SET 144 +# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 +# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 # define SSL_R_COOKIE_MISMATCH 308 +# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 +# define SSL_R_DANE_ALREADY_ENABLED 172 +# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 +# define SSL_R_DANE_NOT_ENABLED 175 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 +# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 +# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 +# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 +# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 +# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 +# define SSL_R_DANE_TLSA_NULL_DATA 203 # define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 # define SSL_R_DATA_LENGTH_TOO_LONG 146 # define SSL_R_DECRYPTION_FAILED 147 # define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 372 +# define SSL_R_DH_KEY_TOO_SMALL 394 # define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 # define SSL_R_DIGEST_CHECK_FAILED 149 # define SSL_R_DTLS_MESSAGE_TOO_BIG 334 # define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT 317 # define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 -# define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 # define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 +# define SSL_R_EE_KEY_TOO_SMALL 399 # define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 # define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282 # define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 +# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 +# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 # define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 # define SSL_R_EXTRA_DATA_IN_MESSAGE 153 +# define SSL_R_FAILED_TO_INIT_ASYNC 405 +# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 # define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 355 -# define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 356 # define SSL_R_HTTPS_PROXY_REQUEST 155 # define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_PADDING 283 # define SSL_R_ILLEGAL_SUITEB_DIGEST 380 # define SSL_R_INAPPROPRIATE_FALLBACK 373 # define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INVALID_CHALLENGE_LENGTH 158 +# define SSL_R_INCONSISTENT_EXTMS 104 # define SSL_R_INVALID_COMMAND 280 # define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_CONFIGURATION_NAME 113 +# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 # define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_PURPOSE 278 +# define SSL_R_INVALID_SEQUENCE_NUMBER 402 # define SSL_R_INVALID_SERVERINFO_DATA 388 # define SSL_R_INVALID_SRP_USERNAME 357 # define SSL_R_INVALID_STATUS_RESPONSE 328 # define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_INVALID_TRUST 279 -# define SSL_R_KEY_ARG_TOO_LONG 284 -# define SSL_R_KRB5 285 -# define SSL_R_KRB5_C_CC_PRINC 286 -# define SSL_R_KRB5_C_GET_CRED 287 -# define SSL_R_KRB5_C_INIT 288 -# define SSL_R_KRB5_C_MK_REQ 289 -# define SSL_R_KRB5_S_BAD_TICKET 290 -# define SSL_R_KRB5_S_INIT 291 -# define SSL_R_KRB5_S_RD_REQ 292 -# define SSL_R_KRB5_S_TKT_EXPIRED 293 -# define SSL_R_KRB5_S_TKT_NYV 294 -# define SSL_R_KRB5_S_TKT_SKEW 295 # define SSL_R_LENGTH_MISMATCH 159 +# define SSL_R_LENGTH_TOO_LONG 404 # define SSL_R_LENGTH_TOO_SHORT 160 # define SSL_R_LIBRARY_BUG 274 # define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MESSAGE_TOO_LONG 296 -# define SSL_R_MISSING_DH_DSA_CERT 162 -# define SSL_R_MISSING_DH_KEY 163 -# define SSL_R_MISSING_DH_RSA_CERT 164 # define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDH_CERT 382 # define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166 -# define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167 # define SSL_R_MISSING_RSA_CERTIFICATE 168 # define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 # define SSL_R_MISSING_RSA_SIGNING_CERT 170 # define SSL_R_MISSING_SRP_PARAM 358 # define SSL_R_MISSING_TMP_DH_KEY 171 # define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_MISSING_TMP_RSA_KEY 172 -# define SSL_R_MISSING_TMP_RSA_PKEY 173 -# define SSL_R_MISSING_VERIFY_MESSAGE 174 -# define SSL_R_MULTIPLE_SGC_RESTARTS 346 -# define SSL_R_NON_SSLV2_INITIAL_PACKET 175 # define SSL_R_NO_CERTIFICATES_RETURNED 176 # define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_RETURNED 178 # define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CERTIFICATE_SPECIFIED 180 # define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_PASSED 182 # define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_LIST 184 # define SSL_R_NO_CIPHER_MATCH 185 # define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_CLIENT_CERT_RECEIVED 186 # define SSL_R_NO_COMPRESSION_SPECIFIED 187 # define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 # define SSL_R_NO_METHOD_SPECIFIED 188 # define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATEKEY 189 # define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 # define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_PUBLICKEY 192 # define SSL_R_NO_RENEGOTIATION 339 # define SSL_R_NO_REQUIRED_DIGEST 324 # define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGATURE_ALGORITHMS 376 +# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 # define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VERIFY_CALLBACK 194 +# define SSL_R_NO_VALID_SCTS 216 +# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 # define SSL_R_NULL_SSL_CTX 195 # define SSL_R_NULL_SSL_METHOD_PASSED 196 # define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 # define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE 387 -# define SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE 379 -# define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 -# define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 # define SSL_R_PACKET_LENGTH_TOO_LONG 198 # define SSL_R_PARSE_TLSEXT 227 # define SSL_R_PATH_TOO_LONG 270 # define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEER_ERROR 200 -# define SSL_R_PEER_ERROR_CERTIFICATE 201 -# define SSL_R_PEER_ERROR_NO_CERTIFICATE 202 -# define SSL_R_PEER_ERROR_NO_CIPHER 203 -# define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204 # define SSL_R_PEM_NAME_BAD_PREFIX 391 # define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 -# define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 +# define SSL_R_PIPELINE_FAILURE 406 # define SSL_R_PROTOCOL_IS_SHUTDOWN 207 # define SSL_R_PSK_IDENTITY_NOT_FOUND 223 # define SSL_R_PSK_NO_CLIENT_CB 224 # define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208 -# define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209 -# define SSL_R_PUBLIC_KEY_NOT_RSA 210 # define SSL_R_READ_BIO_NOT_SET 211 # define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_READ_WRONG_PACKET_TYPE 212 # define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_LARGE 214 # define SSL_R_RECORD_TOO_SMALL 298 # define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 # define SSL_R_RENEGOTIATION_ENCODING_ERR 336 # define SSL_R_RENEGOTIATION_MISMATCH 337 # define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSSION_ALGORITHM_MISSING 342 -# define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216 -# define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217 -# define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218 +# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 # define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 +# define SSL_R_SCT_VERIFICATION_FAILED 208 # define SSL_R_SERVERHELLO_TLSEXT 275 # define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHORT_READ 219 # define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 # define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 # define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 @@ -3056,13 +2471,9 @@ void ERR_load_SSL_strings(void); # define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 # define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 # define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 -# define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299 -# define SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT 321 # define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 # define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 # define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 # define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 # define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 # define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 @@ -3074,14 +2485,20 @@ void ERR_load_SSL_strings(void); # define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 # define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 # define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 +# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 # define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 # define SSL_R_SSL_HANDSHAKE_FAILURE 229 # define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 +# define SSL_R_SSL_NEGATIVE_LENGTH 372 +# define SSL_R_SSL_SECTION_EMPTY 126 +# define SSL_R_SSL_SECTION_NOT_FOUND 136 # define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 # define SSL_R_SSL_SESSION_ID_CONFLICT 302 +# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 # define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 # define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 +# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 # define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 # define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 # define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 @@ -3100,23 +2517,13 @@ void ERR_load_SSL_strings(void); # define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 # define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 # define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 # define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 # define SSL_R_TLS_HEARTBEAT_PENDING 366 # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 -# define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 # define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 -# define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236 -# define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313 -# define SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY 237 -# define SSL_R_UNABLE_TO_FIND_DH_PARAMETERS 238 # define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 # define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_FIND_SSL_METHOD 240 -# define SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES 241 # define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 # define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 # define SSL_R_UNEXPECTED_MESSAGE 244 @@ -3127,28 +2534,25 @@ void ERR_load_SSL_strings(void); # define SSL_R_UNKNOWN_CIPHER_RETURNED 248 # define SSL_R_UNKNOWN_CIPHER_TYPE 249 # define SSL_R_UNKNOWN_CMD_NAME 386 +# define SSL_R_UNKNOWN_COMMAND 139 # define SSL_R_UNKNOWN_DIGEST 368 # define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 # define SSL_R_UNKNOWN_PKEY_TYPE 251 # define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253 # define SSL_R_UNKNOWN_SSL_VERSION 254 # define SSL_R_UNKNOWN_STATE 255 # define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_CIPHER 256 # define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_DIGEST_TYPE 326 # define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 # define SSL_R_UNSUPPORTED_PROTOCOL 258 # define SSL_R_UNSUPPORTED_SSL_VERSION 259 # define SSL_R_UNSUPPORTED_STATUS_TYPE 329 # define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_WRITE_BIO_NOT_SET 260 +# define SSL_R_VERSION_TOO_HIGH 166 +# define SSL_R_VERSION_TOO_LOW 396 # define SSL_R_WRONG_CERTIFICATE_TYPE 383 # define SSL_R_WRONG_CIPHER_RETURNED 261 # define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_MESSAGE_TYPE 262 -# define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263 # define SSL_R_WRONG_SIGNATURE_LENGTH 264 # define SSL_R_WRONG_SIGNATURE_SIZE 265 # define SSL_R_WRONG_SIGNATURE_TYPE 370 @@ -3157,7 +2561,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_X509_LIB 268 # define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/include/openssl/ssl2.h b/libs/mac/include/openssl/ssl2.h index 03c7dd8c..5321bd27 100644 --- a/libs/mac/include/openssl/ssl2.h +++ b/libs/mac/include/openssl/ssl2.h @@ -1,59 +1,10 @@ -/* ssl/ssl2.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_SSL2_H @@ -63,201 +14,9 @@ extern "C" { #endif -/* Protocol Version Codes */ # define SSL2_VERSION 0x0002 -# define SSL2_VERSION_MAJOR 0x00 -# define SSL2_VERSION_MINOR 0x02 -/* #define SSL2_CLIENT_VERSION 0x0002 */ -/* #define SSL2_SERVER_VERSION 0x0002 */ -/* Protocol Message Codes */ -# define SSL2_MT_ERROR 0 # define SSL2_MT_CLIENT_HELLO 1 -# define SSL2_MT_CLIENT_MASTER_KEY 2 -# define SSL2_MT_CLIENT_FINISHED 3 -# define SSL2_MT_SERVER_HELLO 4 -# define SSL2_MT_SERVER_VERIFY 5 -# define SSL2_MT_SERVER_FINISHED 6 -# define SSL2_MT_REQUEST_CERTIFICATE 7 -# define SSL2_MT_CLIENT_CERTIFICATE 8 - -/* Error Message Codes */ -# define SSL2_PE_UNDEFINED_ERROR 0x0000 -# define SSL2_PE_NO_CIPHER 0x0001 -# define SSL2_PE_NO_CERTIFICATE 0x0002 -# define SSL2_PE_BAD_CERTIFICATE 0x0004 -# define SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006 - -/* Cipher Kind Values */ -# define SSL2_CK_NULL_WITH_MD5 0x02000000/* v3 */ -# define SSL2_CK_RC4_128_WITH_MD5 0x02010080 -# define SSL2_CK_RC4_128_EXPORT40_WITH_MD5 0x02020080 -# define SSL2_CK_RC2_128_CBC_WITH_MD5 0x02030080 -# define SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x02040080 -# define SSL2_CK_IDEA_128_CBC_WITH_MD5 0x02050080 -# define SSL2_CK_DES_64_CBC_WITH_MD5 0x02060040 -# define SSL2_CK_DES_64_CBC_WITH_SHA 0x02060140/* v3 */ -# define SSL2_CK_DES_192_EDE3_CBC_WITH_MD5 0x020700c0 -# define SSL2_CK_DES_192_EDE3_CBC_WITH_SHA 0x020701c0/* v3 */ -# define SSL2_CK_RC4_64_WITH_MD5 0x02080080/* MS hack */ - -# define SSL2_CK_DES_64_CFB64_WITH_MD5_1 0x02ff0800/* SSLeay */ -# define SSL2_CK_NULL 0x02ff0810/* SSLeay */ - -# define SSL2_TXT_DES_64_CFB64_WITH_MD5_1 "DES-CFB-M1" -# define SSL2_TXT_NULL_WITH_MD5 "NULL-MD5" -# define SSL2_TXT_RC4_128_WITH_MD5 "RC4-MD5" -# define SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 "EXP-RC4-MD5" -# define SSL2_TXT_RC2_128_CBC_WITH_MD5 "RC2-CBC-MD5" -# define SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 "EXP-RC2-CBC-MD5" -# define SSL2_TXT_IDEA_128_CBC_WITH_MD5 "IDEA-CBC-MD5" -# define SSL2_TXT_DES_64_CBC_WITH_MD5 "DES-CBC-MD5" -# define SSL2_TXT_DES_64_CBC_WITH_SHA "DES-CBC-SHA" -# define SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 "DES-CBC3-MD5" -# define SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA "DES-CBC3-SHA" -# define SSL2_TXT_RC4_64_WITH_MD5 "RC4-64-MD5" - -# define SSL2_TXT_NULL "NULL" - -/* Flags for the SSL_CIPHER.algorithm2 field */ -# define SSL2_CF_5_BYTE_ENC 0x01 -# define SSL2_CF_8_BYTE_ENC 0x02 - -/* Certificate Type Codes */ -# define SSL2_CT_X509_CERTIFICATE 0x01 - -/* Authentication Type Code */ -# define SSL2_AT_MD5_WITH_RSA_ENCRYPTION 0x01 - -# define SSL2_MAX_SSL_SESSION_ID_LENGTH 32 - -/* Upper/Lower Bounds */ -# define SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS 256 -# ifdef OPENSSL_SYS_MPE -# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 29998u -# else -# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 32767u - /* 2^15-1 */ -# endif -# define SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER 16383/* 2^14-1 */ - -# define SSL2_CHALLENGE_LENGTH 16 -/* - * #define SSL2_CHALLENGE_LENGTH 32 - */ -# define SSL2_MIN_CHALLENGE_LENGTH 16 -# define SSL2_MAX_CHALLENGE_LENGTH 32 -# define SSL2_CONNECTION_ID_LENGTH 16 -# define SSL2_MAX_CONNECTION_ID_LENGTH 16 -# define SSL2_SSL_SESSION_ID_LENGTH 16 -# define SSL2_MAX_CERT_CHALLENGE_LENGTH 32 -# define SSL2_MIN_CERT_CHALLENGE_LENGTH 16 -# define SSL2_MAX_KEY_MATERIAL_LENGTH 24 - -# ifndef HEADER_SSL_LOCL_H -# define CERT char -# endif - -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl2_state_st { - int three_byte_header; - int clear_text; /* clear text */ - int escape; /* not used in SSLv2 */ - int ssl2_rollback; /* used if SSLv23 rolled back to SSLv2 */ - /* - * non-blocking io info, used to make sure the same args were passwd - */ - unsigned int wnum; /* number of bytes sent so far */ - int wpend_tot; - const unsigned char *wpend_buf; - int wpend_off; /* offset to data to write */ - int wpend_len; /* number of bytes passwd to write */ - int wpend_ret; /* number of bytes to return to caller */ - /* buffer raw data */ - int rbuf_left; - int rbuf_offs; - unsigned char *rbuf; - unsigned char *wbuf; - unsigned char *write_ptr; /* used to point to the start due to 2/3 byte - * header. */ - unsigned int padding; - unsigned int rlength; /* passed to ssl2_enc */ - int ract_data_length; /* Set when things are encrypted. */ - unsigned int wlength; /* passed to ssl2_enc */ - int wact_data_length; /* Set when things are decrypted. */ - unsigned char *ract_data; - unsigned char *wact_data; - unsigned char *mac_data; - unsigned char *read_key; - unsigned char *write_key; - /* Stuff specifically to do with this SSL session */ - unsigned int challenge_length; - unsigned char challenge[SSL2_MAX_CHALLENGE_LENGTH]; - unsigned int conn_id_length; - unsigned char conn_id[SSL2_MAX_CONNECTION_ID_LENGTH]; - unsigned int key_material_length; - unsigned char key_material[SSL2_MAX_KEY_MATERIAL_LENGTH * 2]; - unsigned long read_sequence; - unsigned long write_sequence; - struct { - unsigned int conn_id_length; - unsigned int cert_type; - unsigned int cert_length; - unsigned int csl; - unsigned int clear; - unsigned int enc; - unsigned char ccl[SSL2_MAX_CERT_CHALLENGE_LENGTH]; - unsigned int cipher_spec_length; - unsigned int session_id_length; - unsigned int clen; - unsigned int rlen; - } tmp; -} SSL2_STATE; - -# endif - -/* SSLv2 */ -/* client */ -# define SSL2_ST_SEND_CLIENT_HELLO_A (0x10|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_HELLO_B (0x11|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_HELLO_A (0x20|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_HELLO_B (0x21|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_MASTER_KEY_A (0x30|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_MASTER_KEY_B (0x31|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_FINISHED_A (0x40|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_FINISHED_B (0x41|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_A (0x50|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_B (0x51|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_C (0x52|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_D (0x53|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_VERIFY_A (0x60|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_VERIFY_B (0x61|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_FINISHED_A (0x70|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_FINISHED_B (0x71|SSL_ST_CONNECT) -# define SSL2_ST_CLIENT_START_ENCRYPTION (0x80|SSL_ST_CONNECT) -# define SSL2_ST_X509_GET_CLIENT_CERTIFICATE (0x90|SSL_ST_CONNECT) -/* server */ -# define SSL2_ST_GET_CLIENT_HELLO_A (0x10|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_HELLO_B (0x11|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_HELLO_C (0x12|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_HELLO_A (0x20|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_HELLO_B (0x21|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_MASTER_KEY_A (0x30|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_MASTER_KEY_B (0x31|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_A (0x40|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_B (0x41|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_C (0x42|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_FINISHED_A (0x50|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_FINISHED_B (0x51|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_FINISHED_A (0x60|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_FINISHED_B (0x61|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_A (0x70|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_B (0x71|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_C (0x72|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_D (0x73|SSL_ST_ACCEPT) -# define SSL2_ST_SERVER_START_ENCRYPTION (0x80|SSL_ST_ACCEPT) -# define SSL2_ST_X509_GET_SERVER_CERTIFICATE (0x90|SSL_ST_ACCEPT) #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/ssl3.h b/libs/mac/include/openssl/ssl3.h index e681d50a..4ca434e7 100644 --- a/libs/mac/include/openssl/ssl3.h +++ b/libs/mac/include/openssl/ssl3.h @@ -1,113 +1,12 @@ -/* ssl/ssl3.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * ECC cipher suite support in OpenSSL originally developed by @@ -117,9 +16,7 @@ #ifndef HEADER_SSL3_H # define HEADER_SSL3_H -# ifndef OPENSSL_NO_COMP -# include -# endif +# include # include # include # include @@ -158,18 +55,18 @@ extern "C" { # define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F # define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA SSL3_CK_EDH_DSS_DES_40_CBC_SHA -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA SSL3_CK_EDH_DSS_DES_64_CBC_SHA -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA SSL3_CK_EDH_DSS_DES_192_CBC3_SHA -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA SSL3_CK_EDH_RSA_DES_40_CBC_SHA -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA SSL3_CK_EDH_RSA_DES_64_CBC_SHA -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA SSL3_CK_EDH_RSA_DES_192_CBC3_SHA +# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 +# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA +# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 +# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA +# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 +# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA +# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 +# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA +# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 +# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA +# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 +# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA # define SSL3_CK_ADH_RC4_40_MD5 0x03000017 # define SSL3_CK_ADH_RC4_128_MD5 0x03000018 @@ -177,37 +74,6 @@ extern "C" { # define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A # define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B -# if 0 -# define SSL3_CK_FZA_DMS_NULL_SHA 0x0300001C -# define SSL3_CK_FZA_DMS_FZA_SHA 0x0300001D -# if 0 /* Because it clashes with KRB5, is never - * used any more, and is safe to remove - * according to David Hopwood - * of the - * ietf-tls list */ -# define SSL3_CK_FZA_DMS_RC4_SHA 0x0300001E -# endif -# endif - -/* - * VRS Additional Kerberos5 entries - */ -# define SSL3_CK_KRB5_DES_64_CBC_SHA 0x0300001E -# define SSL3_CK_KRB5_DES_192_CBC3_SHA 0x0300001F -# define SSL3_CK_KRB5_RC4_128_SHA 0x03000020 -# define SSL3_CK_KRB5_IDEA_128_CBC_SHA 0x03000021 -# define SSL3_CK_KRB5_DES_64_CBC_MD5 0x03000022 -# define SSL3_CK_KRB5_DES_192_CBC3_MD5 0x03000023 -# define SSL3_CK_KRB5_RC4_128_MD5 0x03000024 -# define SSL3_CK_KRB5_IDEA_128_CBC_MD5 0x03000025 - -# define SSL3_CK_KRB5_DES_40_CBC_SHA 0x03000026 -# define SSL3_CK_KRB5_RC2_40_CBC_SHA 0x03000027 -# define SSL3_CK_KRB5_RC4_40_SHA 0x03000028 -# define SSL3_CK_KRB5_DES_40_CBC_MD5 0x03000029 -# define SSL3_CK_KRB5_RC2_40_CBC_MD5 0x0300002A -# define SSL3_CK_KRB5_RC4_40_MD5 0x0300002B - # define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" # define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" # define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" @@ -251,28 +117,6 @@ extern "C" { # define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" # define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" -# if 0 -# define SSL3_TXT_FZA_DMS_NULL_SHA "FZA-NULL-SHA" -# define SSL3_TXT_FZA_DMS_FZA_SHA "FZA-FZA-CBC-SHA" -# define SSL3_TXT_FZA_DMS_RC4_SHA "FZA-RC4-SHA" -# endif - -# define SSL3_TXT_KRB5_DES_64_CBC_SHA "KRB5-DES-CBC-SHA" -# define SSL3_TXT_KRB5_DES_192_CBC3_SHA "KRB5-DES-CBC3-SHA" -# define SSL3_TXT_KRB5_RC4_128_SHA "KRB5-RC4-SHA" -# define SSL3_TXT_KRB5_IDEA_128_CBC_SHA "KRB5-IDEA-CBC-SHA" -# define SSL3_TXT_KRB5_DES_64_CBC_MD5 "KRB5-DES-CBC-MD5" -# define SSL3_TXT_KRB5_DES_192_CBC3_MD5 "KRB5-DES-CBC3-MD5" -# define SSL3_TXT_KRB5_RC4_128_MD5 "KRB5-RC4-MD5" -# define SSL3_TXT_KRB5_IDEA_128_CBC_MD5 "KRB5-IDEA-CBC-MD5" - -# define SSL3_TXT_KRB5_DES_40_CBC_SHA "EXP-KRB5-DES-CBC-SHA" -# define SSL3_TXT_KRB5_RC2_40_CBC_SHA "EXP-KRB5-RC2-CBC-SHA" -# define SSL3_TXT_KRB5_RC4_40_SHA "EXP-KRB5-RC4-SHA" -# define SSL3_TXT_KRB5_DES_40_CBC_MD5 "EXP-KRB5-DES-CBC-MD5" -# define SSL3_TXT_KRB5_RC2_40_CBC_MD5 "EXP-KRB5-RC2-CBC-MD5" -# define SSL3_TXT_KRB5_RC4_40_MD5 "EXP-KRB5-RC4-MD5" - # define SSL3_SSL_SESSION_ID_LENGTH 32 # define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 @@ -360,7 +204,7 @@ extern "C" { # define SSL3_RT_ALERT 21 # define SSL3_RT_HANDSHAKE 22 # define SSL3_RT_APPLICATION_DATA 23 -# define TLS1_RT_HEARTBEAT 24 +# define DTLS1_RT_HEARTBEAT 24 /* Pseudo content types to indicate additional parameters */ # define TLS1_RT_CRYPTO 0x1000 @@ -398,55 +242,6 @@ extern "C" { # define TLS1_HB_REQUEST 1 # define TLS1_HB_RESPONSE 2 -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl3_record_st { - /* type of record */ - /* - * r - */ int type; - /* How many bytes available */ - /* - * rw - */ unsigned int length; - /* read/write offset into 'buf' */ - /* - * r - */ unsigned int off; - /* pointer to the record data */ - /* - * rw - */ unsigned char *data; - /* where the decode bytes are */ - /* - * rw - */ unsigned char *input; - /* only used with decompression - malloc()ed */ - /* - * r - */ unsigned char *comp; - /* epoch number, needed by DTLS1 */ - /* - * r - */ unsigned long epoch; - /* sequence number, needed by DTLS1 */ - /* - * r - */ unsigned char seq_num[8]; -} SSL3_RECORD; - -typedef struct ssl3_buffer_st { - /* at least SSL3_RT_MAX_PACKET_SIZE bytes, see ssl3_setup_buffers() */ - unsigned char *buf; - /* buffer size */ - size_t len; - /* where to 'copy from' */ - int offset; - /* how many bytes left */ - int left; -} SSL3_BUFFER; - -# endif # define SSL3_CT_RSA_SIGN 1 # define SSL3_CT_DSS_SIGN 2 @@ -462,282 +257,20 @@ typedef struct ssl3_buffer_st { # define SSL3_CT_NUMBER 9 # define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 -# define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002 -# define SSL3_FLAGS_POP_BUFFER 0x0004 -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0008 + +/* Removed from OpenSSL 1.1.0 */ +# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 + # define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 -# define TLS1_FLAGS_KEEP_HANDSHAKE 0x0020 -/* - * Set when the handshake is ready to process peer's ChangeCipherSpec message. - * Cleared after the message has been processed. - */ -# define SSL3_FLAGS_CCS_OK 0x0080 -/* SSL3_FLAGS_SGC_RESTART_DONE is no longer used */ -# define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 +/* Set if we encrypt then mac instead of usual mac then encrypt */ +# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 +# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ -# ifndef OPENSSL_NO_SSL_INTERN +/* Set if extended master secret extension received from peer */ +# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 -typedef struct ssl3_state_st { - long flags; - int delay_buf_pop_ret; - unsigned char read_sequence[8]; - int read_mac_secret_size; - unsigned char read_mac_secret[EVP_MAX_MD_SIZE]; - unsigned char write_sequence[8]; - int write_mac_secret_size; - unsigned char write_mac_secret[EVP_MAX_MD_SIZE]; - unsigned char server_random[SSL3_RANDOM_SIZE]; - unsigned char client_random[SSL3_RANDOM_SIZE]; - /* flags for countermeasure against known-IV weakness */ - int need_empty_fragments; - int empty_fragment_done; - /* The value of 'extra' when the buffers were initialized */ - int init_extra; - SSL3_BUFFER rbuf; /* read IO goes into here */ - SSL3_BUFFER wbuf; /* write IO goes into here */ - SSL3_RECORD rrec; /* each decoded record goes in here */ - SSL3_RECORD wrec; /* goes out from here */ - /* - * storage for Alert/Handshake protocol data received but not yet - * processed by ssl3_read_bytes: - */ - unsigned char alert_fragment[2]; - unsigned int alert_fragment_len; - unsigned char handshake_fragment[4]; - unsigned int handshake_fragment_len; - /* partial write - check the numbers match */ - unsigned int wnum; /* number of bytes sent so far */ - int wpend_tot; /* number bytes written */ - int wpend_type; - int wpend_ret; /* number of bytes submitted */ - const unsigned char *wpend_buf; - /* used during startup, digest all incoming/outgoing packets */ - BIO *handshake_buffer; - /* - * When set of handshake digests is determined, buffer is hashed and - * freed and MD_CTX-es for all required digests are stored in this array - */ - EVP_MD_CTX **handshake_dgst; - /* - * Set whenever an expected ChangeCipherSpec message is processed. - * Unset when the peer's Finished message is received. - * Unexpected ChangeCipherSpec messages trigger a fatal alert. - */ - int change_cipher_spec; - int warn_alert; - int fatal_alert; - /* - * we allow one fatal and one warning alert to be outstanding, send close - * alert via the warning alert - */ - int alert_dispatch; - unsigned char send_alert[2]; - /* - * This flag is set when we should renegotiate ASAP, basically when there - * is no more data in the read or write buffers - */ - int renegotiate; - int total_renegotiations; - int num_renegotiations; - int in_read_app_data; - /* - * Opaque PRF input as used for the current handshake. These fields are - * used only if TLSEXT_TYPE_opaque_prf_input is defined (otherwise, they - * are merely present to improve binary compatibility) - */ - void *client_opaque_prf_input; - size_t client_opaque_prf_input_len; - void *server_opaque_prf_input; - size_t server_opaque_prf_input_len; - struct { - /* actually only needs to be 16+20 */ - unsigned char cert_verify_md[EVP_MAX_MD_SIZE * 2]; - /* actually only need to be 16+20 for SSLv3 and 12 for TLS */ - unsigned char finish_md[EVP_MAX_MD_SIZE * 2]; - int finish_md_len; - unsigned char peer_finish_md[EVP_MAX_MD_SIZE * 2]; - int peer_finish_md_len; - unsigned long message_size; - int message_type; - /* used to hold the new cipher we are going to use */ - const SSL_CIPHER *new_cipher; -# ifndef OPENSSL_NO_DH - DH *dh; -# endif -# ifndef OPENSSL_NO_ECDH - EC_KEY *ecdh; /* holds short lived ECDH key */ -# endif - /* used when SSL_ST_FLUSH_DATA is entered */ - int next_state; - int reuse_message; - /* used for certificate requests */ - int cert_req; - int ctype_num; - char ctype[SSL3_CT_NUMBER]; - STACK_OF(X509_NAME) *ca_names; - int use_rsa_tmp; - int key_block_length; - unsigned char *key_block; - const EVP_CIPHER *new_sym_enc; - const EVP_MD *new_hash; - int new_mac_pkey_type; - int new_mac_secret_size; -# ifndef OPENSSL_NO_COMP - const SSL_COMP *new_compression; -# else - char *new_compression; -# endif - int cert_request; - } tmp; - - /* Connection binding to prevent renegotiation attacks */ - unsigned char previous_client_finished[EVP_MAX_MD_SIZE]; - unsigned char previous_client_finished_len; - unsigned char previous_server_finished[EVP_MAX_MD_SIZE]; - unsigned char previous_server_finished_len; - int send_connection_binding; /* TODOEKR */ - -# ifndef OPENSSL_NO_NEXTPROTONEG - /* - * Set if we saw the Next Protocol Negotiation extension from our peer. - */ - int next_proto_neg_seen; -# endif - -# ifndef OPENSSL_NO_TLSEXT -# ifndef OPENSSL_NO_EC - /* - * This is set to true if we believe that this is a version of Safari - * running on OS X 10.6 or newer. We wish to know this because Safari on - * 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. - */ - char is_probably_safari; -# endif /* !OPENSSL_NO_EC */ - - /* - * ALPN information (we are in the process of transitioning from NPN to - * ALPN.) - */ - - /* - * In a server these point to the selected ALPN protocol after the - * ClientHello has been processed. In a client these contain the protocol - * that the server selected once the ServerHello has been processed. - */ - unsigned char *alpn_selected; - unsigned alpn_selected_len; -# endif /* OPENSSL_NO_TLSEXT */ -} SSL3_STATE; - -# endif - -/* SSLv3 */ -/* - * client - */ -/* extra state */ -# define SSL3_ST_CW_FLUSH (0x100|SSL_ST_CONNECT) -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_ST_CW_WRITE_SOCK (0x310|SSL_ST_CONNECT) -# define DTLS1_SCTP_ST_CR_READ_SOCK (0x320|SSL_ST_CONNECT) -# endif -/* write to server */ -# define SSL3_ST_CW_CLNT_HELLO_A (0x110|SSL_ST_CONNECT) -# define SSL3_ST_CW_CLNT_HELLO_B (0x111|SSL_ST_CONNECT) -/* read from server */ -# define SSL3_ST_CR_SRVR_HELLO_A (0x120|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_HELLO_B (0x121|SSL_ST_CONNECT) -# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A (0x126|SSL_ST_CONNECT) -# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B (0x127|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_A (0x130|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_B (0x131|SSL_ST_CONNECT) -# define SSL3_ST_CR_KEY_EXCH_A (0x140|SSL_ST_CONNECT) -# define SSL3_ST_CR_KEY_EXCH_B (0x141|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_REQ_A (0x150|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_REQ_B (0x151|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_DONE_A (0x160|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_DONE_B (0x161|SSL_ST_CONNECT) -/* write to server */ -# define SSL3_ST_CW_CERT_A (0x170|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_B (0x171|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_C (0x172|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_D (0x173|SSL_ST_CONNECT) -# define SSL3_ST_CW_KEY_EXCH_A (0x180|SSL_ST_CONNECT) -# define SSL3_ST_CW_KEY_EXCH_B (0x181|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_VRFY_A (0x190|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) -# define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) -# define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) -# define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) -# endif -# define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) -# define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) -/* read from server */ -# define SSL3_ST_CR_CHANGE_A (0x1C0|SSL_ST_CONNECT) -# define SSL3_ST_CR_CHANGE_B (0x1C1|SSL_ST_CONNECT) -# define SSL3_ST_CR_FINISHED_A (0x1D0|SSL_ST_CONNECT) -# define SSL3_ST_CR_FINISHED_B (0x1D1|SSL_ST_CONNECT) -# define SSL3_ST_CR_SESSION_TICKET_A (0x1E0|SSL_ST_CONNECT) -# define SSL3_ST_CR_SESSION_TICKET_B (0x1E1|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_STATUS_A (0x1F0|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_STATUS_B (0x1F1|SSL_ST_CONNECT) - -/* server */ -/* extra state */ -# define SSL3_ST_SW_FLUSH (0x100|SSL_ST_ACCEPT) -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_ST_SW_WRITE_SOCK (0x310|SSL_ST_ACCEPT) -# define DTLS1_SCTP_ST_SR_READ_SOCK (0x320|SSL_ST_ACCEPT) -# endif -/* read from client */ -/* Do not change the number values, they do matter */ -# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_D (0x115|SSL_ST_ACCEPT) -/* write to client */ -# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT) -# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_A (0x120|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_B (0x121|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_C (0x122|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_HELLO_A (0x130|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_HELLO_B (0x131|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_A (0x140|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_B (0x141|SSL_ST_ACCEPT) -# define SSL3_ST_SW_KEY_EXCH_A (0x150|SSL_ST_ACCEPT) -# define SSL3_ST_SW_KEY_EXCH_B (0x151|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_REQ_A (0x160|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_REQ_B (0x161|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_DONE_A (0x170|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_DONE_B (0x171|SSL_ST_ACCEPT) -/* read from client */ -# define SSL3_ST_SR_CERT_A (0x180|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_B (0x181|SSL_ST_ACCEPT) -# define SSL3_ST_SR_KEY_EXCH_A (0x190|SSL_ST_ACCEPT) -# define SSL3_ST_SR_KEY_EXCH_B (0x191|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_VRFY_A (0x1A0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) -# define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) -# endif -# define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) -/* write to client */ -# define SSL3_ST_SW_CHANGE_A (0x1D0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CHANGE_B (0x1D1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_FINISHED_A (0x1E0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_FINISHED_B (0x1E1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SESSION_TICKET_A (0x1F0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SESSION_TICKET_B (0x1F1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_STATUS_A (0x200|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_STATUS_B (0x201|SSL_ST_ACCEPT) +# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 # define SSL3_MT_HELLO_REQUEST 0 # define SSL3_MT_CLIENT_HELLO 1 @@ -756,6 +289,9 @@ typedef struct ssl3_state_st { # endif # define DTLS1_MT_HELLO_VERIFY_REQUEST 3 +/* Dummy message type for handling CCS like a normal handshake message */ +# define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 + # define SSL3_MT_CCS 1 /* These are used when changing over to a new cipher */ diff --git a/libs/mac/include/openssl/stack.h b/libs/mac/include/openssl/stack.h index eb072166..23ad3b89 100644 --- a/libs/mac/include/openssl/stack.h +++ b/libs/mac/include/openssl/stack.h @@ -1,59 +1,10 @@ -/* crypto/stack/stack.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_STACK_H @@ -63,42 +14,62 @@ extern "C" { #endif -typedef struct stack_st { - int num; - char **data; - int sorted; - int num_alloc; - int (*comp) (const void *, const void *); -} _STACK; /* Use STACK_OF(...) instead */ +typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ -# define M_sk_num(sk) ((sk) ? (sk)->num:-1) -# define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL) +typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); +typedef void (*OPENSSL_sk_freefunc)(void *); +typedef void *(*OPENSSL_sk_copyfunc)(const void *); -int sk_num(const _STACK *); -void *sk_value(const _STACK *, int); +int OPENSSL_sk_num(const OPENSSL_STACK *); +void *OPENSSL_sk_value(const OPENSSL_STACK *, int); -void *sk_set(_STACK *, int, void *); +void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); -_STACK *sk_new(int (*cmp) (const void *, const void *)); -_STACK *sk_new_null(void); -void sk_free(_STACK *); -void sk_pop_free(_STACK *st, void (*func) (void *)); -_STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); -int sk_insert(_STACK *sk, void *data, int where); -void *sk_delete(_STACK *st, int loc); -void *sk_delete_ptr(_STACK *st, void *p); -int sk_find(_STACK *st, void *data); -int sk_find_ex(_STACK *st, void *data); -int sk_push(_STACK *st, void *data); -int sk_unshift(_STACK *st, void *data); -void *sk_shift(_STACK *st); -void *sk_pop(_STACK *st); -void sk_zero(_STACK *st); -int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) - (const void *, const void *); -_STACK *sk_dup(_STACK *st); -void sk_sort(_STACK *st); -int sk_is_sorted(const _STACK *st); +OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_new_null(void); +void OPENSSL_sk_free(OPENSSL_STACK *); +void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); +OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f); +int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); +void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); +void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); +int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); +void *OPENSSL_sk_shift(OPENSSL_STACK *st); +void *OPENSSL_sk_pop(OPENSSL_STACK *st); +void OPENSSL_sk_zero(OPENSSL_STACK *st); +OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); +void OPENSSL_sk_sort(OPENSSL_STACK *st); +int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define _STACK OPENSSL_STACK +# define sk_num OPENSSL_sk_num +# define sk_value OPENSSL_sk_value +# define sk_set OPENSSL_sk_set +# define sk_new OPENSSL_sk_new +# define sk_new_null OPENSSL_sk_new_null +# define sk_free OPENSSL_sk_free +# define sk_pop_free OPENSSL_sk_pop_free +# define sk_deep_copy OPENSSL_sk_deep_copy +# define sk_insert OPENSSL_sk_insert +# define sk_delete OPENSSL_sk_delete +# define sk_delete_ptr OPENSSL_sk_delete_ptr +# define sk_find OPENSSL_sk_find +# define sk_find_ex OPENSSL_sk_find_ex +# define sk_push OPENSSL_sk_push +# define sk_unshift OPENSSL_sk_unshift +# define sk_shift OPENSSL_sk_shift +# define sk_pop OPENSSL_sk_pop +# define sk_zero OPENSSL_sk_zero +# define sk_set_cmp_func OPENSSL_sk_set_cmp_func +# define sk_dup OPENSSL_sk_dup +# define sk_sort OPENSSL_sk_sort +# define sk_is_sorted OPENSSL_sk_is_sorted +# endif #ifdef __cplusplus } diff --git a/libs/mac/include/openssl/symhacks.h b/libs/mac/include/openssl/symhacks.h index 30019579..caf1f1a7 100644 --- a/libs/mac/include/openssl/symhacks.h +++ b/libs/mac/include/openssl/symhacks.h @@ -1,55 +1,10 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_SYMHACKS_H @@ -57,429 +12,8 @@ # include -/* - * Hacks to solve the problem with linkers incapable of handling very long - * symbol names. In the case of VMS, the limit is 31 characters on VMS for - * VAX. - */ -/* - * Note that this affects util/libeay.num and util/ssleay.num... you may - * change those manually, but that's not recommended, as those files are - * controlled centrally and updated on Unix, and the central definition may - * disagree with yours, which in turn may come with shareable library - * incompatibilities. - */ -# ifdef OPENSSL_SYS_VMS - -/* Hack a long name in crypto/ex_data.c */ -# undef CRYPTO_get_ex_data_implementation -# define CRYPTO_get_ex_data_implementation CRYPTO_get_ex_data_impl -# undef CRYPTO_set_ex_data_implementation -# define CRYPTO_set_ex_data_implementation CRYPTO_set_ex_data_impl - -/* Hack a long name in crypto/asn1/a_mbstr.c */ -# undef ASN1_STRING_set_default_mask_asc -# define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */ -# undef i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO -# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO i2d_ASN1_SET_OF_PKCS7_SIGINF -# undef d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO -# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO d2i_ASN1_SET_OF_PKCS7_SIGINF -# endif - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) */ -# undef i2d_ASN1_SET_OF_PKCS7_RECIP_INFO -# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO i2d_ASN1_SET_OF_PKCS7_RECINF -# undef d2i_ASN1_SET_OF_PKCS7_RECIP_INFO -# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO d2i_ASN1_SET_OF_PKCS7_RECINF -# endif - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) */ -# undef i2d_ASN1_SET_OF_ACCESS_DESCRIPTION -# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION i2d_ASN1_SET_OF_ACC_DESC -# undef d2i_ASN1_SET_OF_ACCESS_DESCRIPTION -# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION d2i_ASN1_SET_OF_ACC_DESC -# endif - -/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */ -# undef PEM_read_NETSCAPE_CERT_SEQUENCE -# define PEM_read_NETSCAPE_CERT_SEQUENCE PEM_read_NS_CERT_SEQ -# undef PEM_write_NETSCAPE_CERT_SEQUENCE -# define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NS_CERT_SEQ -# undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NS_CERT_SEQ -# undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NS_CERT_SEQ -# undef PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE PEM_write_cb_bio_NS_CERT_SEQ - -/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */ -# undef PEM_read_PKCS8_PRIV_KEY_INFO -# define PEM_read_PKCS8_PRIV_KEY_INFO PEM_read_P8_PRIV_KEY_INFO -# undef PEM_write_PKCS8_PRIV_KEY_INFO -# define PEM_write_PKCS8_PRIV_KEY_INFO PEM_write_P8_PRIV_KEY_INFO -# undef PEM_read_bio_PKCS8_PRIV_KEY_INFO -# define PEM_read_bio_PKCS8_PRIV_KEY_INFO PEM_read_bio_P8_PRIV_KEY_INFO -# undef PEM_write_bio_PKCS8_PRIV_KEY_INFO -# define PEM_write_bio_PKCS8_PRIV_KEY_INFO PEM_write_bio_P8_PRIV_KEY_INFO -# undef PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO -# define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO PEM_wrt_cb_bio_P8_PRIV_KEY_INFO - -/* Hack other PEM names */ -# undef PEM_write_bio_PKCS8PrivateKey_nid -# define PEM_write_bio_PKCS8PrivateKey_nid PEM_write_bio_PKCS8PrivKey_nid - -/* Hack some long X509 names */ -# undef X509_REVOKED_get_ext_by_critical -# define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic -# undef X509_policy_tree_get0_user_policies -# define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies -# undef X509_policy_node_get0_qualifiers -# define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers -# undef X509_STORE_CTX_get_explicit_policy -# define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy -# undef X509_STORE_CTX_get0_current_issuer -# define X509_STORE_CTX_get0_current_issuer X509_STORE_CTX_get0_cur_issuer - -/* Hack some long CRYPTO names */ -# undef CRYPTO_set_dynlock_destroy_callback -# define CRYPTO_set_dynlock_destroy_callback CRYPTO_set_dynlock_destroy_cb -# undef CRYPTO_set_dynlock_create_callback -# define CRYPTO_set_dynlock_create_callback CRYPTO_set_dynlock_create_cb -# undef CRYPTO_set_dynlock_lock_callback -# define CRYPTO_set_dynlock_lock_callback CRYPTO_set_dynlock_lock_cb -# undef CRYPTO_get_dynlock_lock_callback -# define CRYPTO_get_dynlock_lock_callback CRYPTO_get_dynlock_lock_cb -# undef CRYPTO_get_dynlock_destroy_callback -# define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb -# undef CRYPTO_get_dynlock_create_callback -# define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb -# undef CRYPTO_set_locked_mem_ex_functions -# define CRYPTO_set_locked_mem_ex_functions CRYPTO_set_locked_mem_ex_funcs -# undef CRYPTO_get_locked_mem_ex_functions -# define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs - -/* Hack some long SSL/TLS names */ -# undef SSL_CTX_set_default_verify_paths -# define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths -# undef SSL_get_ex_data_X509_STORE_CTX_idx -# define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx -# undef SSL_add_file_cert_subjects_to_stack -# define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk -# undef SSL_add_dir_cert_subjects_to_stack -# define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk -# undef SSL_CTX_use_certificate_chain_file -# define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file -# undef SSL_CTX_set_cert_verify_callback -# define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb -# undef SSL_CTX_set_default_passwd_cb_userdata -# define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud -# undef SSL_COMP_get_compression_methods -# define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods -# undef SSL_COMP_set0_compression_methods -# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compress_methods -# undef SSL_COMP_free_compression_methods -# define SSL_COMP_free_compression_methods SSL_COMP_free_compress_methods -# undef ssl_add_clienthello_renegotiate_ext -# define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext -# undef ssl_add_serverhello_renegotiate_ext -# define ssl_add_serverhello_renegotiate_ext ssl_add_serverhello_reneg_ext -# undef ssl_parse_clienthello_renegotiate_ext -# define ssl_parse_clienthello_renegotiate_ext ssl_parse_clienthello_reneg_ext -# undef ssl_parse_serverhello_renegotiate_ext -# define ssl_parse_serverhello_renegotiate_ext ssl_parse_serverhello_reneg_ext -# undef SSL_srp_server_param_with_username -# define SSL_srp_server_param_with_username SSL_srp_server_param_with_un -# undef SSL_CTX_set_srp_client_pwd_callback -# define SSL_CTX_set_srp_client_pwd_callback SSL_CTX_set_srp_client_pwd_cb -# undef SSL_CTX_set_srp_verify_param_callback -# define SSL_CTX_set_srp_verify_param_callback SSL_CTX_set_srp_vfy_param_cb -# undef SSL_CTX_set_srp_username_callback -# define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb -# undef ssl_add_clienthello_use_srtp_ext -# define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext -# undef ssl_add_serverhello_use_srtp_ext -# define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext -# undef ssl_parse_clienthello_use_srtp_ext -# define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext -# undef ssl_parse_serverhello_use_srtp_ext -# define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext -# undef SSL_CTX_set_next_protos_advertised_cb -# define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb -# undef SSL_CTX_set_next_proto_select_cb -# define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb - -# undef tls1_send_server_supplemental_data -# define tls1_send_server_supplemental_data tls1_send_server_suppl_data -# undef tls1_send_client_supplemental_data -# define tls1_send_client_supplemental_data tls1_send_client_suppl_data -# undef tls1_get_server_supplemental_data -# define tls1_get_server_supplemental_data tls1_get_server_suppl_data -# undef tls1_get_client_supplemental_data -# define tls1_get_client_supplemental_data tls1_get_client_suppl_data - -# undef ssl3_cbc_record_digest_supported -# define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support -# undef ssl_check_clienthello_tlsext_late -# define ssl_check_clienthello_tlsext_late ssl_check_clihello_tlsext_late -# undef ssl_check_clienthello_tlsext_early -# define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early - -/* Hack some RSA long names */ -# undef RSA_padding_check_PKCS1_OAEP_mgf1 -# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_pad_check_PKCS1_OAEP_mgf1 - -/* Hack some ENGINE long names */ -# undef ENGINE_get_default_BN_mod_exp_crt -# define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt -# undef ENGINE_set_default_BN_mod_exp_crt -# define ENGINE_set_default_BN_mod_exp_crt ENGINE_set_def_BN_mod_exp_crt -# undef ENGINE_set_load_privkey_function -# define ENGINE_set_load_privkey_function ENGINE_set_load_privkey_fn -# undef ENGINE_get_load_privkey_function -# define ENGINE_get_load_privkey_function ENGINE_get_load_privkey_fn -# undef ENGINE_unregister_pkey_asn1_meths -# define ENGINE_unregister_pkey_asn1_meths ENGINE_unreg_pkey_asn1_meths -# undef ENGINE_register_all_pkey_asn1_meths -# define ENGINE_register_all_pkey_asn1_meths ENGINE_reg_all_pkey_asn1_meths -# undef ENGINE_set_default_pkey_asn1_meths -# define ENGINE_set_default_pkey_asn1_meths ENGINE_set_def_pkey_asn1_meths -# undef ENGINE_get_pkey_asn1_meth_engine -# define ENGINE_get_pkey_asn1_meth_engine ENGINE_get_pkey_asn1_meth_eng -# undef ENGINE_set_load_ssl_client_cert_function -# define ENGINE_set_load_ssl_client_cert_function \ - ENGINE_set_ld_ssl_clnt_cert_fn -# undef ENGINE_get_ssl_client_cert_function -# define ENGINE_get_ssl_client_cert_function ENGINE_get_ssl_client_cert_fn - -/* Hack some long OCSP names */ -# undef OCSP_REQUEST_get_ext_by_critical -# define OCSP_REQUEST_get_ext_by_critical OCSP_REQUEST_get_ext_by_crit -# undef OCSP_BASICRESP_get_ext_by_critical -# define OCSP_BASICRESP_get_ext_by_critical OCSP_BASICRESP_get_ext_by_crit -# undef OCSP_SINGLERESP_get_ext_by_critical -# define OCSP_SINGLERESP_get_ext_by_critical OCSP_SINGLERESP_get_ext_by_crit - -/* Hack some long DES names */ -# undef _ossl_old_des_ede3_cfb64_encrypt -# define _ossl_old_des_ede3_cfb64_encrypt _ossl_odes_ede3_cfb64_encrypt -# undef _ossl_old_des_ede3_ofb64_encrypt -# define _ossl_old_des_ede3_ofb64_encrypt _ossl_odes_ede3_ofb64_encrypt - -/* Hack some long EVP names */ -# undef OPENSSL_add_all_algorithms_noconf -# define OPENSSL_add_all_algorithms_noconf OPENSSL_add_all_algo_noconf -# undef OPENSSL_add_all_algorithms_conf -# define OPENSSL_add_all_algorithms_conf OPENSSL_add_all_algo_conf -# undef EVP_PKEY_meth_set_verify_recover -# define EVP_PKEY_meth_set_verify_recover EVP_PKEY_meth_set_vrfy_recover -# undef EVP_PKEY_meth_get_verify_recover -# define EVP_PKEY_meth_get_verify_recover EVP_PKEY_meth_get_vrfy_recover - -/* Hack some long EC names */ -# undef EC_GROUP_set_point_conversion_form -# define EC_GROUP_set_point_conversion_form EC_GROUP_set_point_conv_form -# undef EC_GROUP_get_point_conversion_form -# define EC_GROUP_get_point_conversion_form EC_GROUP_get_point_conv_form -# undef EC_GROUP_clear_free_all_extra_data -# define EC_GROUP_clear_free_all_extra_data EC_GROUP_clr_free_all_xtra_data -# undef EC_KEY_set_public_key_affine_coordinates -# define EC_KEY_set_public_key_affine_coordinates \ - EC_KEY_set_pub_key_aff_coords -# undef EC_POINT_set_Jprojective_coordinates_GFp -# define EC_POINT_set_Jprojective_coordinates_GFp \ - EC_POINT_set_Jproj_coords_GFp -# undef EC_POINT_get_Jprojective_coordinates_GFp -# define EC_POINT_get_Jprojective_coordinates_GFp \ - EC_POINT_get_Jproj_coords_GFp -# undef EC_POINT_set_affine_coordinates_GFp -# define EC_POINT_set_affine_coordinates_GFp EC_POINT_set_affine_coords_GFp -# undef EC_POINT_get_affine_coordinates_GFp -# define EC_POINT_get_affine_coordinates_GFp EC_POINT_get_affine_coords_GFp -# undef EC_POINT_set_compressed_coordinates_GFp -# define EC_POINT_set_compressed_coordinates_GFp EC_POINT_set_compr_coords_GFp -# undef EC_POINT_set_affine_coordinates_GF2m -# define EC_POINT_set_affine_coordinates_GF2m EC_POINT_set_affine_coords_GF2m -# undef EC_POINT_get_affine_coordinates_GF2m -# define EC_POINT_get_affine_coordinates_GF2m EC_POINT_get_affine_coords_GF2m -# undef EC_POINT_set_compressed_coordinates_GF2m -# define EC_POINT_set_compressed_coordinates_GF2m \ - EC_POINT_set_compr_coords_GF2m -# undef ec_GF2m_simple_group_clear_finish -# define ec_GF2m_simple_group_clear_finish ec_GF2m_simple_grp_clr_finish -# undef ec_GF2m_simple_group_check_discriminant -# define ec_GF2m_simple_group_check_discriminant ec_GF2m_simple_grp_chk_discrim -# undef ec_GF2m_simple_point_clear_finish -# define ec_GF2m_simple_point_clear_finish ec_GF2m_simple_pt_clr_finish -# undef ec_GF2m_simple_point_set_to_infinity -# define ec_GF2m_simple_point_set_to_infinity ec_GF2m_simple_pt_set_to_inf -# undef ec_GF2m_simple_points_make_affine -# define ec_GF2m_simple_points_make_affine ec_GF2m_simple_pts_make_affine -# undef ec_GF2m_simple_point_set_affine_coordinates -# define ec_GF2m_simple_point_set_affine_coordinates \ - ec_GF2m_smp_pt_set_af_coords -# undef ec_GF2m_simple_point_get_affine_coordinates -# define ec_GF2m_simple_point_get_affine_coordinates \ - ec_GF2m_smp_pt_get_af_coords -# undef ec_GF2m_simple_set_compressed_coordinates -# define ec_GF2m_simple_set_compressed_coordinates \ - ec_GF2m_smp_set_compr_coords -# undef ec_GFp_simple_group_set_curve_GFp -# define ec_GFp_simple_group_set_curve_GFp ec_GFp_simple_grp_set_curve_GFp -# undef ec_GFp_simple_group_get_curve_GFp -# define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp -# undef ec_GFp_simple_group_clear_finish -# define ec_GFp_simple_group_clear_finish ec_GFp_simple_grp_clear_finish -# undef ec_GFp_simple_group_set_generator -# define ec_GFp_simple_group_set_generator ec_GFp_simple_grp_set_generator -# undef ec_GFp_simple_group_get0_generator -# define ec_GFp_simple_group_get0_generator ec_GFp_simple_grp_gt0_generator -# undef ec_GFp_simple_group_get_cofactor -# define ec_GFp_simple_group_get_cofactor ec_GFp_simple_grp_get_cofactor -# undef ec_GFp_simple_point_clear_finish -# define ec_GFp_simple_point_clear_finish ec_GFp_simple_pt_clear_finish -# undef ec_GFp_simple_point_set_to_infinity -# define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf -# undef ec_GFp_simple_points_make_affine -# define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine -# undef ec_GFp_simple_set_Jprojective_coordinates_GFp -# define ec_GFp_simple_set_Jprojective_coordinates_GFp \ - ec_GFp_smp_set_Jproj_coords_GFp -# undef ec_GFp_simple_get_Jprojective_coordinates_GFp -# define ec_GFp_simple_get_Jprojective_coordinates_GFp \ - ec_GFp_smp_get_Jproj_coords_GFp -# undef ec_GFp_simple_point_set_affine_coordinates_GFp -# define ec_GFp_simple_point_set_affine_coordinates_GFp \ - ec_GFp_smp_pt_set_af_coords_GFp -# undef ec_GFp_simple_point_get_affine_coordinates_GFp -# define ec_GFp_simple_point_get_affine_coordinates_GFp \ - ec_GFp_smp_pt_get_af_coords_GFp -# undef ec_GFp_simple_set_compressed_coordinates_GFp -# define ec_GFp_simple_set_compressed_coordinates_GFp \ - ec_GFp_smp_set_compr_coords_GFp -# undef ec_GFp_simple_point_set_affine_coordinates -# define ec_GFp_simple_point_set_affine_coordinates \ - ec_GFp_smp_pt_set_af_coords -# undef ec_GFp_simple_point_get_affine_coordinates -# define ec_GFp_simple_point_get_affine_coordinates \ - ec_GFp_smp_pt_get_af_coords -# undef ec_GFp_simple_set_compressed_coordinates -# define ec_GFp_simple_set_compressed_coordinates \ - ec_GFp_smp_set_compr_coords -# undef ec_GFp_simple_group_check_discriminant -# define ec_GFp_simple_group_check_discriminant ec_GFp_simple_grp_chk_discrim - -/* Hack som long STORE names */ -# undef STORE_method_set_initialise_function -# define STORE_method_set_initialise_function STORE_meth_set_initialise_fn -# undef STORE_method_set_cleanup_function -# define STORE_method_set_cleanup_function STORE_meth_set_cleanup_fn -# undef STORE_method_set_generate_function -# define STORE_method_set_generate_function STORE_meth_set_generate_fn -# undef STORE_method_set_modify_function -# define STORE_method_set_modify_function STORE_meth_set_modify_fn -# undef STORE_method_set_revoke_function -# define STORE_method_set_revoke_function STORE_meth_set_revoke_fn -# undef STORE_method_set_delete_function -# define STORE_method_set_delete_function STORE_meth_set_delete_fn -# undef STORE_method_set_list_start_function -# define STORE_method_set_list_start_function STORE_meth_set_list_start_fn -# undef STORE_method_set_list_next_function -# define STORE_method_set_list_next_function STORE_meth_set_list_next_fn -# undef STORE_method_set_list_end_function -# define STORE_method_set_list_end_function STORE_meth_set_list_end_fn -# undef STORE_method_set_update_store_function -# define STORE_method_set_update_store_function STORE_meth_set_update_store_fn -# undef STORE_method_set_lock_store_function -# define STORE_method_set_lock_store_function STORE_meth_set_lock_store_fn -# undef STORE_method_set_unlock_store_function -# define STORE_method_set_unlock_store_function STORE_meth_set_unlock_store_fn -# undef STORE_method_get_initialise_function -# define STORE_method_get_initialise_function STORE_meth_get_initialise_fn -# undef STORE_method_get_cleanup_function -# define STORE_method_get_cleanup_function STORE_meth_get_cleanup_fn -# undef STORE_method_get_generate_function -# define STORE_method_get_generate_function STORE_meth_get_generate_fn -# undef STORE_method_get_modify_function -# define STORE_method_get_modify_function STORE_meth_get_modify_fn -# undef STORE_method_get_revoke_function -# define STORE_method_get_revoke_function STORE_meth_get_revoke_fn -# undef STORE_method_get_delete_function -# define STORE_method_get_delete_function STORE_meth_get_delete_fn -# undef STORE_method_get_list_start_function -# define STORE_method_get_list_start_function STORE_meth_get_list_start_fn -# undef STORE_method_get_list_next_function -# define STORE_method_get_list_next_function STORE_meth_get_list_next_fn -# undef STORE_method_get_list_end_function -# define STORE_method_get_list_end_function STORE_meth_get_list_end_fn -# undef STORE_method_get_update_store_function -# define STORE_method_get_update_store_function STORE_meth_get_update_store_fn -# undef STORE_method_get_lock_store_function -# define STORE_method_get_lock_store_function STORE_meth_get_lock_store_fn -# undef STORE_method_get_unlock_store_function -# define STORE_method_get_unlock_store_function STORE_meth_get_unlock_store_fn - -/* Hack some long TS names */ -# undef TS_RESP_CTX_set_status_info_cond -# define TS_RESP_CTX_set_status_info_cond TS_RESP_CTX_set_stat_info_cond -# undef TS_RESP_CTX_set_clock_precision_digits -# define TS_RESP_CTX_set_clock_precision_digits TS_RESP_CTX_set_clk_prec_digits -# undef TS_CONF_set_clock_precision_digits -# define TS_CONF_set_clock_precision_digits TS_CONF_set_clk_prec_digits - -/* Hack some long CMS names */ -# undef CMS_RecipientInfo_ktri_get0_algs -# define CMS_RecipientInfo_ktri_get0_algs CMS_RecipInfo_ktri_get0_algs -# undef CMS_RecipientInfo_ktri_get0_signer_id -# define CMS_RecipientInfo_ktri_get0_signer_id CMS_RecipInfo_ktri_get0_sigr_id -# undef CMS_OtherRevocationInfoFormat_it -# define CMS_OtherRevocationInfoFormat_it CMS_OtherRevocInfoFormat_it -# undef CMS_KeyAgreeRecipientIdentifier_it -# define CMS_KeyAgreeRecipientIdentifier_it CMS_KeyAgreeRecipIdentifier_it -# undef CMS_OriginatorIdentifierOrKey_it -# define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it -# undef cms_SignerIdentifier_get0_signer_id -# define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id -# undef CMS_RecipientInfo_kari_get0_orig_id -# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id -# undef CMS_RecipientInfo_kari_get0_reks -# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks -# undef CMS_RecipientEncryptedKey_cert_cmp -# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp -# undef CMS_RecipientInfo_kari_set0_pkey -# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey -# undef CMS_RecipientEncryptedKey_get0_id -# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id -# undef CMS_RecipientInfo_kari_orig_id_cmp -# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp - -/* Hack some long DTLS1 names */ -# undef dtls1_retransmit_buffered_messages -# define dtls1_retransmit_buffered_messages dtls1_retransmit_buffered_msgs - -/* Hack some long SRP names */ -# undef SRP_generate_server_master_secret -# define SRP_generate_server_master_secret SRP_gen_server_master_secret -# undef SRP_generate_client_master_secret -# define SRP_generate_client_master_secret SRP_gen_client_master_secret - -/* Hack some long UI names */ -# undef UI_method_get_prompt_constructor -# define UI_method_get_prompt_constructor UI_method_get_prompt_constructr -# undef UI_method_set_prompt_constructor -# define UI_method_set_prompt_constructor UI_method_set_prompt_constructr - -# endif /* defined OPENSSL_SYS_VMS */ - /* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) +# if defined(OPENSSL_SYS_VMS) # undef ERR_load_CRYPTO_strings # define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings # undef OCSP_crlID_new diff --git a/libs/mac/include/openssl/tls1.h b/libs/mac/include/openssl/tls1.h index dd1d8c10..3fe01fe8 100644 --- a/libs/mac/include/openssl/tls1.h +++ b/libs/mac/include/openssl/tls1.h @@ -1,113 +1,12 @@ -/* ssl/tls1.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -152,18 +51,25 @@ # define HEADER_TLS1_H # include +# include #ifdef __cplusplus extern "C" { #endif -# define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 +/* Default security level if not overridden at config time */ +# ifndef OPENSSL_TLS_SECURITY_LEVEL +# define OPENSSL_TLS_SECURITY_LEVEL 1 +# endif # define TLS1_VERSION 0x0301 # define TLS1_1_VERSION 0x0302 # define TLS1_2_VERSION 0x0303 # define TLS_MAX_VERSION TLS1_2_VERSION +/* Special value for method supporting multiple versions */ +# define TLS_ANY_VERSION 0x10000 + # define TLS1_VERSION_MAJOR 0x03 # define TLS1_VERSION_MINOR 0x01 @@ -174,10 +80,10 @@ extern "C" { # define TLS1_2_VERSION_MINOR 0x03 # define TLS1_get_version(s) \ - ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) + ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) # define TLS1_get_client_version(s) \ - ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) + ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) # define TLS1_AD_DECRYPTION_FAILED 21 # define TLS1_AD_RECORD_OVERFLOW 22 @@ -199,6 +105,7 @@ extern "C" { # define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 # define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 # define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ +# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ /* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ # define TLSEXT_TYPE_server_name 0 @@ -234,25 +141,27 @@ extern "C" { /* ExtensionType value from RFC7301 */ # define TLSEXT_TYPE_application_layer_protocol_negotiation 16 +/* + * Extension type for Certificate Transparency + * https://tools.ietf.org/html/rfc6962#section-3.3.1 + */ +# define TLSEXT_TYPE_signed_certificate_timestamp 18 + /* * ExtensionType value for TLS padding extension. * http://tools.ietf.org/html/draft-agl-tls-padding */ # define TLSEXT_TYPE_padding 21 +/* ExtensionType value from RFC7366 */ +# define TLSEXT_TYPE_encrypt_then_mac 22 + +/* ExtensionType value from RFC7627 */ +# define TLSEXT_TYPE_extended_master_secret 23 + /* ExtensionType value from RFC4507 */ # define TLSEXT_TYPE_session_ticket 35 -/* ExtensionType value from draft-rescorla-tls-opaque-prf-input-00.txt */ -# if 0 -/* - * will have to be provided externally for now , - * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 - * using whatever extension number you'd like to try - */ -# define TLSEXT_TYPE_opaque_prf_input ?? -# endif - /* Temporary extension type */ # define TLSEXT_TYPE_renegotiate 0xff01 @@ -278,9 +187,12 @@ extern "C" { # define TLSEXT_signature_rsa 1 # define TLSEXT_signature_dsa 2 # define TLSEXT_signature_ecdsa 3 +# define TLSEXT_signature_gostr34102001 237 +# define TLSEXT_signature_gostr34102012_256 238 +# define TLSEXT_signature_gostr34102012_512 239 /* Total number of different signature algorithms */ -# define TLSEXT_signature_num 4 +# define TLSEXT_signature_num 7 # define TLSEXT_hash_none 0 # define TLSEXT_hash_md5 1 @@ -289,10 +201,13 @@ extern "C" { # define TLSEXT_hash_sha256 4 # define TLSEXT_hash_sha384 5 # define TLSEXT_hash_sha512 6 +# define TLSEXT_hash_gostr3411 237 +# define TLSEXT_hash_gostr34112012_256 238 +# define TLSEXT_hash_gostr34112012_512 239 /* Total number of different digest algorithms */ -# define TLSEXT_hash_num 7 +# define TLSEXT_hash_num 10 /* Flag set for unrecognised algorithms */ # define TLSEXT_nid_unknown 0x1000000 @@ -302,23 +217,21 @@ extern "C" { # define TLSEXT_curve_P_256 23 # define TLSEXT_curve_P_384 24 -# ifndef OPENSSL_NO_TLSEXT +# define TLSEXT_MAXLEN_host_name 255 -# define TLSEXT_MAXLEN_host_name 255 - -const char *SSL_get_servername(const SSL *s, const int type); -int SSL_get_servername_type(const SSL *s); +__owur const char *SSL_get_servername(const SSL *s, const int type); +__owur int SSL_get_servername_type(const SSL *s); /* * SSL_export_keying_material exports a value derived from the master secret, * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and * optional context. (Since a zero length context is allowed, the |use_context| * flag controls whether a context is included.) It returns 1 on success and - * zero otherwise. + * 0 or -1 otherwise. */ -int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - const unsigned char *context, size_t contextlen, - int use_context); +__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, + const char *label, size_t llen, + const unsigned char *context, + size_t contextlen, int use_context); int SSL_get_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, @@ -328,79 +241,102 @@ int SSL_get_shared_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, unsigned char *rsig, unsigned char *rhash); -int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); +__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); -# define SSL_set_tlsext_host_name(s,name) \ +# define SSL_set_tlsext_host_name(s,name) \ SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) -# define SSL_set_tlsext_debug_callback(ssl, cb) \ +# define SSL_set_tlsext_debug_callback(ssl, cb) \ SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) -# define SSL_set_tlsext_debug_arg(ssl, arg) \ +# define SSL_set_tlsext_debug_arg(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) -# define SSL_set_tlsext_status_type(ssl, type) \ +# define SSL_get_tlsext_status_type(ssl) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0, NULL) + +# define SSL_set_tlsext_status_type(ssl, type) \ SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) -# define SSL_get_tlsext_status_exts(ssl, arg) \ +# define SSL_get_tlsext_status_exts(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) -# define SSL_set_tlsext_status_exts(ssl, arg) \ +# define SSL_set_tlsext_status_exts(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) -# define SSL_get_tlsext_status_ids(ssl, arg) \ +# define SSL_get_tlsext_status_ids(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) -# define SSL_set_tlsext_status_ids(ssl, arg) \ +# define SSL_set_tlsext_status_ids(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ +# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ +# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) -# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ +# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) -# define SSL_TLSEXT_ERR_OK 0 -# define SSL_TLSEXT_ERR_ALERT_WARNING 1 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# define SSL_TLSEXT_ERR_NOACK 3 +# define SSL_TLSEXT_ERR_OK 0 +# define SSL_TLSEXT_ERR_ALERT_WARNING 1 +# define SSL_TLSEXT_ERR_ALERT_FATAL 2 +# define SSL_TLSEXT_ERR_NOACK 3 -# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ +# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ +# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) -# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ +# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) -# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ +# define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ +SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0, (void (**)(void))cb) +# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ -SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) +# define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) +# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) -# define SSL_set_tlsext_opaque_prf_input(s, src, len) \ -SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src) -# define SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) \ -SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, (void (*)(void))cb) -# define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) \ -SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg) +#define SSL_CTX_set_tlsext_status_type(ssl, type) \ + SSL_CTX_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, type, NULL) -# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ +#define SSL_CTX_get_tlsext_status_type(ssl) \ + SSL_CTX_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE, 0, NULL) + +# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_TLSEXT_HB_ENABLED 0x01 -# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS 0x02 -# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS 0x04 +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_DTLSEXT_HB_ENABLED 0x01 +# define SSL_DTLSEXT_HB_DONT_SEND_REQUESTS 0x02 +# define SSL_DTLSEXT_HB_DONT_RECV_REQUESTS 0x04 +# define SSL_get_dtlsext_heartbeat_pending(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0,NULL) +# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ + SSL_ctrl((ssl),SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT \ + SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT +# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING \ + SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING +# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS \ + SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS +# define SSL_TLSEXT_HB_ENABLED \ + SSL_DTLSEXT_HB_ENABLED +# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS \ + SSL_DTLSEXT_HB_DONT_SEND_REQUESTS +# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS \ + SSL_DTLSEXT_HB_DONT_RECV_REQUESTS # define SSL_get_tlsext_heartbeat_pending(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) + SSL_get_dtlsext_heartbeat_pending(ssl) # define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ - SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) + SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) # endif # endif @@ -410,22 +346,43 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C # define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D -/* - * Additional TLS ciphersuites from expired Internet Draft - * draft-ietf-tls-56-bit-ciphersuites-01.txt (available if - * TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see s3_lib.c). We - * actually treat them like SSL 3.0 ciphers, which we probably shouldn't. - * Note that the first two are actually not in the IDs. - */ -# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060/* not in - * ID */ -# define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061/* not in - * ID */ -# define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062 -# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063 -# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064 -# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065 -# define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 +# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E +# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F +# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 + +# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 +# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 +# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 +# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 + +/* PSK ciphersuites from 5487 */ +# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 +# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 +# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA +# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB +# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC +# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD + +# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE +# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF +# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 +# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 + +# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 + +# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 +# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 + +/* NULL PSK ciphersuites from RFC4785 */ +# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E /* AES ciphersuites from RFC3268 */ # define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F @@ -497,10 +454,46 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 # define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 -/* - * ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in - * draft 13 - */ +/* CCM ciphersuites from RFC6655 */ +# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C +# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D +# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E +# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F +# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 +# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 +# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 +# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 +# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 +# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 +# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 +# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 +# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 +# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA +# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB + +/* CCM ciphersuites from RFC7251 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF + +/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE +# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF + +# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 +# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 + +/* ECC ciphersuites from RFC4492 */ # define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 # define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 # define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 @@ -563,20 +556,61 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 # define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 +/* ECDHE PSK ciphersuites from RFC5489 */ +# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 +# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 +# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 +# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 + +# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 +# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 + +/* NULL PSK ciphersuites from RFC4785 */ + +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B + +/* Camellia-CBC ciphersuites from RFC6367 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 +# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 +# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 +# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 +# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 +# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 +# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 +# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 + +# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 +# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 +# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 +# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 +# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 +# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 +# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A +# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B + +/* draft-ietf-tls-chacha20-poly1305-03 */ +# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 +# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 +# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA +# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB +# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC +# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD +# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE + /* - * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave - * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we - * should be using DHE + * everywhere, though we may indefinitely maintain - * aliases for users + * or configurations that used "EDH" + + * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE + * ciphers names with "EDH" instead of "DHE". Going forward, we should be + * using DHE everywhere, though we may indefinitely maintain aliases for + * users or configurations that used "EDH" */ -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" -# define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA" -# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DHE-DSS-DES-CBC-SHA" -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA" -# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA" # define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" +# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" + /* AES ciphersuites from RFC3268 */ # define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" # define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" @@ -629,6 +663,38 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" # define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" +# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" +# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" +# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" + +/* PSK ciphersuites from RFC 5487 */ +# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" + +# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" +# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" +# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" + +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" + +# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" + /* SRP ciphersuite from RFC 5054 */ # define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" # define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" @@ -655,6 +721,30 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" # define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" +/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ +# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" + +# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" +# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" + +# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" + /* SEED ciphersuites from RFC4162 */ # define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" # define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" @@ -692,6 +782,35 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" # define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" +/* CCM ciphersuites from RFC6655 */ + +# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" +# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" + +# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" +# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" + +# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" +# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" + +# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" +# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" + +/* CCM ciphersuites from RFC7251 */ + +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" + /* ECDH HMAC based ciphersuites from RFC5289 */ # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" @@ -713,6 +832,42 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" # define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" +/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ +# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" + +/* ECDHE PSK ciphersuites from RFC 5489 */ +# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" + +# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" + +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" + +/* Camellia-CBC ciphersuites from RFC6367 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" + +/* draft-ietf-tls-chacha20-poly1305-03 */ +# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" +# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" +# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" +# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" +# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" +# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" +# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" + # define TLS_CT_RSA_SIGN 1 # define TLS_CT_DSS_SIGN 2 # define TLS_CT_RSA_FIXED_DH 3 @@ -720,8 +875,10 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS_CT_ECDSA_SIGN 64 # define TLS_CT_RSA_FIXED_ECDH 65 # define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST94_SIGN 21 # define TLS_CT_GOST01_SIGN 22 +# define TLS_CT_GOST12_SIGN 238 +# define TLS_CT_GOST12_512_SIGN 239 + /* * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see * comment there) @@ -730,13 +887,11 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_FINISH_MAC_LENGTH 12 -# define TLS_MD_MAX_CONST_SIZE 20 +# define TLS_MD_MAX_CONST_SIZE 22 # define TLS_MD_CLIENT_FINISH_CONST "client finished" # define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 # define TLS_MD_SERVER_FINISH_CONST "server finished" # define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 # define TLS_MD_KEY_EXPANSION_CONST "key expansion" # define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 # define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" @@ -747,6 +902,8 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS_MD_IV_BLOCK_CONST_SIZE 8 # define TLS_MD_MASTER_SECRET_CONST "master secret" # define TLS_MD_MASTER_SECRET_CONST_SIZE 13 +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret" +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 # ifdef CHARSET_EBCDIC # undef TLS_MD_CLIENT_FINISH_CONST @@ -796,6 +953,11 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) * master secret */ # define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" +# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST +/* + * extended master secret + */ +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x63\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" # endif /* TLS Session Ticket extension struct */ diff --git a/libs/mac/include/openssl/ts.h b/libs/mac/include/openssl/ts.h index 2daa1b2f..a5659825 100644 --- a/libs/mac/include/openssl/ts.h +++ b/libs/mac/include/openssl/ts.h @@ -1,197 +1,41 @@ -/* crypto/ts/ts.h */ /* - * Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL project - * 2002, 2003, 2004. - */ -/* ==================================================================== - * Copyright (c) 2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_TS_H # define HEADER_TS_H # include + +# ifndef OPENSSL_NO_TS # include -# ifndef OPENSSL_NO_BUFFER -# include -# endif -# ifndef OPENSSL_NO_EVP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif +# include +# include +# include # include # include # include - -# ifndef OPENSSL_NO_RSA -# include -# endif - -# ifndef OPENSSL_NO_DSA -# include -# endif - -# ifndef OPENSSL_NO_DH -# include -# endif - -#ifdef __cplusplus +# include +# include +# include +# ifdef __cplusplus extern "C" { -#endif - -# ifdef WIN32 -/* Under Win32 this is defined in wincrypt.h */ -# undef X509_NAME # endif # include # include -/*- -MessageImprint ::= SEQUENCE { - hashAlgorithm AlgorithmIdentifier, - hashedMessage OCTET STRING } -*/ - -typedef struct TS_msg_imprint_st { - X509_ALGOR *hash_algo; - ASN1_OCTET_STRING *hashed_msg; -} TS_MSG_IMPRINT; - -/*- -TimeStampReq ::= SEQUENCE { - version INTEGER { v1(1) }, - messageImprint MessageImprint, - --a hash algorithm OID and the hash value of the data to be - --time-stamped - reqPolicy TSAPolicyId OPTIONAL, - nonce INTEGER OPTIONAL, - certReq BOOLEAN DEFAULT FALSE, - extensions [0] IMPLICIT Extensions OPTIONAL } -*/ - -typedef struct TS_req_st { - ASN1_INTEGER *version; - TS_MSG_IMPRINT *msg_imprint; - ASN1_OBJECT *policy_id; /* OPTIONAL */ - ASN1_INTEGER *nonce; /* OPTIONAL */ - ASN1_BOOLEAN cert_req; /* DEFAULT FALSE */ - STACK_OF(X509_EXTENSION) *extensions; /* [0] OPTIONAL */ -} TS_REQ; - -/*- -Accuracy ::= SEQUENCE { - seconds INTEGER OPTIONAL, - millis [0] INTEGER (1..999) OPTIONAL, - micros [1] INTEGER (1..999) OPTIONAL } -*/ - -typedef struct TS_accuracy_st { - ASN1_INTEGER *seconds; - ASN1_INTEGER *millis; - ASN1_INTEGER *micros; -} TS_ACCURACY; - -/*- -TSTInfo ::= SEQUENCE { - version INTEGER { v1(1) }, - policy TSAPolicyId, - messageImprint MessageImprint, - -- MUST have the same value as the similar field in - -- TimeStampReq - serialNumber INTEGER, - -- Time-Stamping users MUST be ready to accommodate integers - -- up to 160 bits. - genTime GeneralizedTime, - accuracy Accuracy OPTIONAL, - ordering BOOLEAN DEFAULT FALSE, - nonce INTEGER OPTIONAL, - -- MUST be present if the similar field was present - -- in TimeStampReq. In that case it MUST have the same value. - tsa [0] GeneralName OPTIONAL, - extensions [1] IMPLICIT Extensions OPTIONAL } -*/ - -typedef struct TS_tst_info_st { - ASN1_INTEGER *version; - ASN1_OBJECT *policy_id; - TS_MSG_IMPRINT *msg_imprint; - ASN1_INTEGER *serial; - ASN1_GENERALIZEDTIME *time; - TS_ACCURACY *accuracy; - ASN1_BOOLEAN ordering; - ASN1_INTEGER *nonce; - GENERAL_NAME *tsa; - STACK_OF(X509_EXTENSION) *extensions; -} TS_TST_INFO; - -/*- -PKIStatusInfo ::= SEQUENCE { - status PKIStatus, - statusString PKIFreeText OPTIONAL, - failInfo PKIFailureInfo OPTIONAL } - -From RFC 1510 - section 3.1.1: -PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String - -- text encoded as UTF-8 String (note: each UTF8String SHOULD - -- include an RFC 1766 language tag to indicate the language - -- of the contained text) -*/ - -/* Possible values for status. See ts_resp_print.c && ts_resp_verify.c. */ +typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; +typedef struct TS_req_st TS_REQ; +typedef struct TS_accuracy_st TS_ACCURACY; +typedef struct TS_tst_info_st TS_TST_INFO; +/* Possible values for status. */ # define TS_STATUS_GRANTED 0 # define TS_STATUS_GRANTED_WITH_MODS 1 # define TS_STATUS_REJECTION 2 @@ -199,10 +43,7 @@ PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String # define TS_STATUS_REVOCATION_WARNING 4 # define TS_STATUS_REVOCATION_NOTIFICATION 5 -/* - * Possible values for failure_info. See ts_resp_print.c && ts_resp_verify.c - */ - +/* Possible values for failure_info. */ # define TS_INFO_BAD_ALG 0 # define TS_INFO_BAD_REQUEST 2 # define TS_INFO_BAD_DATA_FORMAT 5 @@ -212,67 +53,15 @@ PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String # define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 # define TS_INFO_SYSTEM_FAILURE 25 -typedef struct TS_status_info_st { - ASN1_INTEGER *status; - STACK_OF(ASN1_UTF8STRING) *text; - ASN1_BIT_STRING *failure_info; -} TS_STATUS_INFO; -DECLARE_STACK_OF(ASN1_UTF8STRING) -DECLARE_ASN1_SET_OF(ASN1_UTF8STRING) +typedef struct TS_status_info_st TS_STATUS_INFO; +typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; +typedef struct ESS_cert_id ESS_CERT_ID; +typedef struct ESS_signing_cert ESS_SIGNING_CERT; -/*- -TimeStampResp ::= SEQUENCE { - status PKIStatusInfo, - timeStampToken TimeStampToken OPTIONAL } -*/ +DEFINE_STACK_OF(ESS_CERT_ID) -typedef struct TS_resp_st { - TS_STATUS_INFO *status_info; - PKCS7 *token; - TS_TST_INFO *tst_info; -} TS_RESP; - -/* The structure below would belong to the ESS component. */ - -/*- -IssuerSerial ::= SEQUENCE { - issuer GeneralNames, - serialNumber CertificateSerialNumber - } -*/ - -typedef struct ESS_issuer_serial { - STACK_OF(GENERAL_NAME) *issuer; - ASN1_INTEGER *serial; -} ESS_ISSUER_SERIAL; - -/*- -ESSCertID ::= SEQUENCE { - certHash Hash, - issuerSerial IssuerSerial OPTIONAL -} -*/ - -typedef struct ESS_cert_id { - ASN1_OCTET_STRING *hash; /* Always SHA-1 digest. */ - ESS_ISSUER_SERIAL *issuer_serial; -} ESS_CERT_ID; - -DECLARE_STACK_OF(ESS_CERT_ID) -DECLARE_ASN1_SET_OF(ESS_CERT_ID) - -/*- -SigningCertificate ::= SEQUENCE { - certs SEQUENCE OF ESSCertID, - policies SEQUENCE OF PolicyInformation OPTIONAL -} -*/ - -typedef struct ESS_signing_cert { - STACK_OF(ESS_CERT_ID) *cert_ids; - STACK_OF(POLICYINFO) *policy_info; -} ESS_SIGNING_CERT; +typedef struct TS_resp_st TS_RESP; TS_REQ *TS_REQ_new(void); void TS_REQ_free(TS_REQ *a); @@ -281,8 +70,10 @@ TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); TS_REQ *TS_REQ_dup(TS_REQ *a); +#ifndef OPENSSL_NO_STDIO TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); +#endif TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); @@ -294,10 +85,12 @@ TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); +#ifndef OPENSSL_NO_STDIO TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT *a); +#endif +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT *a); TS_RESP *TS_RESP_new(void); void TS_RESP_free(TS_RESP *a); @@ -306,10 +99,12 @@ TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); TS_RESP *TS_RESP_dup(TS_RESP *a); +#ifndef OPENSSL_NO_STDIO TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); -TS_RESP *d2i_TS_RESP_bio(BIO *fp, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *fp, TS_RESP *a); +#endif +TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); +int i2d_TS_RESP_bio(BIO *bio, TS_RESP *a); TS_STATUS_INFO *TS_STATUS_INFO_new(void); void TS_STATUS_INFO_free(TS_STATUS_INFO *a); @@ -325,10 +120,12 @@ TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, long length); TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); +#ifndef OPENSSL_NO_STDIO TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO *a); +#endif +TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); +int i2d_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO *a); TS_ACCURACY *TS_ACCURACY_new(void); void TS_ACCURACY_free(TS_ACCURACY *a); @@ -359,11 +156,18 @@ ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, const unsigned char **pp, long length); ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); -void ERR_load_TS_strings(void); - int TS_REQ_set_version(TS_REQ *a, long version); long TS_REQ_get_version(const TS_REQ *a); +int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); +const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); + +const STACK_OF(ASN1_UTF8STRING) * +TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); + +const ASN1_BIT_STRING * +TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); + int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); @@ -373,7 +177,7 @@ X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); -int TS_REQ_set_policy_id(TS_REQ *a, ASN1_OBJECT *policy); +int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); @@ -386,7 +190,7 @@ STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); void TS_REQ_ext_free(TS_REQ *a); int TS_REQ_get_ext_count(TS_REQ *a); int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, ASN1_OBJECT *obj, int lastpos); +int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); @@ -447,7 +251,8 @@ STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); void TS_TST_INFO_ext_free(TS_TST_INFO *a); int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, ASN1_OBJECT *obj, int lastpos); +int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, + int lastpos); int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); @@ -495,34 +300,9 @@ typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, void *); -typedef struct TS_resp_ctx { - X509 *signer_cert; - EVP_PKEY *signer_key; - STACK_OF(X509) *certs; /* Certs to include in signed data. */ - STACK_OF(ASN1_OBJECT) *policies; /* Acceptable policies. */ - ASN1_OBJECT *default_policy; /* It may appear in policies, too. */ - STACK_OF(EVP_MD) *mds; /* Acceptable message digests. */ - ASN1_INTEGER *seconds; /* accuracy, 0 means not specified. */ - ASN1_INTEGER *millis; /* accuracy, 0 means not specified. */ - ASN1_INTEGER *micros; /* accuracy, 0 means not specified. */ - unsigned clock_precision_digits; /* fraction of seconds in time stamp - * token. */ - unsigned flags; /* Optional info, see values above. */ - /* Callback functions. */ - TS_serial_cb serial_cb; - void *serial_cb_data; /* User data for serial_cb. */ - TS_time_cb time_cb; - void *time_cb_data; /* User data for time_cb. */ - TS_extension_cb extension_cb; - void *extension_cb_data; /* User data for extension_cb. */ - /* These members are used only while creating the response. */ - TS_REQ *request; - TS_RESP *response; - TS_TST_INFO *tst_info; -} TS_RESP_CTX; +typedef struct TS_resp_ctx TS_RESP_CTX; -DECLARE_STACK_OF(EVP_MD) -DECLARE_ASN1_SET_OF(EVP_MD) +DEFINE_STACK_OF_CONST(EVP_MD) /* Creates a response context that can be used for generating responses. */ TS_RESP_CTX *TS_RESP_CTX_new(void); @@ -534,8 +314,11 @@ int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); /* This parameter must be set. */ int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); +int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, + const EVP_MD *signer_digest); + /* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *def_policy); +int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); /* No additional certs are included in the response by default. */ int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); @@ -544,7 +327,7 @@ int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); * Adds a new acceptable policy, only the default policy is accepted by * default. */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *policy); +int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); /* * Adds a new acceptable message digest. Note that no message digests are @@ -657,42 +440,25 @@ int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, | TS_VFY_SIGNER \ | TS_VFY_TSA_NAME) -typedef struct TS_verify_ctx { - /* Set this to the union of TS_VFY_... flags you want to carry out. */ - unsigned flags; - /* Must be set only with TS_VFY_SIGNATURE. certs is optional. */ - X509_STORE *store; - STACK_OF(X509) *certs; - /* Must be set only with TS_VFY_POLICY. */ - ASN1_OBJECT *policy; - /* - * Must be set only with TS_VFY_IMPRINT. If md_alg is NULL, the - * algorithm from the response is used. - */ - X509_ALGOR *md_alg; - unsigned char *imprint; - unsigned imprint_len; - /* Must be set only with TS_VFY_DATA. */ - BIO *data; - /* Must be set only with TS_VFY_TSA_NAME. */ - ASN1_INTEGER *nonce; - /* Must be set only with TS_VFY_TSA_NAME. */ - GENERAL_NAME *tsa_name; -} TS_VERIFY_CTX; +typedef struct TS_verify_ctx TS_VERIFY_CTX; int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); /* * Declarations related to response verification context, - * they are defined in ts/ts_verify_ctx.c. */ - -/* Set all fields to zero. */ TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); +int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); +int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); +BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); +unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, + unsigned char *hexstr, long len); +X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); +STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); /*- * If ctx is NULL, it allocates and returns a new object, otherwise @@ -737,9 +503,11 @@ EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, TS_RESP_CTX *ctx); +#ifndef OPENSSL_NO_ENGINE int TS_CONF_set_crypto_device(CONF *conf, const char *section, const char *device); int TS_CONF_set_default_engine(const char *name); +#endif int TS_CONF_set_signer_cert(CONF *conf, const char *section, const char *cert, TS_RESP_CTX *ctx); int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, @@ -747,6 +515,8 @@ int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, int TS_CONF_set_signer_key(CONF *conf, const char *section, const char *key, const char *pass, TS_RESP_CTX *ctx); +int TS_CONF_set_signer_digest(CONF *conf, const char *section, + const char *md, TS_RESP_CTX *ctx); int TS_CONF_set_def_policy(CONF *conf, const char *section, const char *policy, TS_RESP_CTX *ctx); int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); @@ -765,12 +535,12 @@ int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_TS_strings(void); + +int ERR_load_TS_strings(void); /* Error codes for the TS functions. */ /* Function codes. */ -# define TS_F_D2I_TS_RESP 147 # define TS_F_DEF_SERIAL_CB 110 # define TS_F_DEF_TIME_CB 111 # define TS_F_ESS_ADD_SIGNING_CERT 112 @@ -787,6 +557,11 @@ void ERR_load_TS_strings(void); # define TS_F_TS_CHECK_SIGNING_CERTS 103 # define TS_F_TS_CHECK_STATUS_INFO 104 # define TS_F_TS_COMPUTE_IMPRINT 145 +# define TS_F_TS_CONF_INVALID 151 +# define TS_F_TS_CONF_LOAD_CERT 153 +# define TS_F_TS_CONF_LOAD_CERTS 154 +# define TS_F_TS_CONF_LOAD_KEY 155 +# define TS_F_TS_CONF_LOOKUP_FAIL 152 # define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 # define TS_F_TS_GET_STATUS_TEXT 105 # define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 @@ -810,7 +585,6 @@ void ERR_load_TS_strings(void); # define TS_F_TS_RESP_SET_TST_INFO 150 # define TS_F_TS_RESP_SIGN 136 # define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_RESP_VERIFY_TOKEN 107 # define TS_F_TS_TST_INFO_SET_ACCURACY 137 # define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 # define TS_F_TS_TST_INFO_SET_NONCE 139 @@ -825,10 +599,11 @@ void ERR_load_TS_strings(void); /* Reason codes. */ # define TS_R_BAD_PKCS7_TYPE 132 # define TS_R_BAD_TYPE 133 +# define TS_R_CANNOT_LOAD_CERT 137 +# define TS_R_CANNOT_LOAD_KEY 138 # define TS_R_CERTIFICATE_VERIFY_ERROR 100 # define TS_R_COULD_NOT_SET_ENGINE 127 # define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_D2I_TS_RESP_INT_FAILED 128 # define TS_R_DETACHED_CONTENT 134 # define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 # define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 @@ -857,9 +632,12 @@ void ERR_load_TS_strings(void); # define TS_R_UNACCEPTABLE_POLICY 125 # define TS_R_UNSUPPORTED_MD_ALGORITHM 126 # define TS_R_UNSUPPORTED_VERSION 113 +# define TS_R_VAR_BAD_VALUE 135 +# define TS_R_VAR_LOOKUP_FAILURE 136 # define TS_R_WRONG_CONTENT_TYPE 114 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/txt_db.h b/libs/mac/include/openssl/txt_db.h index 98e23a20..0e6c943e 100644 --- a/libs/mac/include/openssl/txt_db.h +++ b/libs/mac/include/openssl/txt_db.h @@ -1,68 +1,17 @@ -/* crypto/txt_db/txt_db.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_TXT_DB_H # define HEADER_TXT_DB_H # include -# ifndef OPENSSL_NO_BIO -# include -# endif +# include # include # include @@ -72,13 +21,14 @@ # define DB_ERROR_INDEX_OUT_OF_RANGE 3 # define DB_ERROR_NO_INDEX 4 # define DB_ERROR_INSERT_INDEX_CLASH 5 +# define DB_ERROR_WRONG_NUM_FIELDS 6 #ifdef __cplusplus extern "C" { #endif typedef OPENSSL_STRING *OPENSSL_PSTRING; -DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) +DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) typedef struct txt_db_st { int num_fields; @@ -91,15 +41,10 @@ typedef struct txt_db_st { OPENSSL_STRING *arg_row; } TXT_DB; -# ifndef OPENSSL_NO_BIO TXT_DB *TXT_DB_read(BIO *in, int num); long TXT_DB_write(BIO *out, TXT_DB *db); -# else -TXT_DB *TXT_DB_read(char *in, int num); -long TXT_DB_write(char *out, TXT_DB *db); -# endif int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp); + OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); void TXT_DB_free(TXT_DB *db); OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, OPENSSL_STRING *value); diff --git a/libs/mac/include/openssl/ui.h b/libs/mac/include/openssl/ui.h index 0dc16330..49e763de 100644 --- a/libs/mac/include/openssl/ui.h +++ b/libs/mac/include/openssl/ui.h @@ -1,79 +1,29 @@ -/* crypto/ui/ui.h */ /* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #ifndef HEADER_UI_H # define HEADER_UI_H -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif -# include -# include +# include + +# ifndef OPENSSL_NO_UI + +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# include #ifdef __cplusplus extern "C" { #endif -/* Declared already in ossl_typ.h */ -/* typedef struct ui_st UI; */ -/* typedef struct ui_method_st UI_METHOD; */ - /* * All the following functions return -1 or NULL on error and in some cases * (UI_process()) -2 if interrupted or in some other way cancelled. When @@ -128,7 +78,7 @@ void UI_free(UI *ui); added, so the result is *not* a string. On success, the all return an index of the added information. That index - is usefull when retrieving results with UI_get0_result(). */ + is useful when retrieving results with UI_get0_result(). */ int UI_add_input_string(UI *ui, const char *prompt, int flags, char *result_buf, int minsize, int maxsize); int UI_dup_input_string(UI *ui, const char *prompt, int flags, @@ -160,7 +110,7 @@ int UI_dup_error_string(UI *ui, const char *text); * each UI being marked with this flag, or the application might get * confused. */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 /*- * The user of these routines may want to define flags of their own. The core @@ -172,7 +122,7 @@ int UI_dup_error_string(UI *ui, const char *text); * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) * */ -# define UI_INPUT_FLAG_USER_BASE 16 +# define UI_INPUT_FLAG_USER_BASE 16 /*- * The following function helps construct a prompt. object_desc is a @@ -229,7 +179,7 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); * OpenSSL error stack before printing any info or added error messages and * before any prompting. */ -# define UI_CTRL_PRINT_ERRORS 1 +# define UI_CTRL_PRINT_ERRORS 1 /* * Check if a UI_process() is possible to do again with the same instance of * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 @@ -240,8 +190,9 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); /* Some methods may use extra data */ # define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) # define UI_get_app_data(s) UI_get_ex_data(s,0) -int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); + +#define UI_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) int UI_set_ex_data(UI *r, int idx, void *arg); void *UI_get_ex_data(UI *r, int idx); @@ -269,7 +220,7 @@ UI_METHOD *UI_OpenSSL(void); display a dialog box after it has been built. a reader This function is called to read a given prompt, maybe from the tty, maybe from a field in a - window. Note that it's called wth all string + window. Note that it's called with all string structures, not only the prompt ones, so it must check such things itself. a closer This function closes the session, maybe by closing @@ -302,7 +253,7 @@ UI_METHOD *UI_OpenSSL(void); * about a string or a prompt, including test data for a verification prompt. */ typedef struct ui_string_st UI_STRING; -DECLARE_STACK_OF(UI_STRING) +DEFINE_STACK_OF(UI_STRING) /* * The different types of strings that are currently supported. This is only @@ -318,7 +269,7 @@ enum UI_string_types { }; /* Create and manipulate methods */ -UI_METHOD *UI_create_method(char *name); +UI_METHOD *UI_create_method(const char *name); void UI_destroy_method(UI_METHOD *ui_method); int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); int UI_method_set_writer(UI_METHOD *method, @@ -354,7 +305,7 @@ int UI_get_input_flags(UI_STRING *uis); /* Return the actual string to output (the prompt, info or error) */ const char *UI_get0_output_string(UI_STRING *uis); /* - * Return the optional action string to output (the boolean promtp + * Return the optional action string to output (the boolean prompt * instruction) */ const char *UI_get0_action_string(UI_STRING *uis); @@ -382,14 +333,19 @@ int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_UI_strings(void); + +int ERR_load_UI_strings(void); /* Error codes for the UI functions. */ /* Function codes. */ +# define UI_F_CLOSE_CONSOLE 115 +# define UI_F_ECHO_CONSOLE 116 # define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 # define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_GENERAL_ALLOCATE_STRING 100 +# define UI_F_NOECHO_CONSOLE 117 +# define UI_F_OPEN_CONSOLE 114 +# define UI_F_UI_CREATE_METHOD 112 # define UI_F_UI_CTRL 111 # define UI_F_UI_DUP_ERROR_STRING 101 # define UI_F_UI_DUP_INFO_STRING 102 @@ -398,6 +354,7 @@ void ERR_load_UI_strings(void); # define UI_F_UI_DUP_VERIFY_STRING 106 # define UI_F_UI_GET0_RESULT 107 # define UI_F_UI_NEW_METHOD 104 +# define UI_F_UI_PROCESS 113 # define UI_F_UI_SET_RESULT 105 /* Reason codes. */ @@ -405,11 +362,17 @@ void ERR_load_UI_strings(void); # define UI_R_INDEX_TOO_LARGE 102 # define UI_R_INDEX_TOO_SMALL 103 # define UI_R_NO_RESULT_BUFFER 105 +# define UI_R_PROCESSING_ERROR 107 # define UI_R_RESULT_TOO_LARGE 100 # define UI_R_RESULT_TOO_SMALL 101 +# define UI_R_SYSASSIGN_ERROR 109 +# define UI_R_SYSDASSGN_ERROR 110 +# define UI_R_SYSQIOW_ERROR 111 # define UI_R_UNKNOWN_CONTROL_COMMAND 106 +# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif +# endif #endif diff --git a/libs/mac/include/openssl/whrlpool.h b/libs/mac/include/openssl/whrlpool.h index 73c749da..20ea3503 100644 --- a/libs/mac/include/openssl/whrlpool.h +++ b/libs/mac/include/openssl/whrlpool.h @@ -1,12 +1,23 @@ +/* + * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + #ifndef HEADER_WHRLPOOL_H # define HEADER_WHRLPOOL_H +#include + +# ifndef OPENSSL_NO_WHIRLPOOL # include # include - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif +# endif # define WHIRLPOOL_DIGEST_LENGTH (512/8) # define WHIRLPOOL_BBLOCK 512 @@ -23,19 +34,15 @@ typedef struct { size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; } WHIRLPOOL_CTX; -# ifndef OPENSSL_NO_WHIRLPOOL -# ifdef OPENSSL_FIPS -int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -# endif int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); + +# ifdef __cplusplus +} +# endif # endif -#ifdef __cplusplus -} -#endif - #endif diff --git a/libs/mac/include/openssl/x509.h b/libs/mac/include/openssl/x509.h index 6fa28eba..ee98df8e 100644 --- a/libs/mac/include/openssl/x509.h +++ b/libs/mac/include/openssl/x509.h @@ -1,60 +1,12 @@ -/* crypto/x509/x509.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * ECDH support in OpenSSL originally developed by @@ -65,60 +17,28 @@ # define HEADER_X509_H # include +# include # include -# ifndef OPENSSL_NO_BUFFER -# include -# endif -# ifndef OPENSSL_NO_EVP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif +# include +# include +# include # include # include # include +# include -# ifndef OPENSSL_NO_EC -# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# include +# include # endif -# ifndef OPENSSL_NO_ECDSA -# include -# endif - -# ifndef OPENSSL_NO_ECDH -# include -# endif - -# ifndef OPENSSL_NO_DEPRECATED -# ifndef OPENSSL_NO_RSA -# include -# endif -# ifndef OPENSSL_NO_DSA -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# endif -# endif - -# ifndef OPENSSL_NO_SHA -# include -# endif -# include +# include #ifdef __cplusplus extern "C" { #endif -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 these are defined in wincrypt.h */ -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -# endif - # define X509_FILETYPE_PEM 1 # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 @@ -134,19 +54,11 @@ extern "C" { # define X509v3_KU_DECIPHER_ONLY 0x8000 # define X509v3_KU_UNDEF 0xffff -typedef struct X509_objects_st { - int nid; - int (*a2i) (void); - int (*i2a) (void); -} X509_OBJECTS; - struct X509_algor_st { ASN1_OBJECT *algorithm; ASN1_TYPE *parameter; } /* X509_ALGOR */ ; -DECLARE_ASN1_SET_OF(X509_ALGOR) - typedef STACK_OF(X509_ALGOR) X509_ALGORS; typedef struct X509_val_st { @@ -154,152 +66,35 @@ typedef struct X509_val_st { ASN1_TIME *notAfter; } X509_VAL; -struct X509_pubkey_st { - X509_ALGOR *algor; - ASN1_BIT_STRING *public_key; - EVP_PKEY *pkey; -}; +typedef struct X509_sig_st X509_SIG; -typedef struct X509_sig_st { - X509_ALGOR *algor; - ASN1_OCTET_STRING *digest; -} X509_SIG; +typedef struct X509_name_entry_st X509_NAME_ENTRY; -typedef struct X509_name_entry_st { - ASN1_OBJECT *object; - ASN1_STRING *value; - int set; - int size; /* temp variable */ -} X509_NAME_ENTRY; +DEFINE_STACK_OF(X509_NAME_ENTRY) -DECLARE_STACK_OF(X509_NAME_ENTRY) -DECLARE_ASN1_SET_OF(X509_NAME_ENTRY) - -/* we always keep X509_NAMEs in 2 forms. */ -struct X509_name_st { - STACK_OF(X509_NAME_ENTRY) *entries; - int modified; /* true if 'bytes' needs to be built */ -# ifndef OPENSSL_NO_BUFFER - BUF_MEM *bytes; -# else - char *bytes; -# endif -/* unsigned long hash; Keep the hash around for lookups */ - unsigned char *canon_enc; - int canon_enclen; -} /* X509_NAME */ ; - -DECLARE_STACK_OF(X509_NAME) +DEFINE_STACK_OF(X509_NAME) # define X509_EX_V_NETSCAPE_HACK 0x8000 # define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st { - ASN1_OBJECT *object; - ASN1_BOOLEAN critical; - ASN1_OCTET_STRING *value; -} X509_EXTENSION; +typedef struct X509_extension_st X509_EXTENSION; typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; -DECLARE_STACK_OF(X509_EXTENSION) -DECLARE_ASN1_SET_OF(X509_EXTENSION) +DEFINE_STACK_OF(X509_EXTENSION) -/* a sequence of these are used */ -typedef struct x509_attributes_st { - ASN1_OBJECT *object; - int single; /* 0 for a set, 1 for a single item (which is - * wrong) */ - union { - char *ptr; - /* - * 0 - */ STACK_OF(ASN1_TYPE) *set; - /* - * 1 - */ ASN1_TYPE *single; - } value; -} X509_ATTRIBUTE; +typedef struct x509_attributes_st X509_ATTRIBUTE; -DECLARE_STACK_OF(X509_ATTRIBUTE) -DECLARE_ASN1_SET_OF(X509_ATTRIBUTE) +DEFINE_STACK_OF(X509_ATTRIBUTE) -typedef struct X509_req_info_st { - ASN1_ENCODING enc; - ASN1_INTEGER *version; - X509_NAME *subject; - X509_PUBKEY *pubkey; - /* d=2 hl=2 l= 0 cons: cont: 00 */ - STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ -} X509_REQ_INFO; +typedef struct X509_req_info_st X509_REQ_INFO; -typedef struct X509_req_st { - X509_REQ_INFO *req_info; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int references; -} X509_REQ; +typedef struct X509_req_st X509_REQ; -typedef struct x509_cinf_st { - ASN1_INTEGER *version; /* [ 0 ] default of v1 */ - ASN1_INTEGER *serialNumber; - X509_ALGOR *signature; - X509_NAME *issuer; - X509_VAL *validity; - X509_NAME *subject; - X509_PUBKEY *key; - ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ - ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ - STACK_OF(X509_EXTENSION) *extensions; /* [ 3 ] optional in v3 */ - ASN1_ENCODING enc; -} X509_CINF; +typedef struct x509_cert_aux_st X509_CERT_AUX; -/* - * This stuff is certificate "auxiliary info" it contains details which are - * useful in certificate stores and databases. When used this is tagged onto - * the end of the certificate itself - */ +typedef struct x509_cinf_st X509_CINF; -typedef struct x509_cert_aux_st { - STACK_OF(ASN1_OBJECT) *trust; /* trusted uses */ - STACK_OF(ASN1_OBJECT) *reject; /* rejected uses */ - ASN1_UTF8STRING *alias; /* "friendly name" */ - ASN1_OCTET_STRING *keyid; /* key id of private key */ - STACK_OF(X509_ALGOR) *other; /* other unspecified info */ -} X509_CERT_AUX; - -struct x509_st { - X509_CINF *cert_info; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int valid; - int references; - char *name; - CRYPTO_EX_DATA ex_data; - /* These contain copies of various extension values */ - long ex_pathlen; - long ex_pcpathlen; - unsigned long ex_flags; - unsigned long ex_kusage; - unsigned long ex_xkusage; - unsigned long ex_nscert; - ASN1_OCTET_STRING *skid; - AUTHORITY_KEYID *akid; - X509_POLICY_CACHE *policy_cache; - STACK_OF(DIST_POINT) *crldp; - STACK_OF(GENERAL_NAME) *altname; - NAME_CONSTRAINTS *nc; -# ifndef OPENSSL_NO_RFC3779 - STACK_OF(IPAddressFamily) *rfc3779_addr; - struct ASIdentifiers_st *rfc3779_asid; -# endif -# ifndef OPENSSL_NO_SHA - unsigned char sha1_hash[SHA_DIGEST_LENGTH]; -# endif - X509_CERT_AUX *aux; -} /* X509 */ ; - -DECLARE_STACK_OF(X509) -DECLARE_ASN1_SET_OF(X509) +DEFINE_STACK_OF(X509) /* This is used for a table of trust checking functions */ @@ -312,16 +107,11 @@ typedef struct x509_trust_st { void *arg2; } X509_TRUST; -DECLARE_STACK_OF(X509_TRUST) - -typedef struct x509_cert_pair_st { - X509 *forward; - X509 *reverse; -} X509_CERT_PAIR; +DEFINE_STACK_OF(X509_TRUST) /* standard trust ids */ -# define X509_TRUST_DEFAULT -1/* Only valid in purpose settings */ +# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ # define X509_TRUST_COMPAT 1 # define X509_TRUST_SSL_CLIENT 2 @@ -337,8 +127,14 @@ typedef struct x509_cert_pair_st { # define X509_TRUST_MAX 8 /* trust_flags values */ -# define X509_TRUST_DYNAMIC 1 -# define X509_TRUST_DYNAMIC_NAME 2 +# define X509_TRUST_DYNAMIC (1U << 0) +# define X509_TRUST_DYNAMIC_NAME (1U << 1) +/* No compat trust if self-signed, preempts "DO_SS" */ +# define X509_TRUST_NO_SS_COMPAT (1U << 2) +/* Compat trust if no explicit accepted trust EKUs */ +# define X509_TRUST_DO_SS_COMPAT (1U << 3) +/* Accept "anyEKU" as a wildcard trust OID */ +# define X509_TRUST_OK_ANY_EKU (1U << 4) /* check_trust return codes */ @@ -369,8 +165,7 @@ typedef struct x509_cert_pair_st { # define XN_FLAG_SEP_MASK (0xf << 16) -# define XN_FLAG_COMPAT 0/* Traditional SSLeay: use old - * X509_NAME_print */ +# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ # define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ # define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ # define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ @@ -424,57 +219,11 @@ typedef struct x509_cert_pair_st { XN_FLAG_FN_LN | \ XN_FLAG_FN_ALIGN) -struct x509_revoked_st { - ASN1_INTEGER *serialNumber; - ASN1_TIME *revocationDate; - STACK_OF(X509_EXTENSION) /* optional */ *extensions; - /* Set up if indirect CRL */ - STACK_OF(GENERAL_NAME) *issuer; - /* Revocation reason */ - int reason; - int sequence; /* load sequence */ -}; +DEFINE_STACK_OF(X509_REVOKED) -DECLARE_STACK_OF(X509_REVOKED) -DECLARE_ASN1_SET_OF(X509_REVOKED) +typedef struct X509_crl_info_st X509_CRL_INFO; -typedef struct X509_crl_info_st { - ASN1_INTEGER *version; - X509_ALGOR *sig_alg; - X509_NAME *issuer; - ASN1_TIME *lastUpdate; - ASN1_TIME *nextUpdate; - STACK_OF(X509_REVOKED) *revoked; - STACK_OF(X509_EXTENSION) /* [0] */ *extensions; - ASN1_ENCODING enc; -} X509_CRL_INFO; - -struct X509_crl_st { - /* actual signature */ - X509_CRL_INFO *crl; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int references; - int flags; - /* Copies of various extensions */ - AUTHORITY_KEYID *akid; - ISSUING_DIST_POINT *idp; - /* Convenient breakdown of IDP */ - int idp_flags; - int idp_reasons; - /* CRL and base CRL numbers for delta processing */ - ASN1_INTEGER *crl_number; - ASN1_INTEGER *base_crl_number; -# ifndef OPENSSL_NO_SHA - unsigned char sha1_hash[SHA_DIGEST_LENGTH]; -# endif - STACK_OF(GENERAL_NAMES) *issuers; - const X509_CRL_METHOD *meth; - void *meth_data; -} /* X509_CRL */ ; - -DECLARE_STACK_OF(X509_CRL) -DECLARE_ASN1_SET_OF(X509_CRL) +DEFINE_STACK_OF(X509_CRL) typedef struct private_key_st { int version; @@ -489,10 +238,8 @@ typedef struct private_key_st { int key_free; /* true if we should auto free key_data */ /* expanded version of 'enc_algor' */ EVP_CIPHER_INFO cipher; - int references; } X509_PKEY; -# ifndef OPENSSL_NO_EVP typedef struct X509_info_st { X509 *x509; X509_CRL *crl; @@ -500,11 +247,9 @@ typedef struct X509_info_st { EVP_CIPHER_INFO enc_cipher; int enc_len; char *enc_data; - int references; } X509_INFO; -DECLARE_STACK_OF(X509_INFO) -# endif +DEFINE_STACK_OF(X509_INFO) /* * The next 2 structures and their 8 routines were sent to me by Pat Richard @@ -518,7 +263,7 @@ typedef struct Netscape_spkac_st { typedef struct Netscape_spki_st { NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR *sig_algor; + X509_ALGOR sig_algor; ASN1_BIT_STRING *signature; } NETSCAPE_SPKI; @@ -557,23 +302,6 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -/* PKCS#8 private key info structure */ - -struct pkcs8_priv_key_info_st { - /* Flag for various broken formats */ - int broken; -# define PKCS8_OK 0 -# define PKCS8_NO_OCTET 1 -# define PKCS8_EMBEDDED_PARAM 2 -# define PKCS8_NS_DB 3 -# define PKCS8_NEG_PRIVKEY 4 - ASN1_INTEGER *version; - X509_ALGOR *pkeyalg; - /* Should be OCTET STRING but some are broken */ - ASN1_TYPE *pkey; - STACK_OF(X509_ATTRIBUTE) *attributes; -}; - #ifdef __cplusplus } #endif @@ -588,22 +316,9 @@ extern "C" { # define X509_EXT_PACK_UNKNOWN 1 # define X509_EXT_PACK_STRING 2 -# define X509_get_version(x) ASN1_INTEGER_get((x)->cert_info->version) -/* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ -# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore) -# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter) # define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version) -# define X509_REQ_get_subject_name(x) ((x)->req_info->subject) # define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) # define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) -# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm)) - -# define X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version) -# define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate) -# define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate) -# define X509_CRL_get_issuer(x) ((x)->crl->issuer) -# define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), @@ -619,15 +334,8 @@ void X509_CRL_METHOD_free(X509_CRL_METHOD *m); void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); void *X509_CRL_get_meth_data(X509_CRL *crl); -/* - * This one is only used so that a binary form can output, as in - * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) - */ -# define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) - const char *X509_verify_cert_error_string(long n); -# ifndef OPENSSL_NO_EVP int X509_verify(X509 *a, EVP_PKEY *r); int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); @@ -642,16 +350,21 @@ int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); +int X509_signature_print(BIO *bp, const X509_ALGOR *alg, + const ASN1_STRING *sig); int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +# ifndef OPENSSL_NO_OCSP int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); +# endif int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +# ifndef OPENSSL_NO_OCSP int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); +# endif int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_pubkey_digest(const X509 *data, const EVP_MD *type, @@ -664,9 +377,8 @@ int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, unsigned char *md, unsigned int *len); int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, unsigned char *md, unsigned int *len); -# endif -# ifndef OPENSSL_NO_FP_API +# ifndef OPENSSL_NO_STDIO X509 *d2i_X509_fp(FILE *fp, X509 **x509); int i2d_X509_fp(FILE *fp, X509 *x509); X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); @@ -705,7 +417,6 @@ int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif -# ifndef OPENSSL_NO_BIO X509 *d2i_X509_bio(BIO *bp, X509 **x509); int i2d_X509_bio(BIO *bp, X509 *x509); X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); @@ -742,7 +453,6 @@ int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); -# endif X509 *X509_dup(X509 *x509); X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); @@ -753,8 +463,8 @@ X509_REQ *X509_REQ_dup(X509_REQ *req); X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval); -void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, - X509_ALGOR *algor); +void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, + const void **ppval, const X509_ALGOR *algor); void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); @@ -785,8 +495,10 @@ DECLARE_ASN1_FUNCTIONS(X509_VAL) DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); +long X509_get_pathlen(X509 *x); int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); # ifndef OPENSSL_NO_RSA @@ -803,6 +515,11 @@ EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); # endif DECLARE_ASN1_FUNCTIONS(X509_SIG) +void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, + const ASN1_OCTET_STRING **pdigest); +void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, + ASN1_OCTET_STRING **pdigest); + DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) DECLARE_ASN1_FUNCTIONS(X509_REQ) @@ -823,10 +540,8 @@ DECLARE_ASN1_FUNCTIONS(X509_CINF) DECLARE_ASN1_FUNCTIONS(X509) DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) -DECLARE_ASN1_FUNCTIONS(X509_CERT_PAIR) - -int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) int X509_set_ex_data(X509 *r, int idx, void *arg); void *X509_get_ex_data(X509 *r, int idx); int i2d_X509_AUX(X509 *a, unsigned char **pp); @@ -834,22 +549,26 @@ X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); int i2d_re_X509_tbs(X509 *x, unsigned char **pp); -void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, - const X509 *x); +void X509_get0_signature(const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg, const X509 *x); int X509_get_signature_nid(const X509 *x); -int X509_alias_set1(X509 *x, unsigned char *name, int len); -int X509_keyid_set1(X509 *x, unsigned char *id, int len); +int X509_trusted(const X509 *x); +int X509_alias_set1(X509 *x, const unsigned char *name, int len); +int X509_keyid_set1(X509 *x, const unsigned char *id, int len); unsigned char *X509_alias_get0(X509 *x, int *len); unsigned char *X509_keyid_get0(X509 *x, int *len); int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, int); int X509_TRUST_set(int *t, int trust); -int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); +int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); void X509_trust_clear(X509 *x); void X509_reject_clear(X509 *x); +STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); +STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); + DECLARE_ASN1_FUNCTIONS(X509_REVOKED) DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) DECLARE_ASN1_FUNCTIONS(X509_CRL) @@ -861,18 +580,14 @@ int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); X509_PKEY *X509_PKEY_new(void); void X509_PKEY_free(X509_PKEY *a); -int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); -X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, - long length); DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) -# ifndef OPENSSL_NO_EVP X509_INFO *X509_INFO_new(void); void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); +char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); @@ -896,26 +611,61 @@ int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *asn, EVP_MD_CTX *ctx); -# endif +long X509_get_version(const X509 *x); int X509_set_version(X509 *x, long version); int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); ASN1_INTEGER *X509_get_serialNumber(X509 *x); +const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_issuer_name(X509 *a); +X509_NAME *X509_get_issuer_name(const X509 *a); int X509_set_subject_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_subject_name(X509 *a); -int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); -int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); +X509_NAME *X509_get_subject_name(const X509 *a); +const ASN1_TIME * X509_get0_notBefore(const X509 *x); +ASN1_TIME *X509_getm_notBefore(const X509 *x); +int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); +const ASN1_TIME *X509_get0_notAfter(const X509 *x); +ASN1_TIME *X509_getm_notAfter(const X509 *x); +int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +int X509_up_ref(X509 *x); +int X509_get_signature_type(const X509 *x); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_get_notBefore X509_getm_notBefore +# define X509_get_notAfter X509_getm_notAfter +# define X509_set_notBefore X509_set1_notBefore +# define X509_set_notAfter X509_set1_notAfter +#endif + + +/* + * This one is only used so that a binary form can output, as in + * i2d_X509_NAME(X509_get_X509_PUBKEY(x), &buf) + */ +X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); +const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); +void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, + const ASN1_BIT_STRING **psuid); +const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); + +EVP_PKEY *X509_get0_pubkey(const X509 *x); EVP_PKEY *X509_get_pubkey(X509 *x); ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); -int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); +int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); +long X509_REQ_get_version(const X509_REQ *req); int X509_REQ_set_version(X509_REQ *x, long version); +X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); +void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_REQ_get_signature_nid(const X509_REQ *req); +int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); @@ -925,7 +675,7 @@ int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); int X509_REQ_get_attr_count(const X509_REQ *req); int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, int lastpos); X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); @@ -942,19 +692,42 @@ int X509_REQ_add1_attr_by_txt(X509_REQ *req, int X509_CRL_set_version(X509_CRL *x, long version); int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); int X509_CRL_sort(X509_CRL *crl); +int X509_CRL_up_ref(X509_CRL *crl); +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate +# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate +#endif + +long X509_CRL_get_version(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); +DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)) +DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) +X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); +const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); +STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); +void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_CRL_get_signature_nid(const X509_CRL *crl); +int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); + +const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); +const STACK_OF(X509_EXTENSION) * +X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); -int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); +int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); @@ -982,78 +755,81 @@ unsigned long X509_NAME_hash_old(X509_NAME *x); int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -# ifndef OPENSSL_NO_FP_API +int X509_aux_print(BIO *out, X509 *x, int indent); +# ifndef OPENSSL_NO_STDIO int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, unsigned long cflag); int X509_print_fp(FILE *bp, X509 *x); int X509_CRL_print_fp(FILE *bp, X509_CRL *x); int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, +int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, unsigned long flags); # endif -# ifndef OPENSSL_NO_BIO -int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, +int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, unsigned long flags); int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, unsigned long cflag); int X509_print(BIO *bp, X509 *x); int X509_ocspid_print(BIO *bp, X509 *x); -int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); int X509_CRL_print(BIO *bp, X509_CRL *x); int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, unsigned long cflag); int X509_REQ_print(BIO *bp, X509_REQ *req); -# endif -int X509_NAME_entry_count(X509_NAME *name); +int X509_NAME_entry_count(const X509_NAME *name); int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); -int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, +int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, char *buf, int len); /* - * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use + * NOTE: you should be passing -1, not 0 as lastpos. The functions that use * lastpos, search after that position on. */ int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, +int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, +int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, - unsigned char *bytes, int len, int loc, +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len, int loc, int set); int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - unsigned char *bytes, int len, int loc, + const unsigned char *bytes, int len, int loc, int set); X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, const char *field, int type, const unsigned char *bytes, int len); X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, unsigned char *bytes, + int type, + const unsigned char *bytes, int len); int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, const unsigned char *bytes, int len, int loc, int set); X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - ASN1_OBJECT *obj, int type, + const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); -ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); +ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); +int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); + +int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, + size_t *pderlen); int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, int nid, int lastpos); int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - ASN1_OBJECT *obj, int lastpos); + const ASN1_OBJECT *obj, int lastpos); int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, int crit, int lastpos); X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); @@ -1061,37 +837,40 @@ X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); -int X509_get_ext_count(X509 *x); -int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(X509 *x, int loc); +int X509_get_ext_count(const X509 *x); +int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(const X509 *x, int loc); X509_EXTENSION *X509_delete_ext(X509 *x, int loc); int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); +void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, unsigned long flags); -int X509_CRL_get_ext_count(X509_CRL *x); -int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); -int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); +int X509_CRL_get_ext_count(const X509_CRL *x); +int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); +void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, unsigned long flags); -int X509_REVOKED_get_ext_count(X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, +int X509_REVOKED_get_ext_count(const X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, int lastpos); -int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, + int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); +void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, + int *idx); int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, unsigned long flags); @@ -1099,20 +878,20 @@ X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, int nid, int crit, ASN1_OCTET_STRING *data); X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - ASN1_OBJECT *obj, int crit, + const ASN1_OBJECT *obj, int crit, ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(X509_EXTENSION *ex); +int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, int lastpos); int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - ASN1_OBJECT *obj, int lastpos); + const ASN1_OBJECT *obj, int lastpos); X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, @@ -1131,8 +910,8 @@ STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) int type, const unsigned char *bytes, int len); -void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, ASN1_OBJECT *obj, - int lastpos, int type); +void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, + const ASN1_OBJECT *obj, int lastpos, int type); X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, int atrtype, const void *data, int len); @@ -1149,13 +928,13 @@ int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, const void *data, int len); void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, void *data); -int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); +int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); int EVP_PKEY_get_attr_count(const EVP_PKEY *key); int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, int lastpos); X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); @@ -1192,6 +971,13 @@ X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, unsigned char *salt, int saltlen, unsigned char *aiv, int prf_nid); +#ifndef OPENSSL_NO_SCRYPT +X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, + const unsigned char *salt, int saltlen, + unsigned char *aiv, uint64_t N, uint64_t r, + uint64_t p); +#endif + X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen); @@ -1199,17 +985,20 @@ X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) -EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); +EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); -PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version, int ptype, void *pval, unsigned char *penc, int penclen); -int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, +int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); + const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); + +const STACK_OF(X509_ATTRIBUTE) * +PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); +int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, + const unsigned char *bytes, int len); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, @@ -1223,11 +1012,11 @@ int X509_TRUST_get_count(void); X509_TRUST *X509_TRUST_get0(int idx); int X509_TRUST_get_by_id(int id); int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - char *name, int arg1, void *arg2); + const char *name, int arg1, void *arg2); void X509_TRUST_cleanup(void); -int X509_TRUST_get_flags(X509_TRUST *xp); -char *X509_TRUST_get0_name(X509_TRUST *xp); -int X509_TRUST_get_trust(X509_TRUST *xp); +int X509_TRUST_get_flags(const X509_TRUST *xp); +char *X509_TRUST_get0_name(const X509_TRUST *xp); +int X509_TRUST_get_trust(const X509_TRUST *xp); /* BEGIN ERROR CODES */ /* @@ -1235,15 +1024,17 @@ int X509_TRUST_get_trust(X509_TRUST *xp); * made after this point may be overwritten when the script is next run. */ -void ERR_load_X509_strings(void); +int ERR_load_X509_strings(void); /* Error codes for the X509 functions. */ /* Function codes. */ # define X509_F_ADD_CERT_DIR 100 +# define X509_F_BUILD_CHAIN 106 # define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 106 +# define X509_F_CHECK_NAME_CONSTRAINTS 149 # define X509_F_CHECK_POLICY 145 +# define X509_F_DANE_I2D 107 # define X509_F_DIR_CTRL 102 # define X509_F_GET_CERT_BY_SUBJECT 103 # define X509_F_NETSCAPE_SPKI_B64_DECODE 129 @@ -1270,8 +1061,10 @@ void ERR_load_X509_strings(void); # define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 # define X509_F_X509_NAME_ONELINE 116 # define X509_F_X509_NAME_PRINT 117 +# define X509_F_X509_OBJECT_NEW 150 # define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_GET 119 +# define X509_F_X509_PUBKEY_DECODE 148 +# define X509_F_X509_PUBKEY_GET0 119 # define X509_F_X509_PUBKEY_SET 120 # define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 # define X509_F_X509_REQ_PRINT_EX 121 @@ -1290,13 +1083,13 @@ void ERR_load_X509_strings(void); /* Reason codes. */ # define X509_R_AKID_MISMATCH 110 +# define X509_R_BAD_SELECTOR 133 # define X509_R_BAD_X509_FILETYPE 100 # define X509_R_BASE64_DECODE_ERROR 118 # define X509_R_CANT_CHECK_DH_KEY 114 # define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 # define X509_R_CRL_ALREADY_DELTA 127 # define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_ERR_ASN1_LIB 102 # define X509_R_IDP_MISMATCH 128 # define X509_R_INVALID_DIRECTORY 113 # define X509_R_INVALID_FIELD_NAME 119 diff --git a/libs/mac/include/openssl/x509_vfy.h b/libs/mac/include/openssl/x509_vfy.h index 50626826..1aa0a33b 100644 --- a/libs/mac/include/openssl/x509_vfy.h +++ b/libs/mac/include/openssl/x509_vfy.h @@ -1,76 +1,24 @@ -/* crypto/x509/x509_vfy.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_X509_H -# include /* - * openssl/x509.h ends up #include-ing this file at about the only - * appropriate moment. + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ -#endif #ifndef HEADER_X509_VFY_H # define HEADER_X509_VFY_H -# include -# ifndef OPENSSL_NO_LHASH -# include +/* + * Protect against recursion, x509.h and x509_vfy.h each include the other. + */ +# ifndef HEADER_X509_H +# include # endif + +# include +# include # include # include # include @@ -79,24 +27,6 @@ extern "C" { #endif -# if 0 -/* Outer object */ -typedef struct x509_hash_dir_st { - int num_dirs; - char **dirs; - int *dirs_type; - int num_dirs_alloced; -} X509_HASH_DIR_CTX; -# endif - -typedef struct x509_file_st { - int num_paths; /* number of paths to files or directories */ - int num_alloced; - char **paths; /* the list of paths or directories */ - int *path_type; -} X509_CERT_FILE_CTX; - -/*******************************/ /*- SSL_CTX -> X509_STORE -> X509_LOOKUP @@ -114,187 +44,41 @@ The X509_STORE then calls a function to actually verify the certificate chain. */ -# define X509_LU_RETRY -1 -# define X509_LU_FAIL 0 -# define X509_LU_X509 1 -# define X509_LU_CRL 2 -# define X509_LU_PKEY 3 +typedef enum { + X509_LU_NONE = 0, + X509_LU_X509, X509_LU_CRL +} X509_LOOKUP_TYPE; -typedef struct x509_object_st { - /* one of the above types */ - int type; - union { - char *ptr; - X509 *x509; - X509_CRL *crl; - EVP_PKEY *pkey; - } data; -} X509_OBJECT; +#if OPENSSL_API_COMPAT < 0x10100000L +#define X509_LU_RETRY -1 +#define X509_LU_FAIL 0 +#endif -typedef struct x509_lookup_st X509_LOOKUP; - -DECLARE_STACK_OF(X509_LOOKUP) -DECLARE_STACK_OF(X509_OBJECT) - -/* This is a static that defines the function interface */ -typedef struct x509_lookup_method_st { - const char *name; - int (*new_item) (X509_LOOKUP *ctx); - void (*free) (X509_LOOKUP *ctx); - int (*init) (X509_LOOKUP *ctx); - int (*shutdown) (X509_LOOKUP *ctx); - int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, - char **ret); - int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, - X509_OBJECT *ret); - int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, - ASN1_INTEGER *serial, X509_OBJECT *ret); - int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, - unsigned char *bytes, int len, - X509_OBJECT *ret); - int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, - X509_OBJECT *ret); -} X509_LOOKUP_METHOD; - -typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; - -/* - * This structure hold all parameters associated with a verify operation by - * including an X509_VERIFY_PARAM structure in related structures the - * parameters used can be customized - */ - -typedef struct X509_VERIFY_PARAM_st { - char *name; - time_t check_time; /* Time to use */ - unsigned long inh_flags; /* Inheritance flags */ - unsigned long flags; /* Various verify flags */ - int purpose; /* purpose to check untrusted certificates */ - int trust; /* trust setting to check */ - int depth; /* Verify depth */ - STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */ - X509_VERIFY_PARAM_ID *id; /* opaque ID data */ -} X509_VERIFY_PARAM; - -DECLARE_STACK_OF(X509_VERIFY_PARAM) - -/* - * This is used to hold everything. It is used for all certificate - * validation. Once we have a certificate chain, the 'verify' function is - * then called to actually check the cert chain. - */ -struct x509_store_st { - /* The following is a cache of trusted certs */ - int cache; /* if true, stash any hits */ - STACK_OF(X509_OBJECT) *objs; /* Cache of all objects */ - /* These are external lookup methods */ - STACK_OF(X509_LOOKUP) *get_cert_methods; - X509_VERIFY_PARAM *param; - /* Callbacks for various operations */ - /* called to verify a certificate */ - int (*verify) (X509_STORE_CTX *ctx); - /* error callback */ - int (*verify_cb) (int ok, X509_STORE_CTX *ctx); - /* get issuers cert from ctx */ - int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - /* check issued */ - int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); - /* Check revocation status of chain */ - int (*check_revocation) (X509_STORE_CTX *ctx); - /* retrieve CRL */ - int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); - /* Check CRL validity */ - int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); - /* Check certificate against CRL */ - int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); - STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); - STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); - int (*cleanup) (X509_STORE_CTX *ctx); - CRYPTO_EX_DATA ex_data; - int references; -} /* X509_STORE */ ; +DEFINE_STACK_OF(X509_LOOKUP) +DEFINE_STACK_OF(X509_OBJECT) +DEFINE_STACK_OF(X509_VERIFY_PARAM) int X509_STORE_set_depth(X509_STORE *store, int depth); -# define X509_STORE_set_verify_cb_func(ctx,func) ((ctx)->verify_cb=(func)) -# define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) +typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, + X509_STORE_CTX *ctx, X509 *x); +typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, + X509 *x, X509 *issuer); +typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); +typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL **crl, X509 *x); +typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); +typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL *crl, X509 *x); +typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); +typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); -/* This is the functions plus an instance of the local variables. */ -struct x509_lookup_st { - int init; /* have we been started */ - int skip; /* don't use us. */ - X509_LOOKUP_METHOD *method; /* the functions */ - char *method_data; /* method data */ - X509_STORE *store_ctx; /* who owns us */ -} /* X509_LOOKUP */ ; - -/* - * This is a used when verifying cert chains. Since the gathering of the - * cert chain can take some time (and have to be 'retried', this needs to be - * kept and passed around. - */ -struct x509_store_ctx_st { /* X509_STORE_CTX */ - X509_STORE *ctx; - /* used when looking up certs */ - int current_method; - /* The following are set by the caller */ - /* The cert to check */ - X509 *cert; - /* chain of X509s - untrusted - passed in */ - STACK_OF(X509) *untrusted; - /* set of CRLs passed in */ - STACK_OF(X509_CRL) *crls; - X509_VERIFY_PARAM *param; - /* Other info for use with get_issuer() */ - void *other_ctx; - /* Callbacks for various operations */ - /* called to verify a certificate */ - int (*verify) (X509_STORE_CTX *ctx); - /* error callback */ - int (*verify_cb) (int ok, X509_STORE_CTX *ctx); - /* get issuers cert from ctx */ - int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - /* check issued */ - int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); - /* Check revocation status of chain */ - int (*check_revocation) (X509_STORE_CTX *ctx); - /* retrieve CRL */ - int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); - /* Check CRL validity */ - int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); - /* Check certificate against CRL */ - int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); - int (*check_policy) (X509_STORE_CTX *ctx); - STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); - STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); - int (*cleanup) (X509_STORE_CTX *ctx); - /* The following is built up */ - /* if 0, rebuild chain */ - int valid; - /* index of last untrusted cert */ - int last_untrusted; - /* chain of X509s - built up and trusted */ - STACK_OF(X509) *chain; - /* Valid policy tree */ - X509_POLICY_TREE *tree; - /* Require explicit policy value */ - int explicit_policy; - /* When something goes wrong, this is why */ - int error_depth; - int error; - X509 *current_cert; - /* cert currently being tested as valid issuer */ - X509 *current_issuer; - /* current CRL */ - X509_CRL *current_crl; - /* score of current CRL */ - int current_crl_score; - /* Reason mask */ - unsigned int current_reasons; - /* For CRL path validation: parent context */ - X509_STORE_CTX *parent; - CRYPTO_EX_DATA ex_data; -} /* X509_STORE_CTX */ ; void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); @@ -314,7 +98,6 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_OK 0 # define X509_V_ERR_UNSPECIFIED 1 - # define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 # define X509_V_ERR_UNABLE_TO_GET_CRL 3 # define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 @@ -347,7 +130,6 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_AKID_SKID_MISMATCH 30 # define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 # define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 - # define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 # define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 # define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 @@ -356,24 +138,23 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 # define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 # define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 - # define X509_V_ERR_INVALID_EXTENSION 41 # define X509_V_ERR_INVALID_POLICY_EXTENSION 42 # define X509_V_ERR_NO_EXPLICIT_POLICY 43 # define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 # define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 - # define X509_V_ERR_UNNESTED_RESOURCE 46 - # define X509_V_ERR_PERMITTED_VIOLATION 47 # define X509_V_ERR_EXCLUDED_VIOLATION 48 # define X509_V_ERR_SUBTREE_MINMAX 49 +/* The application is not happy */ # define X509_V_ERR_APPLICATION_VERIFICATION 50 # define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 # define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 # define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 # define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 - +/* Another issuer check debug option */ +# define X509_V_ERR_PATH_LOOP 55 /* Suite B mode algorithm violation */ # define X509_V_ERR_SUITE_B_INVALID_VERSION 56 # define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 @@ -381,23 +162,30 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 # define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 # define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 - /* Host, email and IP check errors */ # define X509_V_ERR_HOSTNAME_MISMATCH 62 # define X509_V_ERR_EMAIL_MISMATCH 63 # define X509_V_ERR_IP_ADDRESS_MISMATCH 64 - +/* DANE TLSA errors */ +# define X509_V_ERR_DANE_NO_MATCH 65 +/* security level errors */ +# define X509_V_ERR_EE_KEY_TOO_SMALL 66 +# define X509_V_ERR_CA_KEY_TOO_SMALL 67 +# define X509_V_ERR_CA_MD_TOO_WEAK 68 /* Caller error */ -# define X509_V_ERR_INVALID_CALL 65 +# define X509_V_ERR_INVALID_CALL 69 /* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 66 +# define X509_V_ERR_STORE_LOOKUP 70 +/* Certificate transparency */ +# define X509_V_ERR_NO_VALID_SCTS 71 -# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 67 +# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 /* Certificate verify flags */ -/* Send issuer+subject checks to verify_cb */ -# define X509_V_FLAG_CB_ISSUER_CHECK 0x1 +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ +# endif /* Use check time instead of current time */ # define X509_V_FLAG_USE_CHECK_TIME 0x2 /* Lookup CRLs */ @@ -424,7 +212,7 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 /* Delta CRL support */ # define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check selfsigned CA signature */ +/* Check self-signed CA signature */ # define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 /* Use trusted store first */ # define X509_V_FLAG_TRUSTED_FIRST 0x8000 @@ -434,15 +222,16 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_FLAG_SUITEB_192_LOS 0x20000 /* Suite B 128 bit mode allowing 192 bit algorithms */ # define X509_V_FLAG_SUITEB_128_LOS 0x30000 - /* Allow partial chains if at least one certificate is in trusted store */ # define X509_V_FLAG_PARTIAL_CHAIN 0x80000 /* * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag + * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag * will force the behaviour to match that of previous versions. */ # define X509_V_FLAG_NO_ALT_CHAINS 0x100000 +/* Do not check certificate/CRL validity against current time */ +# define X509_V_FLAG_NO_CHECK_TIME 0x200000 # define X509_VP_FLAG_DEFAULT 0x1 # define X509_VP_FLAG_OVERWRITE 0x2 @@ -456,31 +245,82 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); | X509_V_FLAG_INHIBIT_ANY \ | X509_V_FLAG_INHIBIT_MAP) -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, +int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, X509_NAME *name); X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - int type, X509_NAME *name); + X509_LOOKUP_TYPE type, + X509_NAME *name); X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x); -void X509_OBJECT_up_ref_count(X509_OBJECT *a); -void X509_OBJECT_free_contents(X509_OBJECT *a); +int X509_OBJECT_up_ref_count(X509_OBJECT *a); +X509_OBJECT *X509_OBJECT_new(void); +void X509_OBJECT_free(X509_OBJECT *a); +X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); +X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); +X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); X509_STORE *X509_STORE_new(void); void X509_STORE_free(X509_STORE *v); +int X509_STORE_lock(X509_STORE *ctx); +int X509_STORE_unlock(X509_STORE *ctx); +int X509_STORE_up_ref(X509_STORE *v); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); +STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); int X509_STORE_set_trust(X509_STORE *ctx, int trust); int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); +void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +#define X509_STORE_set_verify_func(ctx, func) \ + X509_STORE_set_verify((ctx),(func)) +void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_fn verify); +X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); void X509_STORE_set_verify_cb(X509_STORE *ctx, - int (*verify_cb) (int, X509_STORE_CTX *)); + X509_STORE_CTX_verify_cb verify_cb); +# define X509_STORE_set_verify_cb_func(ctx,func) \ + X509_STORE_set_verify_cb((ctx),(func)) +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); +void X509_STORE_set_get_issuer(X509_STORE *ctx, + X509_STORE_CTX_get_issuer_fn get_issuer); +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); +void X509_STORE_set_check_issued(X509_STORE *ctx, + X509_STORE_CTX_check_issued_fn check_issued); +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); +void X509_STORE_set_check_revocation(X509_STORE *ctx, + X509_STORE_CTX_check_revocation_fn check_revocation); +X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); +void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_CTX_get_crl_fn get_crl); +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); +void X509_STORE_set_check_crl(X509_STORE *ctx, + X509_STORE_CTX_check_crl_fn check_crl); +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); +void X509_STORE_set_cert_crl(X509_STORE *ctx, + X509_STORE_CTX_cert_crl_fn cert_crl); +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); +void X509_STORE_set_check_policy(X509_STORE *ctx, + X509_STORE_CTX_check_policy_fn check_policy); +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); +void X509_STORE_set_lookup_certs(X509_STORE *ctx, + X509_STORE_CTX_lookup_certs_fn lookup_certs); +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); +void X509_STORE_set_lookup_crls(X509_STORE *ctx, + X509_STORE_CTX_lookup_crls_fn lookup_crls); +#define X509_STORE_set_lookup_crls_cb(ctx, func) \ + X509_STORE_set_lookup_crls((ctx), (func)) +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); +void X509_STORE_set_cleanup(X509_STORE *ctx, + X509_STORE_CTX_cleanup_fn cleanup); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); -void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, - STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX - *ctx, - X509_NAME *nm)); +#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) +int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); +void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -489,68 +329,93 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain); -void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); +STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_cb verify); +X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); +X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); + +#if OPENSSL_API_COMPAT < 0x10100000L +# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain +# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted +# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack +# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject +# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs +# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls +#endif X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); - X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); -int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, - X509_OBJECT *ret); +int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, + X509_LOOKUP_TYPE type, + X509_NAME *name); int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret); -# ifndef OPENSSL_NO_STDIO int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); -# endif X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); void X509_LOOKUP_free(X509_LOOKUP *ctx); int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, - X509_OBJECT *ret); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, - ASN1_INTEGER *serial, X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, - unsigned char *bytes, int len, +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, ASN1_INTEGER *serial, + X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const unsigned char *bytes, int len, X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, - X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const char *str, int len, X509_OBJECT *ret); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -# ifndef OPENSSL_NO_STDIO int X509_STORE_load_locations(X509_STORE *ctx, const char *file, const char *dir); int X509_STORE_set_default_paths(X509_STORE *ctx); -# endif -int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); +#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); -void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); @@ -559,16 +424,22 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - int (*verify_cb) (int, X509_STORE_CTX *)); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); +#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) + /* X509_VERIFY_PARAM functions */ X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); @@ -586,12 +457,18 @@ unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); +time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, ASN1_OBJECT *policy); int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies); +int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, + uint32_t flags); +uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); + int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, const char *name, size_t namelen); int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, @@ -599,6 +476,7 @@ int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, unsigned int flags); char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, const char *email, size_t emaillen); int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, @@ -607,6 +485,7 @@ int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc); int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); @@ -615,6 +494,19 @@ const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); void X509_VERIFY_PARAM_table_cleanup(void); +/* Non positive return values are errors */ +#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ +#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ +#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ + +/* + * Positive return values form a bit mask, all but the first are internal to + * the library and don't appear in results from X509_policy_check(). + */ +#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ +#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ +#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ + int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, STACK_OF(X509) *certs, STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); diff --git a/libs/mac/include/openssl/x509v3.h b/libs/mac/include/openssl/x509v3.h index f5c61560..c93b112f 100644 --- a/libs/mac/include/openssl/x509v3.h +++ b/libs/mac/include/openssl/x509v3.h @@ -1,61 +1,12 @@ -/* x509v3.h */ /* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 1999. - */ -/* ==================================================================== - * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ + #ifndef HEADER_X509V3_H # define HEADER_X509V3_H @@ -67,13 +18,6 @@ extern "C" { #endif -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 these are defined in wincrypt.h */ -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -# endif - /* Forward reference */ struct v3_ext_method; struct v3_ext_ctx; @@ -124,8 +68,8 @@ struct v3_ext_method { }; typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, char *section, char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, char *section); + char *(*get_string) (void *db, const char *section, const char *value); + STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); void (*free_string) (void *db, char *string); void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); } X509V3_CONF_METHOD; @@ -133,6 +77,7 @@ typedef struct X509V3_CONF_METHOD_st { /* Context specific info */ struct v3_ext_ctx { # define CTX_TEST 0x1 +# define X509V3_CTX_REPLACE 0x2 int flags; X509 *issuer_cert; X509 *subject_cert; @@ -145,7 +90,7 @@ struct v3_ext_ctx { typedef struct v3_ext_method X509V3_EXT_METHOD; -DECLARE_STACK_OF(X509V3_EXT_METHOD) +DEFINE_STACK_OF(X509V3_EXT_METHOD) /* ext_flags values */ # define X509V3_EXT_DYNAMIC 0x1 @@ -206,8 +151,6 @@ typedef struct GENERAL_NAME_st { } d; } GENERAL_NAME; -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; - typedef struct ACCESS_DESCRIPTION_st { ASN1_OBJECT *method; GENERAL_NAME *location; @@ -217,11 +160,13 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; -DECLARE_STACK_OF(GENERAL_NAME) -DECLARE_ASN1_SET_OF(GENERAL_NAME) +typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; -DECLARE_STACK_OF(ACCESS_DESCRIPTION) -DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) +DEFINE_STACK_OF(GENERAL_NAME) +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; +DEFINE_STACK_OF(GENERAL_NAMES) + +DEFINE_STACK_OF(ACCESS_DESCRIPTION) typedef struct DIST_POINT_NAME_st { int type; @@ -256,8 +201,7 @@ struct DIST_POINT_st { typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; -DECLARE_STACK_OF(DIST_POINT) -DECLARE_ASN1_SET_OF(DIST_POINT) +DEFINE_STACK_OF(DIST_POINT) struct AUTHORITY_KEYID_st { ASN1_OCTET_STRING *keyid; @@ -272,8 +216,7 @@ typedef struct SXNET_ID_st { ASN1_OCTET_STRING *user; } SXNETID; -DECLARE_STACK_OF(SXNETID) -DECLARE_ASN1_SET_OF(SXNETID) +DEFINE_STACK_OF(SXNETID) typedef struct SXNET_st { ASN1_INTEGER *version; @@ -299,8 +242,7 @@ typedef struct POLICYQUALINFO_st { } d; } POLICYQUALINFO; -DECLARE_STACK_OF(POLICYQUALINFO) -DECLARE_ASN1_SET_OF(POLICYQUALINFO) +DEFINE_STACK_OF(POLICYQUALINFO) typedef struct POLICYINFO_st { ASN1_OBJECT *policyid; @@ -309,15 +251,14 @@ typedef struct POLICYINFO_st { typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; -DECLARE_STACK_OF(POLICYINFO) -DECLARE_ASN1_SET_OF(POLICYINFO) +DEFINE_STACK_OF(POLICYINFO) typedef struct POLICY_MAPPING_st { ASN1_OBJECT *issuerDomainPolicy; ASN1_OBJECT *subjectDomainPolicy; } POLICY_MAPPING; -DECLARE_STACK_OF(POLICY_MAPPING) +DEFINE_STACK_OF(POLICY_MAPPING) typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; @@ -327,7 +268,7 @@ typedef struct GENERAL_SUBTREE_st { ASN1_INTEGER *maximum; } GENERAL_SUBTREE; -DECLARE_STACK_OF(GENERAL_SUBTREE) +DEFINE_STACK_OF(GENERAL_SUBTREE) struct NAME_CONSTRAINTS_st { STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; @@ -414,6 +355,7 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SI 0x20 # define EXFLAG_V1 0x40 # define EXFLAG_INVALID 0x80 +/* EXFLAG_SET is set to indicate that some values have been precomputed */ # define EXFLAG_SET 0x100 # define EXFLAG_CRITICAL 0x200 # define EXFLAG_PROXY 0x400 @@ -501,20 +443,20 @@ typedef struct x509_purpose_st { # define X509V3_ADD_DELETE 5L # define X509V3_ADD_SILENT 0x10 -DECLARE_STACK_OF(X509_PURPOSE) +DEFINE_STACK_OF(X509_PURPOSE) DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) -int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, +int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); +int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, +int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, int userlen); -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone); +ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); @@ -532,6 +474,9 @@ ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits, STACK_OF(CONF_VALUE) *extlist); +char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); +ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, @@ -557,12 +502,14 @@ int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue); char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - ASN1_OCTET_STRING *ia5); + const ASN1_OCTET_STRING *ia5); ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, char *str); + X509V3_CTX *ctx, const char *str); DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION *a); +int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); + +DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) DECLARE_ASN1_FUNCTIONS(POLICYINFO) @@ -578,6 +525,7 @@ DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); +int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) @@ -597,8 +545,8 @@ DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, char *value, - int is_nc); + X509V3_CTX *ctx, int gen_type, + const char *value, int is_nc); # ifdef HEADER_CONF_H GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, @@ -610,40 +558,40 @@ GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, void X509V3_conf_free(CONF_VALUE *val); X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, - char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, + const char *value); +X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, + const char *value); +int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, +int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, +int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, +int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509_CRL *crl); X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, - char *value); + const char *value); X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *name, char *value); + const char *name, const char *value); int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509 *cert); + const char *section, X509 *cert); int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_REQ *req); + const char *section, X509_REQ *req); int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_CRL *crl); + const char *section, X509_CRL *crl); -int X509V3_add_value_bool_nf(char *name, int asn1_bool, +int X509V3_add_value_bool_nf(const char *name, int asn1_bool, STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint); +int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); +int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); # endif -char *X509V3_get_string(X509V3_CTX *ctx, char *name, char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, char *section); +char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); +STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); void X509V3_string_free(X509V3_CTX *ctx, char *str); void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, @@ -655,13 +603,13 @@ int X509V3_add_value_uchar(const char *name, const unsigned char *value, STACK_OF(CONF_VALUE) **extlist); int X509V3_add_value_bool(const char *name, int asn1_bool, STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint, +int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); +char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); +ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); +char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - ASN1_ENUMERATED *aint); + const ASN1_ENUMERATED *aint); int X509V3_EXT_add(X509V3_EXT_METHOD *ext); int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); int X509V3_EXT_add_alias(int nid_to, int nid_from); @@ -672,26 +620,28 @@ const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); int X509V3_add_standard_extensions(void); STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, +void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx); -int X509V3_EXT_free(int nid, void *ext_data); X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags); -char *hex_to_string(const unsigned char *buffer, long len); -unsigned char *string_to_hex(const char *str, long *len); -int name_cmp(const char *name, const char *cmp); +#if OPENSSL_API_COMPAT < 0x10100000L +/* The new declarations are in crypto.h, but the old ones were here. */ +# define hex_to_string OPENSSL_buf2hexstr +# define string_to_hex OPENSSL_hexstr2buf +#endif void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml); int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent); +#ifndef OPENSSL_NO_STDIO int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); - -int X509V3_extensions_print(BIO *out, char *title, - STACK_OF(X509_EXTENSION) *exts, +#endif +int X509V3_extensions_print(BIO *out, const char *title, + const STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent); int X509_check_ca(X509 *x); @@ -700,18 +650,28 @@ int X509_supported_extension(X509_EXTENSION *ex); int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); +void X509_set_proxy_flag(X509 *x); +void X509_set_proxy_pathlen(X509 *x, long l); +long X509_get_proxy_pathlen(X509 *x); + +uint32_t X509_get_extension_flags(X509 *x); +uint32_t X509_get_key_usage(X509 *x); +uint32_t X509_get_extended_key_usage(X509 *x); +const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); +const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); + int X509_PURPOSE_get_count(void); X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_by_sname(char *sname); +int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), - char *name, char *sname, void *arg); -char *X509_PURPOSE_get0_name(X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(X509_PURPOSE *xp); + const char *name, const char *sname, void *arg); +char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); +char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); +int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(X509_PURPOSE *); +int X509_PURPOSE_get_id(const X509_PURPOSE *); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); @@ -731,6 +691,8 @@ STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); # define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 /* Constraint verifier subdomain patterns to match a single labels. */ # define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* Never check the subject CN */ +# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 /* * Match reference identifiers starting with "." to any sub-domain. * This is a non-public flag, turned on implicitly when the subject @@ -748,21 +710,19 @@ int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int a2i_ipadd(unsigned char *ipout, const char *ipasc); int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, unsigned long chtype); void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -DECLARE_STACK_OF(X509_POLICY_NODE) - -# ifndef OPENSSL_NO_RFC3779 +DEFINE_STACK_OF(X509_POLICY_NODE) +#ifndef OPENSSL_NO_RFC3779 typedef struct ASRange_st { ASN1_INTEGER *min, *max; } ASRange; -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 +# define ASIdOrRange_id 0 +# define ASIdOrRange_range 1 typedef struct ASIdOrRange_st { int type; @@ -773,10 +733,10 @@ typedef struct ASIdOrRange_st { } ASIdOrRange; typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DECLARE_STACK_OF(ASIdOrRange) +DEFINE_STACK_OF(ASIdOrRange) -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 +# define ASIdentifierChoice_inherit 0 +# define ASIdentifierChoice_asIdsOrRanges 1 typedef struct ASIdentifierChoice_st { int type; @@ -799,8 +759,8 @@ typedef struct IPAddressRange_st { ASN1_BIT_STRING *min, *max; } IPAddressRange; -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 +# define IPAddressOrRange_addressPrefix 0 +# define IPAddressOrRange_addressRange 1 typedef struct IPAddressOrRange_st { int type; @@ -811,10 +771,10 @@ typedef struct IPAddressOrRange_st { } IPAddressOrRange; typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DECLARE_STACK_OF(IPAddressOrRange) +DEFINE_STACK_OF(IPAddressOrRange) -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 +# define IPAddressChoice_inherit 0 +# define IPAddressChoice_addressesOrRanges 1 typedef struct IPAddressChoice_st { int type; @@ -830,7 +790,7 @@ typedef struct IPAddressFamily_st { } IPAddressFamily; typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DECLARE_STACK_OF(IPAddressFamily) +DEFINE_STACK_OF(IPAddressFamily) DECLARE_ASN1_FUNCTIONS(IPAddressRange) DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) @@ -840,8 +800,8 @@ DECLARE_ASN1_FUNCTIONS(IPAddressFamily) /* * API tag for elements of the ASIdentifer SEQUENCE. */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 +# define V3_ASID_ASNUM 0 +# define V3_ASID_RDI 1 /* * AFI values, assigned by IANA. It'd be nice to make the AFI @@ -849,80 +809,81 @@ DECLARE_ASN1_FUNCTIONS(IPAddressFamily) * that would need to be defined for other address families for it to * be worth the trouble. */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 +# define IANA_AFI_IPV4 1 +# define IANA_AFI_IPV6 2 /* * Utilities to construct and extract values from RFC3779 extensions, * since some of the encodings (particularly for IP address prefixes * and ranges) are a bit tedious to work with directly. */ -int v3_asid_add_inherit(ASIdentifiers *asid, int which); -int v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned v3_addr_get_afi(const IPAddressFamily *f); -int v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); +int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); +int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, + ASN1_INTEGER *min, ASN1_INTEGER *max); +int X509v3_addr_add_inherit(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi); +int X509v3_addr_add_prefix(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *a, const int prefixlen); +int X509v3_addr_add_range(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *min, unsigned char *max); +unsigned X509v3_addr_get_afi(const IPAddressFamily *f); +int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, + unsigned char *min, unsigned char *max, + const int length); /* * Canonical forms. */ -int v3_asid_is_canonical(ASIdentifiers *asid); -int v3_addr_is_canonical(IPAddrBlocks *addr); -int v3_asid_canonize(ASIdentifiers *asid); -int v3_addr_canonize(IPAddrBlocks *addr); +int X509v3_asid_is_canonical(ASIdentifiers *asid); +int X509v3_addr_is_canonical(IPAddrBlocks *addr); +int X509v3_asid_canonize(ASIdentifiers *asid); +int X509v3_addr_canonize(IPAddrBlocks *addr); /* * Tests for inheritance and containment. */ -int v3_asid_inherits(ASIdentifiers *asid); -int v3_addr_inherits(IPAddrBlocks *addr); -int v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); +int X509v3_asid_inherits(ASIdentifiers *asid); +int X509v3_addr_inherits(IPAddrBlocks *addr); +int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); +int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); /* * Check whether RFC 3779 extensions nest properly in chains. */ -int v3_asid_validate_path(X509_STORE_CTX *); -int v3_addr_validate_path(X509_STORE_CTX *); -int v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, int allow_inheritance); -int v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); +int X509v3_asid_validate_path(X509_STORE_CTX *); +int X509v3_addr_validate_path(X509_STORE_CTX *); +int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, + ASIdentifiers *ext, + int allow_inheritance); +int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, + IPAddrBlocks *ext, int allow_inheritance); -# endif /* OPENSSL_NO_RFC3779 */ +#endif /* OPENSSL_NO_RFC3779 */ /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ -void ERR_load_X509V3_strings(void); + +int ERR_load_X509V3_strings(void); /* Error codes for the X509V3 functions. */ /* Function codes. */ # define X509V3_F_A2I_GENERAL_NAME 164 +# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 # define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 # define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 +# define X509V3_F_BIGNUM_TO_STRING 167 # define X509V3_F_COPY_EMAIL 122 # define X509V3_F_COPY_ISSUER 123 # define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_CONF 124 # define X509V3_F_DO_EXT_I2D 135 # define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148 # define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_HEX_TO_STRING 111 # define X509V3_F_I2S_ASN1_ENUMERATED 121 # define X509V3_F_I2S_ASN1_IA5STRING 149 # define X509V3_F_I2S_ASN1_INTEGER 120 @@ -936,10 +897,8 @@ void ERR_load_X509V3_strings(void); # define X509V3_F_S2I_ASN1_IA5STRING 100 # define X509V3_F_S2I_ASN1_INTEGER 108 # define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_ASN1_SKEY_ID 114 # define X509V3_F_S2I_SKEY_ID 115 # define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_STRING_TO_HEX 113 # define X509V3_F_SXNET_ADD_ID_ASC 125 # define X509V3_F_SXNET_ADD_ID_INTEGER 126 # define X509V3_F_SXNET_ADD_ID_ULONG 127 @@ -961,14 +920,12 @@ void ERR_load_X509V3_strings(void); # define X509V3_F_V2I_POLICY_CONSTRAINTS 146 # define X509V3_F_V2I_POLICY_MAPPINGS 145 # define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL 160 +# define X509V3_F_V2I_TLS_FEATURE 165 # define X509V3_F_V3_GENERIC_EXTENSION 116 # define X509V3_F_X509V3_ADD1_I2D 140 # define X509V3_F_X509V3_ADD_VALUE 105 # define X509V3_F_X509V3_EXT_ADD 104 # define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_CONF 107 -# define X509V3_F_X509V3_EXT_FREE 165 # define X509V3_F_X509V3_EXT_I2D 136 # define X509V3_F_X509V3_EXT_NCONF 152 # define X509V3_F_X509V3_GET_SECTION 142 @@ -983,7 +940,6 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_BAD_OBJECT 119 # define X509V3_R_BN_DEC2BN_ERROR 100 # define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_CANNOT_FIND_FREE_FUNCTION 168 # define X509V3_R_DIRNAME_ERROR 149 # define X509V3_R_DISTPOINT_ALREADY_SET 160 # define X509V3_R_DUPLICATE_ZONE_ID 133 @@ -997,7 +953,6 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 # define X509V3_R_EXTENSION_VALUE_ERROR 116 # define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_ILLEGAL_HEX_DIGIT 113 # define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 # define X509V3_R_INVALID_ASNUMBER 162 # define X509V3_R_INVALID_ASRANGE 163 @@ -1030,13 +985,11 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 # define X509V3_R_NO_PUBLIC_KEY 114 # define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_ODD_NUMBER_OF_DIGITS 112 # define X509V3_R_OPERATION_NOT_DEFINED 148 # define X509V3_R_OTHERNAME_ERROR 147 # define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 # define X509V3_R_POLICY_PATH_LENGTH 156 # define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158 # define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 # define X509V3_R_SECTION_NOT_FOUND 150 # define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 @@ -1049,7 +1002,7 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_UNSUPPORTED_TYPE 167 # define X509V3_R_USER_TOO_LONG 132 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/libs/mac/lib/libcrypto.1.1.dylib b/libs/mac/lib/libcrypto.1.1.dylib new file mode 100644 index 0000000000000000000000000000000000000000..915e20b6888e9aaf942c4d8e52d44572f3afe83b GIT binary patch literal 2190708 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
%^{-2{dU}kNF29f5d{8e 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®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

E$P7{&GXku0BJQh4%YwWsZ)<)g*zFoo##`{ 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 z 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

rEq&OuHL^2SP61Wb$n2AGQ^ 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

B5#(`6pCcc~Ng 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

v4n#_`Q2yGcQL~|aEHmcyTm#SiOXB=JS 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 z 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%0D)myo@C5;u;t7DadA;`os(dc0i+cjwRolCH8NfcZ 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

8iO%;EkEP!~dNFuKoN38a6?~ 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%0A|7xh=E1080Nz~m<16K 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�i-n2{2aVYnF5gyu6H2vr&G{ueE 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

){5{vBPbCYuM~3WTyR&5>CUHI(Stn|N4ef2 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 literal 0 HcmV?d00001 diff --git a/libs/mac/lib/libcrypto.dylib b/libs/mac/lib/libcrypto.dylib deleted file mode 100644 index b88d5522cbdb430b2262ea6fb3c0d04221b450f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1986176 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ï=zyK%{x@b(GXg%xBg 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%0A)Fm)rZY{_C8S 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

|aUB*}{y=jA(QajMx+V+lr;)SSnhFPvf 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

n zybr@13UCFwS&qq_Vlz_Ew5JW=*4vS2;c&C%%DD#x(fXxxFb^gHPgN&qv%>Wwz?D*l zIGsU>w1Oz=WNjribv3)mNfHRGD=T0d$giQAc0uaP&*F-BIW|Wz28V9{gY`b#leayf zJnhq=_tTpSLJ_MXWf{6+eZ%D-f_WeL+^nofN0C6pulITC)*Zkr!s@x9&l{ z^IuHZQg$y~XCPfi+(R~<&~*ei54qusg`=o`+Xip-uAZ7hn|#QHe7Y0bI+Q){ozut6lgT>Fz{GOaMD| zgJU|cHrO4aoKK_bmlz%f=j9L%kUqWIT5~q|x^T|qVvnp5S1>ybsh2&;W@JsYc2L|6`@URN7v0@ZM@nTi;Nn*H z89R&_e}&3myB=G<>{4K0?`iGB3=jfpa7#5F(5q$!)vFSSz3RYtMX$<_M33H+-}oGE z$1XJNFM|fFknhm=bzD$XuwafZnA;Hr-Rx0po1!-nejPiu&^G~15U++Ly5}HHy9p>g zbUK;e#jRvus7z|q1^lBgC;3E!ilD}+=Y2BEjj^N1+(Tnt6<#7+(YjNQh2z_mCe0&L-jHma_%=!!jV# zpOmP96PFwxje&o97SXQBLU|VWMhRZ7NT|Uft0g{%yM_mp47qdRceuBJHjh!xTsSI^ zaGCJ$GrB(kT(ntI=b<@q77)?he%EwquJneQ?b9zu5PW~$k>JIC+jrnu7$Z?LO7eH& zX$iN%Yozs|kD%R~x8dIQ8&fU?XOOontV2Y7-Tu}Gaj}&aayEOS#5#VOl2~QrY8sKo z{}7F;K$Π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�Nj^iGKRW}T3m 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

O4p%?M^t;v-abX0iSY|E-qoiuG5Qn%^2 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�Dzf@tWX2>h-Zq!zX|EoIr+VTn#so>`CEH>4(*o78G14bLV7PWXC zYHpY_XhAq?Mg*!c616%CRUd=u7l)b|k7`UnEm+CjS8*4v)m$@Ha~A`uVGXK&tuvfu z_;Z%Um;TAYdtfp@h>)4ySXpdYOWc3(4~y4VK1&1aShGF^<1v{eYl>< zwSsH%esn1Yg}%vnm{bRc*|<0AICw|@Pq@`f-oVC!W$GK1T&}!<4G?nxgB5V~Gvd0D zYc7ZVNql&*Rl1}P1`2JFO|D#?r6&g3($I5lrxJu95HPfZF z9vXQ1jnCVdBR%oZ%$8nyXyE(>b24GP1s}+~hp(`!#U{G>9gT&4G^w~+d?g6dEh(4-K2w_8knd%9qQ!})(bo`02M6VhF2G=@VX}H zp@#-ew($Ifv<{R1gP+yXyfm}$V}#ob) zN-I4zkns>SFRnuK+$TKyPf^Rb8lH2PYVN|d;3cjXze25ejjDgcRX-KhGr1bvaox|8 zyLh37`l9A?H3Z;#5m#d%uIqzQi@D}5$MuX5)R@qzn0>hTIstWsy$N3=#a@69xSXO)~ zuH@^dfxAv{LlfYIX7o)d7>|F2epg~j#coWs|1OsL~MJ;}g!G}ueFjuhd znfP=7>?U~o9s=e2!*Pvn;E!5Br|JtlQ`Hzp@=J^Z?xB_YYX*KN-Nc~d7EGPz26vbC_obSrn?hMKV*(|p&j@eJ1RJMp|D=#RaIGO&O`?L@l; zi}C7ahLjR4jx7ArsS>R+vUr?{)4{gjI9GQUST}f}Ry>;l`UDgX%W$NT?gVR=@Rj=* zxSD(GpQDi<*HBPN(toy!S#DIrS+cx~>FC!?SHDpU-FTY@TAi+GOK;}XV7;8q%xznT zGD~Yq=Wlw>7(cdK*Y9K5;8^xuIxA;`CpC0PP?qU*d90iE8-La}M(Lvcqh~Zrm$Nmq zX0~i&*dmVO?HdjsrQ*b z3zDBIPuYGJ!+IT1T6Ya$A>eDhy)f2IkGWuaLW0c56Cq z@*F=lwC})Qy&$ixvgQ4s*zAKGG(64H%@XB&R`5lePdYXovq#lB8=0TQNmi;nQ#@?) ztn|t*vq)91RGTHpsfwZA4*A=wZ6iO7lB49~7Edhn4tB3(gVmB4)u{bH{A}vD+r+YU zOsCa0{P^RKTYQ{ue%`D>&kChNHL_x*LStl(p&Eml@lCO8P>SVNtyeQgz3kYhRVzJn z*4LXEYpb^}mNP7h&5CU*Z1rlNKF-druAwZH6~kYs94Z%Ui&=$SY_GQowKdwihU)t0 zKQy*6GNV?{j2e9_W1Hfx2CL$F#q|uc4X8HDy z8a-;%;KPqw80DQxgp#UkX35ZCF0cdgRXJKtlEXAdnXfu!FRUDt1LQSkUS>ztRP`$B zH_Xv7klm51)PriIx`uwGk{xEoX<=Bg>ca z$UEjnt0ap{O<$|I<`c*0cCb#shOQGu+iV zzq+%F%q>MuhNLc7T$J}}E7=;h!u+MiZNR_*y`tIB0R#P55p$QXtH;&L%5Ns|HJ>m0m8kDVASokD3`+E4>O^6>yhTidiUg z?4vg;&=`~en;eba-XQCBPysRoU`A$8Dip_JSyelZ@7d45o~wT!m*dn0GkXnyXZJ6$ ztXv{fxSJP4eFZ01`WFfZFV=C+1J7%AGWQwai`BMEIzQduvn(mcIUst>df}T zhmWzC^z+Y7@SE*21%7VLoI1AG_36^(j~pdhwqCAw@A!pF^W(}1*^^aisy|kk~8TeR9 zfy~`uKTHTw+1~W~Z3DdHtC-K1!GpDNkwMq)C?Mh@Dnj!(Oo^ z^~2R9rM~s}iPmk$54W{0tv}IPFF#@1%_i?+Bf^=19bitu@(MG9k_iW-qWa!!lAcY{ zwR|pb&?GfX)OFe*ySLuYj7qkAgso>^4*Q|)+YeUTR_gp%Q|pNn!x)<0srS0UIbEk! za>8fx!sLI!C`m4XmQ-E;j9jKXQ1TrQvy`Syt=nE_*O?a+fxOhJhN+gFGL>A*G>gre zt+wmTiZT8j4Ik+Ib;BR90C|3ANWzz$RJ*2|SDEFTt<|L0^R4$U{B*m`gFiG_Oz6Iw zbs4XR8klBedMFJl{=pt^RN=o;tQw&y7K2AI)634zeVh$u#nyUDXZY#OjMmv&-6ON7 zW+mqP%%ik60~3`fc1mmYP|>x}ejhJ8wzjtRRpQlB^KWD2e7WngIC&pSRouNA^BD7Ft?o1USz0y>GOr(CmH-(aUUw@uZaj1^lzQ$6+rde!zP0^LjrB?0MC*lz z*+a8mzJDT*Ji?A>HnUOQZ1SQ6HZqglR!=L*$`y8$g_@U`4PMmJ27Zlt%?Z?`v9e?{W~ zO~HPmb*DY-7uzb?dYwGcI!H5RP{Sk!SIpOy9B2Z3^SAhRHLKtM5ldmMzv#RP&cj+O z3wx~=OQkz*aYlRBV&pW35H@VYYt|JV^O*-5ny=c}yXwl6b;>ZC4|FXiTb)uKGOWRt zdQFVn_1AAMFuMqg*YXbeoBI3ZV=`pr#|9sNw9MAJ-0r*9pZ*ce`fO0$+?6LvlB{QQ z=FHh__K(h#6Uc`y*L+&n9g4XwL5^lIa*TY5tyaQVpRQIfp{rtH^@iC`xgh(n63C1P z8_;F+W7fs(N1fK(+`Owho1DRHoTqgDptYS{_a0C|_ICEr+0bfrRyy5}KL)WNc1t-b zm#R}g7`2!ExrW`ZH!P2BRIRLTC{sqxa=apUXknqXx3`BrQ4*XaR>~(>FiTRV_57f5 zFT0uFHqzSs-z>p;vfXFS4M+a(R_4_D&DqNQ;Rv=>9{TmvKcOZYv@A34@$)HWZk}W_ zRcp3|S-M${?fshh$^F_oCa`}-_v|_+l&xf1OG{BW%S%ulXIVZQ-mHpsKEdkOA2O+f zMd$kMAF~fySXc3+>;v=~$C6~$VN`0iWX;J-atyM1O~jBmEvvZrof-^PuXwzmF2=c62u+j+?6 z>m6hhK8Rzn^6eH;Y+5;s*622ywQbm0#4NJHkkiB8!VY_=%+^ZO4BaU zd`{2rns~q|d>%J>ml8zHJG^ywo|82Xq!JQ`DaNI8yXIMpOb7%Kdp^6 zh$YC4CpC6xa!J0(zOxBecgo{i_WY<+v1}8-wz3anl{Kt`?blMi}J(QzeSX;j1X zN+Ye-)>fzM@bjnL&d8rPX%s8J(AYIOFN<#Zr+IR(Sb4eZlp@D-r}jQ_Je17|y@Qwl z7hy{}=9c{1Avr^y_q~UlE&FKxzh=Hsz6JZzpL#e@9#h}QrEui)XOq@38=C>`JGX~_m`)Q@R{L(I()3v_d$T?A z_p4cyJRMDHOJiwise_hZ`yV}l`9E0Hy4SUV^~3TP+42`f$_}MXo7TQ^^G*wA+1+D} z25ZL;hQDFsM|U%~av9QLScgs>2M*Civ41~LmpgZN(5x}eo>@I(<`!1AxRb%j*}~kSo7P@uV~PLn!@2ytvTRJ_5O!I% zddx;y|T?B)itG?V|UR94AuHO%b{9JZS}e6&;-q1cuxHLOL8 zfA-kbG&ZvS{o~l}`l~Jzl{{qyTVr7rCI_;k%9N#FXgA3LO1|8GXr^law{^Ab z$8t5Wk}2bH-g+%-eTDtuGFRKPP_BXFWr93ET6Tdfu41XI`PeC=^EF)#t1Drnd$XCb z_2ziP@+|z{0Xx7SHO%F@*)BC!+-+U2$g{6-?94u5mc)-n*Arw}Xv%MDb)lFItFyvwJl&xpT|UxNc%?KA$|VhrO

mp0*2zJKOx_~)WvJ9n& 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 AiU0rr diff --git a/libs/mac/lib/libssl.1.1.dylib b/libs/mac/lib/libssl.1.1.dylib new file mode 100644 index 0000000000000000000000000000000000000000..786bfd9238a394b43caad8b63891c0467ffb2bdf GIT binary patch literal 390940 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 f1Q4v&2RfEhDiFK_>Gsh~alxo0|R~=@9W< literal 0 HcmV?d00001 diff --git a/libs/mac/lib/libssl.dylib b/libs/mac/lib/libssl.dylib deleted file mode 100644 index 98369d7cdeb62c89286c634c7ad647bdc9e1576f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376408 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�=&vIjtg~VIf!xJD4B&8mX%==t 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 z zl;;B60!}Uo5!Nr)042EqqSP5J`=r==slIg=@|`RJGB<`}4ow(jLW zA4(*nZYGxP{|Mm2CA0fkn;Z9uni)Qcz;{%jPs!o4Jf)K4GZO0Kf>LS8;h!jiBWxRH z6Li%2d@R|An}xloN9k#Q-u|(o$a&0R`aPT!4QlfD5Fa9@?(} zigN)phC%@-))*Yj6SC+M;#rjx07olPJ&buBbzxdtT;6=wIU~q!o#x4RlRpq$I5F^- zUxjU^VEZN50Ju9B;D;)^X_Uwb!fncpb@FZvdQ~o{F54_XlkFd~e*D4J+3UxK7;~bf z;FntOU0ZM94xj0(tVOMt+VutYL=RT;Klav~N!&spT?Ot zo6JWK$KK-qCpH^`m$VKcmtg+A5t4&3T|WwC=5BXNW;H%QtUgVdT%g{&urW*jig5LR_S^y6g#^ex|F(380(-2fxe}`dLGS?L?9k$84AGgr94zNl5;%zRstn)dxG<-zKJTF%Q_AduS^Sjp4wq8U(d zsO;JzWfllRquoQtEJ+B?j(;+pxK9|V_&;q$m4f!&bQcGWdznrZ{+OGZ>tS?d;#E~| zHcYz3%œ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 z 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

fQ2KjH4yyD;7SGxPL5>HHe=N+!B8)A0&MdLq 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

8D7d2k2 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
xHI$4=28 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