From ef57ef5e218212e26ec0f15df6ed1cb151f5c5e4 Mon Sep 17 00:00:00 2001 From: ganshihao <1410815216@qq.com> Date: Tue, 11 Jun 2024 16:13:20 +0800 Subject: [PATCH] 1 --- src/sdk/extern/include/curl/curl.h | 2343 ---------- src/sdk/extern/include/curl/curlbuild.h | 198 - src/sdk/extern/include/curl/curlrules.h | 262 -- src/sdk/extern/include/curl/curlver.h | 69 - src/sdk/extern/include/curl/easy.h | 102 - src/sdk/extern/include/curl/mprintf.h | 81 - src/sdk/extern/include/curl/multi.h | 399 -- src/sdk/extern/include/curl/stdcheaders.h | 33 - src/sdk/extern/include/curl/typecheck-gcc.h | 610 --- src/sdk/extern/include/iconv.h | 242 -- src/sdk/extern/include/libcharset.h | 46 - src/sdk/extern/include/localcharset.h | 42 - src/sdk/extern/include/openssl/aes.h | 147 - src/sdk/extern/include/openssl/asn1.h | 1404 ------ src/sdk/extern/include/openssl/asn1_mac.h | 578 --- src/sdk/extern/include/openssl/asn1t.h | 960 ----- src/sdk/extern/include/openssl/bio.h | 847 ---- src/sdk/extern/include/openssl/blowfish.h | 129 - src/sdk/extern/include/openssl/bn.h | 902 ---- src/sdk/extern/include/openssl/buffer.h | 119 - src/sdk/extern/include/openssl/camellia.h | 130 - src/sdk/extern/include/openssl/cast.h | 107 - src/sdk/extern/include/openssl/cmac.h | 82 - src/sdk/extern/include/openssl/cms.h | 501 --- src/sdk/extern/include/openssl/comp.h | 80 - src/sdk/extern/include/openssl/conf.h | 263 -- src/sdk/extern/include/openssl/conf_api.h | 89 - src/sdk/extern/include/openssl/crypto.h | 611 --- src/sdk/extern/include/openssl/des.h | 248 -- src/sdk/extern/include/openssl/des_old.h | 446 -- src/sdk/extern/include/openssl/dh.h | 280 -- src/sdk/extern/include/openssl/dsa.h | 327 -- src/sdk/extern/include/openssl/dso.h | 409 -- src/sdk/extern/include/openssl/dtls1.h | 288 -- src/sdk/extern/include/openssl/e_os2.h | 315 -- src/sdk/extern/include/openssl/ebcdic.h | 26 - src/sdk/extern/include/openssl/ec.h | 1167 ----- src/sdk/extern/include/openssl/ecdh.h | 125 - src/sdk/extern/include/openssl/ecdsa.h | 260 -- src/sdk/extern/include/openssl/engine.h | 842 ---- src/sdk/extern/include/openssl/err.h | 386 -- src/sdk/extern/include/openssl/evp.h | 1409 ------ src/sdk/extern/include/openssl/hmac.h | 110 - src/sdk/extern/include/openssl/idea.h | 103 - src/sdk/extern/include/openssl/krb5_asn.h | 256 -- src/sdk/extern/include/openssl/kssl.h | 192 - src/sdk/extern/include/openssl/lhash.h | 241 -- src/sdk/extern/include/openssl/md4.h | 120 - src/sdk/extern/include/openssl/md5.h | 120 - src/sdk/extern/include/openssl/mdc2.h | 98 - src/sdk/extern/include/openssl/modes.h | 141 - src/sdk/extern/include/openssl/obj_mac.h | 4032 ------------------ src/sdk/extern/include/openssl/objects.h | 1138 ----- src/sdk/extern/include/openssl/ocsp.h | 623 --- src/sdk/extern/include/openssl/opensslconf.h | 247 -- src/sdk/extern/include/openssl/opensslv.h | 96 - src/sdk/extern/include/openssl/ossl_typ.h | 209 - src/sdk/extern/include/openssl/pem.h | 641 --- src/sdk/extern/include/openssl/pem2.h | 70 - src/sdk/extern/include/openssl/pkcs12.h | 331 -- src/sdk/extern/include/openssl/pkcs7.h | 496 --- src/sdk/extern/include/openssl/pqueue.h | 100 - src/sdk/extern/include/openssl/rand.h | 150 - src/sdk/extern/include/openssl/rc2.h | 103 - src/sdk/extern/include/openssl/rc4.h | 90 - src/sdk/extern/include/openssl/ripemd.h | 107 - src/sdk/extern/include/openssl/rsa.h | 583 --- src/sdk/extern/include/openssl/safestack.h | 2671 ------------ src/sdk/extern/include/openssl/seed.h | 139 - src/sdk/extern/include/openssl/sha.h | 214 - src/sdk/extern/include/openssl/srp.h | 172 - src/sdk/extern/include/openssl/srtp.h | 149 - src/sdk/extern/include/openssl/ssl.h | 2605 ----------- src/sdk/extern/include/openssl/ssl2.h | 272 -- src/sdk/extern/include/openssl/ssl23.h | 83 - src/sdk/extern/include/openssl/ssl3.h | 699 --- src/sdk/extern/include/openssl/stack.h | 108 - src/sdk/extern/include/openssl/symhacks.h | 481 --- src/sdk/extern/include/openssl/tls1.h | 744 ---- src/sdk/extern/include/openssl/ts.h | 858 ---- src/sdk/extern/include/openssl/txt_db.h | 112 - src/sdk/extern/include/openssl/ui.h | 383 -- src/sdk/extern/include/openssl/ui_compat.h | 83 - src/sdk/extern/include/openssl/whrlpool.h | 41 - src/sdk/extern/include/openssl/x509.h | 1297 ------ src/sdk/extern/include/openssl/x509_vfy.h | 567 --- src/sdk/extern/include/openssl/x509v3.h | 1007 ----- src/sdk/extern/include/uuid.h | 104 - src/sdk/extern/include/zconf.h | 511 --- src/sdk/extern/include/zlib.h | 1768 -------- src/sdk/extern/lib/libcrypto.a | Bin 4240616 -> 0 bytes src/sdk/extern/lib/libcurl.a | Bin 833076 -> 0 bytes src/sdk/extern/lib/libiconv.a | Bin 1588866 -> 0 bytes src/sdk/extern/lib/libssl.a | Bin 755376 -> 0 bytes src/sdk/extern/lib/libuuid.a | Bin 25398 -> 0 bytes src/sdk/extern/lib/libz.a | Bin 136182 -> 0 bytes src/sdk/请先读README.md.txt | 1 - 97 files changed, 43370 deletions(-) delete mode 100644 src/sdk/extern/include/curl/curl.h delete mode 100644 src/sdk/extern/include/curl/curlbuild.h delete mode 100644 src/sdk/extern/include/curl/curlrules.h delete mode 100644 src/sdk/extern/include/curl/curlver.h delete mode 100644 src/sdk/extern/include/curl/easy.h delete mode 100644 src/sdk/extern/include/curl/mprintf.h delete mode 100644 src/sdk/extern/include/curl/multi.h delete mode 100644 src/sdk/extern/include/curl/stdcheaders.h delete mode 100644 src/sdk/extern/include/curl/typecheck-gcc.h delete mode 100644 src/sdk/extern/include/iconv.h delete mode 100644 src/sdk/extern/include/libcharset.h delete mode 100644 src/sdk/extern/include/localcharset.h delete mode 100644 src/sdk/extern/include/openssl/aes.h delete mode 100644 src/sdk/extern/include/openssl/asn1.h delete mode 100644 src/sdk/extern/include/openssl/asn1_mac.h delete mode 100644 src/sdk/extern/include/openssl/asn1t.h delete mode 100644 src/sdk/extern/include/openssl/bio.h delete mode 100644 src/sdk/extern/include/openssl/blowfish.h delete mode 100644 src/sdk/extern/include/openssl/bn.h delete mode 100644 src/sdk/extern/include/openssl/buffer.h delete mode 100644 src/sdk/extern/include/openssl/camellia.h delete mode 100644 src/sdk/extern/include/openssl/cast.h delete mode 100644 src/sdk/extern/include/openssl/cmac.h delete mode 100644 src/sdk/extern/include/openssl/cms.h delete mode 100644 src/sdk/extern/include/openssl/comp.h delete mode 100644 src/sdk/extern/include/openssl/conf.h delete mode 100644 src/sdk/extern/include/openssl/conf_api.h delete mode 100644 src/sdk/extern/include/openssl/crypto.h delete mode 100644 src/sdk/extern/include/openssl/des.h delete mode 100644 src/sdk/extern/include/openssl/des_old.h delete mode 100644 src/sdk/extern/include/openssl/dh.h delete mode 100644 src/sdk/extern/include/openssl/dsa.h delete mode 100644 src/sdk/extern/include/openssl/dso.h delete mode 100644 src/sdk/extern/include/openssl/dtls1.h delete mode 100644 src/sdk/extern/include/openssl/e_os2.h delete mode 100644 src/sdk/extern/include/openssl/ebcdic.h delete mode 100644 src/sdk/extern/include/openssl/ec.h delete mode 100644 src/sdk/extern/include/openssl/ecdh.h delete mode 100644 src/sdk/extern/include/openssl/ecdsa.h delete mode 100644 src/sdk/extern/include/openssl/engine.h delete mode 100644 src/sdk/extern/include/openssl/err.h delete mode 100644 src/sdk/extern/include/openssl/evp.h delete mode 100644 src/sdk/extern/include/openssl/hmac.h delete mode 100644 src/sdk/extern/include/openssl/idea.h delete mode 100644 src/sdk/extern/include/openssl/krb5_asn.h delete mode 100644 src/sdk/extern/include/openssl/kssl.h delete mode 100644 src/sdk/extern/include/openssl/lhash.h delete mode 100644 src/sdk/extern/include/openssl/md4.h delete mode 100644 src/sdk/extern/include/openssl/md5.h delete mode 100644 src/sdk/extern/include/openssl/mdc2.h delete mode 100644 src/sdk/extern/include/openssl/modes.h delete mode 100644 src/sdk/extern/include/openssl/obj_mac.h delete mode 100644 src/sdk/extern/include/openssl/objects.h delete mode 100644 src/sdk/extern/include/openssl/ocsp.h delete mode 100644 src/sdk/extern/include/openssl/opensslconf.h delete mode 100644 src/sdk/extern/include/openssl/opensslv.h delete mode 100644 src/sdk/extern/include/openssl/ossl_typ.h delete mode 100644 src/sdk/extern/include/openssl/pem.h delete mode 100644 src/sdk/extern/include/openssl/pem2.h delete mode 100644 src/sdk/extern/include/openssl/pkcs12.h delete mode 100644 src/sdk/extern/include/openssl/pkcs7.h delete mode 100644 src/sdk/extern/include/openssl/pqueue.h delete mode 100644 src/sdk/extern/include/openssl/rand.h delete mode 100644 src/sdk/extern/include/openssl/rc2.h delete mode 100644 src/sdk/extern/include/openssl/rc4.h delete mode 100644 src/sdk/extern/include/openssl/ripemd.h delete mode 100644 src/sdk/extern/include/openssl/rsa.h delete mode 100644 src/sdk/extern/include/openssl/safestack.h delete mode 100644 src/sdk/extern/include/openssl/seed.h delete mode 100644 src/sdk/extern/include/openssl/sha.h delete mode 100644 src/sdk/extern/include/openssl/srp.h delete mode 100644 src/sdk/extern/include/openssl/srtp.h delete mode 100644 src/sdk/extern/include/openssl/ssl.h delete mode 100644 src/sdk/extern/include/openssl/ssl2.h delete mode 100644 src/sdk/extern/include/openssl/ssl23.h delete mode 100644 src/sdk/extern/include/openssl/ssl3.h delete mode 100644 src/sdk/extern/include/openssl/stack.h delete mode 100644 src/sdk/extern/include/openssl/symhacks.h delete mode 100644 src/sdk/extern/include/openssl/tls1.h delete mode 100644 src/sdk/extern/include/openssl/ts.h delete mode 100644 src/sdk/extern/include/openssl/txt_db.h delete mode 100644 src/sdk/extern/include/openssl/ui.h delete mode 100644 src/sdk/extern/include/openssl/ui_compat.h delete mode 100644 src/sdk/extern/include/openssl/whrlpool.h delete mode 100644 src/sdk/extern/include/openssl/x509.h delete mode 100644 src/sdk/extern/include/openssl/x509_vfy.h delete mode 100644 src/sdk/extern/include/openssl/x509v3.h delete mode 100644 src/sdk/extern/include/uuid.h delete mode 100644 src/sdk/extern/include/zconf.h delete mode 100644 src/sdk/extern/include/zlib.h delete mode 100644 src/sdk/extern/lib/libcrypto.a delete mode 100644 src/sdk/extern/lib/libcurl.a delete mode 100644 src/sdk/extern/lib/libiconv.a delete mode 100644 src/sdk/extern/lib/libssl.a delete mode 100644 src/sdk/extern/lib/libuuid.a delete mode 100644 src/sdk/extern/lib/libz.a delete mode 100644 src/sdk/请先读README.md.txt diff --git a/src/sdk/extern/include/curl/curl.h b/src/sdk/extern/include/curl/curl.h deleted file mode 100644 index 36673c3..0000000 --- a/src/sdk/extern/include/curl/curl.h +++ /dev/null @@ -1,2343 +0,0 @@ -#ifndef __CURL_CURL_H -#define __CURL_CURL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* - * If you have libcurl problems, all docs and details are found here: - * http://curl.haxx.se/libcurl/ - * - * curl-library mailing list subscription and unsubscription web interface: - * http://cool.haxx.se/mailman/listinfo/curl-library/ - */ - -#include "curlver.h" /* libcurl version defines */ -#include "curlbuild.h" /* libcurl build definitions */ -#include "curlrules.h" /* libcurl rules enforcement */ - -/* - * Define WIN32 when build target is Win32 API - */ - -#if (defined(_WIN32) || defined(__WIN32__)) && \ - !defined(WIN32) && !defined(__SYMBIAN32__) -#define WIN32 -#endif - -#include -#include - -#if defined(__FreeBSD__) && (__FreeBSD__ >= 2) -/* Needed for __FreeBSD_version symbol definition */ -#include -#endif - -/* The include stuff here below is mainly for time_t! */ -#include -#include - -#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || defined(__LWIP_OPT_H__)) -/* The check above prevents the winsock2 inclusion if winsock.h already was - included, since they can't co-exist without problems */ -#include -#include -#endif -#endif - -/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish - libc5-based Linux systems. Only include it on systems that are known to - require it! */ -#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ - defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ - defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ - (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) -#include -#endif - -#if !defined(WIN32) && !defined(_WIN32_WCE) -#include -#endif - -#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__) -#include -#endif - -#ifdef __BEOS__ -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void CURL; - -/* - * libcurl external API function linkage decorations. - */ - -#ifdef CURL_STATICLIB -# define CURL_EXTERN -#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__) -# if defined(BUILDING_LIBCURL) -# define CURL_EXTERN __declspec(dllexport) -# else -# define CURL_EXTERN __declspec(dllimport) -# endif -#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) -# define CURL_EXTERN CURL_EXTERN_SYMBOL -#else -# define CURL_EXTERN -#endif - -#ifndef curl_socket_typedef -/* socket typedef */ -#if defined(WIN32) && !defined(__LWIP_OPT_H__) -typedef SOCKET curl_socket_t; -#define CURL_SOCKET_BAD INVALID_SOCKET -#else -typedef int curl_socket_t; -#define CURL_SOCKET_BAD -1 -#endif -#define curl_socket_typedef -#endif /* curl_socket_typedef */ - -struct curl_httppost { - struct curl_httppost *next; /* next entry in the list */ - char *name; /* pointer to allocated name */ - long namelength; /* length of name length */ - char *contents; /* pointer to allocated data contents */ - long contentslength; /* length of contents field */ - char *buffer; /* pointer to allocated buffer contents */ - long bufferlength; /* length of buffer field */ - char *contenttype; /* Content-Type */ - struct curl_slist* contentheader; /* list of extra headers for this form */ - struct curl_httppost *more; /* if one field name has more than one - file, this link should link to following - files */ - long flags; /* as defined below */ -#define HTTPPOST_FILENAME (1<<0) /* specified content is a file name */ -#define HTTPPOST_READFILE (1<<1) /* specified content is a file name */ -#define HTTPPOST_PTRNAME (1<<2) /* name is only stored pointer - do not free in formfree */ -#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer - do not free in formfree */ -#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */ -#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */ -#define HTTPPOST_CALLBACK (1<<6) /* upload file contents by using the - regular read callback to get the data - and pass the given pointer as custom - pointer */ - - char *showfilename; /* The file name to show. If not set, the - actual file name will be used (if this - is a file part) */ - void *userp; /* custom pointer used for - HTTPPOST_CALLBACK posts */ -}; - -/* This is the CURLOPT_PROGRESSFUNCTION callback proto. It is now considered - deprecated but was the only choice up until 7.31.0 */ -typedef int (*curl_progress_callback)(void *clientp, - double dltotal, - double dlnow, - double ultotal, - double ulnow); - -/* This is the CURLOPT_XFERINFOFUNCTION callback proto. It was introduced in - 7.32.0, it avoids floating point and provides more detailed information. */ -typedef int (*curl_xferinfo_callback)(void *clientp, - curl_off_t dltotal, - curl_off_t dlnow, - curl_off_t ultotal, - curl_off_t ulnow); - -#ifndef CURL_MAX_WRITE_SIZE - /* Tests have proven that 20K is a very bad buffer size for uploads on - Windows, while 16K for some odd reason performed a lot better. - We do the ifndef check to allow this value to easier be changed at build - time for those who feel adventurous. The practical minimum is about - 400 bytes since libcurl uses a buffer of this size as a scratch area - (unrelated to network send operations). */ -#define CURL_MAX_WRITE_SIZE 16384 -#endif - -#ifndef CURL_MAX_HTTP_HEADER -/* The only reason to have a max limit for this is to avoid the risk of a bad - server feeding libcurl with a never-ending header that will cause reallocs - infinitely */ -#define CURL_MAX_HTTP_HEADER (100*1024) -#endif - -/* This is a magic return code for the write callback that, when returned, - will signal libcurl to pause receiving on the current transfer. */ -#define CURL_WRITEFUNC_PAUSE 0x10000001 - -typedef size_t (*curl_write_callback)(char *buffer, - size_t size, - size_t nitems, - void *outstream); - - - -/* enumeration of file types */ -typedef enum { - CURLFILETYPE_FILE = 0, - CURLFILETYPE_DIRECTORY, - CURLFILETYPE_SYMLINK, - CURLFILETYPE_DEVICE_BLOCK, - CURLFILETYPE_DEVICE_CHAR, - CURLFILETYPE_NAMEDPIPE, - CURLFILETYPE_SOCKET, - CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ - - CURLFILETYPE_UNKNOWN /* should never occur */ -} curlfiletype; - -#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) -#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) -#define CURLFINFOFLAG_KNOWN_TIME (1<<2) -#define CURLFINFOFLAG_KNOWN_PERM (1<<3) -#define CURLFINFOFLAG_KNOWN_UID (1<<4) -#define CURLFINFOFLAG_KNOWN_GID (1<<5) -#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) -#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) - -/* Content of this structure depends on information which is known and is - achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man - page for callbacks returning this structure -- some fields are mandatory, - some others are optional. The FLAG field has special meaning. */ -struct curl_fileinfo { - char *filename; - curlfiletype filetype; - time_t time; - unsigned int perm; - int uid; - int gid; - curl_off_t size; - long int hardlinks; - - struct { - /* If some of these fields is not NULL, it is a pointer to b_data. */ - char *time; - char *perm; - char *user; - char *group; - char *target; /* pointer to the target filename of a symlink */ - } strings; - - unsigned int flags; - - /* used internally */ - char * b_data; - size_t b_size; - size_t b_used; -}; - -/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ -#define CURL_CHUNK_BGN_FUNC_OK 0 -#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ -#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ - -/* if splitting of data transfer is enabled, this callback is called before - download of an individual chunk started. Note that parameter "remains" works - only for FTP wildcard downloading (for now), otherwise is not used */ -typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, - void *ptr, - int remains); - -/* return codes for CURLOPT_CHUNK_END_FUNCTION */ -#define CURL_CHUNK_END_FUNC_OK 0 -#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ - -/* If splitting of data transfer is enabled this callback is called after - download of an individual chunk finished. - Note! After this callback was set then it have to be called FOR ALL chunks. - Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. - This is the reason why we don't need "transfer_info" parameter in this - callback and we are not interested in "remains" parameter too. */ -typedef long (*curl_chunk_end_callback)(void *ptr); - -/* return codes for FNMATCHFUNCTION */ -#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ -#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ -#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ - -/* callback type for wildcard downloading pattern matching. If the - string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ -typedef int (*curl_fnmatch_callback)(void *ptr, - const char *pattern, - const char *string); - -/* These are the return codes for the seek callbacks */ -#define CURL_SEEKFUNC_OK 0 -#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ -#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so - libcurl might try other means instead */ -typedef int (*curl_seek_callback)(void *instream, - curl_off_t offset, - int origin); /* 'whence' */ - -/* This is a return code for the read callback that, when returned, will - signal libcurl to immediately abort the current transfer. */ -#define CURL_READFUNC_ABORT 0x10000000 -/* This is a return code for the read callback that, when returned, will - signal libcurl to pause sending data on the current transfer. */ -#define CURL_READFUNC_PAUSE 0x10000001 - -typedef size_t (*curl_read_callback)(char *buffer, - size_t size, - size_t nitems, - void *instream); - -typedef enum { - CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ - CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ - CURLSOCKTYPE_LAST /* never use */ -} curlsocktype; - -/* The return code from the sockopt_callback can signal information back - to libcurl: */ -#define CURL_SOCKOPT_OK 0 -#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return - CURLE_ABORTED_BY_CALLBACK */ -#define CURL_SOCKOPT_ALREADY_CONNECTED 2 - -typedef int (*curl_sockopt_callback)(void *clientp, - curl_socket_t curlfd, - curlsocktype purpose); - -struct curl_sockaddr { - int family; - int socktype; - int protocol; - unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it - turned really ugly and painful on the systems that - lack this type */ - struct sockaddr addr; -}; - -typedef curl_socket_t -(*curl_opensocket_callback)(void *clientp, - curlsocktype purpose, - struct curl_sockaddr *address); - -typedef int -(*curl_closesocket_callback)(void *clientp, curl_socket_t item); - -typedef enum { - CURLIOE_OK, /* I/O operation successful */ - CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ - CURLIOE_FAILRESTART, /* failed to restart the read */ - CURLIOE_LAST /* never use */ -} curlioerr; - -typedef enum { - CURLIOCMD_NOP, /* no operation */ - CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ - CURLIOCMD_LAST /* never use */ -} curliocmd; - -typedef curlioerr (*curl_ioctl_callback)(CURL *handle, - int cmd, - void *clientp); - -/* - * The following typedef's are signatures of malloc, free, realloc, strdup and - * calloc respectively. Function pointers of these types can be passed to the - * curl_global_init_mem() function to set user defined memory management - * callback routines. - */ -typedef void *(*curl_malloc_callback)(size_t size); -typedef void (*curl_free_callback)(void *ptr); -typedef void *(*curl_realloc_callback)(void *ptr, size_t size); -typedef char *(*curl_strdup_callback)(const char *str); -typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); - -/* the kind of data that is passed to information_callback*/ -typedef enum { - CURLINFO_TEXT = 0, - CURLINFO_HEADER_IN, /* 1 */ - CURLINFO_HEADER_OUT, /* 2 */ - CURLINFO_DATA_IN, /* 3 */ - CURLINFO_DATA_OUT, /* 4 */ - CURLINFO_SSL_DATA_IN, /* 5 */ - CURLINFO_SSL_DATA_OUT, /* 6 */ - CURLINFO_END -} curl_infotype; - -typedef int (*curl_debug_callback) - (CURL *handle, /* the handle/transfer this concerns */ - curl_infotype type, /* what kind of data */ - char *data, /* points to the data */ - size_t size, /* size of the data pointed to */ - void *userptr); /* whatever the user please */ - -/* All possible error codes from all sorts of curl functions. Future versions - may return other values, stay prepared. - - Always add new return codes last. Never *EVER* remove any. The return - codes must remain the same! - */ - -typedef enum { - CURLE_OK = 0, - CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ - CURLE_FAILED_INIT, /* 2 */ - CURLE_URL_MALFORMAT, /* 3 */ - CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for - 7.17.0, reused in April 2011 for 7.21.5] */ - CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ - CURLE_COULDNT_RESOLVE_HOST, /* 6 */ - CURLE_COULDNT_CONNECT, /* 7 */ - CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */ - CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server - due to lack of access - when login fails - this is not returned. */ - CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for - 7.15.4, reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ - CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server - [was obsoleted in August 2007 for 7.17.0, - reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ - CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ - CURLE_FTP_CANT_GET_HOST, /* 15 */ - CURLE_HTTP2, /* 16 - A problem in the http2 framing layer. - [was obsoleted in August 2007 for 7.17.0, - reused in July 2014 for 7.38.0] */ - CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ - CURLE_PARTIAL_FILE, /* 18 */ - CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ - CURLE_OBSOLETE20, /* 20 - NOT USED */ - CURLE_QUOTE_ERROR, /* 21 - quote command failure */ - CURLE_HTTP_RETURNED_ERROR, /* 22 */ - CURLE_WRITE_ERROR, /* 23 */ - CURLE_OBSOLETE24, /* 24 - NOT USED */ - CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ - CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ - CURLE_OUT_OF_MEMORY, /* 27 */ - /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error - instead of a memory allocation error if CURL_DOES_CONVERSIONS - is defined - */ - CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ - CURLE_OBSOLETE29, /* 29 - NOT USED */ - CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ - CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ - CURLE_OBSOLETE32, /* 32 - NOT USED */ - CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ - CURLE_HTTP_POST_ERROR, /* 34 */ - CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ - CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ - CURLE_FILE_COULDNT_READ_FILE, /* 37 */ - CURLE_LDAP_CANNOT_BIND, /* 38 */ - CURLE_LDAP_SEARCH_FAILED, /* 39 */ - CURLE_OBSOLETE40, /* 40 - NOT USED */ - CURLE_FUNCTION_NOT_FOUND, /* 41 */ - CURLE_ABORTED_BY_CALLBACK, /* 42 */ - CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ - CURLE_OBSOLETE44, /* 44 - NOT USED */ - CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ - CURLE_OBSOLETE46, /* 46 - NOT USED */ - CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ - CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ - CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ - CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint - wasn't verified fine */ - CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ - CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ - CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as - default */ - CURLE_SEND_ERROR, /* 55 - failed sending network data */ - CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ - CURLE_OBSOLETE57, /* 57 - NOT IN USE */ - CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ - CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ - CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ - CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ - CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ - CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ - CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind - that failed */ - CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ - CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not - accepted and we failed to login */ - CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ - CURLE_TFTP_PERM, /* 69 - permission problem on server */ - CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ - CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ - CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ - CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ - CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ - CURLE_CONV_FAILED, /* 75 - conversion failed */ - CURLE_CONV_REQD, /* 76 - caller must register conversion - callbacks using curl_easy_setopt options - CURLOPT_CONV_FROM_NETWORK_FUNCTION, - CURLOPT_CONV_TO_NETWORK_FUNCTION, and - CURLOPT_CONV_FROM_UTF8_FUNCTION */ - CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing - or wrong format */ - CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ - CURLE_SSH, /* 79 - error from the SSH layer, somewhat - generic so the error message will be of - interest when this has happened */ - - CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL - connection */ - CURLE_AGAIN, /* 81 - socket is not ready for send/recv, - wait till it's ready and try again (Added - in 7.18.2) */ - CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or - wrong format (Added in 7.19.0) */ - CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in - 7.19.0) */ - CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ - CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ - CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ - CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ - CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ - CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the - session will be queued */ - CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not - match */ - CURL_LAST /* never use! */ -} CURLcode; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Previously obsolete error code re-used in 7.38.0 */ -#define CURLE_OBSOLETE16 CURLE_HTTP2 - -/* Previously obsolete error codes re-used in 7.24.0 */ -#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED -#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT - -/* compatibility with older names */ -#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING - -/* The following were added in 7.21.5, April 2011 */ -#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION - -/* The following were added in 7.17.1 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION - -/* The following were added in 7.17.0 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ -#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 -#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 -#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 -#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 -#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 -#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 -#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 -#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 -#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 -#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 -#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 -#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN - -#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED -#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE -#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR -#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL -#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS -#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR -#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED - -/* The following were added earlier */ - -#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT - -#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR -#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED -#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED - -#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE -#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME - -/* This was the error code 50 in 7.7.3 and a few earlier versions, this - is no longer used by libcurl but is instead #defined here only to not - make programs break */ -#define CURLE_ALREADY_COMPLETE 99999 - -/* Provide defines for really old option names */ -#define CURLOPT_FILE CURLOPT_WRITEDATA /* name changed in 7.9.7 */ -#define CURLOPT_INFILE CURLOPT_READDATA /* name changed in 7.9.7 */ -#define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA - -/* Since long deprecated options with no code in the lib that does anything - with them. */ -#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40 -#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72 - -#endif /*!CURL_NO_OLDIES*/ - -/* This prototype applies to all conversion callbacks */ -typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); - -typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ - void *ssl_ctx, /* actually an - OpenSSL SSL_CTX */ - void *userptr); - -typedef enum { - CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use - CONNECT HTTP/1.1 */ - CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT - HTTP/1.0 */ - CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already - in 7.10 */ - CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ - CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ - CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the - host name rather than the IP address. added - in 7.18.0 */ -} curl_proxytype; /* this enum was added in 7.10 */ - -/* - * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: - * - * CURLAUTH_NONE - No HTTP authentication - * CURLAUTH_BASIC - HTTP Basic authentication (default) - * CURLAUTH_DIGEST - HTTP Digest authentication - * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication - * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated) - * CURLAUTH_NTLM - HTTP NTLM authentication - * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour - * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper - * CURLAUTH_ONLY - Use together with a single other type to force no - * authentication or just that single type - * CURLAUTH_ANY - All fine types set - * CURLAUTH_ANYSAFE - All fine types except Basic - */ - -#define CURLAUTH_NONE ((unsigned long)0) -#define CURLAUTH_BASIC (((unsigned long)1)<<0) -#define CURLAUTH_DIGEST (((unsigned long)1)<<1) -#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) -/* Deprecated since the advent of CURLAUTH_NEGOTIATE */ -#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE -#define CURLAUTH_NTLM (((unsigned long)1)<<3) -#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) -#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) -#define CURLAUTH_ONLY (((unsigned long)1)<<31) -#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) -#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) - -#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ -#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ -#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ -#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ -#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ -#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ -#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ -#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY - -#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ -#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ -#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ - -#define CURL_ERROR_SIZE 256 - -enum curl_khtype { - CURLKHTYPE_UNKNOWN, - CURLKHTYPE_RSA1, - CURLKHTYPE_RSA, - CURLKHTYPE_DSS -}; - -struct curl_khkey { - const char *key; /* points to a zero-terminated string encoded with base64 - if len is zero, otherwise to the "raw" data */ - size_t len; - enum curl_khtype keytype; -}; - -/* this is the set of return values expected from the curl_sshkeycallback - callback */ -enum curl_khstat { - CURLKHSTAT_FINE_ADD_TO_FILE, - CURLKHSTAT_FINE, - CURLKHSTAT_REJECT, /* reject the connection, return an error */ - CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so - this causes a CURLE_DEFER error but otherwise the - connection will be left intact etc */ - CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ -}; - -/* this is the set of status codes pass in to the callback */ -enum curl_khmatch { - CURLKHMATCH_OK, /* match */ - CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ - CURLKHMATCH_MISSING, /* no matching host/key found */ - CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ -}; - -typedef int - (*curl_sshkeycallback) (CURL *easy, /* easy handle */ - const struct curl_khkey *knownkey, /* known */ - const struct curl_khkey *foundkey, /* found */ - enum curl_khmatch, /* libcurl's view on the keys */ - void *clientp); /* custom pointer passed from app */ - -/* parameter for the CURLOPT_USE_SSL option */ -typedef enum { - CURLUSESSL_NONE, /* do not attempt to use SSL */ - CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ - CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ - CURLUSESSL_ALL, /* SSL for all communication or fail */ - CURLUSESSL_LAST /* not an option, never use */ -} curl_usessl; - -/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ - -/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the - name of improving interoperability with older servers. Some SSL libraries - have introduced work-arounds for this flaw but those work-arounds sometimes - make the SSL communication fail. To regain functionality with those broken - servers, a user can this way allow the vulnerability back. */ -#define CURLSSLOPT_ALLOW_BEAST (1<<0) - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -#define CURLFTPSSL_NONE CURLUSESSL_NONE -#define CURLFTPSSL_TRY CURLUSESSL_TRY -#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL -#define CURLFTPSSL_ALL CURLUSESSL_ALL -#define CURLFTPSSL_LAST CURLUSESSL_LAST -#define curl_ftpssl curl_usessl -#endif /*!CURL_NO_OLDIES*/ - -/* parameter for the CURLOPT_FTP_SSL_CCC option */ -typedef enum { - CURLFTPSSL_CCC_NONE, /* do not send CCC */ - CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ - CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ - CURLFTPSSL_CCC_LAST /* not an option, never use */ -} curl_ftpccc; - -/* parameter for the CURLOPT_FTPSSLAUTH option */ -typedef enum { - CURLFTPAUTH_DEFAULT, /* let libcurl decide */ - CURLFTPAUTH_SSL, /* use "AUTH SSL" */ - CURLFTPAUTH_TLS, /* use "AUTH TLS" */ - CURLFTPAUTH_LAST /* not an option, never use */ -} curl_ftpauth; - -/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ -typedef enum { - CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ - CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD - again if MKD succeeded, for SFTP this does - similar magic */ - CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD - again even if MKD failed! */ - CURLFTP_CREATE_DIR_LAST /* not an option, never use */ -} curl_ftpcreatedir; - -/* parameter for the CURLOPT_FTP_FILEMETHOD option */ -typedef enum { - CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ - CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ - CURLFTPMETHOD_NOCWD, /* no CWD at all */ - CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ - CURLFTPMETHOD_LAST /* not an option, never use */ -} curl_ftpmethod; - -/* bitmask defines for CURLOPT_HEADEROPT */ -#define CURLHEADER_UNIFIED 0 -#define CURLHEADER_SEPARATE (1<<0) - -/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ -#define CURLPROTO_HTTP (1<<0) -#define CURLPROTO_HTTPS (1<<1) -#define CURLPROTO_FTP (1<<2) -#define CURLPROTO_FTPS (1<<3) -#define CURLPROTO_SCP (1<<4) -#define CURLPROTO_SFTP (1<<5) -#define CURLPROTO_TELNET (1<<6) -#define CURLPROTO_LDAP (1<<7) -#define CURLPROTO_LDAPS (1<<8) -#define CURLPROTO_DICT (1<<9) -#define CURLPROTO_FILE (1<<10) -#define CURLPROTO_TFTP (1<<11) -#define CURLPROTO_IMAP (1<<12) -#define CURLPROTO_IMAPS (1<<13) -#define CURLPROTO_POP3 (1<<14) -#define CURLPROTO_POP3S (1<<15) -#define CURLPROTO_SMTP (1<<16) -#define CURLPROTO_SMTPS (1<<17) -#define CURLPROTO_RTSP (1<<18) -#define CURLPROTO_RTMP (1<<19) -#define CURLPROTO_RTMPT (1<<20) -#define CURLPROTO_RTMPE (1<<21) -#define CURLPROTO_RTMPTE (1<<22) -#define CURLPROTO_RTMPS (1<<23) -#define CURLPROTO_RTMPTS (1<<24) -#define CURLPROTO_GOPHER (1<<25) -#define CURLPROTO_ALL (~0) /* enable everything */ - -/* long may be 32 or 64 bits, but we should never depend on anything else - but 32 */ -#define CURLOPTTYPE_LONG 0 -#define CURLOPTTYPE_OBJECTPOINT 10000 -#define CURLOPTTYPE_FUNCTIONPOINT 20000 -#define CURLOPTTYPE_OFF_T 30000 - -/* name is uppercase CURLOPT_, - type is one of the defined CURLOPTTYPE_ - number is unique identifier */ -#ifdef CINIT -#undef CINIT -#endif - -#ifdef CURL_ISOCPP -#define CINIT(na,t,nu) CURLOPT_ ## na = CURLOPTTYPE_ ## t + nu -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLOPT_/**/name = type + number -#endif - -/* - * This macro-mania below setups the CURLOPT_[what] enum, to be used with - * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] - * word. - */ - -typedef enum { - /* This is the FILE * or void * the regular output should be written to. */ - CINIT(WRITEDATA, OBJECTPOINT, 1), - - /* The full URL to get/put */ - CINIT(URL, OBJECTPOINT, 2), - - /* Port number to connect to, if other than default. */ - CINIT(PORT, LONG, 3), - - /* Name of proxy to use. */ - CINIT(PROXY, OBJECTPOINT, 4), - - /* "user:password;options" to use when fetching. */ - CINIT(USERPWD, OBJECTPOINT, 5), - - /* "user:password" to use with proxy. */ - CINIT(PROXYUSERPWD, OBJECTPOINT, 6), - - /* Range to get, specified as an ASCII string. */ - CINIT(RANGE, OBJECTPOINT, 7), - - /* not used */ - - /* Specified file stream to upload from (use as input): */ - CINIT(READDATA, OBJECTPOINT, 9), - - /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE - * bytes big. If this is not used, error messages go to stderr instead: */ - CINIT(ERRORBUFFER, OBJECTPOINT, 10), - - /* Function that will be called to store the output (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11), - - /* Function that will be called to read the input (instead of fread). The - * parameters will use fread() syntax, make sure to follow them. */ - CINIT(READFUNCTION, FUNCTIONPOINT, 12), - - /* Time-out the read operation after this amount of seconds */ - CINIT(TIMEOUT, LONG, 13), - - /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about - * how large the file being sent really is. That allows better error - * checking and better verifies that the upload was successful. -1 means - * unknown size. - * - * For large file support, there is also a _LARGE version of the key - * which takes an off_t type, allowing platforms with larger off_t - * sizes to handle larger files. See below for INFILESIZE_LARGE. - */ - CINIT(INFILESIZE, LONG, 14), - - /* POST static input fields. */ - CINIT(POSTFIELDS, OBJECTPOINT, 15), - - /* Set the referrer page (needed by some CGIs) */ - CINIT(REFERER, OBJECTPOINT, 16), - - /* Set the FTP PORT string (interface name, named or numerical IP address) - Use i.e '-' to use default address. */ - CINIT(FTPPORT, OBJECTPOINT, 17), - - /* Set the User-Agent string (examined by some CGIs) */ - CINIT(USERAGENT, OBJECTPOINT, 18), - - /* If the download receives less than "low speed limit" bytes/second - * during "low speed time" seconds, the operations is aborted. - * You could i.e if you have a pretty high speed connection, abort if - * it is less than 2000 bytes/sec during 20 seconds. - */ - - /* Set the "low speed limit" */ - CINIT(LOW_SPEED_LIMIT, LONG, 19), - - /* Set the "low speed time" */ - CINIT(LOW_SPEED_TIME, LONG, 20), - - /* Set the continuation offset. - * - * Note there is also a _LARGE version of this key which uses - * off_t types, allowing for large file offsets on platforms which - * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. - */ - CINIT(RESUME_FROM, LONG, 21), - - /* Set cookie in request: */ - CINIT(COOKIE, OBJECTPOINT, 22), - - /* This points to a linked list of headers, struct curl_slist kind. This - list is also used for RTSP (in spite of its name) */ - CINIT(HTTPHEADER, OBJECTPOINT, 23), - - /* This points to a linked list of post entries, struct curl_httppost */ - CINIT(HTTPPOST, OBJECTPOINT, 24), - - /* name of the file keeping your private SSL-certificate */ - CINIT(SSLCERT, OBJECTPOINT, 25), - - /* password for the SSL or SSH private key */ - CINIT(KEYPASSWD, OBJECTPOINT, 26), - - /* send TYPE parameter? */ - CINIT(CRLF, LONG, 27), - - /* send linked-list of QUOTE commands */ - CINIT(QUOTE, OBJECTPOINT, 28), - - /* send FILE * or void * to store headers to, if you use a callback it - is simply passed to the callback unmodified */ - CINIT(HEADERDATA, OBJECTPOINT, 29), - - /* point to a file to read the initial cookies from, also enables - "cookie awareness" */ - CINIT(COOKIEFILE, OBJECTPOINT, 31), - - /* What version to specifically try to use. - See CURL_SSLVERSION defines below. */ - CINIT(SSLVERSION, LONG, 32), - - /* What kind of HTTP time condition to use, see defines */ - CINIT(TIMECONDITION, LONG, 33), - - /* Time to use with the above condition. Specified in number of seconds - since 1 Jan 1970 */ - CINIT(TIMEVALUE, LONG, 34), - - /* 35 = OBSOLETE */ - - /* Custom request, for customizing the get command like - HTTP: DELETE, TRACE and others - FTP: to use a different list command - */ - CINIT(CUSTOMREQUEST, OBJECTPOINT, 36), - - /* HTTP request, for odd commands like DELETE, TRACE and others */ - CINIT(STDERR, OBJECTPOINT, 37), - - /* 38 is not used */ - - /* send linked-list of post-transfer QUOTE commands */ - CINIT(POSTQUOTE, OBJECTPOINT, 39), - - CINIT(OBSOLETE40, OBJECTPOINT, 40), /* OBSOLETE, do not use! */ - - CINIT(VERBOSE, LONG, 41), /* talk a lot */ - CINIT(HEADER, LONG, 42), /* throw the header out too */ - CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */ - CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */ - CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 300 */ - CINIT(UPLOAD, LONG, 46), /* this is an upload */ - CINIT(POST, LONG, 47), /* HTTP POST method */ - CINIT(DIRLISTONLY, LONG, 48), /* bare names when listing directories */ - - CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */ - - /* Specify whether to read the user+password from the .netrc or the URL. - * This must be one of the CURL_NETRC_* enums below. */ - CINIT(NETRC, LONG, 51), - - CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */ - - CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */ - CINIT(PUT, LONG, 54), /* HTTP PUT */ - - /* 55 = OBSOLETE */ - - /* DEPRECATED - * Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_progress_callback - * prototype defines. */ - CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56), - - /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION - callbacks */ - CINIT(PROGRESSDATA, OBJECTPOINT, 57), -#define CURLOPT_XFERINFODATA CURLOPT_PROGRESSDATA - - /* We want the referrer field set automatically when following locations */ - CINIT(AUTOREFERER, LONG, 58), - - /* Port of the proxy, can be set in the proxy string as well with: - "[host]:[port]" */ - CINIT(PROXYPORT, LONG, 59), - - /* size of the POST input data, if strlen() is not good to use */ - CINIT(POSTFIELDSIZE, LONG, 60), - - /* tunnel non-http operations through a HTTP proxy */ - CINIT(HTTPPROXYTUNNEL, LONG, 61), - - /* Set the interface string to use as outgoing network interface */ - CINIT(INTERFACE, OBJECTPOINT, 62), - - /* Set the krb4/5 security level, this also enables krb4/5 awareness. This - * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string - * is set but doesn't match one of these, 'private' will be used. */ - CINIT(KRBLEVEL, OBJECTPOINT, 63), - - /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ - CINIT(SSL_VERIFYPEER, LONG, 64), - - /* The CApath or CAfile used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAINFO, OBJECTPOINT, 65), - - /* 66 = OBSOLETE */ - /* 67 = OBSOLETE */ - - /* Maximum number of http redirects to follow */ - CINIT(MAXREDIRS, LONG, 68), - - /* Pass a long set to 1 to get the date of the requested document (if - possible)! Pass a zero to shut it off. */ - CINIT(FILETIME, LONG, 69), - - /* This points to a linked list of telnet options */ - CINIT(TELNETOPTIONS, OBJECTPOINT, 70), - - /* Max amount of cached alive connections */ - CINIT(MAXCONNECTS, LONG, 71), - - CINIT(OBSOLETE72, LONG, 72), /* OBSOLETE, do not use! */ - - /* 73 = OBSOLETE */ - - /* Set to explicitly use a new connection for the upcoming transfer. - Do not use this unless you're absolutely sure of this, as it makes the - operation slower and is less friendly for the network. */ - CINIT(FRESH_CONNECT, LONG, 74), - - /* Set to explicitly forbid the upcoming transfer's connection to be re-used - when done. Do not use this unless you're absolutely sure of this, as it - makes the operation slower and is less friendly for the network. */ - CINIT(FORBID_REUSE, LONG, 75), - - /* Set to a file name that contains random data for libcurl to use to - seed the random engine when doing SSL connects. */ - CINIT(RANDOM_FILE, OBJECTPOINT, 76), - - /* Set to the Entropy Gathering Daemon socket pathname */ - CINIT(EGDSOCKET, OBJECTPOINT, 77), - - /* Time-out connect operations after this amount of seconds, if connects are - OK within this time, then fine... This only aborts the connect phase. */ - CINIT(CONNECTTIMEOUT, LONG, 78), - - /* Function that will be called to store headers (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79), - - /* Set this to force the HTTP request to get back to GET. Only really usable - if POST, PUT or a custom request have been used first. - */ - CINIT(HTTPGET, LONG, 80), - - /* Set if we should verify the Common name from the peer certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches the - * provided hostname. */ - CINIT(SSL_VERIFYHOST, LONG, 81), - - /* Specify which file name to write all known cookies in after completed - operation. Set file name to "-" (dash) to make it go to stdout. */ - CINIT(COOKIEJAR, OBJECTPOINT, 82), - - /* Specify which SSL ciphers to use */ - CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83), - - /* Specify which HTTP version to use! This must be set to one of the - CURL_HTTP_VERSION* enums set below. */ - CINIT(HTTP_VERSION, LONG, 84), - - /* Specifically switch on or off the FTP engine's use of the EPSV command. By - default, that one will always be attempted before the more traditional - PASV command. */ - CINIT(FTP_USE_EPSV, LONG, 85), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ - CINIT(SSLCERTTYPE, OBJECTPOINT, 86), - - /* name of the file keeping your private SSL-key */ - CINIT(SSLKEY, OBJECTPOINT, 87), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ - CINIT(SSLKEYTYPE, OBJECTPOINT, 88), - - /* crypto engine for the SSL-sub system */ - CINIT(SSLENGINE, OBJECTPOINT, 89), - - /* set the crypto engine for the SSL-sub system as default - the param has no meaning... - */ - CINIT(SSLENGINE_DEFAULT, LONG, 90), - - /* Non-zero value means to use the global dns cache */ - CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* DEPRECATED, do not use! */ - - /* DNS cache timeout */ - CINIT(DNS_CACHE_TIMEOUT, LONG, 92), - - /* send linked-list of pre-transfer QUOTE commands */ - CINIT(PREQUOTE, OBJECTPOINT, 93), - - /* set the debug function */ - CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94), - - /* set the data for the debug function */ - CINIT(DEBUGDATA, OBJECTPOINT, 95), - - /* mark this as start of a cookie session */ - CINIT(COOKIESESSION, LONG, 96), - - /* The CApath directory used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAPATH, OBJECTPOINT, 97), - - /* Instruct libcurl to use a smaller receive buffer */ - CINIT(BUFFERSIZE, LONG, 98), - - /* Instruct libcurl to not use any signal/alarm handlers, even when using - timeouts. This option is useful for multi-threaded applications. - See libcurl-the-guide for more background information. */ - CINIT(NOSIGNAL, LONG, 99), - - /* Provide a CURLShare for mutexing non-ts data */ - CINIT(SHARE, OBJECTPOINT, 100), - - /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), - CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ - CINIT(PROXYTYPE, LONG, 101), - - /* Set the Accept-Encoding string. Use this to tell a server you would like - the response to be compressed. Before 7.21.6, this was known as - CURLOPT_ENCODING */ - CINIT(ACCEPT_ENCODING, OBJECTPOINT, 102), - - /* Set pointer to private data */ - CINIT(PRIVATE, OBJECTPOINT, 103), - - /* Set aliases for HTTP 200 in the HTTP Response header */ - CINIT(HTTP200ALIASES, OBJECTPOINT, 104), - - /* Continue to send authentication (user+password) when following locations, - even when hostname changed. This can potentially send off the name - and password to whatever host the server decides. */ - CINIT(UNRESTRICTED_AUTH, LONG, 105), - - /* Specifically switch on or off the FTP engine's use of the EPRT command ( - it also disables the LPRT attempt). By default, those ones will always be - attempted before the good old traditional PORT command. */ - CINIT(FTP_USE_EPRT, LONG, 106), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_USERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(HTTPAUTH, LONG, 107), - - /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx - in second argument. The function must be matching the - curl_ssl_ctx_callback proto. */ - CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108), - - /* Set the userdata for the ssl context callback function's third - argument */ - CINIT(SSL_CTX_DATA, OBJECTPOINT, 109), - - /* FTP Option that causes missing dirs to be created on the remote server. - In 7.19.4 we introduced the convenience enums for this option using the - CURLFTP_CREATE_DIR prefix. - */ - CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(PROXYAUTH, LONG, 111), - - /* FTP option that changes the timeout, in seconds, associated with - getting a response. This is different from transfer timeout time and - essentially places a demand on the FTP server to acknowledge commands - in a timely manner. */ - CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112), -#define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT - - /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to - tell libcurl to resolve names to those IP versions only. This only has - affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ - CINIT(IPRESOLVE, LONG, 113), - - /* Set this option to limit the size of a file that will be downloaded from - an HTTP or FTP server. - - Note there is also _LARGE version which adds large file support for - platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ - CINIT(MAXFILESIZE, LONG, 114), - - /* See the comment for INFILESIZE above, but in short, specifies - * the size of the file being uploaded. -1 means unknown. - */ - CINIT(INFILESIZE_LARGE, OFF_T, 115), - - /* Sets the continuation offset. There is also a LONG version of this; - * look above for RESUME_FROM. - */ - CINIT(RESUME_FROM_LARGE, OFF_T, 116), - - /* Sets the maximum size of data that will be downloaded from - * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. - */ - CINIT(MAXFILESIZE_LARGE, OFF_T, 117), - - /* Set this option to the file name of your .netrc file you want libcurl - to parse (using the CURLOPT_NETRC option). If not set, libcurl will do - a poor attempt to find the user's home directory and check for a .netrc - file in there. */ - CINIT(NETRC_FILE, OBJECTPOINT, 118), - - /* Enable SSL/TLS for FTP, pick one of: - CURLUSESSL_TRY - try using SSL, proceed anyway otherwise - CURLUSESSL_CONTROL - SSL for the control connection or fail - CURLUSESSL_ALL - SSL for all communication or fail - */ - CINIT(USE_SSL, LONG, 119), - - /* The _LARGE version of the standard POSTFIELDSIZE option */ - CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120), - - /* Enable/disable the TCP Nagle algorithm */ - CINIT(TCP_NODELAY, LONG, 121), - - /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 123 OBSOLETE. Gone in 7.16.0 */ - /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 127 OBSOLETE. Gone in 7.16.0 */ - /* 128 OBSOLETE. Gone in 7.16.0 */ - - /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option - can be used to change libcurl's default action which is to first try - "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK - response has been received. - - Available parameters are: - CURLFTPAUTH_DEFAULT - let libcurl decide - CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS - CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL - */ - CINIT(FTPSSLAUTH, LONG, 129), - - CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130), - CINIT(IOCTLDATA, OBJECTPOINT, 131), - - /* 132 OBSOLETE. Gone in 7.16.0 */ - /* 133 OBSOLETE. Gone in 7.16.0 */ - - /* zero terminated string for pass on to the FTP server when asked for - "account" info */ - CINIT(FTP_ACCOUNT, OBJECTPOINT, 134), - - /* feed cookies into cookie engine */ - CINIT(COOKIELIST, OBJECTPOINT, 135), - - /* ignore Content-Length */ - CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), - - /* Set to non-zero to skip the IP address received in a 227 PASV FTP server - response. Typically used for FTP-SSL purposes but is not restricted to - that. libcurl will then instead use the same IP address it used for the - control connection. */ - CINIT(FTP_SKIP_PASV_IP, LONG, 137), - - /* Select "file method" to use when doing FTP, see the curl_ftpmethod - above. */ - CINIT(FTP_FILEMETHOD, LONG, 138), - - /* Local port number to bind the socket to */ - CINIT(LOCALPORT, LONG, 139), - - /* Number of ports to try, including the first one set with LOCALPORT. - Thus, setting it to 1 will make no additional attempts but the first. - */ - CINIT(LOCALPORTRANGE, LONG, 140), - - /* no transfer, set up connection and let application use the socket by - extracting it with CURLINFO_LASTSOCKET */ - CINIT(CONNECT_ONLY, LONG, 141), - - /* Function that will be called to convert from the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142), - - /* Function that will be called to convert to the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143), - - /* Function that will be called to convert from UTF8 - (instead of using the iconv calls in libcurl) - Note that this is used only for SSL certificate processing */ - CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144), - - /* if the connection proceeds too quickly then need to slow it down */ - /* limit-rate: maximum number of bytes per second to send or receive */ - CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145), - CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), - - /* Pointer to command string to send if USER/PASS fails. */ - CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147), - - /* callback function for setting socket options */ - CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), - CINIT(SOCKOPTDATA, OBJECTPOINT, 149), - - /* set to 0 to disable session ID re-use for this transfer, default is - enabled (== 1) */ - CINIT(SSL_SESSIONID_CACHE, LONG, 150), - - /* allowed SSH authentication methods */ - CINIT(SSH_AUTH_TYPES, LONG, 151), - - /* Used by scp/sftp to do public/private key authentication */ - CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152), - CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153), - - /* Send CCC (Clear Command Channel) after authentication */ - CINIT(FTP_SSL_CCC, LONG, 154), - - /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ - CINIT(TIMEOUT_MS, LONG, 155), - CINIT(CONNECTTIMEOUT_MS, LONG, 156), - - /* set to zero to disable the libcurl's decoding and thus pass the raw body - data to the application even when it is encoded/compressed */ - CINIT(HTTP_TRANSFER_DECODING, LONG, 157), - CINIT(HTTP_CONTENT_DECODING, LONG, 158), - - /* Permission used when creating new files and directories on the remote - server for protocols that support it, SFTP/SCP/FILE */ - CINIT(NEW_FILE_PERMS, LONG, 159), - CINIT(NEW_DIRECTORY_PERMS, LONG, 160), - - /* Set the behaviour of POST when redirecting. Values must be set to one - of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ - CINIT(POSTREDIR, LONG, 161), - - /* used by scp/sftp to verify the host's public key */ - CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162), - - /* Callback function for opening socket (instead of socket(2)). Optionally, - callback is able change the address or refuse to connect returning - CURL_SOCKET_BAD. The callback should have type - curl_opensocket_callback */ - CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163), - CINIT(OPENSOCKETDATA, OBJECTPOINT, 164), - - /* POST volatile input fields. */ - CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165), - - /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ - CINIT(PROXY_TRANSFER_MODE, LONG, 166), - - /* Callback function for seeking in the input stream */ - CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167), - CINIT(SEEKDATA, OBJECTPOINT, 168), - - /* CRL file */ - CINIT(CRLFILE, OBJECTPOINT, 169), - - /* Issuer certificate */ - CINIT(ISSUERCERT, OBJECTPOINT, 170), - - /* (IPv6) Address scope */ - CINIT(ADDRESS_SCOPE, LONG, 171), - - /* Collect certificate chain info and allow it to get retrievable with - CURLINFO_CERTINFO after the transfer is complete. */ - CINIT(CERTINFO, LONG, 172), - - /* "name" and "pwd" to use when fetching. */ - CINIT(USERNAME, OBJECTPOINT, 173), - CINIT(PASSWORD, OBJECTPOINT, 174), - - /* "name" and "pwd" to use with Proxy when fetching. */ - CINIT(PROXYUSERNAME, OBJECTPOINT, 175), - CINIT(PROXYPASSWORD, OBJECTPOINT, 176), - - /* Comma separated list of hostnames defining no-proxy zones. These should - match both hostnames directly, and hostnames within a domain. For - example, local.com will match local.com and www.local.com, but NOT - notlocal.com or www.notlocal.com. For compatibility with other - implementations of this, .local.com will be considered to be the same as - local.com. A single * is the only valid wildcard, and effectively - disables the use of proxy. */ - CINIT(NOPROXY, OBJECTPOINT, 177), - - /* block size for TFTP transfers */ - CINIT(TFTP_BLKSIZE, LONG, 178), - - /* Socks Service */ - CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179), - - /* Socks Service */ - CINIT(SOCKS5_GSSAPI_NEC, LONG, 180), - - /* set the bitmask for the protocols that are allowed to be used for the - transfer, which thus helps the app which takes URLs from users or other - external inputs and want to restrict what protocol(s) to deal - with. Defaults to CURLPROTO_ALL. */ - CINIT(PROTOCOLS, LONG, 181), - - /* set the bitmask for the protocols that libcurl is allowed to follow to, - as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs - to be set in both bitmasks to be allowed to get redirected to. Defaults - to all protocols except FILE and SCP. */ - CINIT(REDIR_PROTOCOLS, LONG, 182), - - /* set the SSH knownhost file name to use */ - CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183), - - /* set the SSH host key callback, must point to a curl_sshkeycallback - function */ - CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184), - - /* set the SSH host key callback custom pointer */ - CINIT(SSH_KEYDATA, OBJECTPOINT, 185), - - /* set the SMTP mail originator */ - CINIT(MAIL_FROM, OBJECTPOINT, 186), - - /* set the SMTP mail receiver(s) */ - CINIT(MAIL_RCPT, OBJECTPOINT, 187), - - /* FTP: send PRET before PASV */ - CINIT(FTP_USE_PRET, LONG, 188), - - /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ - CINIT(RTSP_REQUEST, LONG, 189), - - /* The RTSP session identifier */ - CINIT(RTSP_SESSION_ID, OBJECTPOINT, 190), - - /* The RTSP stream URI */ - CINIT(RTSP_STREAM_URI, OBJECTPOINT, 191), - - /* The Transport: header to use in RTSP requests */ - CINIT(RTSP_TRANSPORT, OBJECTPOINT, 192), - - /* Manually initialize the client RTSP CSeq for this handle */ - CINIT(RTSP_CLIENT_CSEQ, LONG, 193), - - /* Manually initialize the server RTSP CSeq for this handle */ - CINIT(RTSP_SERVER_CSEQ, LONG, 194), - - /* The stream to pass to INTERLEAVEFUNCTION. */ - CINIT(INTERLEAVEDATA, OBJECTPOINT, 195), - - /* Let the application define a custom write method for RTP data */ - CINIT(INTERLEAVEFUNCTION, FUNCTIONPOINT, 196), - - /* Turn on wildcard matching */ - CINIT(WILDCARDMATCH, LONG, 197), - - /* Directory matching callback called before downloading of an - individual file (chunk) started */ - CINIT(CHUNK_BGN_FUNCTION, FUNCTIONPOINT, 198), - - /* Directory matching callback called after the file (chunk) - was downloaded, or skipped */ - CINIT(CHUNK_END_FUNCTION, FUNCTIONPOINT, 199), - - /* Change match (fnmatch-like) callback for wildcard matching */ - CINIT(FNMATCH_FUNCTION, FUNCTIONPOINT, 200), - - /* Let the application define custom chunk data pointer */ - CINIT(CHUNK_DATA, OBJECTPOINT, 201), - - /* FNMATCH_FUNCTION user pointer */ - CINIT(FNMATCH_DATA, OBJECTPOINT, 202), - - /* send linked-list of name:port:address sets */ - CINIT(RESOLVE, OBJECTPOINT, 203), - - /* Set a username for authenticated TLS */ - CINIT(TLSAUTH_USERNAME, OBJECTPOINT, 204), - - /* Set a password for authenticated TLS */ - CINIT(TLSAUTH_PASSWORD, OBJECTPOINT, 205), - - /* Set authentication type for authenticated TLS */ - CINIT(TLSAUTH_TYPE, OBJECTPOINT, 206), - - /* Set to 1 to enable the "TE:" header in HTTP requests to ask for - compressed transfer-encoded responses. Set to 0 to disable the use of TE: - in outgoing requests. The current default is 0, but it might change in a - future libcurl release. - - libcurl will ask for the compressed methods it knows of, and if that - isn't any, it will not ask for transfer-encoding at all even if this - option is set to 1. - - */ - CINIT(TRANSFER_ENCODING, LONG, 207), - - /* Callback function for closing socket (instead of close(2)). The callback - should have type curl_closesocket_callback */ - CINIT(CLOSESOCKETFUNCTION, FUNCTIONPOINT, 208), - CINIT(CLOSESOCKETDATA, OBJECTPOINT, 209), - - /* allow GSSAPI credential delegation */ - CINIT(GSSAPI_DELEGATION, LONG, 210), - - /* Set the name servers to use for DNS resolution */ - CINIT(DNS_SERVERS, OBJECTPOINT, 211), - - /* Time-out accept operations (currently for FTP only) after this amount - of miliseconds. */ - CINIT(ACCEPTTIMEOUT_MS, LONG, 212), - - /* Set TCP keepalive */ - CINIT(TCP_KEEPALIVE, LONG, 213), - - /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ - CINIT(TCP_KEEPIDLE, LONG, 214), - CINIT(TCP_KEEPINTVL, LONG, 215), - - /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ - CINIT(SSL_OPTIONS, LONG, 216), - - /* Set the SMTP auth originator */ - CINIT(MAIL_AUTH, OBJECTPOINT, 217), - - /* Enable/disable SASL initial response */ - CINIT(SASL_IR, LONG, 218), - - /* Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_xferinfo_callback - * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ - CINIT(XFERINFOFUNCTION, FUNCTIONPOINT, 219), - - /* The XOAUTH2 bearer token */ - CINIT(XOAUTH2_BEARER, OBJECTPOINT, 220), - - /* Set the interface string to use as outgoing network - * interface for DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_INTERFACE, OBJECTPOINT, 221), - - /* Set the local IPv4 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP4, OBJECTPOINT, 222), - - /* Set the local IPv4 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP6, OBJECTPOINT, 223), - - /* Set authentication options directly */ - CINIT(LOGIN_OPTIONS, OBJECTPOINT, 224), - - /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ - CINIT(SSL_ENABLE_NPN, LONG, 225), - - /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ - CINIT(SSL_ENABLE_ALPN, LONG, 226), - - /* Time to wait for a response to a HTTP request containing an - * Expect: 100-continue header before sending the data anyway. */ - CINIT(EXPECT_100_TIMEOUT_MS, LONG, 227), - - /* This points to a linked list of headers used for proxy requests only, - struct curl_slist kind */ - CINIT(PROXYHEADER, OBJECTPOINT, 228), - - /* Pass in a bitmask of "header options" */ - CINIT(HEADEROPT, LONG, 229), - - /* The public key in DER form used to validate the peer public key - this option is used only if SSL_VERIFYPEER is true */ - CINIT(PINNEDPUBLICKEY, OBJECTPOINT, 230), - - CURLOPT_LASTENTRY /* the last unused */ -} CURLoption; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2011 */ - -/* This was added in version 7.19.1 */ -#define CURLOPT_POST301 CURLOPT_POSTREDIR - -/* These are scheduled to disappear by 2009 */ - -/* The following were added in 7.17.0 */ -#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_FTPAPPEND CURLOPT_APPEND -#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY -#define CURLOPT_FTP_SSL CURLOPT_USE_SSL - -/* The following were added earlier */ - -#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL - -#else -/* This is set if CURL_NO_OLDIES is defined at compile-time */ -#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ -#endif - - - /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host - name resolves addresses using more than one IP protocol version, this - option might be handy to force libcurl to use a specific IP version. */ -#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP - versions that your system allows */ -#define CURL_IPRESOLVE_V4 1 /* resolve to ipv4 addresses */ -#define CURL_IPRESOLVE_V6 2 /* resolve to ipv6 addresses */ - - /* three convenient "aliases" that follow the name scheme better */ -#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER - - /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ -enum { - CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd - like the library to choose the best possible - for us! */ - CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ - CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ - CURL_HTTP_VERSION_2_0, /* please use HTTP 2.0 in the request */ - - CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ -}; - -/* - * Public API enums for RTSP requests - */ -enum { - CURL_RTSPREQ_NONE, /* first in list */ - CURL_RTSPREQ_OPTIONS, - CURL_RTSPREQ_DESCRIBE, - CURL_RTSPREQ_ANNOUNCE, - CURL_RTSPREQ_SETUP, - CURL_RTSPREQ_PLAY, - CURL_RTSPREQ_PAUSE, - CURL_RTSPREQ_TEARDOWN, - CURL_RTSPREQ_GET_PARAMETER, - CURL_RTSPREQ_SET_PARAMETER, - CURL_RTSPREQ_RECORD, - CURL_RTSPREQ_RECEIVE, - CURL_RTSPREQ_LAST /* last in list */ -}; - - /* These enums are for use with the CURLOPT_NETRC option. */ -enum CURL_NETRC_OPTION { - CURL_NETRC_IGNORED, /* The .netrc will never be read. - * This is the default. */ - CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred - * to one in the .netrc. */ - CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. - * Unless one is set programmatically, the .netrc - * will be queried. */ - CURL_NETRC_LAST -}; - -enum { - CURL_SSLVERSION_DEFAULT, - CURL_SSLVERSION_TLSv1, /* TLS 1.x */ - CURL_SSLVERSION_SSLv2, - CURL_SSLVERSION_SSLv3, - CURL_SSLVERSION_TLSv1_0, - CURL_SSLVERSION_TLSv1_1, - CURL_SSLVERSION_TLSv1_2, - - CURL_SSLVERSION_LAST /* never use, keep last */ -}; - -enum CURL_TLSAUTH { - CURL_TLSAUTH_NONE, - CURL_TLSAUTH_SRP, - CURL_TLSAUTH_LAST /* never use, keep last */ -}; - -/* symbols to use with CURLOPT_POSTREDIR. - CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 - can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 - | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ - -#define CURL_REDIR_GET_ALL 0 -#define CURL_REDIR_POST_301 1 -#define CURL_REDIR_POST_302 2 -#define CURL_REDIR_POST_303 4 -#define CURL_REDIR_POST_ALL \ - (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) - -typedef enum { - CURL_TIMECOND_NONE, - - CURL_TIMECOND_IFMODSINCE, - CURL_TIMECOND_IFUNMODSINCE, - CURL_TIMECOND_LASTMOD, - - CURL_TIMECOND_LAST -} curl_TimeCond; - - -/* curl_strequal() and curl_strnequal() are subject for removal in a future - libcurl, see lib/README.curlx for details */ -CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2); -CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n); - -/* name is uppercase CURLFORM_ */ -#ifdef CFINIT -#undef CFINIT -#endif - -#ifdef CURL_ISOCPP -#define CFINIT(name) CURLFORM_ ## name -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define CFINIT(name) CURLFORM_/**/name -#endif - -typedef enum { - CFINIT(NOTHING), /********* the first one is unused ************/ - - /* */ - CFINIT(COPYNAME), - CFINIT(PTRNAME), - CFINIT(NAMELENGTH), - CFINIT(COPYCONTENTS), - CFINIT(PTRCONTENTS), - CFINIT(CONTENTSLENGTH), - CFINIT(FILECONTENT), - CFINIT(ARRAY), - CFINIT(OBSOLETE), - CFINIT(FILE), - - CFINIT(BUFFER), - CFINIT(BUFFERPTR), - CFINIT(BUFFERLENGTH), - - CFINIT(CONTENTTYPE), - CFINIT(CONTENTHEADER), - CFINIT(FILENAME), - CFINIT(END), - CFINIT(OBSOLETE2), - - CFINIT(STREAM), - - CURLFORM_LASTENTRY /* the last unused */ -} CURLformoption; - -#undef CFINIT /* done */ - -/* structure to be used as parameter for CURLFORM_ARRAY */ -struct curl_forms { - CURLformoption option; - const char *value; -}; - -/* use this for multipart formpost building */ -/* Returns code for curl_formadd() - * - * Returns: - * CURL_FORMADD_OK on success - * CURL_FORMADD_MEMORY if the FormInfo allocation fails - * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form - * CURL_FORMADD_NULL if a null pointer was given for a char - * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed - * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used - * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) - * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated - * CURL_FORMADD_MEMORY if some allocation for string copying failed. - * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array - * - ***************************************************************************/ -typedef enum { - CURL_FORMADD_OK, /* first, no error */ - - CURL_FORMADD_MEMORY, - CURL_FORMADD_OPTION_TWICE, - CURL_FORMADD_NULL, - CURL_FORMADD_UNKNOWN_OPTION, - CURL_FORMADD_INCOMPLETE, - CURL_FORMADD_ILLEGAL_ARRAY, - CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ - - CURL_FORMADD_LAST /* last */ -} CURLFORMcode; - -/* - * NAME curl_formadd() - * - * DESCRIPTION - * - * Pretty advanced function for building multi-part formposts. Each invoke - * adds one part that together construct a full post. Then use - * CURLOPT_HTTPPOST to send it off to libcurl. - */ -CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, - struct curl_httppost **last_post, - ...); - -/* - * callback function for curl_formget() - * The void *arg pointer will be the one passed as second argument to - * curl_formget(). - * The character buffer passed to it must not be freed. - * Should return the buffer length passed to it as the argument "len" on - * success. - */ -typedef size_t (*curl_formget_callback)(void *arg, const char *buf, - size_t len); - -/* - * NAME curl_formget() - * - * DESCRIPTION - * - * Serialize a curl_httppost struct built with curl_formadd(). - * Accepts a void pointer as second argument which will be passed to - * the curl_formget_callback function. - * Returns 0 on success. - */ -CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, - curl_formget_callback append); -/* - * NAME curl_formfree() - * - * DESCRIPTION - * - * Free a multipart formpost previously built with curl_formadd(). - */ -CURL_EXTERN void curl_formfree(struct curl_httppost *form); - -/* - * NAME curl_getenv() - * - * DESCRIPTION - * - * Returns a malloc()'ed string that MUST be curl_free()ed after usage is - * complete. DEPRECATED - see lib/README.curlx - */ -CURL_EXTERN char *curl_getenv(const char *variable); - -/* - * NAME curl_version() - * - * DESCRIPTION - * - * Returns a static ascii string of the libcurl version. - */ -CURL_EXTERN char *curl_version(void); - -/* - * NAME curl_easy_escape() - * - * DESCRIPTION - * - * Escapes URL strings (converts all letters consider illegal in URLs to their - * %XX versions). This function returns a new allocated string or NULL if an - * error occurred. - */ -CURL_EXTERN char *curl_easy_escape(CURL *handle, - const char *string, - int length); - -/* the previous version: */ -CURL_EXTERN char *curl_escape(const char *string, - int length); - - -/* - * NAME curl_easy_unescape() - * - * DESCRIPTION - * - * Unescapes URL encoding in strings (converts all %XX codes to their 8bit - * versions). This function returns a new allocated string or NULL if an error - * occurred. - * Conversion Note: On non-ASCII platforms the ASCII %XX codes are - * converted into the host encoding. - */ -CURL_EXTERN char *curl_easy_unescape(CURL *handle, - const char *string, - int length, - int *outlength); - -/* the previous version */ -CURL_EXTERN char *curl_unescape(const char *string, - int length); - -/* - * NAME curl_free() - * - * DESCRIPTION - * - * Provided for de-allocation in the same translation unit that did the - * allocation. Added in libcurl 7.10 - */ -CURL_EXTERN void curl_free(void *p); - -/* - * NAME curl_global_init() - * - * DESCRIPTION - * - * curl_global_init() should be invoked exactly once for each application that - * uses libcurl and before any call of other libcurl functions. - * - * This function is not thread-safe! - */ -CURL_EXTERN CURLcode curl_global_init(long flags); - -/* - * NAME curl_global_init_mem() - * - * DESCRIPTION - * - * curl_global_init() or curl_global_init_mem() should be invoked exactly once - * for each application that uses libcurl. This function can be used to - * initialize libcurl and set user defined memory management callback - * functions. Users can implement memory management routines to check for - * memory leaks, check for mis-use of the curl library etc. User registered - * callback routines with be invoked by this library instead of the system - * memory management routines like malloc, free etc. - */ -CURL_EXTERN CURLcode curl_global_init_mem(long flags, - curl_malloc_callback m, - curl_free_callback f, - curl_realloc_callback r, - curl_strdup_callback s, - curl_calloc_callback c); - -/* - * NAME curl_global_cleanup() - * - * DESCRIPTION - * - * curl_global_cleanup() should be invoked exactly once for each application - * that uses libcurl - */ -CURL_EXTERN void curl_global_cleanup(void); - -/* linked-list structure for the CURLOPT_QUOTE option (and other) */ -struct curl_slist { - char *data; - struct curl_slist *next; -}; - -/* - * NAME curl_slist_append() - * - * DESCRIPTION - * - * Appends a string to a linked list. If no list exists, it will be created - * first. Returns the new list, after appending. - */ -CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, - const char *); - -/* - * NAME curl_slist_free_all() - * - * DESCRIPTION - * - * free a previously built curl_slist. - */ -CURL_EXTERN void curl_slist_free_all(struct curl_slist *); - -/* - * NAME curl_getdate() - * - * DESCRIPTION - * - * Returns the time, in seconds since 1 Jan 1970 of the time string given in - * the first argument. The time argument in the second parameter is unused - * and should be set to NULL. - */ -CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); - -/* info about the certificate chain, only for OpenSSL builds. Asked - for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ -struct curl_certinfo { - int num_of_certs; /* number of certificates with information */ - struct curl_slist **certinfo; /* for each index in this array, there's a - linked list with textual information in the - format "name: value" */ -}; - -/* enum for the different supported SSL backends */ -typedef enum { - CURLSSLBACKEND_NONE = 0, - CURLSSLBACKEND_OPENSSL = 1, - CURLSSLBACKEND_GNUTLS = 2, - CURLSSLBACKEND_NSS = 3, - CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ - CURLSSLBACKEND_GSKIT = 5, - CURLSSLBACKEND_POLARSSL = 6, - CURLSSLBACKEND_CYASSL = 7, - CURLSSLBACKEND_SCHANNEL = 8, - CURLSSLBACKEND_DARWINSSL = 9, - CURLSSLBACKEND_AXTLS = 10 -} curl_sslbackend; - -/* Information about the SSL library used and the respective internal SSL - handle, which can be used to obtain further information regarding the - connection. Asked for with CURLINFO_TLS_SESSION. */ -struct curl_tlssessioninfo { - curl_sslbackend backend; - void *internals; -}; - -#define CURLINFO_STRING 0x100000 -#define CURLINFO_LONG 0x200000 -#define CURLINFO_DOUBLE 0x300000 -#define CURLINFO_SLIST 0x400000 -#define CURLINFO_MASK 0x0fffff -#define CURLINFO_TYPEMASK 0xf00000 - -typedef enum { - CURLINFO_NONE, /* first, never use this */ - CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, - CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, - CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, - CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, - CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, - CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, - CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, - CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, - CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, - CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, - CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, - CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, - CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, - CURLINFO_FILETIME = CURLINFO_LONG + 14, - CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, - CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, - CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, - CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, - CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, - CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, - CURLINFO_PRIVATE = CURLINFO_STRING + 21, - CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, - CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, - CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, - CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, - CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, - CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, - CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, - CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, - CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, - CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, - CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, - CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, - CURLINFO_CERTINFO = CURLINFO_SLIST + 34, - CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, - CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, - CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, - CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, - CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, - CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, - CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, - CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, - CURLINFO_TLS_SESSION = CURLINFO_SLIST + 43, - /* Fill in new entries below here! */ - - CURLINFO_LASTONE = 43 -} CURLINFO; - -/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as - CURLINFO_HTTP_CODE */ -#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE - -typedef enum { - CURLCLOSEPOLICY_NONE, /* first, never use this */ - - CURLCLOSEPOLICY_OLDEST, - CURLCLOSEPOLICY_LEAST_RECENTLY_USED, - CURLCLOSEPOLICY_LEAST_TRAFFIC, - CURLCLOSEPOLICY_SLOWEST, - CURLCLOSEPOLICY_CALLBACK, - - CURLCLOSEPOLICY_LAST /* last, never use this */ -} curl_closepolicy; - -#define CURL_GLOBAL_SSL (1<<0) -#define CURL_GLOBAL_WIN32 (1<<1) -#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) -#define CURL_GLOBAL_NOTHING 0 -#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL -#define CURL_GLOBAL_ACK_EINTR (1<<2) - - -/***************************************************************************** - * Setup defines, protos etc for the sharing stuff. - */ - -/* Different data locks for a single share */ -typedef enum { - CURL_LOCK_DATA_NONE = 0, - /* CURL_LOCK_DATA_SHARE is used internally to say that - * the locking is just made to change the internal state of the share - * itself. - */ - CURL_LOCK_DATA_SHARE, - CURL_LOCK_DATA_COOKIE, - CURL_LOCK_DATA_DNS, - CURL_LOCK_DATA_SSL_SESSION, - CURL_LOCK_DATA_CONNECT, - CURL_LOCK_DATA_LAST -} curl_lock_data; - -/* Different lock access types */ -typedef enum { - CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ - CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ - CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ - CURL_LOCK_ACCESS_LAST /* never use */ -} curl_lock_access; - -typedef void (*curl_lock_function)(CURL *handle, - curl_lock_data data, - curl_lock_access locktype, - void *userptr); -typedef void (*curl_unlock_function)(CURL *handle, - curl_lock_data data, - void *userptr); - -typedef void CURLSH; - -typedef enum { - CURLSHE_OK, /* all is fine */ - CURLSHE_BAD_OPTION, /* 1 */ - CURLSHE_IN_USE, /* 2 */ - CURLSHE_INVALID, /* 3 */ - CURLSHE_NOMEM, /* 4 out of memory */ - CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ - CURLSHE_LAST /* never use */ -} CURLSHcode; - -typedef enum { - CURLSHOPT_NONE, /* don't use */ - CURLSHOPT_SHARE, /* specify a data type to share */ - CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ - CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ - CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ - CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock - callback functions */ - CURLSHOPT_LAST /* never use */ -} CURLSHoption; - -CURL_EXTERN CURLSH *curl_share_init(void); -CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); -CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); - -/**************************************************************************** - * Structures for querying information about the curl library at runtime. - */ - -typedef enum { - CURLVERSION_FIRST, - CURLVERSION_SECOND, - CURLVERSION_THIRD, - CURLVERSION_FOURTH, - CURLVERSION_LAST /* never actually use this */ -} CURLversion; - -/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by - basically all programs ever that want to get version information. It is - meant to be a built-in version number for what kind of struct the caller - expects. If the struct ever changes, we redefine the NOW to another enum - from above. */ -#define CURLVERSION_NOW CURLVERSION_FOURTH - -typedef struct { - CURLversion age; /* age of the returned struct */ - const char *version; /* LIBCURL_VERSION */ - unsigned int version_num; /* LIBCURL_VERSION_NUM */ - const char *host; /* OS/host/cpu/machine when configured */ - int features; /* bitmask, see defines below */ - const char *ssl_version; /* human readable string */ - long ssl_version_num; /* not used anymore, always 0 */ - const char *libz_version; /* human readable string */ - /* protocols is terminated by an entry with a NULL protoname */ - const char * const *protocols; - - /* The fields below this were added in CURLVERSION_SECOND */ - const char *ares; - int ares_num; - - /* This field was added in CURLVERSION_THIRD */ - const char *libidn; - - /* These field were added in CURLVERSION_FOURTH */ - - /* Same as '_libiconv_version' if built with HAVE_ICONV */ - int iconv_ver_num; - - const char *libssh_version; /* human readable string */ - -} curl_version_info_data; - -#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ -#define CURL_VERSION_KERBEROS4 (1<<1) /* Kerberos V4 auth is supported - (deprecated) */ -#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ -#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ -#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ -#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support - (deprecated) */ -#define CURL_VERSION_DEBUG (1<<6) /* built with debug capabilities */ -#define CURL_VERSION_ASYNCHDNS (1<<7) /* asynchronous dns resolves */ -#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth is supported */ -#define CURL_VERSION_LARGEFILE (1<<9) /* supports files bigger than 2GB */ -#define CURL_VERSION_IDN (1<<10) /* International Domain Names support */ -#define CURL_VERSION_SSPI (1<<11) /* SSPI is supported */ -#define CURL_VERSION_CONV (1<<12) /* character conversions supported */ -#define CURL_VERSION_CURLDEBUG (1<<13) /* debug memory tracking supported */ -#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ -#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegating to winbind helper */ -#define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ -#define CURL_VERSION_GSSAPI (1<<17) /* GSS-API is supported */ - - /* - * NAME curl_version_info() - * - * DESCRIPTION - * - * This function returns a pointer to a static copy of the version info - * struct. See above. - */ -CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); - -/* - * NAME curl_easy_strerror() - * - * DESCRIPTION - * - * The curl_easy_strerror function may be used to turn a CURLcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_easy_strerror(CURLcode); - -/* - * NAME curl_share_strerror() - * - * DESCRIPTION - * - * The curl_share_strerror function may be used to turn a CURLSHcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_share_strerror(CURLSHcode); - -/* - * NAME curl_easy_pause() - * - * DESCRIPTION - * - * The curl_easy_pause function pauses or unpauses transfers. Select the new - * state by setting the bitmask, use the convenience defines below. - * - */ -CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); - -#define CURLPAUSE_RECV (1<<0) -#define CURLPAUSE_RECV_CONT (0) - -#define CURLPAUSE_SEND (1<<2) -#define CURLPAUSE_SEND_CONT (0) - -#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) -#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) - -#ifdef __cplusplus -} -#endif - -/* unfortunately, the easy.h and multi.h include files need options and info - stuff before they can be included! */ -#include "easy.h" /* nothing in curl is fun without the easy stuff */ -#include "multi.h" - -/* the typechecker doesn't work in C++ (yet) */ -#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ - ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ - !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) -#include "typecheck-gcc.h" -#else -#if defined(__STDC__) && (__STDC__ >= 1) -/* This preprocessor magic that replaces a call with the exact same call is - only done to make sure application authors pass exactly three arguments - to these functions. */ -#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) -#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) -#endif /* __STDC__ >= 1 */ -#endif /* gcc >= 4.3 && !__cplusplus */ - -#endif /* __CURL_CURL_H */ diff --git a/src/sdk/extern/include/curl/curlbuild.h b/src/sdk/extern/include/curl/curlbuild.h deleted file mode 100644 index bdca52b..0000000 --- a/src/sdk/extern/include/curl/curlbuild.h +++ /dev/null @@ -1,198 +0,0 @@ -/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ -#ifndef __CURL_CURLBUILD_H -#define __CURL_CURLBUILD_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* ================================================================ */ -/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * If you think that something actually needs to be changed, adjusted - * or fixed in this file, then, report it on the libcurl development - * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * This header file shall only export symbols which are 'curl' or 'CURL' - * prefixed, otherwise public name space would be polluted. - * - * NOTE 2: - * ------- - * - * Right now you might be staring at file include/curl/curlbuild.h.in or - * at file include/curl/curlbuild.h, this is due to the following reason: - * - * On systems capable of running the configure script, the configure process - * will overwrite the distributed include/curl/curlbuild.h file with one that - * is suitable and specific to the library being configured and built, which - * is generated from the include/curl/curlbuild.h.in template file. - * - */ - -/* ================================================================ */ -/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ -/* ================================================================ */ - -#ifdef CURL_SIZEOF_LONG -#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T -#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_SOCKLEN_T -#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_OFF_T -#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_T -#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_TU -#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined -#endif - -#ifdef CURL_FORMAT_OFF_T -#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_OFF_T -#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_T -#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_TU -#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined -#endif - -/* ================================================================ */ -/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ -/* ================================================================ */ - -/* Configure process defines this to 1 when it finds out that system */ -/* header file ws2tcpip.h must be included by the external interface. */ -/* #undef CURL_PULL_WS2TCPIP_H */ -#ifdef CURL_PULL_WS2TCPIP_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# include -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/types.h must be included by the external interface. */ -#define CURL_PULL_SYS_TYPES_H 1 -#ifdef CURL_PULL_SYS_TYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file stdint.h must be included by the external interface. */ -/* #undef CURL_PULL_STDINT_H */ -#ifdef CURL_PULL_STDINT_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file inttypes.h must be included by the external interface. */ -/* #undef CURL_PULL_INTTYPES_H */ -#ifdef CURL_PULL_INTTYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/socket.h must be included by the external interface. */ -#define CURL_PULL_SYS_SOCKET_H 1 -#ifdef CURL_PULL_SYS_SOCKET_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/poll.h must be included by the external interface. */ -/* #undef CURL_PULL_SYS_POLL_H */ -#ifdef CURL_PULL_SYS_POLL_H -# include -#endif - -/* The size of `long', as computed by sizeof. */ -#define CURL_SIZEOF_LONG 8 - -/* Integral data type used for curl_socklen_t. */ -#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t - -/* The size of `curl_socklen_t', as computed by sizeof. */ -#define CURL_SIZEOF_CURL_SOCKLEN_T 4 - -/* Data type definition of curl_socklen_t. */ -typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; - -/* Signed integral data type used for curl_off_t. */ -#define CURL_TYPEOF_CURL_OFF_T long - -/* Data type definition of curl_off_t. */ -typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; - -/* curl_off_t formatting string directive without "%" conversion specifier. */ -#define CURL_FORMAT_CURL_OFF_T "ld" - -/* unsigned curl_off_t formatting string without "%" conversion specifier. */ -#define CURL_FORMAT_CURL_OFF_TU "lu" - -/* curl_off_t formatting string directive with "%" conversion specifier. */ -#define CURL_FORMAT_OFF_T "%ld" - -/* The size of `curl_off_t', as computed by sizeof. */ -#define CURL_SIZEOF_CURL_OFF_T 8 - -/* curl_off_t constant suffix. */ -#define CURL_SUFFIX_CURL_OFF_T L - -/* unsigned curl_off_t constant suffix. */ -#define CURL_SUFFIX_CURL_OFF_TU UL - -#endif /* __CURL_CURLBUILD_H */ diff --git a/src/sdk/extern/include/curl/curlrules.h b/src/sdk/extern/include/curl/curlrules.h deleted file mode 100644 index 7c2ede3..0000000 --- a/src/sdk/extern/include/curl/curlrules.h +++ /dev/null @@ -1,262 +0,0 @@ -#ifndef __CURL_CURLRULES_H -#define __CURL_CURLRULES_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* ================================================================ */ -/* COMPILE TIME SANITY CHECKS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * All checks done in this file are intentionally placed in a public - * header file which is pulled by curl/curl.h when an application is - * being built using an already built libcurl library. Additionally - * this file is also included and used when building the library. - * - * If compilation fails on this file it is certainly sure that the - * problem is elsewhere. It could be a problem in the curlbuild.h - * header file, or simply that you are using different compilation - * settings than those used to build the library. - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * Do not deactivate any check, these are done to make sure that the - * library is properly built and used. - * - * You can find further help on the libcurl development mailing list: - * http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * NOTE 2 - * ------ - * - * Some of the following compile time checks are based on the fact - * that the dimension of a constant array can not be a negative one. - * In this way if the compile time verification fails, the compilation - * will fail issuing an error. The error description wording is compiler - * dependent but it will be quite similar to one of the following: - * - * "negative subscript or subscript is too large" - * "array must have at least one element" - * "-1 is an illegal array size" - * "size of array is negative" - * - * If you are building an application which tries to use an already - * built libcurl library and you are getting this kind of errors on - * this file, it is a clear indication that there is a mismatch between - * how the library was built and how you are trying to use it for your - * application. Your already compiled or binary library provider is the - * only one who can give you the details you need to properly use it. - */ - -/* - * Verify that some macros are actually defined. - */ - -#ifndef CURL_SIZEOF_LONG -# error "CURL_SIZEOF_LONG definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing -#endif - -#ifndef CURL_TYPEOF_CURL_SOCKLEN_T -# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing -#endif - -#ifndef CURL_SIZEOF_CURL_SOCKLEN_T -# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing -#endif - -#ifndef CURL_TYPEOF_CURL_OFF_T -# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_FORMAT_CURL_OFF_T -# error "CURL_FORMAT_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_FORMAT_CURL_OFF_TU -# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing -#endif - -#ifndef CURL_FORMAT_OFF_T -# error "CURL_FORMAT_OFF_T definition is missing!" - Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing -#endif - -#ifndef CURL_SIZEOF_CURL_OFF_T -# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_SUFFIX_CURL_OFF_T -# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_SUFFIX_CURL_OFF_TU -# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing -#endif - -/* - * Macros private to this header file. - */ - -#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 - -#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 - -/* - * Verify that the size previously defined and expected for long - * is the same as the one reported by sizeof() at compile time. - */ - -typedef char - __curl_rule_01__ - [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; - -/* - * Verify that the size previously defined and expected for - * curl_off_t is actually the the same as the one reported - * by sizeof() at compile time. - */ - -typedef char - __curl_rule_02__ - [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; - -/* - * Verify at compile time that the size of curl_off_t as reported - * by sizeof() is greater or equal than the one reported for long - * for the current compilation. - */ - -typedef char - __curl_rule_03__ - [CurlchkszGE(curl_off_t, long)]; - -/* - * Verify that the size previously defined and expected for - * curl_socklen_t is actually the the same as the one reported - * by sizeof() at compile time. - */ - -typedef char - __curl_rule_04__ - [CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; - -/* - * Verify at compile time that the size of curl_socklen_t as reported - * by sizeof() is greater or equal than the one reported for int for - * the current compilation. - */ - -typedef char - __curl_rule_05__ - [CurlchkszGE(curl_socklen_t, int)]; - -/* ================================================================ */ -/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ -/* ================================================================ */ - -/* - * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow - * these to be visible and exported by the external libcurl interface API, - * while also making them visible to the library internals, simply including - * curl_setup.h, without actually needing to include curl.h internally. - * If some day this section would grow big enough, all this should be moved - * to its own header file. - */ - -/* - * Figure out if we can use the ## preprocessor operator, which is supported - * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ - * or __cplusplus so we need to carefully check for them too. - */ - -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ - defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ - defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ - defined(__ILEC400__) - /* This compiler is believed to have an ISO compatible preprocessor */ -#define CURL_ISOCPP -#else - /* This compiler is believed NOT to have an ISO compatible preprocessor */ -#undef CURL_ISOCPP -#endif - -/* - * Macros for minimum-width signed and unsigned curl_off_t integer constants. - */ - -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) -# define __CURL_OFF_T_C_HLPR2(x) x -# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) -#else -# ifdef CURL_ISOCPP -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix -# else -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix -# endif -# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) -#endif - -/* - * Get rid of macros private to this header file. - */ - -#undef CurlchkszEQ -#undef CurlchkszGE - -/* - * Get rid of macros not intended to exist beyond this point. - */ - -#undef CURL_PULL_WS2TCPIP_H -#undef CURL_PULL_SYS_TYPES_H -#undef CURL_PULL_SYS_SOCKET_H -#undef CURL_PULL_SYS_POLL_H -#undef CURL_PULL_STDINT_H -#undef CURL_PULL_INTTYPES_H - -#undef CURL_TYPEOF_CURL_SOCKLEN_T -#undef CURL_TYPEOF_CURL_OFF_T - -#ifdef CURL_NO_OLDIES -#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */ -#endif - -#endif /* __CURL_CURLRULES_H */ diff --git a/src/sdk/extern/include/curl/curlver.h b/src/sdk/extern/include/curl/curlver.h deleted file mode 100644 index 36d96e2..0000000 --- a/src/sdk/extern/include/curl/curlver.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __CURL_CURLVER_H -#define __CURL_CURLVER_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* This header file contains nothing but libcurl version info, generated by - a script at release-time. This was made its own header file in 7.11.2 */ - -/* This is the global package copyright */ -#define LIBCURL_COPYRIGHT "1996 - 2014 Daniel Stenberg, ." - -/* This is the version number of the libcurl package from which this header - file origins: */ -#define LIBCURL_VERSION "7.39.0" - -/* The numeric version number is also available "in parts" by using these - defines: */ -#define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 39 -#define LIBCURL_VERSION_PATCH 0 - -/* This is the numeric version of the libcurl version number, meant for easier - parsing and comparions by programs. The LIBCURL_VERSION_NUM define will - always follow this syntax: - - 0xXXYYZZ - - Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal (using 8 bits each). All three numbers are always represented - using two digits. 1.2 would appear as "0x010200" while version 9.11.7 - appears as "0x090b07". - - This 6-digit (24 bits) hexadecimal number does not show pre-release number, - and it is always a greater number in a more recent release. It makes - comparisons with greater than and less than work. -*/ -#define LIBCURL_VERSION_NUM 0x072700 - -/* - * This is the date and time when the full source package was created. The - * timestamp is not stored in git, as the timestamp is properly set in the - * tarballs by the maketgz script. - * - * The format of the date should follow this template: - * - * "Mon Feb 12 11:35:33 UTC 2007" - */ -#define LIBCURL_TIMESTAMP "Wed Nov 5 07:24:58 UTC 2014" - -#endif /* __CURL_CURLVER_H */ diff --git a/src/sdk/extern/include/curl/easy.h b/src/sdk/extern/include/curl/easy.h deleted file mode 100644 index c1e3e76..0000000 --- a/src/sdk/extern/include/curl/easy.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef __CURL_EASY_H -#define __CURL_EASY_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN CURL *curl_easy_init(void); -CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); -CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); -CURL_EXTERN void curl_easy_cleanup(CURL *curl); - -/* - * NAME curl_easy_getinfo() - * - * DESCRIPTION - * - * Request internal information from the curl session with this function. The - * third argument MUST be a pointer to a long, a pointer to a char * or a - * pointer to a double (as the documentation describes elsewhere). The data - * pointed to will be filled in accordingly and can be relied upon only if the - * function returns CURLE_OK. This function is intended to get used *AFTER* a - * performed transfer, all results from this function are undefined until the - * transfer is completed. - */ -CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); - - -/* - * NAME curl_easy_duphandle() - * - * DESCRIPTION - * - * Creates a new curl session handle with the same options set for the handle - * passed in. Duplicating a handle could only be a matter of cloning data and - * options, internal state info and things like persistent connections cannot - * be transferred. It is useful in multithreaded applications when you can run - * curl_easy_duphandle() for each new thread to avoid a series of identical - * curl_easy_setopt() invokes in every thread. - */ -CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); - -/* - * NAME curl_easy_reset() - * - * DESCRIPTION - * - * Re-initializes a CURL handle to the default values. This puts back the - * handle to the same state as it was in when it was just created. - * - * It does keep: live connections, the Session ID cache, the DNS cache and the - * cookies. - */ -CURL_EXTERN void curl_easy_reset(CURL *curl); - -/* - * NAME curl_easy_recv() - * - * DESCRIPTION - * - * Receives data from the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, - size_t *n); - -/* - * NAME curl_easy_send() - * - * DESCRIPTION - * - * Sends data over the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, - size_t buflen, size_t *n); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/curl/mprintf.h b/src/sdk/extern/include/curl/mprintf.h deleted file mode 100644 index cc9e7f5..0000000 --- a/src/sdk/extern/include/curl/mprintf.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __CURL_MPRINTF_H -#define __CURL_MPRINTF_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#include -#include /* needed for FILE */ - -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN int curl_mprintf(const char *format, ...); -CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); -CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); -CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, - const char *format, ...); -CURL_EXTERN int curl_mvprintf(const char *format, va_list args); -CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); -CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); -CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, - const char *format, va_list args); -CURL_EXTERN char *curl_maprintf(const char *format, ...); -CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); - -#ifdef _MPRINTF_REPLACE -# undef printf -# undef fprintf -# undef sprintf -# undef vsprintf -# undef snprintf -# undef vprintf -# undef vfprintf -# undef vsnprintf -# undef aprintf -# undef vaprintf -# define printf curl_mprintf -# define fprintf curl_mfprintf -#ifdef CURLDEBUG -/* When built with CURLDEBUG we define away the sprintf functions since we - don't want internal code to be using them */ -# define sprintf sprintf_was_used -# define vsprintf vsprintf_was_used -#else -# define sprintf curl_msprintf -# define vsprintf curl_mvsprintf -#endif -# define snprintf curl_msnprintf -# define vprintf curl_mvprintf -# define vfprintf curl_mvfprintf -# define vsnprintf curl_mvsnprintf -# define aprintf curl_maprintf -# define vaprintf curl_mvaprintf -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __CURL_MPRINTF_H */ diff --git a/src/sdk/extern/include/curl/multi.h b/src/sdk/extern/include/curl/multi.h deleted file mode 100644 index 3c4acb0..0000000 --- a/src/sdk/extern/include/curl/multi.h +++ /dev/null @@ -1,399 +0,0 @@ -#ifndef __CURL_MULTI_H -#define __CURL_MULTI_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -/* - This is an "external" header file. Don't give away any internals here! - - GOALS - - o Enable a "pull" interface. The application that uses libcurl decides where - and when to ask libcurl to get/send data. - - o Enable multiple simultaneous transfers in the same thread without making it - complicated for the application. - - o Enable the application to select() on its own file descriptors and curl's - file descriptors simultaneous easily. - -*/ - -/* - * This header file should not really need to include "curl.h" since curl.h - * itself includes this file and we expect user applications to do #include - * without the need for especially including multi.h. - * - * For some reason we added this include here at one point, and rather than to - * break existing (wrongly written) libcurl applications, we leave it as-is - * but with this warning attached. - */ -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void CURLM; - -typedef enum { - CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or - curl_multi_socket*() soon */ - CURLM_OK, - CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ - CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ - CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ - CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ - CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ - CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ - CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was - attempted to get added - again */ - CURLM_LAST -} CURLMcode; - -/* just to make code nicer when using curl_multi_socket() you can now check - for CURLM_CALL_MULTI_SOCKET too in the same style it works for - curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ -#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM - -typedef enum { - CURLMSG_NONE, /* first, not used */ - CURLMSG_DONE, /* This easy handle has completed. 'result' contains - the CURLcode of the transfer */ - CURLMSG_LAST /* last, not used */ -} CURLMSG; - -struct CURLMsg { - CURLMSG msg; /* what this message means */ - CURL *easy_handle; /* the handle it concerns */ - union { - void *whatever; /* message-specific data */ - CURLcode result; /* return code for transfer */ - } data; -}; -typedef struct CURLMsg CURLMsg; - -/* Based on poll(2) structure and values. - * We don't use pollfd and POLL* constants explicitly - * to cover platforms without poll(). */ -#define CURL_WAIT_POLLIN 0x0001 -#define CURL_WAIT_POLLPRI 0x0002 -#define CURL_WAIT_POLLOUT 0x0004 - -struct curl_waitfd { - curl_socket_t fd; - short events; - short revents; /* not supported yet */ -}; - -/* - * Name: curl_multi_init() - * - * Desc: inititalize multi-style curl usage - * - * Returns: a new CURLM handle to use in all 'curl_multi' functions. - */ -CURL_EXTERN CURLM *curl_multi_init(void); - -/* - * Name: curl_multi_add_handle() - * - * Desc: add a standard curl handle to the multi stack - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_remove_handle() - * - * Desc: removes a curl handle from the multi stack again - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_fdset() - * - * Desc: Ask curl for its fd_set sets. The app can use these to select() or - * poll() on. We want curl_multi_perform() called as soon as one of - * them are ready. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, - fd_set *read_fd_set, - fd_set *write_fd_set, - fd_set *exc_fd_set, - int *max_fd); - -/* - * Name: curl_multi_wait() - * - * Desc: Poll on all fds within a CURLM set as well as any - * additional fds passed to the function. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *ret); - - /* - * Name: curl_multi_perform() - * - * Desc: When the app thinks there's data available for curl it calls this - * function to read/write whatever there is right now. This returns - * as soon as the reads and writes are done. This function does not - * require that there actually is data available for reading or that - * data can be written, it can be called just in case. It returns - * the number of handles that still transfer data in the second - * argument's integer-pointer. - * - * Returns: CURLMcode type, general multi error code. *NOTE* that this only - * returns errors etc regarding the whole multi stack. There might - * still have occurred problems on invidual transfers even when this - * returns OK. - */ -CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, - int *running_handles); - - /* - * Name: curl_multi_cleanup() - * - * Desc: Cleans up and removes a whole multi stack. It does not free or - * touch any individual easy handles in any way. We need to define - * in what state those handles will be if this function is called - * in the middle of a transfer. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); - -/* - * Name: curl_multi_info_read() - * - * Desc: Ask the multi handle if there's any messages/informationals from - * the individual transfers. Messages include informationals such as - * error code from the transfer or just the fact that a transfer is - * completed. More details on these should be written down as well. - * - * Repeated calls to this function will return a new struct each - * time, until a special "end of msgs" struct is returned as a signal - * that there is no more to get at this point. - * - * The data the returned pointer points to will not survive calling - * curl_multi_cleanup(). - * - * The 'CURLMsg' struct is meant to be very simple and only contain - * very basic informations. If more involved information is wanted, - * we will provide the particular "transfer handle" in that struct - * and that should/could/would be used in subsequent - * curl_easy_getinfo() calls (or similar). The point being that we - * must never expose complex structs to applications, as then we'll - * undoubtably get backwards compatibility problems in the future. - * - * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out - * of structs. It also writes the number of messages left in the - * queue (after this read) in the integer the second argument points - * to. - */ -CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, - int *msgs_in_queue); - -/* - * Name: curl_multi_strerror() - * - * Desc: The curl_multi_strerror function may be used to turn a CURLMcode - * value into the equivalent human readable error string. This is - * useful for printing meaningful error messages. - * - * Returns: A pointer to a zero-terminated error message. - */ -CURL_EXTERN const char *curl_multi_strerror(CURLMcode); - -/* - * Name: curl_multi_socket() and - * curl_multi_socket_all() - * - * Desc: An alternative version of curl_multi_perform() that allows the - * application to pass in one of the file descriptors that have been - * detected to have "action" on them and let libcurl perform. - * See man page for details. - */ -#define CURL_POLL_NONE 0 -#define CURL_POLL_IN 1 -#define CURL_POLL_OUT 2 -#define CURL_POLL_INOUT 3 -#define CURL_POLL_REMOVE 4 - -#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD - -#define CURL_CSELECT_IN 0x01 -#define CURL_CSELECT_OUT 0x02 -#define CURL_CSELECT_ERR 0x04 - -typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ - curl_socket_t s, /* socket */ - int what, /* see above */ - void *userp, /* private callback - pointer */ - void *socketp); /* private socket - pointer */ -/* - * Name: curl_multi_timer_callback - * - * Desc: Called by libcurl whenever the library detects a change in the - * maximum number of milliseconds the app is allowed to wait before - * curl_multi_socket() or curl_multi_perform() must be called - * (to allow libcurl's timed events to take place). - * - * Returns: The callback should return zero. - */ -typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ - long timeout_ms, /* see above */ - void *userp); /* private callback - pointer */ - -CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, - curl_socket_t s, - int ev_bitmask, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, - int *running_handles); - -#ifndef CURL_ALLOW_OLD_MULTI_SOCKET -/* This macro below was added in 7.16.3 to push users who recompile to use - the new curl_multi_socket_action() instead of the old curl_multi_socket() -*/ -#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) -#endif - -/* - * Name: curl_multi_timeout() - * - * Desc: Returns the maximum number of milliseconds the app is allowed to - * wait before curl_multi_socket() or curl_multi_perform() must be - * called (to allow libcurl's timed events to take place). - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, - long *milliseconds); - -#undef CINIT /* re-using the same name as in curl.h */ - -#ifdef CURL_ISOCPP -#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLMOPT_/**/name = type + number -#endif - -typedef enum { - /* This is the socket callback function pointer */ - CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), - - /* This is the argument passed to the socket callback */ - CINIT(SOCKETDATA, OBJECTPOINT, 2), - - /* set to 1 to enable pipelining for this multi handle */ - CINIT(PIPELINING, LONG, 3), - - /* This is the timer callback function pointer */ - CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), - - /* This is the argument passed to the timer callback */ - CINIT(TIMERDATA, OBJECTPOINT, 5), - - /* maximum number of entries in the connection cache */ - CINIT(MAXCONNECTS, LONG, 6), - - /* maximum number of (pipelining) connections to one host */ - CINIT(MAX_HOST_CONNECTIONS, LONG, 7), - - /* maximum number of requests in a pipeline */ - CINIT(MAX_PIPELINE_LENGTH, LONG, 8), - - /* a connection with a content-length longer than this - will not be considered for pipelining */ - CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), - - /* a connection with a chunk length longer than this - will not be considered for pipelining */ - CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), - - /* a list of site names(+port) that are blacklisted from - pipelining */ - CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), - - /* a list of server types that are blacklisted from - pipelining */ - CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), - - /* maximum number of open connections in total */ - CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), - - CURLMOPT_LASTENTRY /* the last unused */ -} CURLMoption; - - -/* - * Name: curl_multi_setopt() - * - * Desc: Sets options for the multi handle. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, - CURLMoption option, ...); - - -/* - * Name: curl_multi_assign() - * - * Desc: This function sets an association in the multi handle between the - * given socket and a private pointer of the application. This is - * (only) useful for curl_multi_socket uses. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, - curl_socket_t sockfd, void *sockp); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif diff --git a/src/sdk/extern/include/curl/stdcheaders.h b/src/sdk/extern/include/curl/stdcheaders.h deleted file mode 100644 index ad82ef6..0000000 --- a/src/sdk/extern/include/curl/stdcheaders.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef __STDC_HEADERS_H -#define __STDC_HEADERS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#include - -size_t fread (void *, size_t, size_t, FILE *); -size_t fwrite (const void *, size_t, size_t, FILE *); - -int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); - -#endif /* __STDC_HEADERS_H */ diff --git a/src/sdk/extern/include/curl/typecheck-gcc.h b/src/sdk/extern/include/curl/typecheck-gcc.h deleted file mode 100644 index 69d41a2..0000000 --- a/src/sdk/extern/include/curl/typecheck-gcc.h +++ /dev/null @@ -1,610 +0,0 @@ -#ifndef __CURL_TYPECHECK_GCC_H -#define __CURL_TYPECHECK_GCC_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* wraps curl_easy_setopt() with typechecking */ - -/* To add a new kind of warning, add an - * if(_curl_is_sometype_option(_curl_opt)) - * if(!_curl_is_sometype(value)) - * _curl_easy_setopt_err_sometype(); - * block and define _curl_is_sometype_option, _curl_is_sometype and - * _curl_easy_setopt_err_sometype below - * - * NOTE: We use two nested 'if' statements here instead of the && operator, in - * order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x - * when compiling with -Wlogical-op. - * - * To add an option that uses the same type as an existing option, you'll just - * need to extend the appropriate _curl_*_option macro - */ -#define curl_easy_setopt(handle, option, value) \ -__extension__ ({ \ - __typeof__ (option) _curl_opt = option; \ - if(__builtin_constant_p(_curl_opt)) { \ - if(_curl_is_long_option(_curl_opt)) \ - if(!_curl_is_long(value)) \ - _curl_easy_setopt_err_long(); \ - if(_curl_is_off_t_option(_curl_opt)) \ - if(!_curl_is_off_t(value)) \ - _curl_easy_setopt_err_curl_off_t(); \ - if(_curl_is_string_option(_curl_opt)) \ - if(!_curl_is_string(value)) \ - _curl_easy_setopt_err_string(); \ - if(_curl_is_write_cb_option(_curl_opt)) \ - if(!_curl_is_write_cb(value)) \ - _curl_easy_setopt_err_write_callback(); \ - if((_curl_opt) == CURLOPT_READFUNCTION) \ - if(!_curl_is_read_cb(value)) \ - _curl_easy_setopt_err_read_cb(); \ - if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ - if(!_curl_is_ioctl_cb(value)) \ - _curl_easy_setopt_err_ioctl_cb(); \ - if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ - if(!_curl_is_sockopt_cb(value)) \ - _curl_easy_setopt_err_sockopt_cb(); \ - if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ - if(!_curl_is_opensocket_cb(value)) \ - _curl_easy_setopt_err_opensocket_cb(); \ - if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ - if(!_curl_is_progress_cb(value)) \ - _curl_easy_setopt_err_progress_cb(); \ - if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ - if(!_curl_is_debug_cb(value)) \ - _curl_easy_setopt_err_debug_cb(); \ - if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ - if(!_curl_is_ssl_ctx_cb(value)) \ - _curl_easy_setopt_err_ssl_ctx_cb(); \ - if(_curl_is_conv_cb_option(_curl_opt)) \ - if(!_curl_is_conv_cb(value)) \ - _curl_easy_setopt_err_conv_cb(); \ - if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ - if(!_curl_is_seek_cb(value)) \ - _curl_easy_setopt_err_seek_cb(); \ - if(_curl_is_cb_data_option(_curl_opt)) \ - if(!_curl_is_cb_data(value)) \ - _curl_easy_setopt_err_cb_data(); \ - if((_curl_opt) == CURLOPT_ERRORBUFFER) \ - if(!_curl_is_error_buffer(value)) \ - _curl_easy_setopt_err_error_buffer(); \ - if((_curl_opt) == CURLOPT_STDERR) \ - if(!_curl_is_FILE(value)) \ - _curl_easy_setopt_err_FILE(); \ - if(_curl_is_postfields_option(_curl_opt)) \ - if(!_curl_is_postfields(value)) \ - _curl_easy_setopt_err_postfields(); \ - if((_curl_opt) == CURLOPT_HTTPPOST) \ - if(!_curl_is_arr((value), struct curl_httppost)) \ - _curl_easy_setopt_err_curl_httpost(); \ - if(_curl_is_slist_option(_curl_opt)) \ - if(!_curl_is_arr((value), struct curl_slist)) \ - _curl_easy_setopt_err_curl_slist(); \ - if((_curl_opt) == CURLOPT_SHARE) \ - if(!_curl_is_ptr((value), CURLSH)) \ - _curl_easy_setopt_err_CURLSH(); \ - } \ - curl_easy_setopt(handle, _curl_opt, value); \ -}) - -/* wraps curl_easy_getinfo() with typechecking */ -/* FIXME: don't allow const pointers */ -#define curl_easy_getinfo(handle, info, arg) \ -__extension__ ({ \ - __typeof__ (info) _curl_info = info; \ - if(__builtin_constant_p(_curl_info)) { \ - if(_curl_is_string_info(_curl_info)) \ - if(!_curl_is_arr((arg), char *)) \ - _curl_easy_getinfo_err_string(); \ - if(_curl_is_long_info(_curl_info)) \ - if(!_curl_is_arr((arg), long)) \ - _curl_easy_getinfo_err_long(); \ - if(_curl_is_double_info(_curl_info)) \ - if(!_curl_is_arr((arg), double)) \ - _curl_easy_getinfo_err_double(); \ - if(_curl_is_slist_info(_curl_info)) \ - if(!_curl_is_arr((arg), struct curl_slist *)) \ - _curl_easy_getinfo_err_curl_slist(); \ - } \ - curl_easy_getinfo(handle, _curl_info, arg); \ -}) - -/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(), - * for now just make sure that the functions are called with three - * arguments - */ -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) - - -/* the actual warnings, triggered by calling the _curl_easy_setopt_err* - * functions */ - -/* To define a new warning, use _CURL_WARNING(identifier, "message") */ -#define _CURL_WARNING(id, message) \ - static void __attribute__((__warning__(message))) \ - __attribute__((__unused__)) __attribute__((__noinline__)) \ - id(void) { __asm__(""); } - -_CURL_WARNING(_curl_easy_setopt_err_long, - "curl_easy_setopt expects a long argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, - "curl_easy_setopt expects a curl_off_t argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_string, - "curl_easy_setopt expects a " - "string (char* or char[]) argument for this option" - ) -_CURL_WARNING(_curl_easy_setopt_err_write_callback, - "curl_easy_setopt expects a curl_write_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_read_cb, - "curl_easy_setopt expects a curl_read_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, - "curl_easy_setopt expects a curl_ioctl_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, - "curl_easy_setopt expects a curl_sockopt_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, - "curl_easy_setopt expects a " - "curl_opensocket_callback argument for this option" - ) -_CURL_WARNING(_curl_easy_setopt_err_progress_cb, - "curl_easy_setopt expects a curl_progress_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_debug_cb, - "curl_easy_setopt expects a curl_debug_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, - "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_conv_cb, - "curl_easy_setopt expects a curl_conv_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_seek_cb, - "curl_easy_setopt expects a curl_seek_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_cb_data, - "curl_easy_setopt expects a " - "private data pointer as argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_error_buffer, - "curl_easy_setopt expects a " - "char buffer of CURL_ERROR_SIZE as argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_FILE, - "curl_easy_setopt expects a FILE* argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_postfields, - "curl_easy_setopt expects a void* or char* argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, - "curl_easy_setopt expects a struct curl_httppost* argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_slist, - "curl_easy_setopt expects a struct curl_slist* argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_CURLSH, - "curl_easy_setopt expects a CURLSH* argument for this option") - -_CURL_WARNING(_curl_easy_getinfo_err_string, - "curl_easy_getinfo expects a pointer to char * for this info") -_CURL_WARNING(_curl_easy_getinfo_err_long, - "curl_easy_getinfo expects a pointer to long for this info") -_CURL_WARNING(_curl_easy_getinfo_err_double, - "curl_easy_getinfo expects a pointer to double for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, - "curl_easy_getinfo expects a pointer to struct curl_slist * for this info") - -/* groups of curl_easy_setops options that take the same type of argument */ - -/* To add a new option to one of the groups, just add - * (option) == CURLOPT_SOMETHING - * to the or-expression. If the option takes a long or curl_off_t, you don't - * have to do anything - */ - -/* evaluates to true if option takes a long argument */ -#define _curl_is_long_option(option) \ - (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) - -#define _curl_is_off_t_option(option) \ - ((option) > CURLOPTTYPE_OFF_T) - -/* evaluates to true if option takes a char* argument */ -#define _curl_is_string_option(option) \ - ((option) == CURLOPT_URL || \ - (option) == CURLOPT_PROXY || \ - (option) == CURLOPT_INTERFACE || \ - (option) == CURLOPT_NETRC_FILE || \ - (option) == CURLOPT_USERPWD || \ - (option) == CURLOPT_USERNAME || \ - (option) == CURLOPT_PASSWORD || \ - (option) == CURLOPT_PROXYUSERPWD || \ - (option) == CURLOPT_PROXYUSERNAME || \ - (option) == CURLOPT_PROXYPASSWORD || \ - (option) == CURLOPT_NOPROXY || \ - (option) == CURLOPT_ACCEPT_ENCODING || \ - (option) == CURLOPT_REFERER || \ - (option) == CURLOPT_USERAGENT || \ - (option) == CURLOPT_COOKIE || \ - (option) == CURLOPT_COOKIEFILE || \ - (option) == CURLOPT_COOKIEJAR || \ - (option) == CURLOPT_COOKIELIST || \ - (option) == CURLOPT_FTPPORT || \ - (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ - (option) == CURLOPT_FTP_ACCOUNT || \ - (option) == CURLOPT_RANGE || \ - (option) == CURLOPT_CUSTOMREQUEST || \ - (option) == CURLOPT_SSLCERT || \ - (option) == CURLOPT_SSLCERTTYPE || \ - (option) == CURLOPT_SSLKEY || \ - (option) == CURLOPT_SSLKEYTYPE || \ - (option) == CURLOPT_KEYPASSWD || \ - (option) == CURLOPT_SSLENGINE || \ - (option) == CURLOPT_CAINFO || \ - (option) == CURLOPT_CAPATH || \ - (option) == CURLOPT_RANDOM_FILE || \ - (option) == CURLOPT_EGDSOCKET || \ - (option) == CURLOPT_SSL_CIPHER_LIST || \ - (option) == CURLOPT_KRBLEVEL || \ - (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ - (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ - (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ - (option) == CURLOPT_CRLFILE || \ - (option) == CURLOPT_ISSUERCERT || \ - (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ - (option) == CURLOPT_SSH_KNOWNHOSTS || \ - (option) == CURLOPT_MAIL_FROM || \ - (option) == CURLOPT_RTSP_SESSION_ID || \ - (option) == CURLOPT_RTSP_STREAM_URI || \ - (option) == CURLOPT_RTSP_TRANSPORT || \ - (option) == CURLOPT_XOAUTH2_BEARER || \ - (option) == CURLOPT_DNS_SERVERS || \ - (option) == CURLOPT_DNS_INTERFACE || \ - (option) == CURLOPT_DNS_LOCAL_IP4 || \ - (option) == CURLOPT_DNS_LOCAL_IP6 || \ - (option) == CURLOPT_LOGIN_OPTIONS || \ - 0) - -/* evaluates to true if option takes a curl_write_callback argument */ -#define _curl_is_write_cb_option(option) \ - ((option) == CURLOPT_HEADERFUNCTION || \ - (option) == CURLOPT_WRITEFUNCTION) - -/* evaluates to true if option takes a curl_conv_callback argument */ -#define _curl_is_conv_cb_option(option) \ - ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) - -/* evaluates to true if option takes a data argument to pass to a callback */ -#define _curl_is_cb_data_option(option) \ - ((option) == CURLOPT_WRITEDATA || \ - (option) == CURLOPT_READDATA || \ - (option) == CURLOPT_IOCTLDATA || \ - (option) == CURLOPT_SOCKOPTDATA || \ - (option) == CURLOPT_OPENSOCKETDATA || \ - (option) == CURLOPT_PROGRESSDATA || \ - (option) == CURLOPT_HEADERDATA || \ - (option) == CURLOPT_DEBUGDATA || \ - (option) == CURLOPT_SSL_CTX_DATA || \ - (option) == CURLOPT_SEEKDATA || \ - (option) == CURLOPT_PRIVATE || \ - (option) == CURLOPT_SSH_KEYDATA || \ - (option) == CURLOPT_INTERLEAVEDATA || \ - (option) == CURLOPT_CHUNK_DATA || \ - (option) == CURLOPT_FNMATCH_DATA || \ - 0) - -/* evaluates to true if option takes a POST data argument (void* or char*) */ -#define _curl_is_postfields_option(option) \ - ((option) == CURLOPT_POSTFIELDS || \ - (option) == CURLOPT_COPYPOSTFIELDS || \ - 0) - -/* evaluates to true if option takes a struct curl_slist * argument */ -#define _curl_is_slist_option(option) \ - ((option) == CURLOPT_HTTPHEADER || \ - (option) == CURLOPT_HTTP200ALIASES || \ - (option) == CURLOPT_QUOTE || \ - (option) == CURLOPT_POSTQUOTE || \ - (option) == CURLOPT_PREQUOTE || \ - (option) == CURLOPT_TELNETOPTIONS || \ - (option) == CURLOPT_MAIL_RCPT || \ - 0) - -/* groups of curl_easy_getinfo infos that take the same type of argument */ - -/* evaluates to true if info expects a pointer to char * argument */ -#define _curl_is_string_info(info) \ - (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) - -/* evaluates to true if info expects a pointer to long argument */ -#define _curl_is_long_info(info) \ - (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) - -/* evaluates to true if info expects a pointer to double argument */ -#define _curl_is_double_info(info) \ - (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) - -/* true if info expects a pointer to struct curl_slist * argument */ -#define _curl_is_slist_info(info) \ - (CURLINFO_SLIST < (info)) - - -/* typecheck helpers -- check whether given expression has requested type*/ - -/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros, - * otherwise define a new macro. Search for __builtin_types_compatible_p - * in the GCC manual. - * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is - * the actual expression passed to the curl_easy_setopt macro. This - * means that you can only apply the sizeof and __typeof__ operators, no - * == or whatsoever. - */ - -/* XXX: should evaluate to true iff expr is a pointer */ -#define _curl_is_any_ptr(expr) \ - (sizeof(expr) == sizeof(void*)) - -/* evaluates to true if expr is NULL */ -/* XXX: must not evaluate expr, so this check is not accurate */ -#define _curl_is_NULL(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) - -/* evaluates to true if expr is type*, const type* or NULL */ -#define _curl_is_ptr(expr, type) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), type *) || \ - __builtin_types_compatible_p(__typeof__(expr), const type *)) - -/* evaluates to true if expr is one of type[], type*, NULL or const type* */ -#define _curl_is_arr(expr, type) \ - (_curl_is_ptr((expr), type) || \ - __builtin_types_compatible_p(__typeof__(expr), type [])) - -/* evaluates to true if expr is a string */ -#define _curl_is_string(expr) \ - (_curl_is_arr((expr), char) || \ - _curl_is_arr((expr), signed char) || \ - _curl_is_arr((expr), unsigned char)) - -/* evaluates to true if expr is a long (no matter the signedness) - * XXX: for now, int is also accepted (and therefore short and char, which - * are promoted to int when passed to a variadic function) */ -#define _curl_is_long(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), long) || \ - __builtin_types_compatible_p(__typeof__(expr), signed long) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ - __builtin_types_compatible_p(__typeof__(expr), int) || \ - __builtin_types_compatible_p(__typeof__(expr), signed int) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ - __builtin_types_compatible_p(__typeof__(expr), short) || \ - __builtin_types_compatible_p(__typeof__(expr), signed short) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ - __builtin_types_compatible_p(__typeof__(expr), char) || \ - __builtin_types_compatible_p(__typeof__(expr), signed char) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned char)) - -/* evaluates to true if expr is of type curl_off_t */ -#define _curl_is_off_t(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) - -/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ -/* XXX: also check size of an char[] array? */ -#define _curl_is_error_buffer(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), char *) || \ - __builtin_types_compatible_p(__typeof__(expr), char[])) - -/* evaluates to true if expr is of type (const) void* or (const) FILE* */ -#if 0 -#define _curl_is_cb_data(expr) \ - (_curl_is_ptr((expr), void) || \ - _curl_is_ptr((expr), FILE)) -#else /* be less strict */ -#define _curl_is_cb_data(expr) \ - _curl_is_any_ptr(expr) -#endif - -/* evaluates to true if expr is of type FILE* */ -#define _curl_is_FILE(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), FILE *)) - -/* evaluates to true if expr can be passed as POST data (void* or char*) */ -#define _curl_is_postfields(expr) \ - (_curl_is_ptr((expr), void) || \ - _curl_is_arr((expr), char)) - -/* FIXME: the whole callback checking is messy... - * The idea is to tolerate char vs. void and const vs. not const - * pointers in arguments at least - */ -/* helper: __builtin_types_compatible_p distinguishes between functions and - * function pointers, hide it */ -#define _curl_callback_compatible(func, type) \ - (__builtin_types_compatible_p(__typeof__(func), type) || \ - __builtin_types_compatible_p(__typeof__(func), type*)) - -/* evaluates to true if expr is of type curl_read_callback or "similar" */ -#define _curl_is_read_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \ - _curl_callback_compatible((expr), _curl_read_callback1) || \ - _curl_callback_compatible((expr), _curl_read_callback2) || \ - _curl_callback_compatible((expr), _curl_read_callback3) || \ - _curl_callback_compatible((expr), _curl_read_callback4) || \ - _curl_callback_compatible((expr), _curl_read_callback5) || \ - _curl_callback_compatible((expr), _curl_read_callback6)) -typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*); -typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*); -typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*); -typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*); -typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*); -typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*); - -/* evaluates to true if expr is of type curl_write_callback or "similar" */ -#define _curl_is_write_cb(expr) \ - (_curl_is_read_cb(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \ - _curl_callback_compatible((expr), _curl_write_callback1) || \ - _curl_callback_compatible((expr), _curl_write_callback2) || \ - _curl_callback_compatible((expr), _curl_write_callback3) || \ - _curl_callback_compatible((expr), _curl_write_callback4) || \ - _curl_callback_compatible((expr), _curl_write_callback5) || \ - _curl_callback_compatible((expr), _curl_write_callback6)) -typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*); -typedef size_t (_curl_write_callback2)(const char *, size_t, size_t, - const void*); -typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*); -typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*); -typedef size_t (_curl_write_callback5)(const void *, size_t, size_t, - const void*); -typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*); - -/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ -#define _curl_is_ioctl_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback1) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback2) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback3) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback4)) -typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*); -typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*); -typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*); -typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*); - -/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ -#define _curl_is_sockopt_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \ - _curl_callback_compatible((expr), _curl_sockopt_callback1) || \ - _curl_callback_compatible((expr), _curl_sockopt_callback2)) -typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); -typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t, - curlsocktype); - -/* evaluates to true if expr is of type curl_opensocket_callback or - "similar" */ -#define _curl_is_opensocket_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\ - _curl_callback_compatible((expr), _curl_opensocket_callback1) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback2) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback3) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback4)) -typedef curl_socket_t (_curl_opensocket_callback1) - (void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback2) - (void *, curlsocktype, const struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback3) - (const void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback4) - (const void *, curlsocktype, const struct curl_sockaddr *); - -/* evaluates to true if expr is of type curl_progress_callback or "similar" */ -#define _curl_is_progress_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \ - _curl_callback_compatible((expr), _curl_progress_callback1) || \ - _curl_callback_compatible((expr), _curl_progress_callback2)) -typedef int (_curl_progress_callback1)(void *, - double, double, double, double); -typedef int (_curl_progress_callback2)(const void *, - double, double, double, double); - -/* evaluates to true if expr is of type curl_debug_callback or "similar" */ -#define _curl_is_debug_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \ - _curl_callback_compatible((expr), _curl_debug_callback1) || \ - _curl_callback_compatible((expr), _curl_debug_callback2) || \ - _curl_callback_compatible((expr), _curl_debug_callback3) || \ - _curl_callback_compatible((expr), _curl_debug_callback4) || \ - _curl_callback_compatible((expr), _curl_debug_callback5) || \ - _curl_callback_compatible((expr), _curl_debug_callback6) || \ - _curl_callback_compatible((expr), _curl_debug_callback7) || \ - _curl_callback_compatible((expr), _curl_debug_callback8)) -typedef int (_curl_debug_callback1) (CURL *, - curl_infotype, char *, size_t, void *); -typedef int (_curl_debug_callback2) (CURL *, - curl_infotype, char *, size_t, const void *); -typedef int (_curl_debug_callback3) (CURL *, - curl_infotype, const char *, size_t, void *); -typedef int (_curl_debug_callback4) (CURL *, - curl_infotype, const char *, size_t, const void *); -typedef int (_curl_debug_callback5) (CURL *, - curl_infotype, unsigned char *, size_t, void *); -typedef int (_curl_debug_callback6) (CURL *, - curl_infotype, unsigned char *, size_t, const void *); -typedef int (_curl_debug_callback7) (CURL *, - curl_infotype, const unsigned char *, size_t, void *); -typedef int (_curl_debug_callback8) (CURL *, - curl_infotype, const unsigned char *, size_t, const void *); - -/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ -/* this is getting even messier... */ -#define _curl_is_ssl_ctx_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) -typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *); -typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *); -typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *); -typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *); -#ifdef HEADER_SSL_H -/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX - * this will of course break if we're included before OpenSSL headers... - */ -typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); -typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); -typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); -typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, - const void *); -#else -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; -#endif - -/* evaluates to true if expr is of type curl_conv_callback or "similar" */ -#define _curl_is_conv_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \ - _curl_callback_compatible((expr), _curl_conv_callback1) || \ - _curl_callback_compatible((expr), _curl_conv_callback2) || \ - _curl_callback_compatible((expr), _curl_conv_callback3) || \ - _curl_callback_compatible((expr), _curl_conv_callback4)) -typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); -typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); -typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); -typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); - -/* evaluates to true if expr is of type curl_seek_callback or "similar" */ -#define _curl_is_seek_cb(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \ - _curl_callback_compatible((expr), _curl_seek_callback1) || \ - _curl_callback_compatible((expr), _curl_seek_callback2)) -typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); -typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); - - -#endif /* __CURL_TYPECHECK_GCC_H */ diff --git a/src/sdk/extern/include/iconv.h b/src/sdk/extern/include/iconv.h deleted file mode 100644 index 52efb05..0000000 --- a/src/sdk/extern/include/iconv.h +++ /dev/null @@ -1,242 +0,0 @@ -/* Copyright (C) 1999-2003, 2005-2006, 2008-2011 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - The GNU LIBICONV Library is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU LIBICONV Library; see the file COPYING.LIB. - If not, write to the Free Software Foundation, Inc., 51 Franklin Street, - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* When installed, this file is called "iconv.h". */ - -#ifndef _LIBICONV_H -#define _LIBICONV_H - -#define _LIBICONV_VERSION 0x010E /* version number: (major<<8) + minor */ -extern int _libiconv_version; /* Likewise */ - -/* We would like to #include any system header file which could define - iconv_t, 1. in order to eliminate the risk that the user gets compilation - errors because some other system header file includes /usr/include/iconv.h - which defines iconv_t or declares iconv after this file, 2. when compiling - for LIBICONV_PLUG, we need the proper iconv_t type in order to produce - binary compatible code. - But gcc's #include_next is not portable. Thus, once libiconv's iconv.h - has been installed in /usr/local/include, there is no way any more to - include the original /usr/include/iconv.h. We simply have to get away - without it. - Ad 1. The risk that a system header file does - #include "iconv.h" or #include_next "iconv.h" - is small. They all do #include . - Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It - has to be a scalar type because (iconv_t)(-1) is a possible return value - from iconv_open().) */ - -/* Define iconv_t ourselves. */ -#undef iconv_t -#define iconv_t libiconv_t -typedef void* iconv_t; - -/* Get size_t declaration. - Get wchar_t declaration if it exists. */ -#include - -/* Get errno declaration and values. */ -#include -/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, - have EILSEQ in a different header. On these systems, define EILSEQ - ourselves. */ -#ifndef EILSEQ -#define EILSEQ -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Allocates descriptor for code conversion from encoding ‘fromcode’ to - encoding ‘tocode’. */ -#ifndef LIBICONV_PLUG -#define iconv_open libiconv_open -#endif -extern iconv_t iconv_open (const char* tocode, const char* fromcode); - -/* Converts, using conversion descriptor ‘cd’, at most ‘*inbytesleft’ bytes - starting at ‘*inbuf’, writing at most ‘*outbytesleft’ bytes starting at - ‘*outbuf’. - Decrements ‘*inbytesleft’ and increments ‘*inbuf’ by the same amount. - Decrements ‘*outbytesleft’ and increments ‘*outbuf’ by the same amount. */ -#ifndef LIBICONV_PLUG -#define iconv libiconv -#endif -extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); - -/* Frees resources allocated for conversion descriptor ‘cd’. */ -#ifndef LIBICONV_PLUG -#define iconv_close libiconv_close -#endif -extern int iconv_close (iconv_t cd); - - -#ifdef __cplusplus -} -#endif - - -#ifndef LIBICONV_PLUG - -/* Nonstandard extensions. */ - -#if 1 -#if 0 -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be - included before . */ -#include -#include -#include -#endif -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* A type that holds all memory needed by a conversion descriptor. - A pointer to such an object can be used as an iconv_t. */ -typedef struct { - void* dummy1[28]; -#if 1 - mbstate_t dummy2; -#endif -} iconv_allocation_t; - -/* Allocates descriptor for code conversion from encoding ‘fromcode’ to - encoding ‘tocode’ into preallocated memory. Returns an error indicator - (0 or -1 with errno set). */ -#define iconv_open_into libiconv_open_into -extern int iconv_open_into (const char* tocode, const char* fromcode, - iconv_allocation_t* resultp); - -/* Control of attributes. */ -#define iconvctl libiconvctl -extern int iconvctl (iconv_t cd, int request, void* argument); - -/* Hook performed after every successful conversion of a Unicode character. */ -typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data); -/* Hook performed after every successful conversion of a wide character. */ -typedef void (*iconv_wide_char_hook) (wchar_t wc, void* data); -/* Set of hooks. */ -struct iconv_hooks { - iconv_unicode_char_hook uc_hook; - iconv_wide_char_hook wc_hook; - void* data; -}; - -/* Fallback function. Invoked when a small number of bytes could not be - converted to a Unicode character. This function should process all - bytes from inbuf and may produce replacement Unicode characters by calling - the write_replacement callback repeatedly. */ -typedef void (*iconv_unicode_mb_to_uc_fallback) - (const char* inbuf, size_t inbufsize, - void (*write_replacement) (const unsigned int *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -/* Fallback function. Invoked when a Unicode character could not be converted - to the target encoding. This function should process the character and - may produce replacement bytes (in the target encoding) by calling the - write_replacement callback repeatedly. */ -typedef void (*iconv_unicode_uc_to_mb_fallback) - (unsigned int code, - void (*write_replacement) (const char *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -#if 1 -/* Fallback function. Invoked when a number of bytes could not be converted to - a wide character. This function should process all bytes from inbuf and may - produce replacement wide characters by calling the write_replacement - callback repeatedly. */ -typedef void (*iconv_wchar_mb_to_wc_fallback) - (const char* inbuf, size_t inbufsize, - void (*write_replacement) (const wchar_t *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -/* Fallback function. Invoked when a wide character could not be converted to - the target encoding. This function should process the character and may - produce replacement bytes (in the target encoding) by calling the - write_replacement callback repeatedly. */ -typedef void (*iconv_wchar_wc_to_mb_fallback) - (wchar_t code, - void (*write_replacement) (const char *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -#else -/* If the wchar_t type does not exist, these two fallback functions are never - invoked. Their argument list therefore does not matter. */ -typedef void (*iconv_wchar_mb_to_wc_fallback) (); -typedef void (*iconv_wchar_wc_to_mb_fallback) (); -#endif -/* Set of fallbacks. */ -struct iconv_fallbacks { - iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback; - iconv_unicode_uc_to_mb_fallback uc_to_mb_fallback; - iconv_wchar_mb_to_wc_fallback mb_to_wc_fallback; - iconv_wchar_wc_to_mb_fallback wc_to_mb_fallback; - void* data; -}; - -/* Requests for iconvctl. */ -#define ICONV_TRIVIALP 0 /* int *argument */ -#define ICONV_GET_TRANSLITERATE 1 /* int *argument */ -#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */ -#define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */ -#define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */ -#define ICONV_SET_HOOKS 5 /* const struct iconv_hooks *argument */ -#define ICONV_SET_FALLBACKS 6 /* const struct iconv_fallbacks *argument */ - -/* Listing of locale independent encodings. */ -#define iconvlist libiconvlist -extern void iconvlist (int (*do_one) (unsigned int namescount, - const char * const * names, - void* data), - void* data); - -/* Canonicalize an encoding name. - The result is either a canonical encoding name, or name itself. */ -extern const char * iconv_canonicalize (const char * name); - -/* Support for relocatable packages. */ - -/* Sets the original and the current installation prefix of the package. - Relocation simply replaces a pathname starting with the original prefix - by the corresponding pathname with the current prefix instead. Both - prefixes should be directory names without trailing slash (i.e. use "" - instead of "/"). */ -extern void libiconv_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - -#ifdef __cplusplus -} -#endif - -#endif - - -#endif /* _LIBICONV_H */ diff --git a/src/sdk/extern/include/libcharset.h b/src/sdk/extern/include/libcharset.h deleted file mode 100644 index 61b0928..0000000 --- a/src/sdk/extern/include/libcharset.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - The GNU CHARSET Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU CHARSET Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with the GNU CHARSET Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 51 Franklin Street, - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _LIBCHARSET_H -#define _LIBCHARSET_H - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Support for relocatable packages. */ - -/* Sets the original and the current installation prefix of the package. - Relocation simply replaces a pathname starting with the original prefix - by the corresponding pathname with the current prefix instead. Both - prefixes should be directory names without trailing slash (i.e. use "" - instead of "/"). */ -extern void libcharset_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LIBCHARSET_H */ diff --git a/src/sdk/extern/include/localcharset.h b/src/sdk/extern/include/localcharset.h deleted file mode 100644 index 129e4a4..0000000 --- a/src/sdk/extern/include/localcharset.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ - -#ifndef _LOCALCHARSET_H -#define _LOCALCHARSET_H - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern const char * locale_charset (void); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/src/sdk/extern/include/openssl/aes.h b/src/sdk/extern/include/openssl/aes.h deleted file mode 100644 index 031abf0..0000000 --- a/src/sdk/extern/include/openssl/aes.h +++ /dev/null @@ -1,147 +0,0 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ -/* ==================================================================== - * 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. - * ==================================================================== - * - */ - -#ifndef HEADER_AES_H -#define HEADER_AES_H - -#include - -#ifdef OPENSSL_NO_AES -#error AES is disabled. -#endif - -#include - -#define AES_ENCRYPT 1 -#define AES_DECRYPT 0 - -/* Because array size can't be a const in C, the following two are macros. - Both sizes are in bytes. */ -#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 - unsigned long rd_key[4 *(AES_MAXNR + 1)]; -#else - unsigned int rd_key[4 *(AES_MAXNR + 1)]; -#endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -const char *AES_options(void); - -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -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, - const AES_KEY *key); - -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -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, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - const AES_KEY *key2, const unsigned char *ivec, - const int enc); - -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); - - -#ifdef __cplusplus -} -#endif - -#endif /* !HEADER_AES_H */ diff --git a/src/sdk/extern/include/openssl/asn1.h b/src/sdk/extern/include/openssl/asn1.h deleted file mode 100644 index 220a0c8..0000000 --- a/src/sdk/extern/include/openssl/asn1.h +++ /dev/null @@ -1,1404 +0,0 @@ -/* crypto/asn1/asn1.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_H -#define HEADER_ASN1_H - -#include -#include -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include - -#include - -#include -#ifndef OPENSSL_NO_DEPRECATED -#include -#endif - -#ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define V_ASN1_UNIVERSAL 0x00 -#define V_ASN1_APPLICATION 0x40 -#define V_ASN1_CONTEXT_SPECIFIC 0x80 -#define V_ASN1_PRIVATE 0xc0 - -#define V_ASN1_CONSTRUCTED 0x20 -#define V_ASN1_PRIMITIVE_TAG 0x1f -#define V_ASN1_PRIMATIVE_TAG 0x1f - -#define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ -#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 -#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 -#define V_ASN1_OBJECT 6 -#define V_ASN1_OBJECT_DESCRIPTOR 7 -#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 -#define V_ASN1_NUMERICSTRING 18 /**/ -#define V_ASN1_PRINTABLESTRING 19 -#define V_ASN1_T61STRING 20 -#define V_ASN1_TELETEXSTRING 20 /* alias */ -#define V_ASN1_VIDEOTEXSTRING 21 /**/ -#define V_ASN1_IA5STRING 22 -#define V_ASN1_UTCTIME 23 -#define V_ASN1_GENERALIZEDTIME 24 /**/ -#define V_ASN1_GRAPHICSTRING 25 /**/ -#define V_ASN1_ISO64STRING 26 /**/ -#define V_ASN1_VISIBLESTRING 26 /* alias */ -#define V_ASN1_GENERALSTRING 27 /**/ -#define V_ASN1_UNIVERSALSTRING 28 /**/ -#define V_ASN1_BMPSTRING 30 - -/* For use with d2i_ASN1_type_bytes() */ -#define B_ASN1_NUMERICSTRING 0x0001 -#define B_ASN1_PRINTABLESTRING 0x0002 -#define B_ASN1_T61STRING 0x0004 -#define B_ASN1_TELETEXSTRING 0x0004 -#define B_ASN1_VIDEOTEXSTRING 0x0008 -#define B_ASN1_IA5STRING 0x0010 -#define B_ASN1_GRAPHICSTRING 0x0020 -#define B_ASN1_ISO64STRING 0x0040 -#define B_ASN1_VISIBLESTRING 0x0040 -#define B_ASN1_GENERALSTRING 0x0080 -#define B_ASN1_UNIVERSALSTRING 0x0100 -#define B_ASN1_OCTET_STRING 0x0200 -#define B_ASN1_BIT_STRING 0x0400 -#define B_ASN1_BMPSTRING 0x0800 -#define B_ASN1_UNKNOWN 0x1000 -#define B_ASN1_UTF8STRING 0x2000 -#define B_ASN1_UTCTIME 0x4000 -#define B_ASN1_GENERALIZEDTIME 0x8000 -#define B_ASN1_SEQUENCE 0x10000 - -/* For use with ASN1_mbstring_copy() */ -#define MBSTRING_FLAG 0x1000 -#define MBSTRING_UTF8 (MBSTRING_FLAG) -#define MBSTRING_ASC (MBSTRING_FLAG|1) -#define MBSTRING_BMP (MBSTRING_FLAG|2) -#define MBSTRING_UNIV (MBSTRING_FLAG|4) - -#define SMIME_OLDMIME 0x400 -#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 */ -typedef 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 */ - } ASN1_OBJECT; - -#define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ -/* This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should - * be inserted in the memory buffer - */ -#define ASN1_STRING_FLAG_NDEF 0x010 - -/* This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been - * accessed. The flag will be reset when content has been written to it. - */ - -#define ASN1_STRING_FLAG_CONT 0x020 -/* This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -#define ASN1_STRING_FLAG_MSTRING 0x040 -/* This is the base type that holds just about everything :-) */ -struct asn1_string_st - { - int length; - int type; - unsigned char *data; - /* The value of the following field depends on the type being - * held. It is mostly being used for BIT_STRING so if the - * input data has a non-zero 'unused bits' value, it will be - * handled correctly */ - long flags; - }; - -/* ASN1_ENCODING structure: this is used to save the received - * encoding of an ASN1 type. This is useful to get round - * problems with invalid encodings which can break signatures. - */ - -typedef struct ASN1_ENCODING_st - { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ - } ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -#define ASN1_LONG_UNDEF 0x7fffffffL - -#define STABLE_FLAGS_MALLOC 0x01 -#define STABLE_NO_MASK 0x02 -#define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -#define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -typedef struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -} ASN1_STRING_TABLE; - -DECLARE_STACK_OF(ASN1_STRING_TABLE) - -/* size limits: this stuff is taken straight from RFC2459 */ - -#define ub_name 32768 -#define ub_common_name 64 -#define ub_locality_name 128 -#define ub_state_name 128 -#define ub_organization_name 64 -#define ub_organization_unit_name 64 -#define ub_title 64 -#define ub_email_address 128 - -/* Declarations for template structures: for full definitions - * see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro in in asn1t.h */ - -#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) - -#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) - -#define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) - -#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) - -#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(itname) - -#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(const type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(name) - -#define DECLARE_ASN1_NDEF_FUNCTION(name) \ - int i2d_##name##_NDEF(name *a, unsigned char **out); - -#define DECLARE_ASN1_FUNCTIONS_const(name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) - -#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - type *name##_new(void); \ - void name##_free(type *a); - -#define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) - -#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx); - -#define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -#define I2D_OF(type) int (*)(type *,unsigned char **) -#define I2D_OF_const(type) int (*)(const type *,unsigned char **) - -#define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -#define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -#define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -#define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -#define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) -#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -TYPEDEF_D2I2D_OF(void); - -/* The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - -#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM ASN1_ITEM_EXP; - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -#define ASN1_ITEM_ptr(iptr) (iptr) - -/* Macro to include ASN1_ITEM pointer from base type */ -#define ASN1_ITEM_ref(iptr) (&(iptr##_it)) - -#define ASN1_ITEM_rptr(ref) (&(ref##_it)) - -#define DECLARE_ASN1_ITEM(name) \ - OPENSSL_EXTERN const ASN1_ITEM name##_it; - -#else - -/* Platforms that can't easily handle shared global variables are declared - * as functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM * ASN1_ITEM_EXP(void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -#define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -#define ASN1_ITEM_ref(iptr) (iptr##_it) - -#define ASN1_ITEM_rptr(ref) (ref##_it()) - -#define DECLARE_ASN1_ITEM(name) \ - const ASN1_ITEM * name##_it(void); - -#endif - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* These determine which characters to escape: - * RFC2253 special characters, control characters and - * MSB set characters - */ - -#define ASN1_STRFLGS_ESC_2253 1 -#define ASN1_STRFLGS_ESC_CTRL 2 -#define ASN1_STRFLGS_ESC_MSB 4 - - -/* This flag determines how we do escaping: normally - * RC2253 backslash only, set this to use backslash and - * quote. - */ - -#define ASN1_STRFLGS_ESC_QUOTE 8 - - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -#define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -#define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -#define CHARTYPE_LAST_ESC_2253 0x40 - -/* NB the internal flags are safely reused below by flags - * handled at the top level. - */ - -/* If this is set we convert all character strings - * to UTF8 first - */ - -#define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* If this is set we don't attempt to interpret content: - * just assume all strings are 1 byte per character. This - * will produce some pretty odd looking output! - */ - -#define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -#define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* This determines which strings to display and which to - * 'dump' (hex dump of content octets or DER encoding). We can - * only dump non character strings or everything. If we - * don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to - * the usual escaping options. - */ - -#define ASN1_STRFLGS_DUMP_ALL 0x80 -#define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* These determine what 'dumping' does, we can dump the - * content octets or the DER encoding: both use the - * RFC2253 #XXXXX notation. - */ - -#define ASN1_STRFLGS_DUMP_DER 0x200 - -/* All the string flags consistent with RFC2253, - * escaping control characters isn't essential in - * RFC2253 but it is advisable anyway. - */ - -#define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - -DECLARE_STACK_OF(ASN1_INTEGER) -DECLARE_ASN1_SET_OF(ASN1_INTEGER) - -DECLARE_STACK_OF(ASN1_GENERALSTRING) - -typedef struct asn1_type_st - { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING * asn1_string; - ASN1_OBJECT * object; - ASN1_INTEGER * integer; - ASN1_ENUMERATED * enumerated; - ASN1_BIT_STRING * bit_string; - ASN1_OCTET_STRING * octet_string; - ASN1_PRINTABLESTRING * printablestring; - ASN1_T61STRING * t61string; - ASN1_IA5STRING * ia5string; - ASN1_GENERALSTRING * generalstring; - ASN1_BMPSTRING * bmpstring; - ASN1_UNIVERSALSTRING * universalstring; - ASN1_UTCTIME * utctime; - ASN1_GENERALIZEDTIME * generalizedtime; - ASN1_VISIBLESTRING * visiblestring; - ASN1_UTF8STRING * utf8string; - /* set and sequence are left complete and still - * contain the set or sequence bytes */ - ASN1_STRING * set; - ASN1_STRING * sequence; - ASN1_VALUE * asn1_value; - } value; - } ASN1_TYPE; - -DECLARE_STACK_OF(ASN1_TYPE) -DECLARE_ASN1_SET_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; - const char *lname; - 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 - -#define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -#define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -#define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - 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); -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(ASN1_TYPE *a, ASN1_TYPE *b); - -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); -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) - -ASN1_STRING * ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -ASN1_STRING * ASN1_STRING_dup(const ASN1_STRING *a); -ASN1_STRING * ASN1_STRING_type_new(int type ); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* Since this is used to store all sorts of things, via macros, for now, make - its data void * */ -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); - -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); - -#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, - 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); -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t); -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(ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, - time_t t, int offset_day, long offset_sec); -int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len); - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -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_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 a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size); -int i2a_ASN1_ENUMERATED(BIO *bp, 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 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 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_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_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); - -/* 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, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p,long len); -int ASN1_const_check_infinite_end(const unsigned char **p,long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); - -#define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(type, x))) - -#define ASN1_dup_of_const(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, void *x); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -#define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -#define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -#ifndef OPENSSL_NO_FP_API -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) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x); - -#define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -#define ASN1_i2d_fp_of_const(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ - out, \ - 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); -#endif - -int ASN1_STRING_to_UTF8(unsigned char **out, 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) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x); - -#define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -#define ASN1_i2d_bio_of_const(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); -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_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) - -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_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(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)) - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it); -int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); - -ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -#define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -#define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -#define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -#define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -#define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -#define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -#define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -#define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -#define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -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); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(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); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(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); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -BIO_METHOD *BIO_f_asn1(void); - -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, - const ASN1_ITEM *it); -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, - const ASN1_ITEM *it); -ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); -int SMIME_crlf_copy(BIO *in, BIO *out, int flags); -int SMIME_text(BIO *in, BIO *out); - -/* 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_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_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_OBJECT 114 -#define ASN1_F_ASN1_HEADER_NEW 115 -#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_I2D_BIO 192 -#define ASN1_F_ASN1_ITEM_I2D_FP 193 -#define ASN1_F_ASN1_ITEM_PACK 198 -#define ASN1_F_ASN1_ITEM_SIGN 195 -#define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -#define ASN1_F_ASN1_ITEM_UNPACK 199 -#define ASN1_F_ASN1_ITEM_VERIFY 197 -#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_SIGN 128 -#define ASN1_F_ASN1_STR2TYPE 179 -#define ASN1_F_ASN1_STRING_SET 186 -#define ASN1_F_ASN1_STRING_TABLE_ADD 129 -#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_C2I_ASN1_BIT_STRING 189 -#define ASN1_F_C2I_ASN1_INTEGER 194 -#define ASN1_F_C2I_ASN1_OBJECT 196 -#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_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_PBE_SET 202 -#define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -#define ASN1_F_PKCS5_PBKDF2_SET 219 -#define ASN1_F_SMIME_READ_ASN1 212 -#define ASN1_F_SMIME_TEXT 213 -#define ASN1_F_X509_CINF_NEW 168 -#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. */ -#define ASN1_R_ADDING_OBJECT 171 -#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 -#define ASN1_R_BUFFER_TOO_SMALL 107 -#define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -#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 -#define ASN1_R_FIRST_NUM_TOO_LARGE 122 -#define ASN1_R_HEADER_TOO_LONG 123 -#define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -#define ASN1_R_ILLEGAL_BOOLEAN 176 -#define ASN1_R_ILLEGAL_CHARACTERS 124 -#define ASN1_R_ILLEGAL_FORMAT 177 -#define ASN1_R_ILLEGAL_HEX 178 -#define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -#define ASN1_R_ILLEGAL_INTEGER 180 -#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_TAGGED_ANY 127 -#define ASN1_R_ILLEGAL_TIME_VALUE 184 -#define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -#define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -#define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -#define ASN1_R_INVALID_DIGIT 130 -#define ASN1_R_INVALID_MIME_TYPE 205 -#define ASN1_R_INVALID_MODIFIER 186 -#define ASN1_R_INVALID_NUMBER 187 -#define ASN1_R_INVALID_OBJECT_ENCODING 216 -#define ASN1_R_INVALID_SEPARATOR 131 -#define ASN1_R_INVALID_TIME_FORMAT 132 -#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_LIST_ERROR 188 -#define ASN1_R_MIME_NO_CONTENT_TYPE 206 -#define ASN1_R_MIME_PARSE_ERROR 207 -#define ASN1_R_MIME_SIG_PARSE_ERROR 208 -#define ASN1_R_MISSING_EOC 137 -#define ASN1_R_MISSING_SECOND_NUMBER 138 -#define ASN1_R_MISSING_VALUE 189 -#define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -#define ASN1_R_MSTRING_WRONG_TAG 140 -#define ASN1_R_NESTED_ASN1_STRING 197 -#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 -#define ASN1_R_NO_SIG_CONTENT_TYPE 212 -#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 -#define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -#define ASN1_R_SHORT_LINE 150 -#define ASN1_R_SIG_INVALID_MIME_TYPE 213 -#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_LONG 155 -#define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -#define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 -#define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158 -#define ASN1_R_UNEXPECTED_EOC 159 -#define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -#define ASN1_R_UNKNOWN_FORMAT 160 -#define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -#define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -#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_PUBLIC_KEY_TYPE 200 -#define ASN1_R_WRONG_TAG 168 -#define ASN1_R_WRONG_TYPE 169 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/asn1_mac.h b/src/sdk/extern/include/openssl/asn1_mac.h deleted file mode 100644 index 87bd0e9..0000000 --- a/src/sdk/extern/include/openssl/asn1_mac.h +++ /dev/null @@ -1,578 +0,0 @@ -/* 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 */ -#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 diff --git a/src/sdk/extern/include/openssl/asn1t.h b/src/sdk/extern/include/openssl/asn1t.h deleted file mode 100644 index d230e4b..0000000 --- a/src/sdk/extern/include/openssl/asn1t.h +++ /dev/null @@ -1,960 +0,0 @@ -/* 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). - * - */ -#ifndef HEADER_ASN1T_H -#define HEADER_ASN1T_H - -#include -#include -#include - -#ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -#endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -#define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) - - -/* Macros for start and end of ASN1_ITEM definition */ - -#define ASN1_ITEM_start(itname) \ - OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { - -#define ASN1_ITEM_end(itname) \ - }; - -#else - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -#define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr())) - - -/* Macros for start and end of ASN1_ITEM definition */ - -#define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -#define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -#endif - - -/* Macros to aid ASN1 template writing */ - -#define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -#define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - 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 */ - -/* This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -#define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -#define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -#define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - 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) - -#define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -#define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_SEQUENCE(tname) - -#define ASN1_BROKEN_SEQUENCE(tname) \ - 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}; \ - ASN1_SEQUENCE(tname) - -#define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ - ASN1_SEQUENCE(tname) - -#define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - 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 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 ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - 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) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - - -/* This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -#define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -#define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_CHOICE(tname) - -#define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -#define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -#define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - 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) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -#define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -#define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (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) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | ex, tag, stname, field, type) - -#define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | ex, tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -#define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -#define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -#else -#define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -#define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } -#endif -/* Plain simple type */ -#define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) - -/* OPTIONAL simple type */ -#define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -#define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) - -/* IMPLICIT tagged OPTIONAL simple type */ -#define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) - -/* Same as above but EXPLICIT */ - -#define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -#define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) - -/* SEQUENCE OF type */ -#define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -#define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -#define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -#define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -#define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -#define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -#define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -#define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -#define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -#define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -#define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -#define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -#define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -#define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -#define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -#define ASN1_ADB_END(name, flags, field, app_table, def, none) \ - ;\ - static const ASN1_ADB name##_adb = {\ - flags,\ - offsetof(name, field),\ - app_table,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - } - -#else - -#define ASN1_ADB_END(name, flags, field, app_table, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - app_table,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -#endif - -#define ADB_ENTRY(val, template) {val, template} - -#define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* This is the ASN1 template structure that defines - * a wrapper round the actual type. It determines the - * actual position of the field in the value structure, - * various flags such as OPTIONAL and the field name. - */ - -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 */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -#define ASN1_TEMPLATE_item(t) (t->item_ptr) -#define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -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 */ - 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 */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -#define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -#define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -#define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* Special case: this refers to a SET OF that - * will be sorted into DER order when encoded *and* - * the corresponding STACK will be modified to match - * the new order. - */ -#define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -#define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* These flags mean the tag should be taken from the - * tag field. If EXPLICIT then the underlying type - * is used for the inner tag. - */ - -/* IMPLICIT tagging */ -#define ASN1_TFLG_IMPTAG (0x1 << 3) - - -/* EXPLICIT tagging, inner tag from underlying type */ -#define ASN1_TFLG_EXPTAG (0x2 << 3) - -#define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -#define ASN1_TFLG_IMPLICIT ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT - -/* context specific EXPLICIT */ -#define ASN1_TFLG_EXPLICIT ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT - -/* If tagging is in force these determine the - * type of tag to use. Otherwise the tag is - * determined by the underlying type. These - * values reflect the actual octet format. - */ - -/* Universal tag */ -#define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -#define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -#define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -#define ASN1_TFLG_PRIVATE (0x3<<6) - -#define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* These are for ANY DEFINED BY type. In this case - * the 'item' field points to an ASN1_ADB structure - * which contains a table of values to decode the - * relevant type - */ - -#define ASN1_TFLG_ADB_MASK (0x3<<8) - -#define ASN1_TFLG_ADB_OID (0x1<<8) - -#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. - */ - -#define ASN1_TFLG_NDEF (0x1<<11) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { -char itype; /* The item type, primitive, SEQUENCE, CHOICE or extern */ -long utype; /* underlying type */ -const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains the contents */ -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 -}; - -/* These are values for the itype field and - * determine how the type is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * 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 - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -#define ASN1_ITYPE_PRIMITIVE 0x0 - -#define ASN1_ITYPE_SEQUENCE 0x1 - -#define ASN1_ITYPE_CHOICE 0x2 - -#define ASN1_ITYPE_COMPAT 0x3 - -#define ASN1_ITYPE_EXTERN 0x4 - -#define ASN1_ITYPE_MSTRING 0x5 - -#define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* Cache for ASN1 tag and length, so we - * don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st{ - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* 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); - -typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it); -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; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* This is the ASN1_AUX structure: it handles various - * miscellaneous requirements. For example the use of - * reference counts and an informational callback. - * - * The "informational callback" is called at various - * points during the ASN1 encoding and decoding. It can - * be used to provide minor customisation of the structures - * used. This is most useful where the supplied routines - * *almost* do the right thing but need some extra help - * at a few points. If the callback returns zero then - * it is assumed a fatal error has occurred and the - * main operation should be abandoned. - * - * If major changes in the default behaviour are required - * then an external type is more appropriate. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Lock type to use */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -#define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -#define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -#define ASN1_AFLG_BROKEN 4 - -/* operation values for asn1_cb */ - -#define ASN1_OP_NEW_PRE 0 -#define ASN1_OP_NEW_POST 1 -#define ASN1_OP_FREE_PRE 2 -#define ASN1_OP_FREE_POST 3 -#define ASN1_OP_D2I_PRE 4 -#define ASN1_OP_D2I_POST 5 -#define ASN1_OP_I2D_PRE 6 -#define ASN1_OP_I2D_POST 7 -#define ASN1_OP_PRINT_PRE 8 -#define ASN1_OP_PRINT_POST 9 -#define ASN1_OP_STREAM_PRE 10 -#define ASN1_OP_STREAM_POST 11 -#define ASN1_OP_DETACHED_PRE 12 -#define ASN1_OP_DETACHED_POST 13 - -/* Macro to implement a primitive type */ -#define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -#define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -#define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - 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, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -#define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -#define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -#define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -#define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -#define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -#define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -#define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_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. - */ -#define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -#define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -#define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -#define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -#define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ - IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) - -#define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_SEQUENCE) -DECLARE_ASN1_ITEM(CBIGNUM) -DECLARE_ASN1_ITEM(BIGNUM) -DECLARE_ASN1_ITEM(LONG) -DECLARE_ASN1_ITEM(ZLONG) - -DECLARE_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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/bio.h b/src/sdk/extern/include/openssl/bio.h deleted file mode 100644 index 05699ab..0000000 --- a/src/sdk/extern/include/openssl/bio.h +++ /dev/null @@ -1,847 +0,0 @@ -/* crypto/bio/bio.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_BIO_H -#define HEADER_BIO_H - -#include - -#ifndef OPENSSL_NO_FP_API -# include -#endif -#include - -#include - -#ifndef OPENSSL_NO_SCTP -# ifndef OPENSSL_SYS_VMS -# include -# else -# include -# endif -#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 */ -#define BIO_TYPE_FILTER 0x0200 -#define BIO_TYPE_SOURCE_SINK 0x0400 - -/* BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); */ -#define BIO_NOCLOSE 0x00 -#define BIO_CLOSE 0x01 - -/* These are used in the following macros and are passed to - * BIO_ctrl() */ -#define BIO_CTRL_RESET 1 /* opt - rewind/zero etc */ -#define BIO_CTRL_EOF 2 /* opt - are we at the eof */ -#define BIO_CTRL_INFO 3 /* opt - extra tit-bits */ -#define BIO_CTRL_SET 4 /* man - set the 'IO' type */ -#define BIO_CTRL_GET 5 /* man - get the 'IO' type */ -#define BIO_CTRL_PUSH 6 /* opt - internal, used to signify change */ -#define BIO_CTRL_POP 7 /* opt - internal, used to signify change */ -#define BIO_CTRL_GET_CLOSE 8 /* man - set the 'close' on free */ -#define BIO_CTRL_SET_CLOSE 9 /* man - set the 'close' on free */ -#define BIO_CTRL_PENDING 10 /* opt - is their more data buffered */ -#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 */ - -#define BIO_CTRL_SET_FILENAME 30 /* BIO_s_file special */ - -/* dgram BIO stuff */ -#define BIO_CTRL_DGRAM_CONNECT 31 /* BIO dgram special */ -#define BIO_CTRL_DGRAM_SET_CONNECTED 32 /* allow for an externally - * connected socket to be - * passed in */ -#define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33 /* setsockopt, essentially */ -#define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34 /* getsockopt, essentially */ -#define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35 /* setsockopt, essentially */ -#define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36 /* getsockopt, essentially */ - -#define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37 /* flag whether the last */ -#define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38 /* I/O operation tiemd out */ - -/* #ifdef IP_MTU_DISCOVER */ -#define BIO_CTRL_DGRAM_MTU_DISCOVER 39 /* set DF bit on egress packets */ -/* #endif */ - -#define BIO_CTRL_DGRAM_QUERY_MTU 40 /* as kernel for current MTU */ -#define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -#define BIO_CTRL_DGRAM_GET_MTU 41 /* get cached value for MTU */ -#define BIO_CTRL_DGRAM_SET_MTU 42 /* set cached value for - * MTU. want to use this - * if asking the kernel - * fails */ - -#define BIO_CTRL_DGRAM_MTU_EXCEEDED 43 /* check whether the MTU - * was exceed in the - * previous write - * operation */ - -#define BIO_CTRL_DGRAM_GET_PEER 46 -#define BIO_CTRL_DGRAM_SET_PEER 44 /* Destination for the data */ - -#define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45 /* Next DTLS handshake timeout to - * adjust socket timeouts */ - -#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 -#define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -#define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -#define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -#define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -#define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -#define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -#define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -#endif - -/* modifiers */ -#define BIO_FP_READ 0x02 -#define BIO_FP_WRITE 0x04 -#define BIO_FP_APPEND 0x08 -#define BIO_FP_TEXT 0x10 - -#define BIO_FLAGS_READ 0x01 -#define BIO_FLAGS_WRITE 0x02 -#define BIO_FLAGS_IO_SPECIAL 0x04 -#define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -#define BIO_FLAGS_SHOULD_RETRY 0x08 -#ifndef BIO_FLAGS_UPLINK -/* "UPLINK" flag denotes file descriptors provided by application. - It defaults to 0, as most platforms don't require UPLINK interface. */ -#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. - */ -#define BIO_FLAGS_MEM_RDONLY 0x200 - -typedef struct bio_st BIO; - -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); - -#define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -#define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -#define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -#define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -#define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -#define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -#define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -#define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -#define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -#define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -#define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* The next three are used in conjunction with the - * BIO_should_io_special() condition. After this returns true, - * BIO *BIO_get_retry_BIO(BIO *bio, int *reason); will walk the BIO - * stack and return the 'reason' for the special and the offending BIO. - * Given a BIO, BIO_get_retry_reason(bio) will return the code. */ -/* Returned from the SSL bio when the certificate retrieval code had an error */ -#define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -#define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -#define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -#define BIO_CB_FREE 0x01 -#define BIO_CB_READ 0x02 -#define BIO_CB_WRITE 0x03 -#define BIO_CB_PUTS 0x04 -#define BIO_CB_GETS 0x05 -#define BIO_CB_CTRL 0x06 - -/* The callback is called before and after the underling operation, - * The BIO_CB_RETURN flag indicates if it is after the call */ -#define BIO_CB_RETURN 0x80 -#define BIO_CB_return(a) ((a)|BIO_CB_RETURN)) -#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)); -char *BIO_get_callback_arg(const BIO *b); -void BIO_set_callback_arg(BIO *b, char *arg); - -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 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; - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func(BIO *b, unsigned char **pbuf, int *plen, void *parg); - -#ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo - { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; - }; - -struct bio_dgram_sctp_rcvinfo - { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; - }; - -struct bio_dgram_sctp_prinfo - { - uint16_t pr_policy; - uint32_t pr_value; - }; -#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 */ - -#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_FD 104 -#define BIO_C_GET_FD 105 -#define BIO_C_SET_FILE_PTR 106 -#define BIO_C_GET_FILE_PTR 107 -#define BIO_C_SET_FILENAME 108 -#define BIO_C_SET_SSL 109 -#define BIO_C_GET_SSL 110 -#define BIO_C_SET_MD 111 -#define BIO_C_GET_MD 112 -#define BIO_C_GET_CIPHER_STATUS 113 -#define BIO_C_SET_BUF_MEM 114 -#define BIO_C_GET_BUF_MEM_PTR 115 -#define BIO_C_GET_BUFF_NUM_LINES 116 -#define BIO_C_SET_BUFF_SIZE 117 -#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_SET_BUFF_READ_DATA 122 /* data to read first */ -#define BIO_C_GET_CONNECT 123 -#define BIO_C_GET_ACCEPT 124 -#define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -#define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -#define BIO_C_FILE_SEEK 128 -#define BIO_C_GET_CIPHER_CTX 129 -#define BIO_C_SET_BUF_MEM_EOF_RETURN 130/*return end of input value*/ -#define BIO_C_SET_BIND_MODE 131 -#define BIO_C_GET_BIND_MODE 132 -#define BIO_C_FILE_TELL 133 -#define BIO_C_GET_SOCKS 134 -#define BIO_C_SET_SOCKS 135 - -#define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -#define BIO_C_GET_WRITE_BUF_SIZE 137 -#define BIO_C_MAKE_BIO_PAIR 138 -#define BIO_C_DESTROY_BIO_PAIR 139 -#define BIO_C_GET_WRITE_GUARANTEE 140 -#define BIO_C_GET_READ_REQUEST 141 -#define BIO_C_SHUTDOWN_WR 142 -#define BIO_C_NREAD0 143 -#define BIO_C_NREAD 144 -#define BIO_C_NWRITE0 145 -#define BIO_C_NWRITE 146 -#define BIO_C_RESET_READ_REQUEST 147 -#define BIO_C_SET_MD_CTX 148 - -#define BIO_C_SET_PREFIX 149 -#define BIO_C_GET_PREFIX 150 -#define BIO_C_SET_SUFFIX 151 -#define BIO_C_GET_SUFFIX 152 - -#define BIO_C_SET_EX_ARG 153 -#define BIO_C_GET_EX_ARG 154 - -#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_int_ctrl(b,BIO_C_GET_CONNECT,3,0) - - -#define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) - -/* BIO_s_accept_socket() */ -#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_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_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) - -#define BIO_do_connect(b) BIO_do_handshake(b) -#define BIO_do_accept(b) BIO_do_handshake(b) -#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) - -#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) - -#define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) -#define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) - -#define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -#define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* name is cast to lose const, but might be better to route through a function - so we can do it safely */ -#ifdef CONST_STRICT -/* If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -int BIO_read_filename(BIO *b,const char *name); -#else -#define BIO_read_filename(b,name) 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, \ - BIO_CLOSE|BIO_FP_WRITE,name) -#define BIO_append_filename(b,name) 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, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* WARNING WARNING, this ups the reference count on the read bio of the - * SSL structure. This is because the ssl read BIO is now pointed to by - * the next_bio field in the bio. So when you free the BIO, make sure - * you are doing a BIO_free_all() to catch the underlying BIO. */ -#define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) -#define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) -#define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) -#define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL); -#define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL); -#define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL); - -/* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ - -#define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) -#define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)bm) -#define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp) -#define BIO_set_mem_eof_return(b,v) \ - BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) - -/* For the BIO_f_buffer() type */ -#define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -#define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -#define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -#define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -#define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -#define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -#define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -#define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -#define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -#define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -#define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -#define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -#define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -#define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -#define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* For the BIO_f_buffer() type */ -#define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) - -/* For BIO_s_bio() */ -#define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) -#define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -#define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -#define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -#define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -#define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -#define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -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_dgram_recv_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) -#define BIO_dgram_send_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) -#define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)peer) -#define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)peer) - -/* 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)()); */ -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); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -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 ); -BIO *BIO_new_file(const char *filename, const char *mode); -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); -int BIO_free(BIO *a); -void BIO_vfree(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_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); -BIO * BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -BIO * BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -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); -BIO *BIO_new_mem_buf(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); -#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); -#ifndef OPENSSL_NO_DGRAM -BIO_METHOD *BIO_s_datagram(void); -#ifndef OPENSSL_NO_SCTP -BIO_METHOD *BIO_s_datagram_sctp(void); -#endif -#endif - -/* BIO_METHOD *BIO_f_ber(void); */ - -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -int BIO_dgram_non_fatal_error(int error); - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb)(const void *data, size_t len, void *u), - void *u, const char *s, int len); -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 -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 -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). - */ -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); -int BIO_set_tcp_ndelay(int sock,int turn_on); - -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(char *host_port); -BIO *BIO_new_accept(char *host_port); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -/* If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. - * Size 0 uses default value. - */ - -void BIO_copy_next_retry(BIO *b); - -/*long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);*/ - -#ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -#else -# define __bio_h__attr__(x) -#endif -int BIO_printf(BIO *bio, const char *format, ...) - __bio_h__attr__((__format__(__printf__,2,3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) - __bio_h__attr__((__format__(__printf__,2,0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) - __bio_h__attr__((__format__(__printf__,3,4))); -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__ - -/* 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); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -#define BIO_F_ACPT_STATE 100 -#define BIO_F_BIO_ACCEPT 101 -#define BIO_F_BIO_BER_GET_HEADER 102 -#define BIO_F_BIO_CALLBACK_CTRL 131 -#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_PORT 107 -#define BIO_F_BIO_MAKE_PAIR 121 -#define BIO_F_BIO_NEW 108 -#define BIO_F_BIO_NEW_FILE 109 -#define BIO_F_BIO_NEW_MEM_BUF 126 -#define BIO_F_BIO_NREAD 123 -#define BIO_F_BIO_NREAD0 124 -#define BIO_F_BIO_NWRITE 125 -#define BIO_F_BIO_NWRITE0 122 -#define BIO_F_BIO_PUTS 110 -#define BIO_F_BIO_READ 111 -#define BIO_F_BIO_SOCK_INIT 112 -#define BIO_F_BIO_WRITE 113 -#define BIO_F_BUFFER_CTRL 114 -#define BIO_F_CONN_CTRL 127 -#define BIO_F_CONN_STATE 115 -#define BIO_F_DGRAM_SCTP_READ 132 -#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_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_INVALID_ARGUMENT 125 -#define BIO_R_INVALID_IP_ADDRESS 108 -#define BIO_R_IN_USE 123 -#define BIO_R_KEEPALIVE 109 -#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_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_LISTEN_SOCKET 119 -#define BIO_R_UNINITIALIZED 120 -#define BIO_R_UNSUPPORTED_METHOD 121 -#define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -#define BIO_R_WSASTARTUP 122 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/blowfish.h b/src/sdk/extern/include/openssl/blowfish.h deleted file mode 100644 index 4b6c892..0000000 --- a/src/sdk/extern/include/openssl/blowfish.h +++ /dev/null @@ -1,129 +0,0 @@ -/* crypto/bf/blowfish.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_BLOWFISH_H -#define HEADER_BLOWFISH_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_NO_BF -#error BF is disabled. -#endif - -#define BF_ENCRYPT 1 -#define BF_DECRYPT 0 - -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! BF_LONG_LOG2 has to be defined along. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -#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_ROUNDS 16 -#define BF_BLOCK 8 - -typedef struct bf_key_st - { - BF_LONG P[BF_ROUNDS+2]; - 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); -void BF_decrypt(BF_LONG *data,const BF_KEY *key); - -void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, - const BF_KEY *key, int enc); -void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int enc); -void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int *num, int enc); -void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int *num); -const char *BF_options(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/bn.h b/src/sdk/extern/include/openssl/bn.h deleted file mode 100644 index 21a1a3f..0000000 --- a/src/sdk/extern/include/openssl/bn.h +++ /dev/null @@ -1,902 +0,0 @@ -/* 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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_BN_H -#define HEADER_BN_H - -#include -#ifndef OPENSSL_NO_FP_API -#include /* FILE */ -#endif -#include -#include - -#ifdef __cplusplus -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 */ -#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. - */ -#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 - -/* 2011-02-22 SMS. - * In various places, a size_t variable or a type cast to size_t was - * used to perform integer-only operations on pointers. This failed on - * VMS with 64-bit pointers (CC /POINTER_SIZE = 64) because size_t is - * still only 32 bits. What's needed in these cases is an integer type - * with the same size as a pointer, which size_t is not certain to be. - * The only fix here is VMS-specific. - */ -#if defined(OPENSSL_SYS_VMS) -# if __INITIAL_POINTER_SIZE == 64 -# define PTR_SIZE_INT long long -# else /* __INITIAL_POINTER_SIZE == 64 */ -# define PTR_SIZE_INT int -# endif /* __INITIAL_POINTER_SIZE == 64 [else] */ -#else /* defined(OPENSSL_SYS_VMS) */ -# define PTR_SIZE_INT size_t -#endif /* defined(OPENSSL_SYS_VMS) [else] */ - -#define BN_DEFAULT_BITS 1280 - -#define BN_FLG_MALLOCED 0x01 -#define BN_FLG_STATIC_DATA 0x02 -#define BN_FLG_CONSTTIME 0x04 /* avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call BN_mod_inverse_no_branch. - */ - -#ifndef OPENSSL_NO_DEPRECATED -#define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME /* deprecated name for the flag */ - /* avoid leaking exponent information through timings - * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) */ -#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)) - -/* get a clone of a BIGNUM with changed flags, for *temporary* use only - * (the two BIGNUMs cannot not be used in parallel!) */ -#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))) - -/* 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, */ -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); } - -#define BN_prime_checks 0 /* default: select number of iterations - based on the size of the number */ - -/* number of Miller-Rabin iterations for an error rate of less than 2^-80 - * for random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook - * of Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error estimates - * for the strong probable prime test. -- Math. Comp. 61 (1993) 177-194) */ -#define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) - -#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)) - -#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 -#define BN_zero(a) BN_zero_ex(a) -#else -#define BN_zero(a) (BN_set_word((a),0)) -#endif - -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 -void BN_CTX_free(BN_CTX *c); -void BN_CTX_start(BN_CTX *ctx); -BIGNUM *BN_CTX_get(BN_CTX *ctx); -void BN_CTX_end(BN_CTX *ctx); -int BN_rand(BIGNUM *rnd, int bits, int top,int bottom); -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); -BIGNUM *BN_new(void); -void BN_init(BIGNUM *); -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); -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); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a,BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -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 - * \return 1 if a < 0 and 0 otherwise - */ -#define BN_is_negative(a) ((a)->neg != 0) - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -#define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m,BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2,const BIGNUM *m, - BN_CTX *ctx,BN_MONT_CTX *m_ctx); -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 -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_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); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char * BN_bn2hex(const BIGNUM *a); -char * BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r,const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); /* returns -2 for error */ -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); - -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) */ - -/* Newer versions */ -int BN_generate_prime_ex(BIGNUM *ret,int bits,int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_is_prime_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, BN_GENCB *cb); -int BN_is_prime_fasttest_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); - -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, const BIGNUM *Xp2, - const BIGNUM *e, BN_CTX *ctx, BN_GENCB *cb); -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - BIGNUM *Xp1, BIGNUM *Xp2, - const BIGNUM *Xp, - const BIGNUM *e, 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); -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, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -#define BN_BLINDING_NO_UPDATE 0x00000001 -#define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -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 *); -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, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, 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 - -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); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp,BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -#ifndef OPENSSL_NO_EC2M - -/* Functions for arithmetic over binary polynomials represented by BIGNUMs. - * - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. - * - * Note that input arguments are not const so that their bit arrays can - * be expanded to the appropriate size if needed. - */ - -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); /*r = a + b*/ -#define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); /*r=a mod p*/ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); /* r = (a * b) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); /* r = (a * a) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, - BN_CTX *ctx); /* r = (1 / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); /* r = (a / b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); /* r = (a ^ b) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); /* r = sqrt(a) mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); /* r^2 + r = a mod p */ -#define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/* Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); - /* r = a mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); /* r = (a * b) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); /* r = (a * a) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); /* r = (1 / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); /* r = (a / b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); /* r = (a ^ b) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); /* r = sqrt(a) mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); /* r^2 + r = a mod p */ -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -#endif - -/* faster mod functions for the 'NIST primes' - * 0 <= a < p^2 */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -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 */ - -#define bn_expand(a,bits) ((((((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*)); \ - 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); \ - } 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; \ - } \ - 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); - -/* Primes from RFC 2409 */ -BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *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); - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top,int bottom); - -/* 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_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -#define BN_F_BNRAND 127 -#define BN_F_BN_BLINDING_CONVERT_EX 100 -#define BN_F_BN_BLINDING_CREATE_PARAM 128 -#define BN_F_BN_BLINDING_INVERT_EX 101 -#define BN_F_BN_BLINDING_NEW 102 -#define BN_F_BN_BLINDING_UPDATE 103 -#define BN_F_BN_BN2DEC 104 -#define BN_F_BN_BN2HEX 105 -#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_GF2M_MOD 131 -#define BN_F_BN_GF2M_MOD_EXP 132 -#define BN_F_BN_GF2M_MOD_MUL 133 -#define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -#define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -#define BN_F_BN_GF2M_MOD_SQR 136 -#define BN_F_BN_GF2M_MOD_SQRT 137 -#define BN_F_BN_MOD_EXP2_MONT 118 -#define BN_F_BN_MOD_EXP_MONT 109 -#define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -#define BN_F_BN_MOD_EXP_MONT_WORD 117 -#define BN_F_BN_MOD_EXP_RECP 125 -#define BN_F_BN_MOD_EXP_SIMPLE 126 -#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_USUB 115 - -/* Reason codes. */ -#define BN_R_ARG2_LT_ARG3 100 -#define BN_R_BAD_RECIPROCAL 101 -#define BN_R_BIGNUM_TOO_LONG 114 -#define BN_R_CALLED_WITH_EVEN_MODULUS 102 -#define BN_R_DIV_BY_ZERO 103 -#define BN_R_ENCODING_ERROR 104 -#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -#define BN_R_INPUT_NOT_REDUCED 110 -#define BN_R_INVALID_LENGTH 106 -#define BN_R_INVALID_RANGE 115 -#define BN_R_NOT_A_SQUARE 111 -#define BN_R_NOT_INITIALIZED 107 -#define BN_R_NO_INVERSE 108 -#define BN_R_NO_SOLUTION 116 -#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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/buffer.h b/src/sdk/extern/include/openssl/buffer.h deleted file mode 100644 index f8da32b..0000000 --- a/src/sdk/extern/include/openssl/buffer.h +++ /dev/null @@ -1,119 +0,0 @@ -/* crypto/buffer/buffer.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_BUFFER_H -#define HEADER_BUFFER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if !defined(NO_SYS_TYPES_H) -#include -#endif - -/* Already declared in ossl_typ.h */ -/* typedef struct buf_mem_st BUF_MEM; */ - -struct buf_mem_st - { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - }; - -BUF_MEM *BUF_MEM_new(void); -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); -char * BUF_strdup(const char *str); -char * BUF_strndup(const char *str, size_t siz); -void * BUF_memdup(const void *data, size_t siz); -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); - -/* 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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/camellia.h b/src/sdk/extern/include/openssl/camellia.h deleted file mode 100644 index 67911e0..0000000 --- a/src/sdk/extern/include/openssl/camellia.h +++ /dev/null @@ -1,130 +0,0 @@ -/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */ -/* ==================================================================== - * 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. - * ==================================================================== - * - */ - -#ifndef HEADER_CAMELLIA_H -#define HEADER_CAMELLIA_H - -#include - -#ifdef OPENSSL_NO_CAMELLIA -#error CAMELLIA is disabled. -#endif - -#include - -#define CAMELLIA_ENCRYPT 1 -#define CAMELLIA_DECRYPT 0 - -/* Because array size can't be a const in C, the following two are macros. - 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 -#define CAMELLIA_TABLE_BYTE_LEN 272 -#define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match with WORD */ - -struct camellia_key_st - { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; - }; -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); - -void Camellia_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); -void Camellia_decrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); - -void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key, const int enc); -void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, const int enc); -void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num); -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); - -#ifdef __cplusplus -} -#endif - -#endif /* !HEADER_Camellia_H */ diff --git a/src/sdk/extern/include/openssl/cast.h b/src/sdk/extern/include/openssl/cast.h deleted file mode 100644 index 203922e..0000000 --- a/src/sdk/extern/include/openssl/cast.h +++ /dev/null @@ -1,107 +0,0 @@ -/* crypto/cast/cast.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_CAST_H -#define HEADER_CAST_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#ifdef OPENSSL_NO_CAST -#error CAST is disabled. -#endif - -#define CAST_ENCRYPT 1 -#define CAST_DECRYPT 0 - -#define CAST_LONG unsigned int - -#define CAST_BLOCK 8 -#define CAST_KEY_LENGTH 16 - -typedef struct cast_key_st - { - CAST_LONG data[32]; - 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); -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const CAST_KEY *ks, unsigned char *iv, int enc); -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, unsigned char *ivec, - int *num); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/cmac.h b/src/sdk/extern/include/openssl/cmac.h deleted file mode 100644 index 712e92d..0000000 --- a/src/sdk/extern/include/openssl/cmac.h +++ /dev/null @@ -1,82 +0,0 @@ -/* 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. - * - * 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. - * ==================================================================== - */ - - -#ifndef HEADER_CMAC_H -#define HEADER_CMAC_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; - -CMAC_CTX *CMAC_CTX_new(void); -void CMAC_CTX_cleanup(CMAC_CTX *ctx); -void CMAC_CTX_free(CMAC_CTX *ctx); -EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); - -int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); -int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); -int CMAC_resume(CMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/cms.h b/src/sdk/extern/include/openssl/cms.h deleted file mode 100644 index 36994fa..0000000 --- a/src/sdk/extern/include/openssl/cms.h +++ /dev/null @@ -1,501 +0,0 @@ -/* 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. - * - * 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. - * ==================================================================== - */ - - -#ifndef HEADER_CMS_H -#define HEADER_CMS_H - -#include - -#ifdef OPENSSL_NO_CMS -#error CMS is disabled. -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; - -DECLARE_STACK_OF(CMS_SignerInfo) -DECLARE_STACK_OF(GENERAL_NAMES) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -#define CMS_SIGNERINFO_ISSUER_SERIAL 0 -#define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -#define CMS_RECIPINFO_TRANS 0 -#define CMS_RECIPINFO_AGREE 1 -#define CMS_RECIPINFO_KEK 2 -#define CMS_RECIPINFO_PASS 3 -#define CMS_RECIPINFO_OTHER 4 - -/* S/MIME related flags */ - -#define CMS_TEXT 0x1 -#define CMS_NOCERTS 0x2 -#define CMS_NO_CONTENT_VERIFY 0x4 -#define CMS_NO_ATTR_VERIFY 0x8 -#define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -#define CMS_NOINTERN 0x10 -#define CMS_NO_SIGNER_CERT_VERIFY 0x20 -#define CMS_NOVERIFY 0x20 -#define CMS_DETACHED 0x40 -#define CMS_BINARY 0x80 -#define CMS_NOATTR 0x100 -#define CMS_NOSMIMECAP 0x200 -#define CMS_NOOLDMIMETYPE 0x400 -#define CMS_CRLFEOL 0x800 -#define CMS_STREAM 0x1000 -#define CMS_NOCRL 0x2000 -#define CMS_PARTIAL 0x4000 -#define CMS_REUSE_DIGEST 0x8000 -#define CMS_USE_KEYID 0x10000 -#define CMS_DEBUG_DECRYPT 0x20000 - -const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -#ifdef HEADER_PEM_H -DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) -#endif - -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, unsigned int flags); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, - unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); - -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, size_t keylen, - unsigned int flags); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, - unsigned int flags); - -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); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, X509 **signer, - X509_ALGOR **pdig, X509_ALGOR **psig); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -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 lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -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, - 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); -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); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -#ifdef HEADER_X509V3_H - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, - int allorfirst, - STACK_OF(GENERAL_NAMES) *receiptList, - STACK_OF(GENERAL_NAMES) *receiptsTo); -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); - -#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_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -#define CMS_F_CHECK_CONTENT 99 -#define CMS_F_CMS_ADD0_CERT 164 -#define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -#define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -#define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -#define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -#define CMS_F_CMS_ADD1_SIGNER 102 -#define CMS_F_CMS_ADD1_SIGNINGTIME 103 -#define CMS_F_CMS_COMPRESS 104 -#define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -#define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -#define CMS_F_CMS_COPY_CONTENT 107 -#define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -#define CMS_F_CMS_DATA 109 -#define CMS_F_CMS_DATAFINAL 110 -#define CMS_F_CMS_DATAINIT 111 -#define CMS_F_CMS_DECRYPT 112 -#define CMS_F_CMS_DECRYPT_SET1_KEY 113 -#define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -#define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -#define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -#define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -#define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -#define CMS_F_CMS_DIGEST_VERIFY 118 -#define CMS_F_CMS_ENCODE_RECEIPT 161 -#define CMS_F_CMS_ENCRYPT 119 -#define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -#define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -#define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -#define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -#define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -#define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -#define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -#define CMS_F_CMS_FINAL 127 -#define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -#define CMS_F_CMS_GET0_CONTENT 129 -#define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -#define CMS_F_CMS_GET0_ENVELOPED 131 -#define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -#define CMS_F_CMS_GET0_SIGNED 133 -#define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -#define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -#define CMS_F_CMS_RECEIPT_VERIFY 160 -#define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -#define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -#define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -#define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -#define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -#define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -#define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -#define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -#define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -#define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -#define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -#define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -#define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -#define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -#define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -#define CMS_F_CMS_SET_DETACHED 147 -#define CMS_F_CMS_SIGN 148 -#define CMS_F_CMS_SIGNED_DATA_INIT 149 -#define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -#define CMS_F_CMS_SIGNERINFO_SIGN 151 -#define CMS_F_CMS_SIGNERINFO_VERIFY 152 -#define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -#define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -#define CMS_F_CMS_SIGN_RECEIPT 163 -#define CMS_F_CMS_STREAM 155 -#define CMS_F_CMS_UNCOMPRESS 156 -#define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -#define CMS_R_ADD_SIGNER_ERROR 99 -#define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -#define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -#define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -#define CMS_R_CIPHER_INITIALISATION_ERROR 101 -#define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -#define CMS_R_CMS_DATAFINAL_ERROR 103 -#define CMS_R_CMS_LIB 104 -#define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -#define CMS_R_CONTENT_NOT_FOUND 105 -#define CMS_R_CONTENT_TYPE_MISMATCH 171 -#define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -#define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -#define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -#define CMS_R_CONTENT_VERIFY_ERROR 109 -#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 -#define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -#define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -#define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -#define CMS_R_INVALID_KEY_LENGTH 118 -#define CMS_R_MD_BIO_INIT_ERROR 119 -#define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -#define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -#define CMS_R_MSGSIGDIGEST_ERROR 172 -#define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -#define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -#define CMS_R_NEED_ONE_SIGNER 164 -#define CMS_R_NOT_A_SIGNED_RECEIPT 165 -#define CMS_R_NOT_ENCRYPTED_DATA 122 -#define CMS_R_NOT_KEK 123 -#define CMS_R_NOT_KEY_TRANSPORT 124 -#define CMS_R_NOT_PWRI 177 -#define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -#define CMS_R_NO_CIPHER 126 -#define CMS_R_NO_CONTENT 127 -#define CMS_R_NO_CONTENT_TYPE 173 -#define CMS_R_NO_DEFAULT_DIGEST 128 -#define CMS_R_NO_DIGEST_SET 129 -#define CMS_R_NO_KEY 130 -#define CMS_R_NO_KEY_OR_CERT 174 -#define CMS_R_NO_MATCHING_DIGEST 131 -#define CMS_R_NO_MATCHING_RECIPIENT 132 -#define CMS_R_NO_MATCHING_SIGNATURE 166 -#define CMS_R_NO_MSGSIGDIGEST 167 -#define CMS_R_NO_PASSWORD 178 -#define CMS_R_NO_PRIVATE_KEY 133 -#define CMS_R_NO_PUBLIC_KEY 134 -#define CMS_R_NO_RECEIPT_REQUEST 168 -#define CMS_R_NO_SIGNERS 135 -#define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -#define CMS_R_RECEIPT_DECODE_ERROR 169 -#define CMS_R_RECIPIENT_ERROR 137 -#define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -#define CMS_R_SIGNFINAL_ERROR 139 -#define CMS_R_SMIME_TEXT_ERROR 140 -#define CMS_R_STORE_INIT_ERROR 141 -#define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -#define CMS_R_TYPE_NOT_DATA 143 -#define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -#define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -#define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -#define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -#define CMS_R_UNKNOWN_CIPHER 148 -#define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -#define CMS_R_UNKNOWN_ID 150 -#define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -#define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -#define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -#define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -#define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -#define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -#define CMS_R_UNSUPPORTED_TYPE 156 -#define CMS_R_UNWRAP_ERROR 157 -#define CMS_R_UNWRAP_FAILURE 180 -#define CMS_R_VERIFICATION_FAILURE 158 -#define CMS_R_WRAP_ERROR 159 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/comp.h b/src/sdk/extern/include/openssl/comp.h deleted file mode 100644 index 4b405c7..0000000 --- a/src/sdk/extern/include/openssl/comp.h +++ /dev/null @@ -1,80 +0,0 @@ - -#ifndef HEADER_COMP_H -#define HEADER_COMP_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct comp_ctx_st COMP_CTX; - -typedef struct comp_method_st - { - int type; /* NID for compression library */ - const char *name; /* A text string to identify the library */ - int (*init)(COMP_CTX *ctx); - void (*finish)(COMP_CTX *ctx); - int (*compress)(COMP_CTX *ctx, - unsigned char *out, unsigned int olen, - unsigned char *in, unsigned int ilen); - int (*expand)(COMP_CTX *ctx, - unsigned char *out, unsigned int olen, - unsigned char *in, unsigned int ilen); - /* The following two do NOTHING, but are kept for backward compatibility */ - long (*ctrl)(void); - long (*callback_ctrl)(void); - } COMP_METHOD; - -struct comp_ctx_st - { - COMP_METHOD *meth; - unsigned long compress_in; - unsigned long compress_out; - unsigned long expand_in; - unsigned long expand_out; - - CRYPTO_EX_DATA ex_data; - }; - - -COMP_CTX *COMP_CTX_new(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_rle(void ); -COMP_METHOD *COMP_zlib(void ); -void COMP_zlib_cleanup(void); - -#ifdef HEADER_BIO_H -#ifdef ZLIB -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. - */ -void 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 diff --git a/src/sdk/extern/include/openssl/conf.h b/src/sdk/extern/include/openssl/conf.h deleted file mode 100644 index c219997..0000000 --- a/src/sdk/extern/include/openssl/conf.h +++ /dev/null @@ -1,263 +0,0 @@ -/* crypto/conf/conf.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_CONF_H -#define HEADER_CONF_H - -#include -#include -#include -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct - { - char *section; - char *name; - char *value; - } CONF_VALUE; - -DECLARE_STACK_OF(CONF_VALUE) -DECLARE_LHASH_OF(CONF_VALUE); - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -struct conf_method_st - { - const char *name; - CONF *(*create)(CONF_METHOD *meth); - int (*init)(CONF *conf); - int (*destroy)(CONF *conf); - int (*destroy_data)(CONF *conf); - int (*load_bio)(CONF *conf, BIO *bp, long *eline); - int (*dump)(const CONF *conf, BIO *bp); - int (*is_number)(const CONF *conf, char c); - int (*to_int)(const CONF *conf, char c); - int (*load)(CONF *conf, const char *name, long *eline); - }; - -/* Module definitions */ - -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -DECLARE_STACK_OF(CONF_MODULE) -DECLARE_STACK_OF(CONF_IMODULE) - -/* DSO module function typedefs */ -typedef int conf_init_func(CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func(CONF_IMODULE *md); - -#define CONF_MFLAGS_IGNORE_ERRORS 0x1 -#define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -#define CONF_MFLAGS_SILENT 0x4 -#define CONF_MFLAGS_NO_DSO 0x8 -#define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -#define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -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 -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -#endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp,long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf,const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf,const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); - -void OPENSSL_config(const char *config_name); -void OPENSSL_no_config(void); - -/* New conf code. The semantics are different from the functions above. - If that wasn't the case, the above functions would have been replaced */ - -struct conf_st - { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; - }; - -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 -int NCONF_load_fp(CONF *conf, FILE *fp,long *eline); -#endif -int NCONF_load_bio(CONF *conf, BIO *bp,long *eline); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf,const char *section); -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); -int NCONF_dump_fp(const CONF *conf, FILE *out); -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 - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -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); -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb)(const char *elem, int len, void *usr), void *arg); - -void OPENSSL_load_builtin_modules(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. - */ -void 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 -#define CONF_F_MODULE_INIT 115 -#define CONF_F_MODULE_LOAD_DSO 117 -#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 -#define CONF_F_NCONF_LOAD 113 -#define CONF_F_NCONF_LOAD_BIO 110 -#define CONF_F_NCONF_LOAD_FP 114 -#define CONF_F_NCONF_NEW 111 -#define CONF_F_STR_COPY 101 - -/* Reason codes. */ -#define CONF_R_ERROR_LOADING_DSO 110 -#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 -#define CONF_R_NO_CONF 105 -#define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -#define CONF_R_NO_SECTION 107 -#define CONF_R_NO_SUCH_FILE 114 -#define CONF_R_NO_VALUE 108 -#define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -#define CONF_R_UNKNOWN_MODULE_NAME 113 -#define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/conf_api.h b/src/sdk/extern/include/openssl/conf_api.h deleted file mode 100644 index 87a954a..0000000 --- a/src/sdk/extern/include/openssl/conf_api.h +++ /dev/null @@ -1,89 +0,0 @@ -/* conf_api.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_CONF_API_H -#define HEADER_CONF_API_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/crypto.h b/src/sdk/extern/include/openssl/crypto.h deleted file mode 100644 index f92fc51..0000000 --- a/src/sdk/extern/include/openssl/crypto.h +++ /dev/null @@ -1,611 +0,0 @@ -/* 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 (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 - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_CRYPTO_H -#define HEADER_CRYPTO_H - -#include - -#include - -#ifndef OPENSSL_NO_FP_API -#include -#endif - -#include -#include -#include -#include - -#ifdef CHARSET_EBCDIC -#include -#endif - -/* Resolve problems on some operating systems with symbol names that clash - one way or another */ -#include - -#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; - - -/* When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock - * names in cryptlib.c - */ - -#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; - } CRYPTO_dynlock; - - -/* The following can be used to detect memory leaks in the SSLeay library. - * It 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; - -struct crypto_ex_data_st - { - STACK_OF(void) *sk; - int dummy; /* gcc is screwing up this data structure :-( */ - }; -DECLARE_STACK_OF(void) - -/* This stuff is basically class callback functions - * The current classes are SSL_CTX, SSL, SSL_SESSION, and a few more */ - -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_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 - - -/* 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) - -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) - -/* 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() - -#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_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); - -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, - CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* 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); -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); -/* 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); - -/* CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- - * call the latter last if you need different functions */ -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)); - -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); -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); - -void OPENSSL_cleanse(void *ptr, size_t len); - -void CRYPTO_set_mem_debug_options(long bits); -long CRYPTO_get_mem_debug_options(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 - */ -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); - - -#ifndef OPENSSL_NO_FP_API -void CRYPTO_mem_leaks_fp(FILE *); -#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)) - -unsigned long *OPENSSL_ia32cap_loc(void); -#define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) -int OPENSSL_isservice(void); - -int FIPS_mode(void); -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 - -/* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It - * takes an amount of time dependent on |len|, but independent of the contents - * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a - * defined order as the return value when a != b is undefined, other than to be - * non-zero. */ -int CRYPTO_memcmp(const void *a, const void *b, size_t len); - -/* 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); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -#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_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 - -/* Reason codes. */ -#define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -#define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/des.h b/src/sdk/extern/include/openssl/des.h deleted file mode 100644 index 1eaedcb..0000000 --- a/src/sdk/extern/include/openssl/des.h +++ /dev/null @@ -1,248 +0,0 @@ -/* crypto/des/des.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.] - */ - -#ifndef HEADER_NEW_DES_H -#define HEADER_NEW_DES_H - -#include /* OPENSSL_EXTERN, OPENSSL_NO_DES, - DES_LONG (via openssl/opensslconf.h */ - -#ifdef OPENSSL_NO_DES -#error DES is disabled. -#endif - -#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]; -/* With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * - * and const_DES_cblock * are incompatible pointer types. */ - -typedef struct DES_ks - { - union - { - DES_cblock cblock; - /* make sure things are correct size on machines with - * 8 byte longs */ - DES_LONG deslong[2]; - } 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)) - -#define DES_ENCRYPT 1 -#define DES_DECRYPT 0 - -#define DES_CBC_MODE 0 -#define DES_PCBC_MODE 1 - -#define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -#define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -#define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -#define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -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, - DES_key_schedule *ks1,DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input,DES_cblock *output, - long length,DES_key_schedule *schedule, - const_DES_cblock *ivec); -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input,unsigned char *output, - long length,DES_key_schedule *schedule,DES_cblock *ivec, - int enc); -void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output, - long length,DES_key_schedule *schedule,DES_cblock *ivec, - int enc); -void DES_xcbc_encrypt(const unsigned char *input,unsigned char *output, - long length,DES_key_schedule *schedule,DES_cblock *ivec, - const_DES_cblock *inw,const_DES_cblock *outw,int enc); -void DES_cfb_encrypt(const unsigned char *in,unsigned char *out,int numbits, - long length,DES_key_schedule *schedule,DES_cblock *ivec, - int enc); -void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, - DES_key_schedule *ks,int enc); - -/* This is the DES encryption function that gets called by just about - every other DES routine in the library. You should not use this - function except to implement 'modes' of DES. I say this because the - functions that call this routine do the conversion from 'char *' to - long, and this needs to be done to make sure 'non-aligned' memory - access do not occur. The characters are loaded 'little endian'. - Data is a pointer to 2 unsigned long's and ks is the - DES_key_schedule to use. enc, is non zero specifies encryption, - zero if decryption. */ -void DES_encrypt1(DES_LONG *data,DES_key_schedule *ks, int enc); - -/* This functions is the same as DES_encrypt1() except that the DES - initial permutation (IP) and final permutation (FP) have been left - out. As for DES_encrypt1(), you should not use this function. - It is used by the routines in the library that implement triple DES. - IP() DES_encrypt2() DES_encrypt2() DES_encrypt2() FP() is the same - as DES_encrypt1() DES_encrypt1() DES_encrypt1() except faster :-). */ -void DES_encrypt2(DES_LONG *data,DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -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, - DES_cblock *ivec,int *num,int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in,unsigned char *out, - int numbits,long length,DES_key_schedule *ks1, - DES_key_schedule *ks2,DES_key_schedule *ks3, - DES_cblock *ivec,int enc); -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, - long length,DES_key_schedule *schedule,DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input,unsigned char *output, - long length,DES_key_schedule *schedule,DES_cblock *ivec, - int enc); -DES_LONG DES_quad_cksum(const unsigned char *input,DES_cblock output[], - long length,int out_count,DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); -/* DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked if global variable DES_check_key is set, - * DES_set_key_unchecked otherwise. */ -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,long length, - DES_key_schedule *schedule,DES_cblock *ivec,int *num, - int enc); -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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/des_old.h b/src/sdk/extern/include/openssl/des_old.h deleted file mode 100644 index 2b2c372..0000000 --- a/src/sdk/extern/include/openssl/des_old.h +++ /dev/null @@ -1,446 +0,0 @@ -/* crypto/des/des_old.h -*- mode:C; c-file-style: "eay" -*- */ - -/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * The function names in here are deprecated and are only present to - * provide an interface compatible with openssl 0.9.6 and older as - * well as libdes. OpenSSL now provides functions where "des_" has - * been replaced with "DES_" in the names, to make it possible to - * make incompatible changes that are needed for C type security and - * other stuff. - * - * This include files has two compatibility modes: - * - * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API - * that is compatible with libdes and SSLeay. - * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an - * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. - * - * Note that these modes break earlier snapshots of OpenSSL, where - * libdes compatibility was the only available mode or (later on) the - * prefered compatibility mode. However, after much consideration - * (and more or less violent discussions with external parties), it - * was concluded that OpenSSL should be compatible with earlier versions - * of itself before anything else. Also, in all honesty, libdes is - * an old beast that shouldn't really be used any more. - * - * Please consider starting to use the DES_ functions rather than the - * des_ ones. The des_ functions will disappear completely before - * OpenSSL 1.0! - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL - * project 2001. - */ -/* ==================================================================== - * 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). - * - */ - -#ifndef HEADER_DES_H -#define HEADER_DES_H - -#include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ - -#ifdef OPENSSL_NO_DES -#error DES is disabled. -#endif - -#ifndef HEADER_NEW_DES_H -#error You must include des.h, not des_old.h directly. -#endif - -#ifdef _KERBEROS_DES_H -#error replaces . -#endif - -#include - -#ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _ -#undef _ -#endif - -typedef unsigned char _ossl_old_des_cblock[8]; -typedef struct _ossl_old_des_ks_struct - { - union { - _ossl_old_des_cblock _; - /* make sure things are correct size on machines with - * 8 byte longs */ - DES_LONG pad[2]; - } ks; - } _ossl_old_des_key_schedule[16]; - -#ifndef OPENSSL_DES_LIBDES_COMPATIBILITY -#define des_cblock DES_cblock -#define const_des_cblock const_DES_cblock -#define des_key_schedule DES_key_schedule -#define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) -#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) -#define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ - DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) -#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) -#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) -#define des_options()\ - DES_options() -#define des_cbc_cksum(i,o,l,k,iv)\ - DES_cbc_cksum((i),(o),(l),&(k),(iv)) -#define des_cbc_encrypt(i,o,l,k,iv,e)\ - DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) -#define des_ncbc_encrypt(i,o,l,k,iv,e)\ - DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) -#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) -#define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) -#define des_ecb_encrypt(i,o,k,e)\ - DES_ecb_encrypt((i),(o),&(k),(e)) -#define des_encrypt1(d,k,e)\ - DES_encrypt1((d),&(k),(e)) -#define des_encrypt2(d,k,e)\ - DES_encrypt2((d),&(k),(e)) -#define des_encrypt3(d,k1,k2,k3)\ - DES_encrypt3((d),&(k1),&(k2),&(k3)) -#define des_decrypt3(d,k1,k2,k3)\ - DES_decrypt3((d),&(k1),&(k2),&(k3)) -#define des_xwhite_in2out(k,i,o)\ - DES_xwhite_in2out((k),(i),(o)) -#define des_enc_read(f,b,l,k,iv)\ - DES_enc_read((f),(b),(l),&(k),(iv)) -#define des_enc_write(f,b,l,k,iv)\ - DES_enc_write((f),(b),(l),&(k),(iv)) -#define des_fcrypt(b,s,r)\ - DES_fcrypt((b),(s),(r)) -#if 0 -#define des_crypt(b,s)\ - DES_crypt((b),(s)) -#if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) -#define crypt(b,s)\ - DES_crypt((b),(s)) -#endif -#endif -#define des_ofb_encrypt(i,o,n,l,k,iv)\ - DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) -#define des_pcbc_encrypt(i,o,l,k,iv,e)\ - DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) -#define des_quad_cksum(i,o,l,c,s)\ - DES_quad_cksum((i),(o),(l),(c),(s)) -#define des_random_seed(k)\ - _ossl_096_des_random_seed((k)) -#define des_random_key(r)\ - DES_random_key((r)) -#define des_read_password(k,p,v) \ - DES_read_password((k),(p),(v)) -#define des_read_2passwords(k1,k2,p,v) \ - DES_read_2passwords((k1),(k2),(p),(v)) -#define des_set_odd_parity(k)\ - DES_set_odd_parity((k)) -#define des_check_key_parity(k)\ - DES_check_key_parity((k)) -#define des_is_weak_key(k)\ - DES_is_weak_key((k)) -#define des_set_key(k,ks)\ - DES_set_key((k),&(ks)) -#define des_key_sched(k,ks)\ - DES_key_sched((k),&(ks)) -#define des_set_key_checked(k,ks)\ - DES_set_key_checked((k),&(ks)) -#define des_set_key_unchecked(k,ks)\ - DES_set_key_unchecked((k),&(ks)) -#define des_string_to_key(s,k)\ - DES_string_to_key((s),(k)) -#define des_string_to_2keys(s,k1,k2)\ - DES_string_to_2keys((s),(k1),(k2)) -#define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) -#define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) - - -#define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -#define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -#define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -#define des_check_key DES_check_key -#define des_rw_mode DES_rw_mode -#else /* libdes compatibility */ -/* Map all symbol names to _ossl_old_des_* form, so we avoid all - clashes with libdes */ -#define des_cblock _ossl_old_des_cblock -#define des_key_schedule _ossl_old_des_key_schedule -#define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) -#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) -#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) -#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) -#define des_options()\ - _ossl_old_des_options() -#define des_cbc_cksum(i,o,l,k,iv)\ - _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) -#define des_cbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) -#define des_ncbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) -#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) -#define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) -#define des_ecb_encrypt(i,o,k,e)\ - _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) -#define des_encrypt(d,k,e)\ - _ossl_old_des_encrypt((d),(k),(e)) -#define des_encrypt2(d,k,e)\ - _ossl_old_des_encrypt2((d),(k),(e)) -#define des_encrypt3(d,k1,k2,k3)\ - _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) -#define des_decrypt3(d,k1,k2,k3)\ - _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) -#define des_xwhite_in2out(k,i,o)\ - _ossl_old_des_xwhite_in2out((k),(i),(o)) -#define des_enc_read(f,b,l,k,iv)\ - _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) -#define des_enc_write(f,b,l,k,iv)\ - _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) -#define des_fcrypt(b,s,r)\ - _ossl_old_des_fcrypt((b),(s),(r)) -#define des_crypt(b,s)\ - _ossl_old_des_crypt((b),(s)) -#if 0 -#define crypt(b,s)\ - _ossl_old_crypt((b),(s)) -#endif -#define des_ofb_encrypt(i,o,n,l,k,iv)\ - _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) -#define des_pcbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) -#define des_quad_cksum(i,o,l,c,s)\ - _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) -#define des_random_seed(k)\ - _ossl_old_des_random_seed((k)) -#define des_random_key(r)\ - _ossl_old_des_random_key((r)) -#define des_read_password(k,p,v) \ - _ossl_old_des_read_password((k),(p),(v)) -#define des_read_2passwords(k1,k2,p,v) \ - _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) -#define des_set_odd_parity(k)\ - _ossl_old_des_set_odd_parity((k)) -#define des_is_weak_key(k)\ - _ossl_old_des_is_weak_key((k)) -#define des_set_key(k,ks)\ - _ossl_old_des_set_key((k),(ks)) -#define des_key_sched(k,ks)\ - _ossl_old_des_key_sched((k),(ks)) -#define des_string_to_key(s,k)\ - _ossl_old_des_string_to_key((s),(k)) -#define des_string_to_2keys(s,k1,k2)\ - _ossl_old_des_string_to_2keys((s),(k1),(k2)) -#define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) -#define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) - - -#define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -#define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -#define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -#define des_check_key DES_check_key -#define des_rw_mode DES_rw_mode -#endif - -const char *_ossl_old_des_options(void); -void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks1,_ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, int enc); -DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output, - long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec); -void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length, - _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc); -void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length, - _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc); -void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length, - _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec, - _ossl_old_des_cblock *inw,_ossl_old_des_cblock *outw,int enc); -void _ossl_old_des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits, - long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc); -void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks,int enc); -void _ossl_old_des_encrypt(DES_LONG *data,_ossl_old_des_key_schedule ks, int enc); -void _ossl_old_des_encrypt2(DES_LONG *data,_ossl_old_des_key_schedule ks, int enc); -void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, _ossl_old_des_key_schedule ks3); -void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, _ossl_old_des_key_schedule ks3); -void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, _ossl_old_des_cblock *output, - long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, - long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num, int enc); -void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, - long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num); -#if 0 -void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), _ossl_old_des_cblock (*in_white), - _ossl_old_des_cblock (*out_white)); -#endif - -int _ossl_old_des_enc_read(int fd,char *buf,int len,_ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -int _ossl_old_des_enc_write(int fd,char *buf,int len,_ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -char *_ossl_old_des_fcrypt(const char *buf,const char *salt, char *ret); -char *_ossl_old_des_crypt(const char *buf,const char *salt); -#if !defined(PERL5) && !defined(NeXT) -char *_ossl_old_crypt(const char *buf,const char *salt); -#endif -void _ossl_old_des_ofb_encrypt(unsigned char *in,unsigned char *out, - int numbits,long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec); -void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length, - _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc); -DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output, - long length,int out_count,_ossl_old_des_cblock *seed); -void _ossl_old_des_random_seed(_ossl_old_des_cblock key); -void _ossl_old_des_random_key(_ossl_old_des_cblock ret); -int _ossl_old_des_read_password(_ossl_old_des_cblock *key,const char *prompt,int verify); -int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1,_ossl_old_des_cblock *key2, - const char *prompt,int verify); -void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); -int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); -int _ossl_old_des_set_key(_ossl_old_des_cblock *key,_ossl_old_des_key_schedule schedule); -int _ossl_old_des_key_sched(_ossl_old_des_cblock *key,_ossl_old_des_key_schedule schedule); -void _ossl_old_des_string_to_key(char *str,_ossl_old_des_cblock *key); -void _ossl_old_des_string_to_2keys(char *str,_ossl_old_des_cblock *key1,_ossl_old_des_cblock *key2); -void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length, - _ossl_old_des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num, int enc); -void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length, - _ossl_old_des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num); - -void _ossl_096_des_random_seed(des_cblock *key); - -/* The following definitions provide compatibility with the MIT Kerberos - * library. The _ossl_old_des_key_schedule structure is not binary compatible. */ - -#define _KERBEROS_DES_H - -#define KRBDES_ENCRYPT DES_ENCRYPT -#define KRBDES_DECRYPT DES_DECRYPT - -#ifdef KERBEROS -# define ENCRYPT DES_ENCRYPT -# define DECRYPT DES_DECRYPT -#endif - -#ifndef NCOMPAT -# define C_Block des_cblock -# define Key_schedule des_key_schedule -# define KEY_SZ DES_KEY_SZ -# define string_to_key des_string_to_key -# define read_pw_string des_read_pw_string -# define random_key des_random_key -# define pcbc_encrypt des_pcbc_encrypt -# define set_key des_set_key -# define key_sched des_key_sched -# define ecb_encrypt des_ecb_encrypt -# define cbc_encrypt des_cbc_encrypt -# define ncbc_encrypt des_ncbc_encrypt -# define xcbc_encrypt des_xcbc_encrypt -# define cbc_cksum des_cbc_cksum -# define quad_cksum des_quad_cksum -# define check_parity des_check_key_parity -#endif - -#define des_fixup_key_parity DES_fixup_key_parity - -#ifdef __cplusplus -} -#endif - -/* for DES_read_pw_string et al */ -#include - -#endif diff --git a/src/sdk/extern/include/openssl/dh.h b/src/sdk/extern/include/openssl/dh.h deleted file mode 100644 index ea59e61..0000000 --- a/src/sdk/extern/include/openssl/dh.h +++ /dev/null @@ -1,280 +0,0 @@ -/* crypto/dh/dh.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_DH_H -#define HEADER_DH_H - -#include - -#ifdef OPENSSL_NO_DH -#error DH is disabled. -#endif - -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#ifndef OPENSSL_NO_DEPRECATED -#include -#endif - -#ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -#endif - -#define DH_FLAG_CACHE_MONT_P 0x01 -#define DH_FLAG_NO_EXP_CONSTTIME 0x02 /* 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. - */ - -/* 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 result is compliant. - */ - -#define DH_FLAG_FIPS_METHOD 0x0400 - -/* If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -#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); - 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); /* Can be null */ - - 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 */ - 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; - }; - -#define DH_GENERATOR_2 2 -/* #define DH_GENERATOR_3 3 */ -#define DH_GENERATOR_5 5 - -/* DH_check error codes */ -#define DH_CHECK_P_NOT_PRIME 0x01 -#define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -#define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -#define DH_NOT_SUITABLE_GENERATOR 0x08 - -/* DH_check_pub_key error codes */ -#define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -#define DH_CHECK_PUBKEY_TOO_LARGE 0x02 - -/* primes p where (p-1)/2 is prime too are called "safe"; we define - this for backward compatibility: */ -#define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -#define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams,(fp),(unsigned char **)(x)) -#define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), \ - (unsigned char *)(x)) -#define d2i_DHparams_bio(bp,x) ASN1_d2i_bio_of(DH,DH_new,d2i_DHparams,bp,x) -#define i2d_DHparams_bio(bp,x) ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) - -DH *DHparams_dup(DH *); - -const DH_METHOD *DH_OpenSSL(void); - -void DH_set_default_method(const DH_METHOD *meth); -const DH_METHOD *DH_get_default_method(void); -int DH_set_method(DH *dh, const DH_METHOD *meth); -DH *DH_new_method(ENGINE *engine); - -DH * DH_new(void); -void DH_free(DH *dh); -int DH_up_ref(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_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) */ - -/* New version */ -int DH_generate_parameters_ex(DH *dh, int prime_len,int generator, BN_GENCB *cb); - -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); -int DH_compute_key(unsigned char *key,const BIGNUM *pub_key,DH *dh); -DH * d2i_DHparams(DH **a,const unsigned char **pp, long length); -int i2d_DHparams(const DH *a,unsigned char **pp); -#ifndef OPENSSL_NO_FP_API -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 - -#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) - -#define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) - -#define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) -#define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) - - -/* 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); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -#define DH_F_COMPUTE_KEY 102 -#define DH_F_DHPARAMS_PRINT_FP 101 -#define DH_F_DH_BUILTIN_GENPARAMS 106 -#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_NEW_METHOD 105 -#define DH_F_DH_PARAM_DECODE 107 -#define DH_F_DH_PRIV_DECODE 110 -#define DH_F_DH_PRIV_ENCODE 111 -#define DH_F_DH_PUB_DECODE 108 -#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 - -/* Reason codes. */ -#define DH_R_BAD_GENERATOR 101 -#define DH_R_BN_DECODE_ERROR 109 -#define DH_R_BN_ERROR 106 -#define DH_R_DECODE_ERROR 104 -#define DH_R_INVALID_PUBKEY 102 -#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 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/dsa.h b/src/sdk/extern/include/openssl/dsa.h deleted file mode 100644 index a6f6d0b..0000000 --- a/src/sdk/extern/include/openssl/dsa.h +++ /dev/null @@ -1,327 +0,0 @@ -/* crypto/dsa/dsa.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.] - */ - -/* - * 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 :-) */ - -#ifndef HEADER_DSA_H -#define HEADER_DSA_H - -#include - -#ifdef OPENSSL_NO_DSA -#error DSA is disabled. -#endif - -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include - -#ifndef OPENSSL_NO_DEPRECATED -#include -#ifndef OPENSSL_NO_DH -# include -#endif -#endif - -#ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -#endif - -#define DSA_FLAG_CACHE_MONT_P 0x01 -#define DSA_FLAG_NO_EXP_CONSTTIME 0x02 /* 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. - */ - -/* 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 result is compliant. - */ - -#define DSA_FLAG_FIPS_METHOD 0x0400 - -/* If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -#define DSA_FLAG_NON_FIPS_ALLOW 0x0400 - -#ifdef __cplusplus -extern "C" { -#endif - -/* 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); - int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *m_ctx); /* Can be null */ - 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; - }; - -#define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) -#define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ - (unsigned char *)(x)) -#define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) -#define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) - - -DSA *DSAparams_dup(DSA *x); -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); - -DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa); -int DSA_do_verify(const unsigned char *dgst,int dgst_len, - DSA_SIG *sig,DSA *dsa); - -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 *); - -DSA * DSA_new(void); -DSA * DSA_new_method(ENGINE *engine); -void DSA_free (DSA *r); -/* "up" the DSA object's reference count */ -int DSA_up_ref(DSA *r); -int DSA_size(const DSA *); - /* 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); -int DSA_set_ex_data(DSA *d, int idx, void *arg); -void *DSA_get_ex_data(DSA *d, int idx); - -DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); -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) */ - -/* New version */ -int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed,int seed_len, - int *counter_ret, unsigned long *h_ret, BN_GENCB *cb); - -int DSA_generate_key(DSA *a); -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 -int DSAparams_print_fp(FILE *fp, const DSA *x); -int DSA_print_fp(FILE *bp, const DSA *x, int off); -#endif - -#define DSS_prime_checks 50 -/* Primality test according to FIPS PUB 186[-1], Appendix 2.1: - * 50 rounds of Rabin-Miller */ -#define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -#ifndef OPENSSL_NO_DH -/* Convert DSA structure (key or just parameters) into DH structure - * (be careful to avoid small subgroup attacks when using this!) */ -DH *DSA_dup_DH(const DSA *r); -#endif - -#define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) - -#define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -#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) - -/* 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); - -/* 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_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_NEW_METHOD 103 -#define DSA_F_DSA_PARAM_DECODE 119 -#define DSA_F_DSA_PRINT_FP 105 -#define DSA_F_DSA_PRIV_DECODE 115 -#define DSA_F_DSA_PRIV_ENCODE 116 -#define DSA_F_DSA_PUB_DECODE 117 -#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_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_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 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/dso.h b/src/sdk/extern/include/openssl/dso.h deleted file mode 100644 index 839f2e0..0000000 --- a/src/sdk/extern/include/openssl/dso.h +++ /dev/null @@ -1,409 +0,0 @@ -/* dso.h -*- mode:C; c-file-style: "eay" -*- */ -/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL - * project 2000. - */ -/* ==================================================================== - * Copyright (c) 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 - * 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_DSO_H -#define HEADER_DSO_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* These values are used as commands to DSO_ctrl() */ -#define DSO_CTRL_GET_FLAGS 1 -#define DSO_CTRL_SET_FLAGS 2 -#define DSO_CTRL_OR_FLAGS 3 - -/* By default, DSO_load() will translate the provided filename into a form - * typical for the platform (more specifically the DSO_METHOD) using the - * dso_name_converter function of the method. Eg. win32 will transform "blah" - * into "blah.dll", and dlfcn will transform it into "libblah.so". The - * behaviour can be overriden by setting the name_converter callback in the DSO - * object (using DSO_set_name_converter()). This callback could even utilise - * the DSO_METHOD's converter too if it only wants to override behaviour for - * one or two possible DSO methods. However, the following flag can be set in a - * DSO to prevent *any* native name-translation at all - eg. if the caller has - * prompted the user for a path to a driver library so the filename should be - * interpreted as-is. */ -#define DSO_FLAG_NO_NAME_TRANSLATION 0x01 -/* An extra flag to give if only the extension should be added as - * translation. This is obviously only of importance on Unix and - * other operating systems where the translation also may prefix - * the name with something, like 'lib', and ignored everywhere else. - * This flag is also ignored if DSO_FLAG_NO_NAME_TRANSLATION is used - * at the same time. */ -#define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 - -/* The following flag controls the translation of symbol names to upper - * case. This is currently only being implemented for OpenVMS. - */ -#define DSO_FLAG_UPCASE_SYMBOL 0x10 - -/* This flag loads the library with public symbols. - * Meaning: The exported symbols of this library are public - * to all libraries loaded after this library. - * At the moment only implemented in unix. - */ -#define DSO_FLAG_GLOBAL_SYMBOLS 0x20 - - -typedef void (*DSO_FUNC_TYPE)(void); - -typedef struct dso_st DSO; - -/* The function prototype used for method functions (or caller-provided - * callbacks) that transform filenames. They are passed a DSO structure pointer - * (or NULL if they are to be used independantly of a DSO object) and a - * filename to transform. They should either return NULL (if there is an error - * condition) or a newly allocated string containing the transformed form that - * the caller will need to free with OPENSSL_free() when done. */ -typedef char* (*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); -/* The function prototype used for method functions (or caller-provided - * callbacks) that merge two file specifications. They are passed a - * DSO structure pointer (or NULL if they are to be used independantly of - * a DSO object) and two file specifications to merge. They should - * either return NULL (if there is an error condition) or a newly allocated - * string containing the result of merging that the caller will need - * to free with OPENSSL_free() when done. - * Here, merging means that bits and pieces are taken from each of the - * file specifications and added together in whatever fashion that is - * sensible for the DSO method in question. The only rule that really - * applies is that if the two specification contain pieces of the same - * type, the copy from the first string takes priority. One could see - * it as the first specification is the one given by the user and the - * second being a bunch of defaults to add on if they're missing in the - * first. */ -typedef char* (*DSO_MERGER_FUNC)(DSO *, const char *, const char *); - -typedef struct dso_meth_st - { - const char *name; - /* Loads a shared library, NB: new DSO_METHODs must ensure that a - * successful load populates the loaded_filename field, and likewise a - * successful unload OPENSSL_frees and NULLs it out. */ - int (*dso_load)(DSO *dso); - /* Unloads a shared library */ - int (*dso_unload)(DSO *dso); - /* Binds a variable */ - void *(*dso_bind_var)(DSO *dso, const char *symname); - /* Binds a function - assumes a return type of DSO_FUNC_TYPE. - * This should be cast to the real function prototype by the - * caller. Platforms that don't have compatible representations - * for different prototypes (this is possible within ANSI C) - * are highly unlikely to have shared libraries at all, let - * alone a DSO_METHOD implemented for them. */ - DSO_FUNC_TYPE (*dso_bind_func)(DSO *dso, const char *symname); - -/* I don't think this would actually be used in any circumstances. */ -#if 0 - /* Unbinds a variable */ - int (*dso_unbind_var)(DSO *dso, char *symname, void *symptr); - /* Unbinds a function */ - int (*dso_unbind_func)(DSO *dso, char *symname, DSO_FUNC_TYPE symptr); -#endif - /* The generic (yuck) "ctrl()" function. NB: Negative return - * values (rather than zero) indicate errors. */ - long (*dso_ctrl)(DSO *dso, int cmd, long larg, void *parg); - /* The default DSO_METHOD-specific function for converting filenames to - * a canonical native form. */ - DSO_NAME_CONVERTER_FUNC dso_name_converter; - /* The default DSO_METHOD-specific function for converting filenames to - * a canonical native form. */ - DSO_MERGER_FUNC dso_merger; - - /* [De]Initialisation handlers. */ - int (*init)(DSO *dso); - int (*finish)(DSO *dso); - - /* Return pathname of the module containing location */ - int (*pathbyaddr)(void *addr,char *path,int sz); - /* Perform global symbol lookup, i.e. among *all* modules */ - void *(*globallookup)(const char *symname); - } DSO_METHOD; - -/**********************************************************************/ -/* The low-level handle type used to refer to a loaded shared library */ - -struct dso_st - { - DSO_METHOD *meth; - /* Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS - * doesn't use anything but will need to cache the filename - * for use in the dso_bind handler. All in all, let each - * method control its own destiny. "Handles" and such go in - * a STACK. */ - STACK_OF(void) *meth_data; - int references; - int flags; - /* For use by applications etc ... use this for your bits'n'pieces, - * don't touch meth_data! */ - CRYPTO_EX_DATA ex_data; - /* If this callback function pointer is set to non-NULL, then it will - * be used in DSO_load() in place of meth->dso_name_converter. NB: This - * should normally set using DSO_set_name_converter(). */ - DSO_NAME_CONVERTER_FUNC name_converter; - /* If this callback function pointer is set to non-NULL, then it will - * be used in DSO_load() in place of meth->dso_merger. NB: This - * should normally set using DSO_set_merger(). */ - DSO_MERGER_FUNC merger; - /* This is populated with (a copy of) the platform-independant - * filename used for this DSO. */ - char *filename; - /* This is populated with (a copy of) the translated filename by which - * the DSO was actually loaded. It is NULL iff the DSO is not currently - * loaded. NB: This is here because the filename translation process - * may involve a callback being invoked more than once not only to - * convert to a platform-specific form, but also to try different - * filenames in the process of trying to perform a load. As such, this - * variable can be used to indicate (a) whether this DSO structure - * corresponds to a loaded library or not, and (b) the filename with - * which it was actually loaded. */ - char *loaded_filename; - }; - - -DSO * DSO_new(void); -DSO * DSO_new_method(DSO_METHOD *method); -int DSO_free(DSO *dso); -int DSO_flags(DSO *dso); -int DSO_up_ref(DSO *dso); -long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); - -/* This function sets the DSO's name_converter callback. If it is non-NULL, - * then it will be used instead of the associated DSO_METHOD's function. If - * oldcb is non-NULL then it is set to the function pointer value being - * replaced. Return value is non-zero for success. */ -int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, - DSO_NAME_CONVERTER_FUNC *oldcb); -/* These functions can be used to get/set the platform-independant filename - * used for a DSO. NB: set will fail if the DSO is already loaded. */ -const char *DSO_get_filename(DSO *dso); -int DSO_set_filename(DSO *dso, const char *filename); -/* This function will invoke the DSO's name_converter callback to translate a - * filename, or if the callback isn't set it will instead use the DSO_METHOD's - * converter. If "filename" is NULL, the "filename" in the DSO itself will be - * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is - * simply duplicated. NB: This function is usually called from within a - * DSO_METHOD during the processing of a DSO_load() call, and is exposed so that - * caller-created DSO_METHODs can do the same thing. A non-NULL return value - * will need to be OPENSSL_free()'d. */ -char *DSO_convert_filename(DSO *dso, const char *filename); -/* This function will invoke the DSO's merger callback to merge two file - * specifications, or if the callback isn't set it will instead use the - * DSO_METHOD's merger. A non-NULL return value will need to be - * OPENSSL_free()'d. */ -char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); -/* If the DSO is currently loaded, this returns the filename that it was loaded - * under, otherwise it returns NULL. So it is also useful as a test as to - * whether the DSO is currently loaded. NB: This will not necessarily return - * the same value as DSO_convert_filename(dso, dso->filename), because the - * DSO_METHOD's load function may have tried a variety of filenames (with - * and/or without the aid of the converters) before settling on the one it - * actually loaded. */ -const char *DSO_get_loaded_filename(DSO *dso); - -void DSO_set_default_method(DSO_METHOD *meth); -DSO_METHOD *DSO_get_default_method(void); -DSO_METHOD *DSO_get_method(DSO *dso); -DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); - -/* The all-singing all-dancing load function, you normally pass NULL - * for the first and third parameters. Use DSO_up and DSO_free for - * subsequent reference count handling. Any flags passed in will be set - * in the constructed DSO after its init() function but before the - * load operation. If 'dso' is non-NULL, 'flags' is ignored. */ -DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); - -/* This function binds to a variable inside a shared library. */ -void *DSO_bind_var(DSO *dso, const char *symname); - -/* This function binds to a function inside a shared library. */ -DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); - -/* This method is the default, but will beg, borrow, or steal whatever - * method should be the default on any particular platform (including - * DSO_METH_null() if necessary). */ -DSO_METHOD *DSO_METHOD_openssl(void); - -/* This method is defined for all platforms - if a platform has no - * DSO support then this will be the only method! */ -DSO_METHOD *DSO_METHOD_null(void); - -/* If DSO_DLFCN is defined, the standard dlfcn.h-style functions - * (dlopen, dlclose, dlsym, etc) will be used and incorporated into - * this method. If not, this method will return NULL. */ -DSO_METHOD *DSO_METHOD_dlfcn(void); - -/* If DSO_DL is defined, the standard dl.h-style functions (shl_load, - * shl_unload, shl_findsym, etc) will be used and incorporated into - * this method. If not, this method will return NULL. */ -DSO_METHOD *DSO_METHOD_dl(void); - -/* If WIN32 is defined, use DLLs. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_win32(void); - -/* If VMS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_vms(void); - -/* This function writes null-terminated pathname of DSO module - * containing 'addr' into 'sz' large caller-provided 'path' and - * returns the number of characters [including trailing zero] - * written to it. If 'sz' is 0 or negative, 'path' is ignored and - * required amount of charachers [including trailing zero] to - * accomodate pathname is returned. If 'addr' is NULL, then - * pathname of cryptolib itself is returned. Negative or zero - * return value denotes error. - */ -int DSO_pathbyaddr(void *addr,char *path,int sz); - -/* This function should be used with caution! It looks up symbols in - * *all* loaded modules and if module gets unloaded by somebody else - * attempt to dereference the pointer is doomed to have fatal - * consequences. Primary usage for this function is to probe *core* - * system functionality, e.g. check if getnameinfo(3) is available - * at run-time without bothering about OS-specific details such as - * libc.so.versioning or where does it actually reside: in libc - * itself or libsocket. */ -void *DSO_global_lookup(const char *name); - -/* If BeOS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_beos(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. - */ -void ERR_load_DSO_strings(void); - -/* Error codes for the DSO functions. */ - -/* Function codes. */ -#define DSO_F_BEOS_BIND_FUNC 144 -#define DSO_F_BEOS_BIND_VAR 145 -#define DSO_F_BEOS_LOAD 146 -#define DSO_F_BEOS_NAME_CONVERTER 147 -#define DSO_F_BEOS_UNLOAD 148 -#define DSO_F_DLFCN_BIND_FUNC 100 -#define DSO_F_DLFCN_BIND_VAR 101 -#define DSO_F_DLFCN_LOAD 102 -#define DSO_F_DLFCN_MERGER 130 -#define DSO_F_DLFCN_NAME_CONVERTER 123 -#define DSO_F_DLFCN_UNLOAD 103 -#define DSO_F_DL_BIND_FUNC 104 -#define DSO_F_DL_BIND_VAR 105 -#define DSO_F_DL_LOAD 106 -#define DSO_F_DL_MERGER 131 -#define DSO_F_DL_NAME_CONVERTER 124 -#define DSO_F_DL_UNLOAD 107 -#define DSO_F_DSO_BIND_FUNC 108 -#define DSO_F_DSO_BIND_VAR 109 -#define DSO_F_DSO_CONVERT_FILENAME 126 -#define DSO_F_DSO_CTRL 110 -#define DSO_F_DSO_FREE 111 -#define DSO_F_DSO_GET_FILENAME 127 -#define DSO_F_DSO_GET_LOADED_FILENAME 128 -#define DSO_F_DSO_GLOBAL_LOOKUP 139 -#define DSO_F_DSO_LOAD 112 -#define DSO_F_DSO_MERGE 132 -#define DSO_F_DSO_NEW_METHOD 113 -#define DSO_F_DSO_PATHBYADDR 140 -#define DSO_F_DSO_SET_FILENAME 129 -#define DSO_F_DSO_SET_NAME_CONVERTER 122 -#define DSO_F_DSO_UP_REF 114 -#define DSO_F_GLOBAL_LOOKUP_FUNC 138 -#define DSO_F_PATHBYADDR 137 -#define DSO_F_VMS_BIND_SYM 115 -#define DSO_F_VMS_LOAD 116 -#define DSO_F_VMS_MERGER 133 -#define DSO_F_VMS_UNLOAD 117 -#define DSO_F_WIN32_BIND_FUNC 118 -#define DSO_F_WIN32_BIND_VAR 119 -#define DSO_F_WIN32_GLOBALLOOKUP 142 -#define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 -#define DSO_F_WIN32_JOINER 135 -#define DSO_F_WIN32_LOAD 120 -#define DSO_F_WIN32_MERGER 134 -#define DSO_F_WIN32_NAME_CONVERTER 125 -#define DSO_F_WIN32_PATHBYADDR 141 -#define DSO_F_WIN32_SPLITTER 136 -#define DSO_F_WIN32_UNLOAD 121 - -/* Reason codes. */ -#define DSO_R_CTRL_FAILED 100 -#define DSO_R_DSO_ALREADY_LOADED 110 -#define DSO_R_EMPTY_FILE_STRUCTURE 113 -#define DSO_R_FAILURE 114 -#define DSO_R_FILENAME_TOO_BIG 101 -#define DSO_R_FINISH_FAILED 102 -#define DSO_R_INCORRECT_FILE_SYNTAX 115 -#define DSO_R_LOAD_FAILED 103 -#define DSO_R_NAME_TRANSLATION_FAILED 109 -#define DSO_R_NO_FILENAME 111 -#define DSO_R_NO_FILE_SPECIFICATION 116 -#define DSO_R_NULL_HANDLE 104 -#define DSO_R_SET_FILENAME_FAILED 112 -#define DSO_R_STACK_ERROR 105 -#define DSO_R_SYM_FAILURE 106 -#define DSO_R_UNLOAD_FAILED 107 -#define DSO_R_UNSUPPORTED 108 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/dtls1.h b/src/sdk/extern/include/openssl/dtls1.h deleted file mode 100644 index 192c5de..0000000 --- a/src/sdk/extern/include/openssl/dtls1.h +++ /dev/null @@ -1,288 +0,0 @@ -/* 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). - * - */ - -#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 DTLS_MAX_VERSION DTLS1_VERSION - -#define DTLS1_BAD_VER 0x0100 - -#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 - -#define DTLS1_RT_HEADER_LENGTH 13 - -#define DTLS1_HM_HEADER_LENGTH 12 - -#define DTLS1_HM_BAD_FRAGMENT -2 -#define DTLS1_HM_FRAGMENT_RETRY -3 - -#define DTLS1_CCS_HEADER_LENGTH 1 - -#ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -#define DTLS1_AL_HEADER_LENGTH 7 -#else -#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 - -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 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; - 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 -#define DTLS1_TMO_WRITE_COUNT 2 - -#define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/e_os2.h b/src/sdk/extern/include/openssl/e_os2.h deleted file mode 100644 index d22c036..0000000 --- a/src/sdk/extern/include/openssl/e_os2.h +++ /dev/null @@ -1,315 +0,0 @@ -/* 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). - * - */ - -#include - -#ifndef HEADER_E_OS2_H -#define HEADER_E_OS2_H - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -#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) -# 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) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -#else -# if defined(__CYGWIN32__) || defined(OPENSSL_SYSNAME_CYGWIN32) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32 -# endif -# if defined(OPENSSL_SYSNAME_WINNT) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINNT -# endif -# if defined(OPENSSL_SYSNAME_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINCE -# endif -# endif -#endif - -/* Anything that tries to look like Microsoft is "Windows" */ -#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -#endif - -/* DLL settings. This part is a bit tough, because it's up to the application - implementor how he or she will link the application, so it requires some - macro to be used. */ -#ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to indicate that - DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -#endif - -/* -------------------------------- OpenVMS -------------------------------- */ -#if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_VMS -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# 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) -# 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) -# define OPENSSL_SYS_AIX -# endif -#endif - -/* --------------------------------- VOS ----------------------------------- */ -#if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) -# define OPENSSL_SYS_VOS -#ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -#endif -#ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -#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 - *****************************************************************************/ - - -/* Specials for I/O an exit */ -#ifdef OPENSSL_SYS_MSDOS -# define OPENSSL_UNISTD_IO -# define OPENSSL_DECLARE_EXIT extern void exit(int); -#else -# define OPENSSL_UNISTD_IO OPENSSL_UNISTD -# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ -#endif - -/* 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. - 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 - global variables, the following code must be present in the header file - that declares them, before OPENSSL_EXTERN is used: - - #ifdef SOME_BUILD_FLAG_MACRO - # undef OPENSSL_EXTERN - # 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. -*/ - -#if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_IMPORT 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_GLOBAL -#else -# define OPENSSL_EXPORT extern -# define OPENSSL_IMPORT extern -# define OPENSSL_GLOBAL -#endif -#define OPENSSL_EXTERN OPENSSL_IMPORT - -/* Macros to allow global variables to be reached through function calls when - required (if a shared library version requires it, for example. - The way it's done allows definitions like this: - - // in foobar.c - OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) - // in foobar.h - OPENSSL_DECLARE_GLOBAL(int,foobar); - #define foobar OPENSSL_GLOBAL_REF(foobar) -*/ -#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ - type *_shadow_##name(void) \ - { static type _hide_##name=value; return &_hide_##name; } -# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) -# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) -#else -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; -# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name -# 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 -#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 -#endif - -#ifndef ossl_ssize_t -# define ossl_ssize_t ssize_t -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ebcdic.h b/src/sdk/extern/include/openssl/ebcdic.h deleted file mode 100644 index 85f3cf7..0000000 --- a/src/sdk/extern/include/openssl/ebcdic.h +++ /dev/null @@ -1,26 +0,0 @@ -/* crypto/ebcdic.h */ - -#ifndef HEADER_EBCDIC_H -#define HEADER_EBCDIC_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -#define os_toascii _openssl_os_toascii -#define os_toebcdic _openssl_os_toebcdic -#define ebcdic2ascii _openssl_ebcdic2ascii -#define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ec.h b/src/sdk/extern/include/openssl/ec.h deleted file mode 100644 index 572111f..0000000 --- a/src/sdk/extern/include/openssl/ec.h +++ /dev/null @@ -1,1167 +0,0 @@ -/* 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 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_EC_H -#define HEADER_EC_H - -#include - -#ifdef OPENSSL_NO_EC -#error EC is disabled. -#endif - -#include -#include -#ifndef OPENSSL_NO_DEPRECATED -#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 -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -#endif - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x02 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} 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_point_st EC_POINT; - - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nist_method(void); - -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp521_method(void); -#endif - -#ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -const EC_METHOD *EC_GF2m_simple_method(void); - -#endif - - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -void EC_GROUP_clear_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -int EC_METHOD_get_field_type(const EC_METHOD *meth); - -/** Sets the generator and it's order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \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 - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(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 - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** 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 - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); -size_t EC_GROUP_get_seed_len(const EC_GROUP *); -size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); - -/** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM with the prime number - * \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 - */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM for the prime number - * \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 - */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); - -#ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field - * \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 - */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field - * \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 - */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); -#endif -/** Returns the number of bits needed to represent a field element - * \param group EC_GROUP object - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \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 - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() - * after choosing an appropriate EC_METHOD */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -#ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -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 - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; - } EC_builtin_curve; - -/* 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 nitems EC_builtin_curve structures - * are filled with the data of the first nitems internal groups */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -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 - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -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 - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \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 - */ -int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, BN_CTX *ctx); - -/** Gets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \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 - */ -int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); - -/** Sets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -#ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -#endif -/** Encodes a EC_POINT object to a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory 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_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \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 - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, 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 *); -EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, - EC_POINT *, BN_CTX *); -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \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 - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \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 - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \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 - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \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 - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \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 - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); - -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] - * \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 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 - */ -int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx); - -/** Computes r = generator * n + q * m - * \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 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 - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -/** 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 - */ -int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -int EC_GROUP_have_precompute_mult(const EC_GROUP *group); - - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -/* EC_GROUP_get_basis_type() returns the NID of the basis type - * used to represent the field elements */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -#ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -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; - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -#define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) -#define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) -#define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -#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 -int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); -#endif - - -/********************************************************************/ -/* 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 - -/* some values for the flags field */ -#define EC_FLAG_NON_FIPS_ALLOW 0x1 -#define EC_FLAG_FIPS_CHECKED 0x2 - -/** Creates a new EC_KEY object. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new(void); - -int EC_KEY_get_flags(const EC_KEY *key); - -void EC_KEY_set_flags(EC_KEY *key, int flags); - -void EC_KEY_clear_flags(EC_KEY *key, int flags); - -/** Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_up_ref(EC_KEY *key); - -/** Returns the EC_GROUP object of a EC_KEY object - * \param key EC_KEY object - * \return the EC_GROUP object (possibly NULL). - */ -const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -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 *)); -/* wrapper functions for the underlying EC_GROUP object */ -void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_check_key(const EC_KEY *key); - -/** Sets a public key from affine coordindates performing - * neccessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y); - - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object 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. - */ -int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); - - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -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 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. - */ -int i2d_ECParameters(EC_KEY *key, unsigned char **out); - - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes a ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \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 - */ -int i2o_ECPublicKey(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 - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -#endif -#ifndef OPENSSL_NO_FP_API -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); - -#endif - -#define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) - -#ifndef __cplusplus -#if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -#endif - -#define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) - - -#define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) - -/* 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_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_ECKEY_PARAM2TYPE 223 -#define EC_F_ECKEY_PARAM_DECODE 212 -#define EC_F_ECKEY_PRIV_DECODE 213 -#define EC_F_ECKEY_PRIV_ENCODE 214 -#define EC_F_ECKEY_PUB_DECODE 215 -#define EC_F_ECKEY_PUB_ENCODE 216 -#define EC_F_ECKEY_TYPE2PARAM 220 -#define EC_F_ECPARAMETERS_PRINT 147 -#define EC_F_ECPARAMETERS_PRINT_FP 148 -#define EC_F_ECPKPARAMETERS_PRINT 149 -#define EC_F_ECPKPARAMETERS_PRINT_FP 150 -#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_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 -#define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -#define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -#define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -#define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -#define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -#define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -#define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -#define EC_F_EC_GFP_MONT_FIELD_MUL 131 -#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 -#define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -#define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -#define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -#define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -#define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -#define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -#define EC_F_EC_GFP_NIST_FIELD_MUL 200 -#define EC_F_EC_GFP_NIST_FIELD_SQR 201 -#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_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_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_PRINT 180 -#define EC_F_EC_KEY_PRINT_FP 181 -#define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -#define EC_F_EC_POINTS_MAKE_AFFINE 136 -#define EC_F_EC_POINT_ADD 112 -#define EC_F_EC_POINT_CMP 113 -#define EC_F_EC_POINT_COPY 114 -#define EC_F_EC_POINT_DBL 115 -#define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -#define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -#define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -#define EC_F_EC_POINT_INVERT 210 -#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 -#define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -#define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -#define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -#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 -#define EC_F_I2D_ECPARAMETERS 190 -#define EC_F_I2D_ECPKPARAMETERS 191 -#define EC_F_I2D_ECPRIVATEKEY 192 -#define EC_F_I2O_ECPUBLICKEY 151 -#define EC_F_NISTP224_PRE_COMP_NEW 227 -#define EC_F_NISTP256_PRE_COMP_NEW 236 -#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_PKEY_EC_CTRL 197 -#define EC_F_PKEY_EC_CTRL_STR 198 -#define EC_F_PKEY_EC_DERIVE 217 -#define EC_F_PKEY_EC_KEYGEN 199 -#define EC_F_PKEY_EC_PARAMGEN 219 -#define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -#define EC_R_ASN1_ERROR 115 -#define EC_R_ASN1_UNKNOWN_FIELD 116 -#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_D2I_ECPKPARAMETERS_FAILURE 117 -#define EC_R_DECODE_ERROR 142 -#define EC_R_DISCRIMINANT_IS_ZERO 118 -#define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -#define EC_R_FIELD_TOO_LARGE 143 -#define EC_R_GF2M_NOT_SUPPORTED 147 -#define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -#define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -#define EC_R_INCOMPATIBLE_OBJECTS 101 -#define EC_R_INVALID_ARGUMENT 112 -#define EC_R_INVALID_COMPRESSED_POINT 110 -#define EC_R_INVALID_COMPRESSION_BIT 109 -#define EC_R_INVALID_CURVE 141 -#define EC_R_INVALID_DIGEST_TYPE 138 -#define EC_R_INVALID_ENCODING 102 -#define EC_R_INVALID_FIELD 103 -#define EC_R_INVALID_FORM 104 -#define EC_R_INVALID_GROUP_ORDER 122 -#define EC_R_INVALID_PENTANOMIAL_BASIS 132 -#define EC_R_INVALID_PRIVATE_KEY 123 -#define EC_R_INVALID_TRINOMIAL_BASIS 137 -#define EC_R_KEYS_NOT_SET 140 -#define EC_R_MISSING_PARAMETERS 124 -#define EC_R_MISSING_PRIVATE_KEY 125 -#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_PASSED_NULL_PARAMETER 134 -#define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -#define EC_R_POINT_AT_INFINITY 106 -#define EC_R_POINT_IS_NOT_ON_CURVE 107 -#define EC_R_SLOT_FULL 108 -#define EC_R_UNDEFINED_GENERATOR 113 -#define EC_R_UNDEFINED_ORDER 128 -#define EC_R_UNKNOWN_GROUP 129 -#define EC_R_UNKNOWN_ORDER 114 -#define EC_R_UNSUPPORTED_FIELD 131 -#define EC_R_WRONG_CURVE_PARAMETERS 145 -#define EC_R_WRONG_ORDER 130 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ecdh.h b/src/sdk/extern/include/openssl/ecdh.h deleted file mode 100644 index 8887102..0000000 --- a/src/sdk/extern/include/openssl/ecdh.h +++ /dev/null @@ -1,125 +0,0 @@ -/* 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 - -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); - - -/* 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_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 diff --git a/src/sdk/extern/include/openssl/ecdsa.h b/src/sdk/extern/include/openssl/ecdsa.h deleted file mode 100644 index 7fb5254..0000000 --- a/src/sdk/extern/include/openssl/ecdsa.h +++ /dev/null @@ -1,260 +0,0 @@ -/* 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); - - -/* 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_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_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 diff --git a/src/sdk/extern/include/openssl/engine.h b/src/sdk/extern/include/openssl/engine.h deleted file mode 100644 index f8be497..0000000 --- a/src/sdk/extern/include/openssl/engine.h +++ /dev/null @@ -1,842 +0,0 @@ -/* 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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_ENGINE_H -#define HEADER_ENGINE_H - -#include - -#ifdef OPENSSL_NO_ENGINE -#error ENGINE is disabled. -#endif - -#ifndef OPENSSL_NO_DEPRECATED -#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 -#endif - -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* These flags are used to control combinations of algorithm (methods) - * by bitwise "OR"ing. */ -#define ENGINE_METHOD_RSA (unsigned int)0x0001 -#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 -/* Obvious all-or-nothing cases. */ -#define ENGINE_METHOD_ALL (unsigned int)0xFFFF -#define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be set - * by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. */ -#define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ /* Not used */ - -/* This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles these - * control commands on behalf of the ENGINE using their "cmd_defns" data. */ -#define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* This flag is for ENGINEs who return new duplicate structures when found via - * "ENGINE_by_id()". When an ENGINE must store state (eg. if ENGINE_ctrl() - * commands are called in sequence as part of some stateful process like - * key-generation setup and execution), it can set this flag - then each attempt - * to obtain the ENGINE will result in it being copied into a new structure. - * Normally, ENGINEs don't declare this flag so ENGINE_by_id() just increments - * the existing ENGINE's structural reference count. */ -#define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* This flag if for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are - * not usable as default methods. - */ - -#define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input each - * command expects. Currently only numeric and string input is supported. If a - * control command supports none of the _NUMERIC, _STRING, or _NO_INPUT options, - * then it is regarded as an "internal" control command - and not for use in - * config setting situations. As such, they're not available to the - * ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() access. Changes to - * this list of 'command types' should be reflected carefully in - * ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -#define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* accepts string input (cast from 'void*' to 'const char *', 4th parameter to - * ENGINE_ctrl) */ -#define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* Indicates that the control command takes *no* input. Ie. the control command - * is unparameterised. */ -#define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. */ -#define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* NB: These 3 control commands are deprecated and should not be used. ENGINEs - * relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate the - * same functionality to their own ENGINE-specific control functions that can be - * "discovered" by calling applications. The fact these control commands - * wouldn't be "executable" (ie. usable by text-based config) doesn't change the - * fact that application code can find and use them without requiring per-ENGINE - * hacking. */ - -/* These flags are used to tell the ctrl function what should be done. - * All command numbers are shared between all engines, even if some don't - * make sense to some engines. In such a case, they do nothing but return - * the error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. */ -#define ENGINE_CTRL_SET_LOGSTREAM 1 -#define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -#define ENGINE_CTRL_HUP 3 /* Close and reinitialise any - handles/connections etc. */ -#define ENGINE_CTRL_SET_USER_INTERFACE 4 /* Alternative to callback */ -#define ENGINE_CTRL_SET_CALLBACK_DATA 5 /* User-specific data, used - when calling the password - callback and the user - interface */ -#define ENGINE_CTRL_LOAD_CONFIGURATION 6 /* Load a configuration, given - a string that represents a - file name or so */ -#define ENGINE_CTRL_LOAD_SECTION 7 /* Load data from a given - section in the already loaded - configuration */ - -/* These control commands allow an application to deal with an arbitrary engine - * in a dynamic way. Warn: Negative return values indicate errors FOR THESE - * COMMANDS because zero is used to indicate 'end-of-list'. Other commands, - * including ENGINE-specific command types, return zero for an error. - * - * An ENGINE can choose to implement these ctrl functions, and can internally - * manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise the - * ENGINE_ctrl() code handles this on the ENGINE's behalf using the cmd_defns - * data (set using ENGINE_set_cmd_defns()). This means an ENGINE's ctrl() - * handler need only implement its own commands - the above "meta" commands will - * be taken care of. */ - -/* Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", then - * all the remaining control commands will return failure, so it is worth - * checking this first if the caller is trying to "discover" the engine's - * capabilities and doesn't want errors generated unnecessarily. */ -#define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. */ -#define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. */ -#define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. */ -#define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the NAME_LEN - * case, the return value is the length of the command name (not counting a - * trailing EOL). In the NAME case, the 'void*' argument must be a string buffer - * large enough, and it will be populated with the name of the command (WITH a - * trailing EOL). */ -#define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -#define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -#define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -#define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. */ -#define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). */ -#define ENGINE_CMD_BASE 200 - -/* NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before these - * are removed. */ - -/* Flags specific to the nCipher "chil" engine */ -#define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -#define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. */ - -/* If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on its - * behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN entries - * to ENGINE_set_cmd_defns(). It should also implement a ctrl() handler that - * supports the stated commands (ie. the "cmd_num" entries as described by the - * array). NB: The array must be ordered in increasing order of cmd_num. - * "null-terminated" means that the last ENGINE_CMD_DEFN element has cmd_num set - * to zero and/or cmd_name set to NULL. */ -typedef struct ENGINE_CMD_DEFN_st - { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ - } ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR)(void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR)(ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR)(ENGINE *, int, long, void *, void (*f)(void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR)(ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, UI_METHOD *ui_method, void *callback_data); -/* These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* Returns to a pointer to the array of supported cipher 'nid's. If the second - * parameter is non-NULL it is set to the size of the returned array. */ -typedef int (*ENGINE_CIPHERS_PTR)(ENGINE *, const EVP_CIPHER **, const int **, int); -typedef int (*ENGINE_DIGESTS_PTR)(ENGINE *, const EVP_MD **, const int **, int); -typedef int (*ENGINE_PKEY_METHS_PTR)(ENGINE *, EVP_PKEY_METHOD **, const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR)(ENGINE *, EVP_PKEY_ASN1_METHOD **, const int **, int); -/* STRUCTURE functions ... all of these functions deal with pointers to ENGINE - * structures where the pointers have a "structural reference". This means that - * their reference is to allowed access to the structure but it does not imply - * that the structure is functional. To simply increment or decrement the - * structural reference count, use ENGINE_by_id and ENGINE_free. NB: This is not - * required when iterating using ENGINE_get_next as it will automatically - * decrement the structural reference count of the "current" ENGINE and - * increment the structural reference count of the ENGINE it returns (unless it - * is NULL). */ - -/* Get the first/last "ENGINE" type available. */ -ENGINE *ENGINE_get_first(void); -ENGINE *ENGINE_get_last(void); -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -ENGINE *ENGINE_get_next(ENGINE *e); -ENGINE *ENGINE_get_prev(ENGINE *e); -/* Add another "ENGINE" type into the array. */ -int ENGINE_add(ENGINE *e); -/* Remove an existing "ENGINE" type from the array. */ -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); -#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 -#endif -void ENGINE_load_cryptodev(void); -void ENGINE_load_rsax(void); -void ENGINE_load_rdrand(void); -void ENGINE_load_builtin_engines(void); - -/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. */ -unsigned int ENGINE_get_table_flags(void); -void ENGINE_set_table_flags(unsigned int flags); - -/* Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * 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. */ - -int ENGINE_register_RSA(ENGINE *e); -void ENGINE_unregister_RSA(ENGINE *e); -void ENGINE_register_all_RSA(void); - -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_DH(ENGINE *e); -void ENGINE_unregister_DH(ENGINE *e); -void ENGINE_register_all_DH(void); - -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); - -int ENGINE_register_digests(ENGINE *e); -void ENGINE_unregister_digests(ENGINE *e); -void ENGINE_register_all_digests(void); - -int ENGINE_register_pkey_meths(ENGINE *e); -void ENGINE_unregister_pkey_meths(ENGINE *e); -void ENGINE_register_all_pkey_meths(void); - -int ENGINE_register_pkey_asn1_meths(ENGINE *e); -void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -void ENGINE_register_all_pkey_asn1_meths(void); - -/* These functions register all support from the above categories. Note, use of - * these functions can result in static linkage of code your application may not - * need. If you only need a subset of functionality, consider using more - * selective initialisation. */ -int ENGINE_register_complete(ENGINE *e); -int ENGINE_register_all_complete(void); - -/* Send parametrised control commands to the engine. The possibilities to send - * down an integer, a pointer to data or a function pointer are provided. Any of - * the parameters may or may not be NULL, depending on the command number. In - * actuality, this function only requires a structural (rather than functional) - * reference to an engine, but many control commands may require the engine be - * functional. The caller should be aware of trying commands that require an - * operational ENGINE, and only use functional references in such situations. */ -int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void)); - -/* This function tests if an ENGINE-specific command is usable as a "setting". - * Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). */ -int ENGINE_cmd_is_executable(ENGINE *e, int cmd); - -/* This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional commands. - * See the comment on ENGINE_ctrl_cmd_string() for an explanation on how to - * use the cmd_name and cmd_optional. */ -int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f)(void), int cmd_optional); - -/* This function passes a command-name and argument to an ENGINE. The cmd_name - * is converted to a command number and the control command is called using - * 'arg' as an argument (unless the ENGINE doesn't support such a command, in - * which case no control command is called). The command is checked for input - * flags, and if necessary the argument will be converted to a numeric value. If - * cmd_optional is non-zero, then if the ENGINE doesn't support the given - * cmd_name the return value will be success anyway. This function is intended - * for applications to use so that users (or config files) can supply - * engine-specific config data to the ENGINE at run-time to control behaviour of - * specific engines. As such, it shouldn't be used for calling ENGINE_ctrl() - * functions that return data, deal with binary data, or that are otherwise - * supposed to be used directly through ENGINE_ctrl() in application code. Any - * "return" data from an ENGINE_ctrl() operation in this function will be lost - - * the return value is interpreted as failure if the return value is zero, - * success otherwise, and this function returns a boolean value as a result. In - * other words, vendors of 'ENGINE'-enabled devices should write ENGINE - * implementations with parameterisations that work in this scheme, so that - * compliant ENGINE-based applications can work consistently with the same - * configuration for the same ENGINE-enabled devices, across applications. */ -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); - -/* These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an ENGINE - * structure with personalised implementations of things prior to using it - * directly or adding it to the builtin ENGINE list in OpenSSL. These are also - * here so that the ENGINE structure doesn't have to be exposed and break binary - * compatibility! */ -ENGINE *ENGINE_new(void); -int ENGINE_free(ENGINE *e); -int ENGINE_up_ref(ENGINE *e); -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_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); -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f); -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR loadssl_f); -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -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); -int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -void *ENGINE_get_ex_data(const ENGINE *e, int idx); - -/* 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. */ -void ENGINE_cleanup(void); - -/* These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! */ -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 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); -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e); -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, int len); -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, int len); -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -int ENGINE_get_flags(const ENGINE *e); - -/* FUNCTIONAL functions. These functions deal with ENGINE structures - * that have (or will) be initialised for use. Broadly speaking, the - * structural functions are useful for iterating the list of available - * engine types, creating new engine types, and other "list" operations. - * These functions actually deal with ENGINEs that are to be used. As - * such these functions can fail (if applicable) when particular - * engines are unavailable - eg. if a hardware accelerator is not - * attached or not functioning correctly. Each ENGINE has 2 reference - * counts; structural and functional. Every time a functional reference - * is obtained or released, a corresponding structural reference is - * automatically obtained or released too. */ - -/* Initialise a engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently - * operational and cannot initialise. */ -int ENGINE_init(ENGINE *e); -/* Free a functional reference to a engine type. This does not require - * a corresponding call to ENGINE_free as it also releases a structural - * reference. */ -int ENGINE_finish(ENGINE *e); - -/* The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. */ -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **ppkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); - -/* This returns a pointer for the current ENGINE structure that - * is (by default) performing any RSA operations. The value returned - * is an incremented reference, so it should be free'd (ENGINE_finish) - * before it is discarded. */ -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_DH(void); -ENGINE *ENGINE_get_default_RAND(void); -/* These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". */ -ENGINE *ENGINE_get_cipher_engine(int nid); -ENGINE *ENGINE_get_digest_engine(int nid); -ENGINE *ENGINE_get_pkey_meth_engine(int nid); -ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); - -/* This sets a new default ENGINE structure for performing RSA - * operations. If the result is non-zero (success) then the ENGINE - * structure will have had its reference count up'd so the caller - * should still free their own reference 'e'. */ -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_DH(ENGINE *e); -int ENGINE_set_default_RAND(ENGINE *e); -int ENGINE_set_default_ciphers(ENGINE *e); -int ENGINE_set_default_digests(ENGINE *e); -int ENGINE_set_default_pkey_meths(ENGINE *e); -int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); - -/* The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. */ -int ENGINE_set_default(ENGINE *e, unsigned int flags); - -void ENGINE_add_conf_module(void); - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -#define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000 -/* 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 - -/* When compiling an ENGINE entirely as an external shared library, loadable by - * the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' structure - * type provides the calling application's (or library's) error functionality - * and memory management function pointers to the loaded library. These should - * be used/set in the loaded library code so that the loading application's - * 'state' will be used/changed in all operations. The 'static_state' pointer - * allows the loaded library to know if it shares the 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 struct st_dynamic_MEM_fns { - dyn_MEM_malloc_cb malloc_cb; - dyn_MEM_realloc_cb realloc_cb; - dyn_MEM_free_cb free_cb; - } 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?? */ -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; - -/* The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading code. - * If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's version - * is unsatisfactory and could veto the load. The function is expected to - * be implemented with the symbol name "v_check", and a default implementation - * can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */ -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; \ - return 0; } - -/* This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load will - * be aborted, (b) the previous ENGINE state will be memcpy'd back onto the - * structure, and (c) the shared library will be unloaded. So implementations - * should do their own internal cleanup in failure circumstances otherwise they - * could leak. The 'id' parameter, if non-NULL, represents the ENGINE id that - * the loader is looking for. If this is NULL, the shared library can choose to - * return failure or to initialise a 'default' ENGINE. If non-NULL, the shared - * library must initialise only an ENGINE matching the passed 'id'. The function - * is expected to be implemented with the symbol name "bind_engine". A standard - * implementation can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where - * the parameter 'fn' is a callback function that populates the ENGINE structure - * and returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); */ -typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id, - const dynamic_fns *fns); -#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - 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; \ - skip_cbs: \ - if(!fn(e,id)) return 0; \ - return 1; } - -/* If the loading application (or library) and the loaded ENGINE library share - * the same static data (eg. they're both dynamically linked to the same - * libcrypto.so) we need a way to avoid trying to set system callbacks - this - * would fail, and for the same reason that it's unnecessary to try. If the - * loaded ENGINE has (or gets from through the loader) its own copy of the - * libcrypto static data, we will need to set the callbacks. The easiest way to - * detect this is to have a function that returns a pointer to some static data - * and let the loading application and loaded ENGINE compare their respective - * values. */ -void *ENGINE_get_static_state(void); - -#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) -void ENGINE_setup_bsd_cryptodev(void); -#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_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -#define ENGINE_F_DYNAMIC_CTRL 180 -#define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -#define ENGINE_F_DYNAMIC_LOAD 182 -#define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -#define ENGINE_F_ENGINE_ADD 105 -#define ENGINE_F_ENGINE_BY_ID 106 -#define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -#define ENGINE_F_ENGINE_CTRL 142 -#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_NEXT 115 -#define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -#define ENGINE_F_ENGINE_GET_PKEY_METH 192 -#define ENGINE_F_ENGINE_GET_PREV 116 -#define ENGINE_F_ENGINE_INIT 119 -#define ENGINE_F_ENGINE_LIST_ADD 120 -#define ENGINE_F_ENGINE_LIST_REMOVE 121 -#define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -#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_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 -#define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -#define ENGINE_R_CMD_NOT_EXECUTABLE 134 -#define ENGINE_R_COMMAND_TAKES_INPUT 135 -#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 -#define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -#define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -#define ENGINE_R_ENGINE_SECTION_ERROR 149 -#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 -#define ENGINE_R_INVALID_ARGUMENT 143 -#define ENGINE_R_INVALID_CMD_NAME 137 -#define ENGINE_R_INVALID_CMD_NUMBER 138 -#define ENGINE_R_INVALID_INIT_VALUE 151 -#define ENGINE_R_INVALID_STRING 150 -#define ENGINE_R_NOT_INITIALISED 117 -#define ENGINE_R_NOT_LOADED 112 -#define ENGINE_R_NO_CONTROL_FUNCTION 120 -#define ENGINE_R_NO_INDEX 144 -#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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/err.h b/src/sdk/extern/include/openssl/err.h deleted file mode 100644 index 974cc9c..0000000 --- a/src/sdk/extern/include/openssl/err.h +++ /dev/null @@ -1,386 +0,0 @@ -/* 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). - * - */ - -#ifndef HEADER_ERR_H -#define HEADER_ERR_H - -#include - -#ifndef OPENSSL_NO_FP_API -#include -#include -#endif - -#include -#ifndef OPENSSL_NO_BIO -#include -#endif -#ifndef OPENSSL_NO_LHASH -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef OPENSSL_NO_ERR -#define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) -#else -#define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) -#endif - -#include - -#define ERR_TXT_MALLOCED 0x01 -#define ERR_TXT_STRING 0x02 - -#define ERR_FLAG_MARK 0x01 - -#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]; - int err_data_flags[ERR_NUM_ERRORS]; - const char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - int top,bottom; - } ERR_STATE; - -/* library */ -#define ERR_LIB_NONE 1 -#define ERR_LIB_SYS 2 -#define ERR_LIB_BN 3 -#define ERR_LIB_RSA 4 -#define ERR_LIB_DH 5 -#define ERR_LIB_EVP 6 -#define ERR_LIB_BUF 7 -#define ERR_LIB_OBJ 8 -#define ERR_LIB_PEM 9 -#define ERR_LIB_DSA 10 -#define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -#define ERR_LIB_ASN1 13 -#define ERR_LIB_CONF 14 -#define ERR_LIB_CRYPTO 15 -#define ERR_LIB_EC 16 -#define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -#define ERR_LIB_BIO 32 -#define ERR_LIB_PKCS7 33 -#define ERR_LIB_X509V3 34 -#define ERR_LIB_PKCS12 35 -#define ERR_LIB_RAND 36 -#define ERR_LIB_DSO 37 -#define ERR_LIB_ENGINE 38 -#define ERR_LIB_OCSP 39 -#define ERR_LIB_UI 40 -#define ERR_LIB_COMP 41 -#define ERR_LIB_ECDSA 42 -#define ERR_LIB_ECDH 43 -#define ERR_LIB_STORE 44 -#define ERR_LIB_FIPS 45 -#define ERR_LIB_CMS 46 -#define ERR_LIB_TS 47 -#define ERR_LIB_HMAC 48 -#define ERR_LIB_JPAKE 49 - -#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__) - -/* 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) - - -/* OS functions */ -#define SYS_F_FOPEN 1 -#define SYS_F_CONNECT 2 -#define SYS_F_GETSERVBYNAME 3 -#define SYS_F_SOCKET 4 -#define SYS_F_IOCTLSOCKET 5 -#define SYS_F_BIND 6 -#define SYS_F_LISTEN 7 -#define SYS_F_ACCEPT 8 -#define SYS_F_WSASTARTUP 9 /* Winsock stuff */ -#define SYS_F_OPENDIR 10 -#define SYS_F_FREAD 11 - - -/* reasons */ -#define ERR_R_SYS_LIB ERR_LIB_SYS /* 2 */ -#define ERR_R_BN_LIB ERR_LIB_BN /* 3 */ -#define ERR_R_RSA_LIB ERR_LIB_RSA /* 4 */ -#define ERR_R_DH_LIB ERR_LIB_DH /* 5 */ -#define ERR_R_EVP_LIB ERR_LIB_EVP /* 6 */ -#define ERR_R_BUF_LIB ERR_LIB_BUF /* 7 */ -#define ERR_R_OBJ_LIB ERR_LIB_OBJ /* 8 */ -#define ERR_R_PEM_LIB ERR_LIB_PEM /* 9 */ -#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 */ -#define ERR_R_FATAL 64 -#define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) -#define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) -#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) - -/* 99 is the maximum possible ERR_R_... code, higher values - * are reserved for the individual libraries */ - - -typedef struct ERR_string_data_st - { - unsigned long error; - const char *string; - } 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); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_line(const char **file,int *line); -unsigned long ERR_get_error_line_data(const char **file,int *line, - const char **data, int *flags); -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file,int *line); -unsigned long ERR_peek_error_line_data(const char **file,int *line, - const char **data,int *flags); -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file,int *line); -unsigned long ERR_peek_last_error_line_data(const char **file,int *line, - const char **data,int *flags); -void ERR_clear_error(void ); -char *ERR_error_string(unsigned long e,char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -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 -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); - -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 -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 - -#endif diff --git a/src/sdk/extern/include/openssl/evp.h b/src/sdk/extern/include/openssl/evp.h deleted file mode 100644 index faeb3c2..0000000 --- a/src/sdk/extern/include/openssl/evp.h +++ /dev/null @@ -1,1409 +0,0 @@ -/* crypto/evp/evp.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_ENVELOPE_H -#define HEADER_ENVELOPE_H - -#ifdef OPENSSL_ALGORITHM_DEFINES -# include -#else -# define OPENSSL_ALGORITHM_DEFINES -# include -# undef OPENSSL_ALGORITHM_DEFINES -#endif - -#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 -#define EVP_MAX_BLOCK_LENGTH 32 - -#define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -#define PKCS5_DEFAULT_ITER 2048 - -#include - -#define EVP_PK_RSA 0x0001 -#define EVP_PK_DSA 0x0002 -#define EVP_PK_DH 0x0004 -#define EVP_PK_EC 0x0008 -#define EVP_PKT_SIGN 0x0010 -#define EVP_PKT_ENC 0x0020 -#define EVP_PKT_EXCH 0x0040 -#define EVP_PKS_RSA 0x0100 -#define EVP_PKS_DSA 0x0200 -#define EVP_PKS_EC 0x0400 -#define EVP_PKT_EXP 0x1000 /* <= 512 bit key */ - -#define EVP_PKEY_NONE NID_undef -#define EVP_PKEY_RSA NID_rsaEncryption -#define EVP_PKEY_RSA2 NID_rsa -#define EVP_PKEY_DSA NID_dsa -#define EVP_PKEY_DSA1 NID_dsa_2 -#define EVP_PKEY_DSA2 NID_dsaWithSHA -#define EVP_PKEY_DSA3 NID_dsaWithSHA1 -#define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -#define EVP_PKEY_DH NID_dhKeyAgreement -#define EVP_PKEY_EC NID_X9_62_id_ecPublicKey -#define EVP_PKEY_HMAC NID_hmac -#define EVP_PKEY_CMAC NID_cmac - -#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 */; - -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); - -#define EVP_MD_FLAG_ONESHOT 0x0001 /* digest can only handle a single - * block */ - -#define EVP_MD_FLAG_PKEY_DIGEST 0x0002 /* digest is a "clone" digest used - * which is a copy of an existing - * one for a specific public key type. - * EVP_dss1() etc */ - -/* 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 - -/* NULL or absent parameter accepted. Use NULL */ - -#define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -#define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -#define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -#define EVP_MD_FLAG_FIPS 0x0400 /* Note if suitable for use in FIPS mode */ - -/* Digest ctrls */ - -#define EVP_MD_CTRL_DIGALGID 0x1 -#define EVP_MD_CTRL_MICALG 0x2 - -/* Minimum Algorithm specific ctrl value */ - -#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 called - * once only */ -#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 */ -/* FIPS and pad options are ignored in 1.0.0, definitions are here - * so we don't accidentally reuse the values for other purposes. - */ - -#define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008 /* Allow use of non FIPS digest - * in FIPS mode */ - -/* The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -#define EVP_MD_CTX_FLAG_PAD_MASK 0xF0 /* RSA mode to use */ -#define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00 /* PKCS#1 v1.5 mode */ -#define EVP_MD_CTX_FLAG_PAD_X931 0x10 /* X9.31 mode */ -#define EVP_MD_CTX_FLAG_PAD_PSS 0x20 /* PSS mode */ - -#define EVP_MD_CTX_FLAG_NO_INIT 0x0100 /* Don't initialize md_data */ - -struct evp_cipher_st - { - int nid; - int block_size; - int key_len; /* Default value for variable length ciphers */ - int iv_len; - unsigned long flags; /* Various flags */ - int (*init)(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); /* init key */ - int (*do_cipher)(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl);/* encrypt/decrypt data */ - int (*cleanup)(EVP_CIPHER_CTX *); /* cleanup ctx */ - int ctx_size; /* how big ctx->cipher_data needs to be */ - int (*set_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); /* Populate a ASN1_TYPE with parameters */ - int (*get_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); /* Get parameters from a ASN1_TYPE */ - int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr); /* Miscellaneous operations */ - void *app_data; /* Application data */ - } /* EVP_CIPHER */; - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -#define EVP_CIPH_STREAM_CIPHER 0x0 -#define EVP_CIPH_ECB_MODE 0x1 -#define EVP_CIPH_CBC_MODE 0x2 -#define EVP_CIPH_CFB_MODE 0x3 -#define EVP_CIPH_OFB_MODE 0x4 -#define EVP_CIPH_CTR_MODE 0x5 -#define EVP_CIPH_GCM_MODE 0x6 -#define EVP_CIPH_CCM_MODE 0x7 -#define EVP_CIPH_XTS_MODE 0x10001 -#define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -#define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -#define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -#define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -#define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -#define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -#define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -#define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -#define EVP_CIPH_CUSTOM_COPY 0x400 -/* Allow use default ASN1 get/set iv */ -#define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 -/* Buffer length in bits not bytes: CFB1 mode only */ -#define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Note if suitable for use in FIPS mode */ -#define EVP_CIPH_FLAG_FIPS 0x4000 -/* Allow non FIPS cipher in FIPS mode */ -#define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 -/* Cipher handles any and all padding logic as well - * as finalisation. - */ -#define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -#define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 - -/* ctrl() values */ - -#define EVP_CTRL_INIT 0x0 -#define EVP_CTRL_SET_KEY_LENGTH 0x1 -#define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -#define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -#define EVP_CTRL_GET_RC5_ROUNDS 0x4 -#define EVP_CTRL_SET_RC5_ROUNDS 0x5 -#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_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_L 0x14 -#define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* AEAD cipher deduces payload length and returns number of bytes - * required to store MAC and eventual padding. Subsequent call to - * EVP_Cipher even appends/verifies MAC. - */ -#define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -#define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -#define EVP_CTRL_GCM_SET_IV_INV 0x18 - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -#define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -#define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -#define EVP_GCM_TLS_TAG_LEN 16 - -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 - { - int num; /* number saved in a partial encode/decode */ - int length; /* 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 */ - unsigned char enc_data[80]; /* data to encode */ - int line_num; /* number read on current line */ - int expect_nl; - } EVP_ENCODE_CTX; - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN)(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_RSA -#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ - (char *)(rsa)) -#endif - -#ifndef OPENSSL_NO_DSA -#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ - (char *)(dsa)) -#endif - -#ifndef OPENSSL_NO_DH -#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ - (char *)(dh)) -#endif - -#ifndef OPENSSL_NO_EC -#define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ - (char *)(eckey)) -#endif - -/* Add some extra combinations */ -#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) -#define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -#define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -#define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_type(const EVP_MD *md); -#define EVP_MD_nid(e) EVP_MD_type(e) -#define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) -int EVP_MD_pkey_type(const EVP_MD *md); -int EVP_MD_size(const EVP_MD *md); -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); -#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)) - -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_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_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); -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); -#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) - -#define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) -#define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) - -#define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -#define EVP_SignInit(a,b) EVP_DigestInit(a,b) -#define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -#define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -#define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -#define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -#define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -#define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) -#define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -#define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) - -#ifdef CONST_STRICT -void BIO_set_md(BIO *,const EVP_MD *md); -#else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md) -#endif -#define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) -#define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) -#define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp) -#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); - -#define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -#define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -#define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -#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); -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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, - 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); - -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); - -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); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl, - const unsigned char *in, int inl); -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); -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); -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 EVP_MD *EVP_md_null(void); -#ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -#endif -#ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -#endif -#ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(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 -const EVP_MD *EVP_ripemd160(void); -#endif -#ifndef OPENSSL_NO_WHIRLPOOL -const EVP_MD *EVP_whirlpool(void); -#endif -const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ -#ifndef OPENSSL_NO_DES -const EVP_CIPHER *EVP_des_ecb(void); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -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); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -/* This should now be supported through the dev_crypto ENGINE. But also, why 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); -const EVP_CIPHER *EVP_rc4_40(void); -#ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -#endif -#endif -#ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -#endif -#ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -#endif -#ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -#endif -#ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -#endif -#ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -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 -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_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 -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_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 -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); -#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -#endif -#endif -#ifndef OPENSSL_NO_CAMELLIA -const EVP_CIPHER *EVP_camellia_128_ecb(void); -const EVP_CIPHER *EVP_camellia_128_cbc(void); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -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_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -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_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -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); -#endif - -#ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -const EVP_CIPHER *EVP_seed_ofb(void); -#endif - -void OPENSSL_add_all_algorithms_noconf(void); -void OPENSSL_add_all_algorithms_conf(void); - -#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() -#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), void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), void *arg); - -void EVP_MD_do_all(void (*fn)(const EVP_MD *ciph, - const char *from, const char *to, void *x), void *arg); -void EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *ciph, - const char *from, const char *to, void *x), void *arg); - -int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key,int enc_key_len, - EVP_PKEY *private_key); -int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key,int key_len, - EVP_PKEY *pub_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_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); -int EVP_PKEY_assign(EVP_PKEY *pkey,int type,void *key); -void * EVP_PKEY_get0(EVP_PKEY *pkey); - -#ifndef OPENSSL_NO_RSA -struct rsa_st; -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey,struct rsa_st *key); -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_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_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_get1_EC_KEY(EVP_PKEY *pkey); -#endif - -EVP_PKEY * EVP_PKEY_new(void); -void EVP_PKEY_free(EVP_PKEY *pkey); - -EVP_PKEY * d2i_PublicKey(int type,EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); - -EVP_PKEY * d2i_PrivateKey(int type,EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY * d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey,int mode); -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); - -int EVP_CIPHER_type(const EVP_CIPHER *ctx); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_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); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, - int keylen, unsigned char *out); -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); - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -#define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -#define EVP_PBE_TYPE_PRF 0x1 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, int md_nid, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, - int *pcnid, int *pmnid, EVP_PBE_KEYGEN **pkeygen); -void EVP_PBE_cleanup(void); - -#define ASN1_PKEY_ALIAS 0x1 -#define ASN1_PKEY_DYNAMIC 0x2 -#define ASN1_PKEY_SIGPARAM_NULL 0x4 - -#define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -#define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -#define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -#define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -#define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 - -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); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -int EVP_PKEY_asn1_add_alias(int to, int from); -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, int *ppkey_flags, - const char **pinfo, const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -const EVP_PKEY_ASN1_METHOD* EVP_PKEY_get0_asn1(EVP_PKEY *pkey); -EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, const char *info); -void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode)(EVP_PKEY *pk, X509_PUBKEY *pub), - int (*pub_encode)(X509_PUBKEY *pub, const EVP_PKEY *pk), - int (*pub_cmp)(const EVP_PKEY *a, const EVP_PKEY *b), - int (*pub_print)(BIO *out, const EVP_PKEY *pkey, int indent, - ASN1_PCTX *pctx), - int (*pkey_size)(const EVP_PKEY *pk), - 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 *p8inf), - int (*priv_encode)(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk), - int (*priv_print)(BIO *out, const EVP_PKEY *pkey, int indent, - ASN1_PCTX *pctx)); -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode)(EVP_PKEY *pkey, - const unsigned char **pder, int derlen), - int (*param_encode)(const EVP_PKEY *pkey, unsigned char **pder), - int (*param_missing)(const EVP_PKEY *pk), - int (*param_copy)(EVP_PKEY *to, const EVP_PKEY *from), - int (*param_cmp)(const EVP_PKEY *a, const EVP_PKEY *b), - int (*param_print)(BIO *out, const EVP_PKEY *pkey, int indent, - ASN1_PCTX *pctx)); - -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free)(EVP_PKEY *pkey)); -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl)(EVP_PKEY *pkey, int op, - long arg1, void *arg2)); - - -#define EVP_PKEY_OP_UNDEFINED 0 -#define EVP_PKEY_OP_PARAMGEN (1<<1) -#define EVP_PKEY_OP_KEYGEN (1<<2) -#define EVP_PKEY_OP_SIGN (1<<3) -#define EVP_PKEY_OP_VERIFY (1<<4) -#define EVP_PKEY_OP_VERIFYRECOVER (1<<5) -#define EVP_PKEY_OP_SIGNCTX (1<<6) -#define EVP_PKEY_OP_VERIFYCTX (1<<7) -#define EVP_PKEY_OP_ENCRYPT (1<<8) -#define EVP_PKEY_OP_DECRYPT (1<<9) -#define EVP_PKEY_OP_DERIVE (1<<10) - -#define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -#define EVP_PKEY_OP_TYPE_CRYPT \ - (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) - -#define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -#define EVP_PKEY_CTX_set_signature_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_MD, 0, (void *)md) - -#define EVP_PKEY_CTRL_MD 1 -#define EVP_PKEY_CTRL_PEER_KEY 2 - -#define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -#define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 - -#define EVP_PKEY_CTRL_PKCS7_SIGN 5 - -#define EVP_PKEY_CTRL_SET_MAC_KEY 6 - -#define EVP_PKEY_CTRL_DIGESTINIT 7 - -/* Used by GOST key encryption in TLS */ -#define EVP_PKEY_CTRL_SET_IV 8 - -#define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -#define EVP_PKEY_CTRL_CMS_DECRYPT 10 -#define EVP_PKEY_CTRL_CMS_SIGN 11 - -#define EVP_PKEY_CTRL_CIPHER 12 - -#define EVP_PKEY_ALG_CTRL 0x1000 - - -#define EVP_PKEY_FLAG_AUTOARGLEN 2 -/* Method handles all operations: don't assume any digest related - * defaults. - */ -#define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 - -const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -EVP_PKEY_METHOD* EVP_PKEY_meth_new(int id, int flags); -void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); -void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); -int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); - -EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, int p1, void *p2); -int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, - const char *value); - -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); - -EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, - const unsigned char *key, int keylen); - -void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -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); - -int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); - -void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); -EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); - -void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init)(EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, - int (*copy)(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, - void (*cleanup)(EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, - int (*paramgen_init)(EVP_PKEY_CTX *ctx), - int (*paramgen)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, - int (*keygen_init)(EVP_PKEY_CTX *ctx), - int (*keygen)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, - int (*sign_init)(EVP_PKEY_CTX *ctx), - int (*sign)(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); - -void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, - int (*verify_init)(EVP_PKEY_CTX *ctx), - int (*verify)(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen)); - -void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, - int (*verify_recover_init)(EVP_PKEY_CTX *ctx), - int (*verify_recover)(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); - -void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, - int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (*signctx)(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, - int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (*verifyctx)(EVP_PKEY_CTX *ctx, const unsigned char *sig,int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, - int (*encrypt_init)(EVP_PKEY_CTX *ctx), - int (*encryptfn)(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); - -void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, - int (*decrypt_init)(EVP_PKEY_CTX *ctx), - int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); - -void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, - int (*derive_init)(EVP_PKEY_CTX *ctx), - int (*derive)(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); - -void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, - int (*ctrl)(EVP_PKEY_CTX *ctx, int type, int p1, void *p2), - int (*ctrl_str)(EVP_PKEY_CTX *ctx, - const char *type, const char *value)); - -void EVP_add_alg_module(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. - */ -void 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_XTS 172 -#define EVP_F_AES_XTS_CIPHER 175 -#define EVP_F_ALG_MODULE_INIT 177 -#define EVP_F_CAMELLIA_INIT_KEY 159 -#define EVP_F_CMAC_INIT 173 -#define EVP_F_D2I_PKEY 100 -#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_DIGESTINIT_EX 128 -#define EVP_F_EVP_ENCRYPTFINAL_EX 127 -#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_PKCS82PKEY 111 -#define EVP_F_EVP_PKCS82PKEY_BROKEN 136 -#define EVP_F_EVP_PKEY2PKCS8_BROKEN 113 -#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 -#define EVP_F_EVP_PKEY_CTX_DUP 156 -#define EVP_F_EVP_PKEY_DECRYPT 104 -#define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -#define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -#define EVP_F_EVP_PKEY_DERIVE 153 -#define EVP_F_EVP_PKEY_DERIVE_INIT 154 -#define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -#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_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_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_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_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_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_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_LENGTH 130 -#define EVP_R_INVALID_OPERATION 148 -#define EVP_R_IV_TOO_LARGE 102 -#define EVP_R_KEYGEN_FAILURE 120 -#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_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_PRF 125 -#define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -#define EVP_R_UNSUPPORTED_SALT_TYPE 126 -#define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -#define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/hmac.h b/src/sdk/extern/include/openssl/hmac.h deleted file mode 100644 index 1be0022..0000000 --- a/src/sdk/extern/include/openssl/hmac.h +++ /dev/null @@ -1,110 +0,0 @@ -/* crypto/hmac/hmac.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_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 */ - -#ifdef __cplusplus -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; - -#define HMAC_size(e) (EVP_MD_size((e)->md)) - - -void HMAC_CTX_init(HMAC_CTX *ctx); -void HMAC_CTX_cleanup(HMAC_CTX *ctx); - -#define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) /* deprecated */ - -int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md); /* deprecated */ -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); -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); - -void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/idea.h b/src/sdk/extern/include/openssl/idea.h deleted file mode 100644 index e9a1e7f..0000000 --- a/src/sdk/extern/include/openssl/idea.h +++ /dev/null @@ -1,103 +0,0 @@ -/* crypto/idea/idea.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.] - */ - -#ifndef HEADER_IDEA_H -#define HEADER_IDEA_H - -#include /* IDEA_INT, OPENSSL_NO_IDEA */ - -#ifdef OPENSSL_NO_IDEA -#error IDEA is disabled. -#endif - -#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, - 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, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,int enc); -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, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, int *num); -void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/krb5_asn.h b/src/sdk/extern/include/openssl/krb5_asn.h deleted file mode 100644 index 41725d0..0000000 --- a/src/sdk/extern/include/openssl/krb5_asn.h +++ /dev/null @@ -1,256 +0,0 @@ -/* krb5_asn.h */ -/* Written by Vern Staats for the OpenSSL project, -** using ocsp/{*.h,*asn*.c} as a starting point -*/ - -/* ==================================================================== - * 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). - * - */ - -#ifndef HEADER_KRB5_ASN_H -#define HEADER_KRB5_ASN_H - -/* -#include -*/ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* ASN.1 from Kerberos RFC 1510 -*/ - -/* EncryptedData ::= SEQUENCE { -** etype[0] INTEGER, -- EncryptionType -** kvno[1] INTEGER OPTIONAL, -** cipher[2] OCTET STRING -- ciphertext -** } -*/ -typedef struct krb5_encdata_st - { - ASN1_INTEGER *etype; - ASN1_INTEGER *kvno; - ASN1_OCTET_STRING *cipher; - } KRB5_ENCDATA; - -DECLARE_STACK_OF(KRB5_ENCDATA) - -/* PrincipalName ::= SEQUENCE { -** name-type[0] INTEGER, -** name-string[1] SEQUENCE OF GeneralString -** } -*/ -typedef struct krb5_princname_st - { - ASN1_INTEGER *nametype; - STACK_OF(ASN1_GENERALSTRING) *namestring; - } KRB5_PRINCNAME; - -DECLARE_STACK_OF(KRB5_PRINCNAME) - - -/* Ticket ::= [APPLICATION 1] SEQUENCE { -** tkt-vno[0] INTEGER, -** realm[1] Realm, -** sname[2] PrincipalName, -** enc-part[3] EncryptedData -** } -*/ -typedef struct krb5_tktbody_st - { - ASN1_INTEGER *tktvno; - ASN1_GENERALSTRING *realm; - KRB5_PRINCNAME *sname; - KRB5_ENCDATA *encdata; - } KRB5_TKTBODY; - -typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; -DECLARE_STACK_OF(KRB5_TKTBODY) - - -/* AP-REQ ::= [APPLICATION 14] SEQUENCE { -** pvno[0] INTEGER, -** msg-type[1] INTEGER, -** ap-options[2] APOptions, -** ticket[3] Ticket, -** authenticator[4] EncryptedData -** } -** -** APOptions ::= BIT STRING { -** reserved(0), use-session-key(1), mutual-required(2) } -*/ -typedef struct krb5_ap_req_st - { - ASN1_INTEGER *pvno; - ASN1_INTEGER *msgtype; - ASN1_BIT_STRING *apoptions; - KRB5_TICKET *ticket; - KRB5_ENCDATA *authenticator; - } KRB5_APREQBODY; - -typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; -DECLARE_STACK_OF(KRB5_APREQBODY) - - -/* Authenticator Stuff */ - - -/* Checksum ::= SEQUENCE { -** cksumtype[0] INTEGER, -** checksum[1] OCTET STRING -** } -*/ -typedef struct krb5_checksum_st - { - ASN1_INTEGER *ctype; - ASN1_OCTET_STRING *checksum; - } KRB5_CHECKSUM; - -DECLARE_STACK_OF(KRB5_CHECKSUM) - - -/* EncryptionKey ::= SEQUENCE { -** keytype[0] INTEGER, -** keyvalue[1] OCTET STRING -** } -*/ -typedef struct krb5_encryptionkey_st - { - ASN1_INTEGER *ktype; - ASN1_OCTET_STRING *keyvalue; - } KRB5_ENCKEY; - -DECLARE_STACK_OF(KRB5_ENCKEY) - - -/* AuthorizationData ::= SEQUENCE OF SEQUENCE { -** ad-type[0] INTEGER, -** ad-data[1] OCTET STRING -** } -*/ -typedef struct krb5_authorization_st - { - ASN1_INTEGER *adtype; - ASN1_OCTET_STRING *addata; - } KRB5_AUTHDATA; - -DECLARE_STACK_OF(KRB5_AUTHDATA) - - -/* -- Unencrypted authenticator -** Authenticator ::= [APPLICATION 2] SEQUENCE { -** authenticator-vno[0] INTEGER, -** crealm[1] Realm, -** cname[2] PrincipalName, -** cksum[3] Checksum OPTIONAL, -** cusec[4] INTEGER, -** ctime[5] KerberosTime, -** subkey[6] EncryptionKey OPTIONAL, -** seq-number[7] INTEGER OPTIONAL, -** authorization-data[8] AuthorizationData OPTIONAL -** } -*/ -typedef struct krb5_authenticator_st - { - ASN1_INTEGER *avno; - ASN1_GENERALSTRING *crealm; - KRB5_PRINCNAME *cname; - KRB5_CHECKSUM *cksum; - ASN1_INTEGER *cusec; - ASN1_GENERALIZEDTIME *ctime; - KRB5_ENCKEY *subkey; - ASN1_INTEGER *seqnum; - KRB5_AUTHDATA *authorization; - } KRB5_AUTHENTBODY; - -typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; -DECLARE_STACK_OF(KRB5_AUTHENTBODY) - - -/* DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = -** type *name##_new(void); -** void name##_free(type *a); -** DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = -** DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = -** type *d2i_##name(type **a, const unsigned char **in, long len); -** int i2d_##name(type *a, unsigned char **out); -** DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it -*/ - -DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) -DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) - -DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) -DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) - - -/* 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. - */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/kssl.h b/src/sdk/extern/include/openssl/kssl.h deleted file mode 100644 index e4df843..0000000 --- a/src/sdk/extern/include/openssl/kssl.h +++ /dev/null @@ -1,192 +0,0 @@ -/* ssl/kssl.h -*- mode: C; c-file-style: "eay" -*- */ -/* Written by Vern Staats for the OpenSSL project 2000. - * project 2000. - */ -/* ==================================================================== - * Copyright (c) 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 - * 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). - * - */ - -/* -** 19990701 VRS Started. -*/ - -#ifndef KSSL_H -#define KSSL_H - -#include - -#ifndef OPENSSL_NO_KRB5 - -#include -#include -#include -#ifdef OPENSSL_SYS_WIN32 -/* These can sometimes get redefined indirectly by krb5 header files - * after they get undefed in ossl_typ.h - */ -#undef X509_NAME -#undef X509_EXTENSIONS -#undef OCSP_REQUEST -#undef OCSP_RESPONSE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Depending on which KRB5 implementation used, some types from -** the other may be missing. Resolve that here and now -*/ -#ifdef KRB5_HEIMDAL -typedef unsigned char krb5_octet; -#define FAR -#else - -#ifndef FAR -#define FAR -#endif - -#endif - -/* Uncomment this to debug kssl problems or -** to trace usage of the Kerberos session key -** -** #define KSSL_DEBUG -*/ - -#ifndef KRB5SVC -#define KRB5SVC "host" -#endif - -#ifndef KRB5KEYTAB -#define KRB5KEYTAB "/etc/krb5.keytab" -#endif - -#ifndef KRB5SENDAUTH -#define KRB5SENDAUTH 1 -#endif - -#ifndef KRB5CHECKAUTH -#define KRB5CHECKAUTH 1 -#endif - -#ifndef KSSL_CLOCKSKEW -#define KSSL_CLOCKSKEW 300; -#endif - -#define KSSL_ERR_MAX 255 -typedef struct kssl_err_st { - int reason; - char text[KSSL_ERR_MAX+1]; - } KSSL_ERR; - - -/* Context for passing -** (1) Kerberos session key to SSL, and -** (2) Config data between application and SSL lib -*/ -typedef struct kssl_ctx_st - { - /* used by: disposition: */ - char *service_name; /* C,S default ok (kssl) */ - char *service_host; /* C input, REQUIRED */ - char *client_princ; /* S output from krb5 ticket */ - char *keytab_file; /* S NULL (/etc/krb5.keytab) */ - char *cred_cache; /* C NULL (default) */ - krb5_enctype enctype; - int length; - krb5_octet FAR *key; - } KSSL_CTX; - -#define KSSL_CLIENT 1 -#define KSSL_SERVER 2 -#define KSSL_SERVICE 3 -#define KSSL_KEYTAB 4 - -#define KSSL_CTX_OK 0 -#define KSSL_CTX_ERR 1 -#define KSSL_NOMEM 2 - -/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ -krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); -KSSL_CTX *kssl_ctx_new(void); -KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); -void kssl_ctx_show(KSSL_CTX *kssl_ctx); -krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, - krb5_data *realm, krb5_data *entity, int nentities); -krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, - krb5_data *authenp, KSSL_ERR *kssl_err); -krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, - krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); -krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); -void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); -void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); -krb5_error_code kssl_build_principal_2(krb5_context context, - krb5_principal *princ, int rlen, const char *realm, - int slen, const char *svc, int hlen, const char *host); -krb5_error_code kssl_validate_times(krb5_timestamp atime, - krb5_ticket_times *ttimes); -krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, - krb5_timestamp *atimep, KSSL_ERR *kssl_err); -unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); - -void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); -KSSL_CTX * SSL_get0_kssl_ctx(SSL *s); -char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); - -#ifdef __cplusplus -} -#endif -#endif /* OPENSSL_NO_KRB5 */ -#endif /* KSSL_H */ diff --git a/src/sdk/extern/include/openssl/lhash.h b/src/sdk/extern/include/openssl/lhash.h deleted file mode 100644 index e7d8763..0000000 --- a/src/sdk/extern/include/openssl/lhash.h +++ /dev/null @@ -1,241 +0,0 @@ -/* crypto/lhash/lhash.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.] - */ - -/* Header for dynamic hash table routines - * Author - Eric Young - */ - -#ifndef HEADER_LHASH_H -#define HEADER_LHASH_H - -#include -#ifndef OPENSSL_NO_FP_API -#include -#endif - -#ifndef OPENSSL_NO_BIO -#include -#endif - -#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 *); - -/* Macros for declaring and implementing type-safe wrappers for LHASH callbacks. - * This way, callbacks can be provided to LHASH structures without function - * pointer casting and the macro-defined callbacks provide per-variable casting - * before deferring to the underlying type-specific callbacks. NB: It is - * possible to place a "static" in front of both the DECLARE and IMPLEMENT - * macros if the functions are strictly internal. */ - -/* First: "hash" functions */ -#define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -#define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -#define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -#define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -#define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - 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 *); -#define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - 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) - -_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); -#endif - -#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); -#endif - -/* Type checking... */ - -#define LHASH_OF(type) struct lhash_st_##type - -#define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } - -#define CHECKED_LHASH_OF(type,lh) \ - ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) - -/* 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)) - -DECLARE_LHASH_OF(OPENSSL_STRING); -DECLARE_LHASH_OF(OPENSSL_CSTRING); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/src/sdk/extern/include/openssl/md4.h b/src/sdk/extern/include/openssl/md4.h deleted file mode 100644 index a55368a..0000000 --- a/src/sdk/extern/include/openssl/md4.h +++ /dev/null @@ -1,120 +0,0 @@ -/* crypto/md4/md4.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_MD4_H -#define HEADER_MD4_H - -#include -#include - -#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. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -#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_CBLOCK 64 -#define MD4_LBLOCK (MD4_CBLOCK/4) -#define MD4_DIGEST_LENGTH 16 - -typedef struct MD4state_st - { - MD4_LONG A,B,C,D; - MD4_LONG Nl,Nh; - MD4_LONG data[MD4_LBLOCK]; - 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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/md5.h b/src/sdk/extern/include/openssl/md5.h deleted file mode 100644 index 541cc92..0000000 --- a/src/sdk/extern/include/openssl/md5.h +++ /dev/null @@ -1,120 +0,0 @@ -/* crypto/md5/md5.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_MD5_H -#define HEADER_MD5_H - -#include -#include - -#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. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -#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_CBLOCK 64 -#define MD5_LBLOCK (MD5_CBLOCK/4) -#define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st - { - MD5_LONG A,B,C,D; - MD5_LONG Nl,Nh; - MD5_LONG data[MD5_LBLOCK]; - 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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/mdc2.h b/src/sdk/extern/include/openssl/mdc2.h deleted file mode 100644 index f3e8e57..0000000 --- a/src/sdk/extern/include/openssl/mdc2.h +++ /dev/null @@ -1,98 +0,0 @@ -/* crypto/mdc2/mdc2.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_MDC2_H -#define HEADER_MDC2_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_NO_MDC2 -#error MDC2 is disabled. -#endif - -#define MDC2_BLOCK 8 -#define MDC2_DIGEST_LENGTH 16 - -typedef struct mdc2_ctx_st - { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h,hh; - 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 -} -#endif - -#endif - diff --git a/src/sdk/extern/include/openssl/modes.h b/src/sdk/extern/include/openssl/modes.h deleted file mode 100644 index 7773c25..0000000 --- a/src/sdk/extern/include/openssl/modes.h +++ /dev/null @@ -1,141 +0,0 @@ -/* ==================================================================== - * Copyright (c) 2008 The OpenSSL Project. All rights reserved. - * - * Rights for redistribution and usage in source and binary - * forms are granted according to the OpenSSL license. - */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif -typedef void (*block128_f)(const unsigned char in[16], - unsigned char out[16], - const void *key); - -typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ctr128_f)(const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f)(const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16],unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], unsigned char ecount_buf[16], - unsigned int *num, block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key,block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, - const unsigned char *nonce, size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, - const unsigned char *aad, size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, - const unsigned char *inp, unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, - const unsigned char *inp, unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, - const unsigned char *inp, unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, - const unsigned char *inp, unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, size_t len, int enc); -#ifdef __cplusplus -} -#endif diff --git a/src/sdk/extern/include/openssl/obj_mac.h b/src/sdk/extern/include/openssl/obj_mac.h deleted file mode 100644 index b5ea7cd..0000000 --- a/src/sdk/extern/include/openssl/obj_mac.h +++ /dev/null @@ -1,4032 +0,0 @@ -/* 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. - * - * 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.] - */ - -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#define NID_hmac_sha1 781 -#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L - -#define SN_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#define SN_international_organizations "international-organizations" -#define LN_international_organizations "International Organizations" -#define NID_international_organizations 647 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#define NID_X9cm 185 -#define OBJ_X9cm OBJ_X9_57,4L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#define NID_sha224WithRSAEncryption 671 -#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L - -#define SN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#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_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 - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#define NID_id_smime_aa_dvcs_dvc 240 -#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L - -#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" -#define NID_id_smime_alg_ESDHwith3DES 241 -#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9,20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9,21L - -#define SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L - -#define OBJ_certTypes OBJ_pkcs9,22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes,1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes,2L - -#define OBJ_crlTypes OBJ_pkcs9,23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes,1L - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds,1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds,3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds,4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds,5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -#define LN_hmacWithSHA224 "hmacWithSHA224" -#define NID_hmacWithSHA224 798 -#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#define NID_hmacWithSHA512 801 -#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#define SN_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcardlogin" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft Universal Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditEntity "ac-auditEntity" -#define NID_ac_auditEntity 287 -#define OBJ_ac_auditEntity OBJ_id_pe,4L - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_id_it_caProtEncCert "id-it-caProtEncCert" -#define NID_id_it_caProtEncCert 298 -#define OBJ_id_it_caProtEncCert OBJ_id_it,1L - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#define NID_role 400 -#define OBJ_role OBJ_X509,72L - -#define SN_X500algorithms "X500algorithms" -#define LN_X500algorithms "directory services - algorithms" -#define NID_X500algorithms 378 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distrubution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#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 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#define NID_id_aes256_wrap_pad 903 -#define OBJ_id_aes256_wrap_pad OBJ_aes,48L - -#define SN_aes_128_cfb1 "AES-128-CFB1" -#define LN_aes_128_cfb1 "aes-128-cfb1" -#define NID_aes_128_cfb1 650 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#define NID_sha224 675 -#define OBJ_sha224 OBJ_nist_hashalgs,4L - -#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA224 "dsa_with_SHA224" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#define NID_dsa_with_SHA256 803 -#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L - -#define SN_hold_instruction_code "holdInstructionCode" -#define LN_hold_instruction_code "Hold Instruction Code" -#define NID_hold_instruction_code 430 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#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 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#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_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 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_camellia_128_cbc "CAMELLIA-128-CBC" -#define LN_camellia_128_cbc "camellia-128-cbc" -#define NID_camellia_128_cbc 751 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#define LN_camellia_256_cfb8 "camellia-256-cfb8" -#define NID_camellia_256_cfb8 765 - -#define SN_kisa "KISA" -#define LN_kisa "kisa" -#define NID_kisa 773 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#define NID_seed_ofb128 778 -#define OBJ_seed_ofb128 OBJ_kisa,1L,6L - -#define SN_hmac "HMAC" -#define LN_hmac "hmac" -#define NID_hmac 855 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - diff --git a/src/sdk/extern/include/openssl/objects.h b/src/sdk/extern/include/openssl/objects.h deleted file mode 100644 index bd0ee52..0000000 --- a/src/sdk/extern/include/openssl/objects.h +++ /dev/null @@ -1,1138 +0,0 @@ -/* crypto/objects/objects.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_OBJECTS_H -#define HEADER_OBJECTS_H - -#define USE_OBJ_MAC - -#ifdef USE_OBJ_MAC -#include -#else -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_Algorithm "Algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 38 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define LN_rsadsi "rsadsi" -#define NID_rsadsi 1 -#define OBJ_rsadsi 1L,2L,840L,113549L - -#define LN_pkcs "pkcs" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -#define LN_X500 "X500" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define LN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500,8L,1L,1L - -#define LN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define LN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -/* IV + num */ -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -/* IV */ -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ede "DES-EDE" -#define LN_des_ede "des-ede" -#define NID_des_ede 32 -/* ?? */ -#define OBJ_des_ede OBJ_algorithm,17L - -#define SN_des_ede3 "DES-EDE3" -#define LN_des_ede3 "des-ede3" -#define NID_des_ede3 33 - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define LN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define SN_pkcs9_emailAddress "Email" -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now - * defined explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something - * completely different. - */ -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce 2L,5L,29L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2withRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_givenName "G" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_surname "S" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define SN_initials "I" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define SN_uniqueIdentifier "UID" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_X509,45L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_serialNumber "SN" -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_title "T" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define SN_description "D" -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/* This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -#define NID_md5_sha1 114 -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* The name should actually be rsaSignatureWithripemd160, but I'm going - * to continue using the convention I'm using with the other ciphers */ -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/* Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#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 -#define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -#define OBJ_pkcs12 OBJ_pkcs,12L -#define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9, 20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9, 21L - -#define OBJ_certTypes OBJ_pkcs9, 22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes, 1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes, 2L - -#define OBJ_crlTypes OBJ_pkcs9, 23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs,5L,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs,5L,14L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -#define LN_id_qt_cps "Policy Qualifier CPS" -#define SN_id_qt_cps "id-qt-cps" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define SN_id_qt_unotice "id-qt-unotice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -#define LN_ms_ext_req "Microsoft Extension Request" -#define SN_ms_ext_req "msExtReq" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#define LN_ext_req "Extension Request" -#define SN_ext_req "extReq" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L -#endif /* USE_OBJ_MAC */ - -#include -#include - -#define OBJ_NAME_TYPE_UNDEF 0x00 -#define OBJ_NAME_TYPE_MD_METH 0x01 -#define OBJ_NAME_TYPE_CIPHER_METH 0x02 -#define OBJ_NAME_TYPE_PKEY_METH 0x03 -#define OBJ_NAME_TYPE_COMP_METH 0x04 -#define OBJ_NAME_TYPE_NUM 0x05 - -#define OBJ_NAME_ALIAS 0x8000 - -#define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -#define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st - { - int type; - int alias; - const char *name; - const char *data; - } OBJ_NAME; - -#define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *), - int (*cmp_func)(const char *, const char *), - void (*free_func)(const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name,int type); -int OBJ_NAME_add(const char *name,int type,const char *data); -int OBJ_NAME_remove(const char *name,int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type,void (*fn)(const OBJ_NAME *,void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type,void (*fn)(const OBJ_NAME *,void *arg), - void *arg); - -ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o); -ASN1_OBJECT * OBJ_nid2obj(int n); -const char * OBJ_nid2ln(int n); -const char * OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b); -const void * OBJ_bsearch_(const void *key,const void *base,int num,int size, - int (*cmp)(const void *, const void *)); -const void * OBJ_bsearch_ex_(const void *key,const void *base,int num, - int size, - int (*cmp)(const void *, const void *), - int flags); - -#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -#define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -#define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/* - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignement discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * 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 - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -#define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -#define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -#define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -#define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -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 ); -int OBJ_create_objects(BIO *in); - -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); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -#define OBJ_F_OBJ_ADD_OBJECT 105 -#define OBJ_F_OBJ_CREATE 100 -#define OBJ_F_OBJ_DUP 101 -#define OBJ_F_OBJ_NAME_NEW_INDEX 106 -#define OBJ_F_OBJ_NID2LN 102 -#define OBJ_F_OBJ_NID2OBJ 103 -#define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -#define OBJ_R_MALLOC_FAILURE 100 -#define OBJ_R_UNKNOWN_NID 101 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ocsp.h b/src/sdk/extern/include/openssl/ocsp.h deleted file mode 100644 index 31e4574..0000000 --- a/src/sdk/extern/include/openssl/ocsp.h +++ /dev/null @@ -1,623 +0,0 @@ -/* 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). - * - */ - -#ifndef HEADER_OCSP_H -#define HEADER_OCSP_H - -#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 } - */ -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), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * 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 - -/* 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; - -#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(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) - -#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) \ - 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_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) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -#define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ - (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) - -OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); - -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, char *path, OCSP_REQUEST *req, - int maxline); -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); -void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); -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_id_new(const EVP_MD *dgst, - X509_NAME *issuerName, - ASN1_BIT_STRING* issuerKey, - ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, - unsigned long flags); - -int OCSP_response_status(OCSP_RESPONSE *resp); -OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -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, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, - long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, X509_STORE *store, unsigned long flags); - -int OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, int *pssl); - -int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); - -int OCSP_request_onereq_count(OCSP_REQUEST *req); -OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, ASN1_TIME *nextupd); -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); - -X509_EXTENSION *OCSP_crlID_new(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); - -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 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); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -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_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); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -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 lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, int crit, - unsigned long flags); -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 lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, int *idx); -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); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST* a, unsigned long flags); -int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE* o, unsigned long flags); - -int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, - X509_STORE *st, unsigned long flags); - -/* 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_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 -#define OCSP_F_OCSP_BASIC_VERIFY 105 -#define OCSP_F_OCSP_CERT_ID_NEW 101 -#define OCSP_F_OCSP_CHECK_DELEGATED 106 -#define OCSP_F_OCSP_CHECK_IDS 107 -#define OCSP_F_OCSP_CHECK_ISSUER 108 -#define OCSP_F_OCSP_CHECK_VALIDITY 115 -#define OCSP_F_OCSP_MATCH_ISSUERID 109 -#define OCSP_F_OCSP_PARSE_URL 114 -#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 -#define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -#define OCSP_R_ERROR_PARSING_URL 121 -#define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -#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_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 -#define OCSP_R_STATUS_NOT_YET_VALID 126 -#define OCSP_R_STATUS_TOO_OLD 127 -#define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -#define OCSP_R_UNKNOWN_NID 120 -#define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/opensslconf.h b/src/sdk/extern/include/openssl/opensslconf.h deleted file mode 100644 index 04e4631..0000000 --- a/src/sdk/extern/include/openssl/opensslconf.h +++ /dev/null @@ -1,247 +0,0 @@ -/* opensslconf.h */ -/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ - -#ifdef __cplusplus -extern "C" { -#endif -/* OpenSSL was configured with the following options: */ -#ifndef OPENSSL_DOING_MAKEDEPEND - - -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -#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_MD2 -# define OPENSSL_NO_MD2 -#endif -#ifndef OPENSSL_NO_RC5 -# define OPENSSL_NO_RC5 -#endif -#ifndef OPENSSL_NO_RFC3779 -# define OPENSSL_NO_RFC3779 -#endif -#ifndef OPENSSL_NO_SCTP -# define OPENSSL_NO_SCTP -#endif -#ifndef OPENSSL_NO_STORE -# define OPENSSL_NO_STORE -#endif -#ifndef OPENSSL_NO_UNIT_TEST -# define OPENSSL_NO_UNIT_TEST -#endif - -#endif /* OPENSSL_DOING_MAKEDEPEND */ - -#ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -#endif -#ifndef OPENSSL_NO_ASM -# define OPENSSL_NO_ASM -#endif -#ifndef OPENSSL_NO_DYNAMIC_ENGINE -# define OPENSSL_NO_DYNAMIC_ENGINE -#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_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) -# define NO_EC_NISTP_64_GCC_128 -# 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_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_STORE) && !defined(NO_STORE) -# define NO_STORE -# endif -# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) -# define NO_UNIT_TEST -# endif -#endif - -/* 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 "/root/work/dev-3.x/baidu/speech-arch/baidu-speech-sdk/extern/centos_dependency/static/lib/engines" -#define OPENSSLDIR "/root/work/dev-3.x/baidu/speech-arch/baidu-speech-sdk/extern/centos_dependency/static/ssl" -#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; - */ -#define RC4_INT unsigned char -#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 -#define BN_LLONG - -/* Should we define BN_DIV2W here? */ - -/* Only one for the following should be defined */ -#undef SIXTY_FOUR_BIT_LONG -#undef SIXTY_FOUR_BIT -#define 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 - -#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) -#define CONFIG_HEADER_BF_LOCL_H -#define 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) -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 ) /* 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/src/sdk/extern/include/openssl/opensslv.h b/src/sdk/extern/include/openssl/opensslv.h deleted file mode 100644 index f375967..0000000 --- a/src/sdk/extern/include/openssl/opensslv.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef HEADER_OPENSSLV_H -#define HEADER_OPENSSLV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Numeric release version identifier: - * MNNFFPPS: major minor fix patch status - * The status nibble has one of the values 0 for development, 1 to e for betas - * 1 to 14, and f for release. The patch level is exactly that. - * For example: - * 0.9.3-dev 0x00903000 - * 0.9.3-beta1 0x00903001 - * 0.9.3-beta2-dev 0x00903002 - * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) - * 0.9.3 0x0090300f - * 0.9.3a 0x0090301f - * 0.9.4 0x0090400f - * 1.2.3z 0x102031af - * - * For continuity reasons (because 0.9.5 is already out, and is coded - * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level - * part is slightly different, by setting the highest bit. This means - * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start - * with 0x0090600S... - * - * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) - * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for - * major minor fix final patch/beta) - */ -#define OPENSSL_VERSION_NUMBER 0x100010afL -#ifdef OPENSSL_FIPS -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1j-fips 15 Oct 2014" -#else -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1j 15 Oct 2014" -#endif -#define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT - - -/* The macros below are to be used for shared library (.so, .dll, ...) - * versioning. That kind of versioning works a bit differently between - * operating systems. The most usual scheme is to set a major and a minor - * number, and have the runtime loader check that the major number is equal - * to what it was at application link time, while the minor number has to - * be greater or equal to what it was at application link time. With this - * scheme, the version number is usually part of the file name, like this: - * - * libcrypto.so.0.9 - * - * Some unixen also make a softlink with the major verson number only: - * - * libcrypto.so.0 - * - * On Tru64 and IRIX 6.x it works a little bit differently. There, the - * shared library version is stored in the file, and is actually a series - * of versions, separated by colons. The rightmost version present in the - * library when linking an application is stored in the application to be - * matched at run time. When the application is run, a check is done to - * see if the library version stored in the application matches any of the - * versions in the version string of the library itself. - * This version string can be constructed in any way, depending on what - * kind of matching is desired. However, to implement the same scheme as - * the one used in the other unixen, all compatible versions, from lowest - * to highest, should be part of the string. Consecutive builds would - * give the following versions strings: - * - * 3.0 - * 3.0:3.1 - * 3.0:3.1:3.2 - * 4.0 - * 4.0:4.1 - * - * Notice how version 4 is completely incompatible with version, and - * therefore give the breach you can see. - * - * There may be other schemes as well that I haven't yet discovered. - * - * So, here's the way it works here: first of all, the library version - * number doesn't need at all to match the overall OpenSSL version. - * However, it's nice and more understandable if it actually does. - * The current library version is stored in the macro SHLIB_VERSION_NUMBER, - * which is just a piece of text in the format "M.m.e" (Major, minor, edit). - * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, - * we need to keep a history of version numbers, which is done in the - * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and - * should only keep the versions that are binary compatible with the current. - */ -#define SHLIB_VERSION_HISTORY "" -#define SHLIB_VERSION_NUMBER "1.0.0" - - -#ifdef __cplusplus -} -#endif -#endif /* HEADER_OPENSSLV_H */ diff --git a/src/sdk/extern/include/openssl/ossl_typ.h b/src/sdk/extern/include/openssl/ossl_typ.h deleted file mode 100644 index 12cdd43..0000000 --- a/src/sdk/extern/include/openssl/ossl_typ.h +++ /dev/null @@ -1,209 +0,0 @@ -/* ==================================================================== - * 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). - * - */ - -#ifndef HEADER_OPENSSL_TYPES_H -#define HEADER_OPENSSL_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#ifdef NO_ASN1_TYPEDEFS -#define ASN1_INTEGER ASN1_STRING -#define ASN1_ENUMERATED ASN1_STRING -#define ASN1_BIT_STRING ASN1_STRING -#define ASN1_OCTET_STRING ASN1_STRING -#define ASN1_PRINTABLESTRING ASN1_STRING -#define ASN1_T61STRING ASN1_STRING -#define ASN1_IA5STRING ASN1_STRING -#define ASN1_UTCTIME ASN1_STRING -#define ASN1_GENERALIZEDTIME ASN1_STRING -#define ASN1_TIME ASN1_STRING -#define ASN1_GENERALSTRING ASN1_STRING -#define ASN1_UNIVERSALSTRING ASN1_STRING -#define ASN1_BMPSTRING ASN1_STRING -#define ASN1_VISIBLESTRING ASN1_STRING -#define ASN1_UTF8STRING ASN1_STRING -#define ASN1_BOOLEAN int -#define ASN1_NULL int -#else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -#endif - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; - -#ifdef OPENSSL_SYS_WIN32 -#undef X509_NAME -#undef X509_EXTENSIONS -#undef X509_CERT_PAIR -#undef PKCS7_ISSUER_AND_SERIAL -#undef OCSP_REQUEST -#undef OCSP_RESPONSE -#endif - -#ifdef BIGNUM -#undef BIGNUM -#endif -typedef struct bignum_st BIGNUM; -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; - -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_pkey_st EVP_PKEY; - -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 dh_st DH; -typedef struct dh_method DH_METHOD; - -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; - -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; - -typedef struct rand_meth_st RAND_METHOD; - -typedef struct ecdh_method ECDH_METHOD; -typedef struct ecdsa_method ECDSA_METHOD; - -typedef struct x509_st X509; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -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 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 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 X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -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; - -#ifdef __cplusplus -} -#endif -#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/src/sdk/extern/include/openssl/pem.h b/src/sdk/extern/include/openssl/pem.h deleted file mode 100644 index 8a6abab..0000000 --- a/src/sdk/extern/include/openssl/pem.h +++ /dev/null @@ -1,641 +0,0 @@ -/* crypto/pem/pem.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.] - */ - -#ifndef HEADER_PEM_H -#define HEADER_PEM_H - -#include -#ifndef OPENSSL_NO_BIO -#include -#endif -#ifndef OPENSSL_NO_STACK -#include -#endif -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#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" -#define PEM_STRING_X509_CRL "X509 CRL" -#define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -#define PEM_STRING_PUBLIC "PUBLIC KEY" -#define PEM_STRING_RSA "RSA PRIVATE KEY" -#define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -#define PEM_STRING_DSA "DSA PRIVATE KEY" -#define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -#define PEM_STRING_PKCS7 "PKCS7" -#define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -#define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -#define PEM_STRING_PKCS8INF "PRIVATE KEY" -#define PEM_STRING_DHPARAMS "DH PARAMETERS" -#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -#define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -#define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -#define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -#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 -#define PEM_TYPE_CLEAR 40 - -typedef struct pem_recip_st - { - char *name; - X509_NAME *dn; - - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ - } PEM_USER; - -typedef struct pem_ctx_st - { - int type; /* what type of object */ - - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /* unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; - - /* XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /* unused, and wrong size - unsigned char iv[8]; */ - - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; - } PEM_CTX; - -/* These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: - * IMPLEMENT_PEM_rw(...) or IMPLEMENT_PEM_rw_cb(...) - */ - -#ifdef OPENSSL_NO_FP_API - -#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ - -#else - -#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ -type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ -} - -#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ -} - -#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, const type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -#endif - -#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ -type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ -} - -#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ -} - -#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, const type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ - } - -#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ - } - -#define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) - -#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) - -#define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -#define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -#define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) - -#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -#if defined(OPENSSL_NO_FP_API) - -#define DECLARE_PEM_read_fp(name, type) /**/ -#define DECLARE_PEM_write_fp(name, type) /**/ -#define DECLARE_PEM_write_cb_fp(name, type) /**/ - -#else - -#define DECLARE_PEM_read_fp(name, type) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); - -#define DECLARE_PEM_write_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x); - -#define DECLARE_PEM_write_fp_const(name, type) \ - int PEM_write_##name(FILE *fp, const type *x); - -#define DECLARE_PEM_write_cb_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -#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); - -#define DECLARE_PEM_write_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x); - -#define DECLARE_PEM_write_bio_const(name, type) \ - int PEM_write_bio_##name(BIO *bp, const type *x); - -#define DECLARE_PEM_write_cb_bio(name, type) \ - 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) - -#define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_fp_const(name, type) - -#define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_fp(name, type) - -#define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_fp(name, type) - -#define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write(name, type) - -#define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_const(name, type) - -#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,char *hdr,unsigned char *data, - long len); -int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, - pem_password_cb *cb, void *u); -void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, - void **x, pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp, void *x, - const EVP_CIPHER *enc,unsigned char *kstr,int klen, - pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) * PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u); -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 - -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data,long *len); -int PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len); -void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp, - void *x,const EVP_CIPHER *enc,unsigned char *kstr, - 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); - -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_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -int PEM_def_callback(char *buf, int num, int w, void *key); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, char *str); - - -#include - -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) - -DECLARE_PEM_rw(PKCS7, PKCS7) - -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) - -DECLARE_PEM_rw(PKCS8, X509_SIG) - -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) - -#ifndef OPENSSL_NO_RSA - -DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) - -DECLARE_PEM_rw_const(RSAPublicKey, RSA) -DECLARE_PEM_rw(RSA_PUBKEY, RSA) - -#endif - -#ifndef OPENSSL_NO_DSA - -DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) - -DECLARE_PEM_rw(DSA_PUBKEY, DSA) - -DECLARE_PEM_rw_const(DSAparams, DSA) - -#endif - -#ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) -DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) -#endif - -#ifndef OPENSSL_NO_DH - -DECLARE_PEM_rw_const(DHparams, DH) - -#endif - -DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) - -DECLARE_PEM_rw(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, - char *, int, pem_password_cb *, void *); -int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); - -int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, - char *kstr,int klen, pem_password_cb *cd, void *u); - -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); - - -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 -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 - - -/* 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_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -#define PEM_F_B2I_DSS 127 -#define PEM_F_B2I_PVK_BIO 128 -#define PEM_F_B2I_RSA 129 -#define PEM_F_CHECK_BITLEN_DSA 130 -#define PEM_F_CHECK_BITLEN_RSA 131 -#define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -#define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -#define PEM_F_DO_B2I 132 -#define PEM_F_DO_B2I_BIO 133 -#define PEM_F_DO_BLOB_HEADER 134 -#define PEM_F_DO_PK8PKEY 126 -#define PEM_F_DO_PK8PKEY_FP 125 -#define PEM_F_DO_PVK_BODY 135 -#define PEM_F_DO_PVK_HEADER 136 -#define PEM_F_I2B_PVK 137 -#define PEM_F_I2B_PVK_BIO 138 -#define PEM_F_LOAD_IV 101 -#define PEM_F_PEM_ASN1_READ 102 -#define PEM_F_PEM_ASN1_READ_BIO 103 -#define PEM_F_PEM_ASN1_WRITE 104 -#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_PARAMETERS 140 -#define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -#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 -#define PEM_F_PEM_WRITE_PRIVATEKEY 139 -#define PEM_F_PEM_X509_INFO_READ 115 -#define PEM_F_PEM_X509_INFO_READ_BIO 116 -#define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -#define PEM_R_BAD_BASE64_DECODE 100 -#define PEM_R_BAD_DECRYPT 101 -#define PEM_R_BAD_END_LINE 102 -#define PEM_R_BAD_IV_CHARS 103 -#define PEM_R_BAD_MAGIC_NUMBER 116 -#define PEM_R_BAD_PASSWORD_READ 104 -#define PEM_R_BAD_VERSION_NUMBER 117 -#define PEM_R_BIO_WRITE_FAILURE 118 -#define PEM_R_CIPHER_IS_NULL 127 -#define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -#define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -#define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -#define PEM_R_INCONSISTENT_HEADER 121 -#define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -#define PEM_R_KEYBLOB_TOO_SHORT 123 -#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_UNSUPPORTED_CIPHER 113 -#define PEM_R_UNSUPPORTED_ENCRYPTION 114 -#define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/pem2.h b/src/sdk/extern/include/openssl/pem2.h deleted file mode 100644 index f31790d..0000000 --- a/src/sdk/extern/include/openssl/pem2.h +++ /dev/null @@ -1,70 +0,0 @@ -/* ==================================================================== - * 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. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -void ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/sdk/extern/include/openssl/pkcs12.h b/src/sdk/extern/include/openssl/pkcs12.h deleted file mode 100644 index b17eb9f..0000000 --- a/src/sdk/extern/include/openssl/pkcs12.h +++ /dev/null @@ -1,331 +0,0 @@ -/* 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). - * - */ - -#ifndef HEADER_PKCS12_H -#define HEADER_PKCS12_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define PKCS12_KEY_ID 1 -#define PKCS12_IV_ID 2 -#define PKCS12_MAC_ID 3 - -/* Default iteration count */ -#ifndef PKCS12_DEFAULT_ITER -#define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -#endif - -#define PKCS12_MAC_KEY_LENGTH 20 - -#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 - -/* 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 { -ASN1_INTEGER *version; -PKCS12_MAC_DATA *mac; -PKCS7 *authsafes; -} 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; - -DECLARE_STACK_OF(PKCS12_SAFEBAG) -DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG) -DECLARE_PKCS12_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; - -#define PKCS12_ERROR 0 -#define PKCS12_OK 1 - -/* Compatibility macros */ - -#define M_PKCS12_x5092certbag PKCS12_x5092certbag -#define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag - -#define M_PKCS12_certbag2x509 PKCS12_certbag2x509 -#define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl - -#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 M_PKCS12_decrypt_skey PKCS12_decrypt_skey -#define M_PKCS8_decrypt PKCS8_decrypt - -#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 - -#define PKCS12_get_attr(bag, attr_nid) \ - PKCS12_get_attr_gen(bag->attrib, attr_nid) - -#define PKCS8_get_attr(p8, attr_nid) \ - PKCS12_get_attr_gen(p8->attributes, attr_nid) - -#define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0) - - -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_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, int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(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); -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, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -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); - -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_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); -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, - unsigned char **data, int *datalen, int en_de); -void * PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, 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, - void *obj, int zbuf); -PKCS12 *PKCS12_init(int mode); -int PKCS12_key_gen_asc(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_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_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); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -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); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -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_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 PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, char *pass); -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); - -int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); -int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -int PKCS12_newpass(PKCS12 *p12, char *oldpass, char *newpass); - -/* 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_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 -#define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -#define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -#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_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_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 - -/* Reason codes. */ -#define PKCS12_R_CANT_PACK_STRUCTURE 100 -#define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -#define PKCS12_R_DECODE_ERROR 101 -#define PKCS12_R_ENCODE_ERROR 102 -#define PKCS12_R_ENCRYPT_ERROR 103 -#define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -#define PKCS12_R_INVALID_NULL_ARGUMENT 104 -#define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -#define PKCS12_R_IV_GEN_ERROR 106 -#define PKCS12_R_KEY_GEN_ERROR 107 -#define PKCS12_R_MAC_ABSENT 108 -#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 -#define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -#define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -#define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -#define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/pkcs7.h b/src/sdk/extern/include/openssl/pkcs7.h deleted file mode 100644 index 5d54c4a..0000000 --- a/src/sdk/extern/include/openssl/pkcs7.h +++ /dev/null @@ -1,496 +0,0 @@ -/* crypto/pkcs7/pkcs7.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_PKCS7_H -#define HEADER_PKCS7_H - -#include -#include -#include - -#include -#include - -#ifdef __cplusplus -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 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct pkcs7_issuer_and_serial_st - { - X509_NAME *issuer; - ASN1_INTEGER *serial; - } PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st - { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - - /* The private key to sign with */ - EVP_PKEY *pkey; - } PKCS7_SIGNER_INFO; - -DECLARE_STACK_OF(PKCS7_SIGNER_INFO) -DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) - -typedef struct pkcs7_recip_info_st - { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ - } PKCS7_RECIP_INFO; - -DECLARE_STACK_OF(PKCS7_RECIP_INFO) -DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) - -typedef struct pkcs7_signed_st - { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - - struct pkcs7_st *contents; - } PKCS7_SIGNED; -/* The above structure is very very similar to PKCS7_SIGN_ENVELOPE. - * How about merging the two */ - -typedef struct pkcs7_enc_content_st - { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; - } PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st - { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; - } PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st - { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - } PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st - { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; - } PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st - { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; - } PKCS7_ENCRYPT; - -typedef struct pkcs7_st - { - /* The following is non NULL if it contains ASN1 encoding of - * this structure */ - unsigned char *asn1; - long length; - -#define PKCS7_S_HEADER 0 -#define PKCS7_S_BODY 1 -#define PKCS7_S_TAIL 2 - int state; /* used during processing */ - - int detached; - - ASN1_OBJECT *type; - /* content as defined by the type */ - /* all encryption/message digests are applied to the 'contents', - * leaving out the 'type' field. */ - union { - char *ptr; - - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; - - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - - /* Anything else */ - ASN1_TYPE *other; - } d; - } PKCS7; - -DECLARE_STACK_OF(PKCS7) -DECLARE_ASN1_SET_OF(PKCS7) -DECLARE_PKCS12_STACK_OF(PKCS7) - -#define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -#define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -#define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -#define PKCS7_get_attributes(si) ((si)->unauth_attr) - -#define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -#define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -#define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -#define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -#define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -#define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -#define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -#define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -#define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -#define PKCS7_TEXT 0x1 -#define PKCS7_NOCERTS 0x2 -#define PKCS7_NOSIGS 0x4 -#define PKCS7_NOCHAIN 0x8 -#define PKCS7_NOINTERN 0x10 -#define PKCS7_NOVERIFY 0x20 -#define PKCS7_DETACHED 0x40 -#define PKCS7_BINARY 0x80 -#define PKCS7_NOATTR 0x100 -#define PKCS7_NOSMIMECAP 0x200 -#define PKCS7_NOOLDMIMETYPE 0x400 -#define PKCS7_CRLFEOL 0x800 -#define PKCS7_STREAM 0x1000 -#define PKCS7_NOCRL 0x2000 -#define PKCS7_PARTIAL 0x4000 -#define PKCS7_REUSE_DIGEST 0x8000 - -/* Flags: for compatibility with older code */ - -#define SMIME_TEXT PKCS7_TEXT -#define SMIME_NOCERTS PKCS7_NOCERTS -#define SMIME_NOSIGS PKCS7_NOSIGS -#define SMIME_NOCHAIN PKCS7_NOCHAIN -#define SMIME_NOINTERN PKCS7_NOINTERN -#define SMIME_NOVERIFY PKCS7_NOVERIFY -#define SMIME_DETACHED PKCS7_DETACHED -#define SMIME_BINARY PKCS7_BINARY -#define SMIME_NOATTR PKCS7_NOATTR - -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 -PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7); -#endif -PKCS7 *PKCS7_dup(PKCS7 *p7); -PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type, - void *data); -int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); - - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md, - int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - - -/* 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_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 -#define PKCS7_F_PKCS7_ADD_CRL 101 -#define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -#define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -#define PKCS7_F_PKCS7_ADD_SIGNER 103 -#define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -#define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -#define PKCS7_F_PKCS7_CTRL 104 -#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 -#define PKCS7_F_PKCS7_ENCODE_RINFO 132 -#define PKCS7_F_PKCS7_ENCRYPT 115 -#define PKCS7_F_PKCS7_FINAL 134 -#define PKCS7_F_PKCS7_FIND_DIGEST 127 -#define PKCS7_F_PKCS7_GET0_SIGNERS 124 -#define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -#define PKCS7_F_PKCS7_SET_CIPHER 108 -#define PKCS7_F_PKCS7_SET_CONTENT 109 -#define PKCS7_F_PKCS7_SET_DIGEST 126 -#define PKCS7_F_PKCS7_SET_TYPE 110 -#define PKCS7_F_PKCS7_SIGN 116 -#define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -#define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -#define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -#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 -#define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -#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 -#define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -#define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -#define PKCS7_R_UNKNOWN_OPERATION 110 -#define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -#define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -#define PKCS7_R_WRONG_CONTENT_TYPE 113 -#define PKCS7_R_WRONG_PKCS7_TYPE 114 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/pqueue.h b/src/sdk/extern/include/openssl/pqueue.h deleted file mode 100644 index 26b5348..0000000 --- a/src/sdk/extern/include/openssl/pqueue.h +++ /dev/null @@ -1,100 +0,0 @@ -/* crypto/pqueue/pqueue.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). - * - */ - -#ifndef HEADER_PQUEUE_H -#define HEADER_PQUEUE_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct _pqueue *pqueue; - -typedef struct _pitem - { - unsigned char priority[8]; /* 64-bit value in big-endian encoding */ - void *data; - struct _pitem *next; - } pitem; - -typedef struct _pitem *piterator; - -pitem *pitem_new(unsigned char *prio64be, void *data); -void pitem_free(pitem *item); - -pqueue pqueue_new(void); -void pqueue_free(pqueue pq); - -pitem *pqueue_insert(pqueue pq, pitem *item); -pitem *pqueue_peek(pqueue pq); -pitem *pqueue_pop(pqueue pq); -pitem *pqueue_find(pqueue pq, unsigned char *prio64be); -pitem *pqueue_iterator(pqueue pq); -pitem *pqueue_next(piterator *iter); - -void pqueue_print(pqueue pq); -int pqueue_size(pqueue pq); - -#ifdef __cplusplus -} -#endif -#endif /* ! HEADER_PQUEUE_H */ diff --git a/src/sdk/extern/include/openssl/rand.h b/src/sdk/extern/include/openssl/rand.h deleted file mode 100644 index bb5520e..0000000 --- a/src/sdk/extern/include/openssl/rand.h +++ /dev/null @@ -1,150 +0,0 @@ -/* crypto/rand/rand.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_RAND_H -#define HEADER_RAND_H - -#include -#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 (*bytes)(unsigned char *buf, int num); - void (*cleanup)(void); - void (*add)(const void *buf, int num, double entropy); - int (*pseudorand)(unsigned char *buf, int num); - int (*status)(void); - }; - -#ifdef BN_DEBUG -extern int rand_predictable; -#endif - -int RAND_set_rand_method(const RAND_METHOD *meth); -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 ); -int RAND_bytes(unsigned char *buf,int num); -int RAND_pseudo_bytes(unsigned char *buf,int num); -void RAND_seed(const void *buf,int num); -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); -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); -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 - -/* 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); - -/* 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 - -/* 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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/rc2.h b/src/sdk/extern/include/openssl/rc2.h deleted file mode 100644 index e542ec9..0000000 --- a/src/sdk/extern/include/openssl/rc2.h +++ /dev/null @@ -1,103 +0,0 @@ -/* crypto/rc2/rc2.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.] - */ - -#ifndef HEADER_RC2_H -#define HEADER_RC2_H - -#include /* OPENSSL_NO_RC2, RC2_INT */ -#ifdef OPENSSL_NO_RC2 -#error RC2 is disabled. -#endif - -#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); -void RC2_encrypt(unsigned long *data,RC2_KEY *key); -void RC2_decrypt(unsigned long *data,RC2_KEY *key); -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, int enc); -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/rc4.h b/src/sdk/extern/include/openssl/rc4.h deleted file mode 100644 index 88ceb46..0000000 --- a/src/sdk/extern/include/openssl/rc4.h +++ /dev/null @@ -1,90 +0,0 @@ -/* crypto/rc4/rc4.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.] - */ - -#ifndef HEADER_RC4_H -#define HEADER_RC4_H - -#include /* OPENSSL_NO_RC4, RC4_INT */ -#ifdef OPENSSL_NO_RC4 -#error RC4 is disabled. -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc4_key_st - { - RC4_INT x,y; - RC4_INT data[256]; - } RC4_KEY; - - -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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/ripemd.h b/src/sdk/extern/include/openssl/ripemd.h deleted file mode 100644 index 189bd8c..0000000 --- a/src/sdk/extern/include/openssl/ripemd.h +++ /dev/null @@ -1,107 +0,0 @@ -/* crypto/ripemd/ripemd.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_RIPEMD_H -#define HEADER_RIPEMD_H - -#include -#include - -#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_CBLOCK 64 -#define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) -#define RIPEMD160_DIGEST_LENGTH 20 - -typedef struct RIPEMD160state_st - { - RIPEMD160_LONG A,B,C,D,E; - RIPEMD160_LONG Nl,Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - 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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/rsa.h b/src/sdk/extern/include/openssl/rsa.h deleted file mode 100644 index 11853fe..0000000 --- a/src/sdk/extern/include/openssl/rsa.h +++ /dev/null @@ -1,583 +0,0 @@ -/* crypto/rsa/rsa.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_RSA_H -#define HEADER_RSA_H - -#include - -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include -#ifndef OPENSSL_NO_DEPRECATED -#include -#endif - -#ifdef OPENSSL_NO_RSA -#error RSA is disabled. -#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); - 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); /* Can be null */ - int (*init)(RSA *rsa); /* called at new */ - int (*finish)(RSA *rsa); /* called at free */ - int flags; /* RSA_METHOD_FLAG_* things */ - char *app_data; /* may be needed! */ -/* 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; - }; - -#ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -#endif - -#ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -#endif -#ifndef OPENSSL_RSA_MAX_PUBEXP_BITS -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 /* exponent limit enforced for "large" modulus only */ -#endif - -#define RSA_3 0x3L -#define RSA_F4 0x10001L - -#define RSA_METHOD_FLAG_NO_CHECK 0x0001 /* don't check pub/private match */ - -#define RSA_FLAG_CACHE_PUBLIC 0x0002 -#define RSA_FLAG_CACHE_PRIVATE 0x0004 -#define RSA_FLAG_BLINDING 0x0008 -#define RSA_FLAG_THREAD_SAFE 0x0010 -/* This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag bn_mod_exp - * gets called when private key components are absent. - */ -#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 - -#define RSA_FLAG_NO_BLINDING 0x0080 /* new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -#define RSA_FLAG_NO_CONSTTIME 0x0100 /* 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. - */ -#ifndef OPENSSL_NO_DEPRECATED -#define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME /* deprecated name for the flag*/ - /* new with 0.9.7h; the built-in RSA - * 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. - */ -#endif - - -#define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) - -#define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -#define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) - -#define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) - -#define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -#define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -#define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) - -#define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) - -#define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) -#define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) - -#define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -#define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -#define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -#define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -#define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -#define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -#define RSA_PKCS1_PADDING 1 -#define RSA_SSLV23_PADDING 2 -#define RSA_NO_PADDING 3 -#define RSA_PKCS1_OAEP_PADDING 4 -#define RSA_X931_PADDING 5 -/* EVP_PKEY_ only */ -#define RSA_PKCS1_PSS_PADDING 6 - -#define RSA_PKCS1_PADDING_SIZE 11 - -#define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -#define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -RSA * RSA_new(void); -RSA * RSA_new_method(ENGINE *engine); -int RSA_size(const RSA *rsa); - -/* 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) */ - -/* New version */ -int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); - -int RSA_check_key(const RSA *); - /* next 4 return -1 on error */ -int RSA_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -int RSA_private_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -int RSA_public_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -int RSA_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa,int padding); -void RSA_free (RSA *r); -/* "up" the RSA object's reference count */ -int RSA_up_ref(RSA *r); - -int RSA_flags(const RSA *r); - -void RSA_set_default_method(const RSA_METHOD *meth); -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); - -const RSA_METHOD *RSA_null_method(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st - { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - } RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -#ifndef OPENSSL_NO_FP_API -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 PKCS#1 padded RSA encryption */ -int RSA_sign(int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify(int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -/* The following 2 function sign and verify a ASN1_OCTET_STRING - * object inside PKCS#1 padded RSA encryption */ -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -void RSA_blinding_off(RSA *rsa); -BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -int RSA_padding_add_PKCS1_type_1(unsigned char *to,int tlen, - const unsigned char *f,int fl); -int RSA_padding_check_PKCS1_type_1(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len); -int RSA_padding_add_PKCS1_type_2(unsigned char *to,int tlen, - const unsigned char *f,int fl); -int RSA_padding_check_PKCS1_type_2(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len); -int PKCS1_MGF1(unsigned char *mask, long len, - const unsigned char *seed, long seedlen, const EVP_MD *dgst); -int RSA_padding_add_PKCS1_OAEP(unsigned char *to,int tlen, - const unsigned char *f,int fl, - const unsigned char *p,int pl); -int RSA_padding_check_PKCS1_OAEP(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len, - const unsigned char *p,int pl); -int RSA_padding_add_SSLv23(unsigned char *to,int tlen, - const unsigned char *f,int fl); -int RSA_padding_check_SSLv23(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len); -int RSA_padding_add_none(unsigned char *to,int tlen, - const unsigned char *f,int fl); -int RSA_padding_check_none(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len); -int RSA_padding_add_X931(unsigned char *to,int tlen, - const unsigned char *f,int fl); -int RSA_padding_check_X931(unsigned char *to,int tlen, - const unsigned char *f,int fl,int rsa_len); -int RSA_X931_hash_id(int nid); - -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, int sLen); -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, int sLen); - -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - 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); -int RSA_set_ex_data(RSA *r,int idx,void *arg); -void *RSA_get_ex_data(const RSA *r, int idx); - -RSA *RSAPublicKey_dup(RSA *rsa); -RSA *RSAPrivateKey_dup(RSA *rsa); - -/* If this flag is set the RSA 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 responsibility - * to ensure the result is compliant. - */ - -#define RSA_FLAG_FIPS_METHOD 0x0400 - -/* If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -#define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* Application has decided PRNG is good enough to generate a key: don't - * check. - */ -#define RSA_FLAG_CHECKED 0x0800 - -/* 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); - -/* 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_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_VERIFYRECOVER 141 -#define RSA_F_RSA_BUILTIN_KEYGEN 129 -#define RSA_F_RSA_CHECK_KEY 123 -#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_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_PADDING_ADD_NONE 107 -#define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -#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_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_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_PUBLIC_DECRYPT 152 -#define RSA_F_RSA_PUBLIC_ENCRYPT 153 -#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 - -/* Reason codes. */ -#define RSA_R_ALGORITHM_MISMATCH 100 -#define RSA_R_BAD_E_VALUE 101 -#define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -#define RSA_R_BAD_PAD_BYTE_COUNT 103 -#define RSA_R_BAD_SIGNATURE 104 -#define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -#define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -#define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -#define RSA_R_DATA_TOO_LARGE 109 -#define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -#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_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_LENGTH 143 -#define RSA_R_INVALID_HEADER 137 -#define RSA_R_INVALID_KEYBITS 145 -#define RSA_R_INVALID_MESSAGE_LENGTH 131 -#define RSA_R_INVALID_MGF1_MD 156 -#define RSA_R_INVALID_PADDING 138 -#define RSA_R_INVALID_PADDING_MODE 141 -#define RSA_R_INVALID_PSS_PARAMETERS 149 -#define RSA_R_INVALID_PSS_SALTLEN 146 -#define RSA_R_INVALID_SALT_LENGTH 150 -#define RSA_R_INVALID_TRAILER 139 -#define RSA_R_INVALID_X931_DIGEST 142 -#define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -#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 -#define RSA_R_P_NOT_PRIME 128 -#define RSA_R_Q_NOT_PRIME 129 -#define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -#define RSA_R_SLEN_CHECK_FAILED 136 -#define RSA_R_SLEN_RECOVERY_FAILED 135 -#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_MASK_DIGEST 151 -#define RSA_R_UNKNOWN_PADDING_TYPE 118 -#define RSA_R_UNKNOWN_PSS_DIGEST 152 -#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 -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/safestack.h b/src/sdk/extern/include/openssl/safestack.h deleted file mode 100644 index bc194cb..0000000 --- a/src/sdk/extern/include/openssl/safestack.h +++ /dev/null @@ -1,2671 +0,0 @@ -/* ==================================================================== - * 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). - * - */ - -#ifndef HEADER_SAFESTACK_H -#define HEADER_SAFESTACK_H - -#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_FREE_FUNC(type, p) \ - ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) - -#define CHECKED_SK_FREE_FUNC2(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) \ - { \ - _STACK stack; \ - }; -#define DECLARE_SPECIAL_STACK_OF(type, type2) \ -STACK_OF(type) \ - { \ - _STACK stack; \ - }; - -#define IMPLEMENT_STACK_OF(type) /* nada (obsolete in new safestack approach)*/ - - -/* Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * -o * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * 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) - -/* 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) - -/* 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_FUNC2(OPENSSL_STRING, 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_FUNC2(OPENSSL_BLOCK, 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_FUNC2(OPENSSL_PSTRING, 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) -/* End of util/mkstack.pl block, you may now edit :-) */ - - -#ifdef __cplusplus -} -#endif -#endif /* !defined HEADER_SAFESTACK_H */ diff --git a/src/sdk/extern/include/openssl/seed.h b/src/sdk/extern/include/openssl/seed.h deleted file mode 100644 index c50fdd3..0000000 --- a/src/sdk/extern/include/openssl/seed.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). 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. Neither the name of author nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``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 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. - * - */ -/* ==================================================================== - * 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 -#include -#include - -#ifdef OPENSSL_NO_SEED -#error SEED is disabled. -#endif - -#ifdef AES_LONG /* look whether we need 'long' to get 32 bits */ -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -#endif - -#if !defined(NO_SYS_TYPES_H) -# include -#endif - -#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]; -#else - unsigned int data[32]; -#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); - -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks); -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks); - -void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, const SEED_KEY_SCHEDULE *ks, int enc); -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int enc); -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int *num, int enc); -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 -} -#endif - -#endif /* HEADER_SEED_H */ diff --git a/src/sdk/extern/include/openssl/sha.h b/src/sdk/extern/include/openssl/sha.h deleted file mode 100644 index 8a6bf4b..0000000 --- a/src/sdk/extern/include/openssl/sha.h +++ /dev/null @@ -1,214 +0,0 @@ -/* crypto/sha/sha.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_SHA_H -#define HEADER_SHA_H - -#include -#include - -#ifdef __cplusplus -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. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -#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_LBLOCK 16 -#define SHA_CBLOCK (SHA_LBLOCK*4) /* SHA treats input data as a - * contiguous array of 32 bit - * wide big-endian values. */ -#define SHA_LAST_BLOCK (SHA_CBLOCK-8) -#define SHA_DIGEST_LENGTH 20 - -typedef struct SHAstate_st - { - SHA_LONG h0,h1,h2,h3,h4; - SHA_LONG Nl,Nh; - SHA_LONG data[SHA_LBLOCK]; - 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]; - SHA_LONG Nl,Nh; - SHA_LONG data[SHA_LBLOCK]; - 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); -unsigned char *SHA224(const unsigned char *d, size_t n,unsigned char *md); -int SHA256_Init(SHA256_CTX *c); -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 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 - * for further details. - */ -#define SHA512_CBLOCK (SHA_LBLOCK*8) /* SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. */ -#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]; - SHA_LONG64 Nl,Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } 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); -unsigned char *SHA384(const unsigned char *d, size_t n,unsigned char *md); -int SHA512_Init(SHA512_CTX *c); -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 -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/srp.h b/src/sdk/extern/include/openssl/srp.h deleted file mode 100644 index 7ec7825..0000000 --- a/src/sdk/extern/include/openssl/srp.h +++ /dev/null @@ -1,172 +0,0 @@ -/* 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 (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 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -typedef struct SRP_gN_cache_st - { - char *b64_bn; - BIGNUM *bn; - } SRP_gN_cache; - - -DECLARE_STACK_OF(SRP_gN_cache) - -typedef struct SRP_user_pwd_st - { - char *id; - BIGNUM *s; - BIGNUM *v; - const BIGNUM *g; - const BIGNUM *N; - char *info; - } SRP_user_pwd; - -DECLARE_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; - } SRP_VBASE; - - -/*Structure interne pour retenir les couples N et g*/ -typedef struct SRP_gN_st - { - char *id; - BIGNUM *g; - BIGNUM *N; - } SRP_gN; - -DECLARE_STACK_OF(SRP_gN) - -SRP_VBASE *SRP_VBASE_new(char *seed_key); -int SRP_VBASE_free(SRP_VBASE *vb); -int SRP_VBASE_init(SRP_VBASE *vb, char * verifier_file); -SRP_user_pwd *SRP_VBASE_get_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); - - -#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_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); -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) ; - - - -/* 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); - -#define SRP_MINIMAL_N 1024 - -#ifdef __cplusplus -} -#endif - -#endif -#endif diff --git a/src/sdk/extern/include/openssl/srtp.h b/src/sdk/extern/include/openssl/srtp.h deleted file mode 100644 index 24f2330..0000000 --- a/src/sdk/extern/include/openssl/srtp.h +++ /dev/null @@ -1,149 +0,0 @@ -/* 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). - * - */ -/* - DTLS code by Eric Rescorla - - Copyright (C) 2006, Network Resonance, Inc. - Copyright (C) 2011, RTFM, Inc. -*/ - -#ifndef HEADER_D1_SRTP_H -#define HEADER_D1_SRTP_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#define SRTP_AES128_CM_SHA1_80 0x0001 -#define SRTP_AES128_CM_SHA1_32 0x0002 -#define SRTP_AES128_F8_SHA1_80 0x0003 -#define SRTP_AES128_F8_SHA1_32 0x0004 -#define SRTP_NULL_SHA1_80 0x0005 -#define SRTP_NULL_SHA1_32 0x0006 - -#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); -SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -#endif - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/src/sdk/extern/include/openssl/ssl.h b/src/sdk/extern/include/openssl/ssl.h deleted file mode 100644 index b78a1cc..0000000 --- a/src/sdk/extern/include/openssl/ssl.h +++ /dev/null @@ -1,2605 +0,0 @@ -/* 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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_SSL_H -#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 -#endif -#include -#include - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SSLeay 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 - -#define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -#define SSL_MAX_KEY_ARG_LENGTH 8 -#define SSL_MAX_MASTER_KEY_LENGTH 48 - - -/* 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" /* no such ciphersuites supported! */ -#define SSL_TXT_kDHd "kDHd" /* no such ciphersuites supported! */ -#define SSL_TXT_kDH "kDH" /* no such ciphersuites supported! */ -#define SSL_TXT_kEDH "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_kPSK "kPSK" -#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" /* no such ciphersuites supported! */ -#define SSL_TXT_aECDH "aECDH" -#define SSL_TXT_aKRB5 "aKRB5" -#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_aSRP "aSRP" - -#define SSL_TXT_DSS "DSS" -#define SSL_TXT_DH "DH" -#define SSL_TXT_EDH "EDH" /* same as "kEDH:-ADH" */ -#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_AECDH "AECDH" -#define SSL_TXT_ECDSA "ECDSA" -#define SSL_TXT_KRB5 "KRB5" -#define SSL_TXT_PSK "PSK" -#define SSL_TXT_SRP "SRP" - -#define SSL_TXT_DES "DES" -#define SSL_TXT_3DES "3DES" -#define SSL_TXT_RC4 "RC4" -#define SSL_TXT_RC2 "RC2" -#define SSL_TXT_IDEA "IDEA" -#define SSL_TXT_SEED "SEED" -#define SSL_TXT_AES128 "AES128" -#define SSL_TXT_AES256 "AES256" -#define SSL_TXT_AES "AES" -#define SSL_TXT_AES_GCM "AESGCM" -#define SSL_TXT_CAMELLIA128 "CAMELLIA128" -#define SSL_TXT_CAMELLIA256 "CAMELLIA256" -#define SSL_TXT_CAMELLIA "CAMELLIA" - -#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_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" - -/* - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -#define SSL_TXT_CMPALL "COMPLEMENTOFALL" -#define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* 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:!aNULL:!eNULL:!SSLv2" -/* 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 - * throwing out anonymous and unencrypted ciphersuites! - * (The latter are not actually enabled by ALL, but "ALL:RSA" would enable - * some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -#define SSL_SENT_SHUTDOWN 1 -#define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -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 - -/* This is needed to stop compilers complaining about the - * 'struct ssl_st *' function parameters used to prototype callbacks - * in SSL_CTX. */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; - -DECLARE_STACK_OF(SSL_CIPHER) - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st - { - const char *name; - unsigned long id; - } SRTP_PROTECTION_PROFILE; - -DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE) - -typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, int len, void *arg); -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_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 - -/* 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. */ -#define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L /* added in 0.9.6e */ - -/* 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 - -/* DTLS options */ -#define SSL_OP_NO_QUERY_MTU 0x00001000L -/* Turn on Cookie Exchange (on relevant for servers) */ -#define SSL_OP_COOKIE_EXCHANGE 0x00002000L -/* 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 - -/* As server, disallow session resumption on renegotiation */ -#define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L -/* Don't use compression even if supported */ -#define SSL_OP_NO_COMPRESSION 0x00020000L -/* 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 -/* If set, always create a new key when using tmp_dh parameters */ -#define SSL_OP_SINGLE_DH_USE 0x00100000L -/* Set to always use the tmp_rsa key when doing RSA operations, - * even when this violates protocol specs */ -#define SSL_OP_EPHEMERAL_RSA 0x00200000L -/* Set on servers to choose the cipher according to the server's - * preferences */ -#define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L -/* 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_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 - -/* 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 - -#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 - -/* 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 -/* 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 -/* Never bother the application with retries if the transport - * is blocking: */ -#define SSL_MODE_AUTO_RETRY 0x00000004L -/* Don't attempt to automatically build certificate chain */ -#define SSL_MODE_NO_AUTO_CHAIN 0x00000008L -/* 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 -/* 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 -/* Send TLS_FALLBACK_SCSV in the ClientHello. - * To be set by applications that reconnect with a downgraded protocol - * version; see draft-ietf-tls-downgrade-scsv-00 for details. */ -#define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L - -/* 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) - -#define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -#define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -#define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -#define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -#define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -#define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -#define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) - -#define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -#ifndef OPENSSL_NO_HEARTBEATS -#define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) -#endif - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); -#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)) - -#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); -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); - -#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 - -#define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* This callback type is used inside SSL_CTX, SSL, and in the functions that set - * them. It is used to override the generation of SSL/TLS session IDs in a - * server. Return value should be zero on an error, non-zero to proceed. Also, - * callbacks should themselves check if the id they generate is unique 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. */ -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 */ - - void (*info_callback)(const SSL *ssl,int type,int val); /* used if SSL's info_callback is NULL */ - - /* 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]; - int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); /* called 'verify_callback' in the SSL */ - - /* 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; -#endif - }; - -#endif - -#define SSL_SESS_CACHE_OFF 0x0000 -#define SSL_SESS_CACHE_CLIENT 0x0001 -#define SSL_SESS_CACHE_SERVER 0x0002 -#define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -#define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -#define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -#define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -#define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -#define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -#define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -#define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -#define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -#define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -#define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -#define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -#define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -#define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -#define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -#define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -#define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(struct ssl_st *ssl, SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess)); -void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx))(struct ssl_ctx_st *ctx, SSL_SESSION *sess); -void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, 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, int len, int *copy); -void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val)); -void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(const SSL *ssl,int type,int val); -void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey)); -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); -#endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int cookie_len)); -#ifndef OPENSSL_NO_NEXTPROTONEG -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char **out, - unsigned int *outlen, - void *arg), - void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), - void *arg); - -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); -void SSL_get0_next_proto_negotiated(const SSL *s, - const unsigned char **data, unsigned *len); - -#define OPENSSL_NPN_UNSUPPORTED 0 -#define OPENSSL_NPN_NEGOTIATED 1 -#define OPENSSL_NPN_NO_OVERLAP 2 -#endif - -#ifndef OPENSSL_NO_PSK -/* the maximum length of the buffer given to callbacks containing the - * resulting identity/psk */ -#define PSK_MAX_IDENTITY_LEN 128 -#define PSK_MAX_PSK_LEN 256 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - 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)); -void SSL_set_psk_client_callback(SSL *ssl, - 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)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, - unsigned char *psk, unsigned int max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, - unsigned char *psk, 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); -const char *SSL_get_psk_identity_hint(const SSL *s); -const char *SSL_get_psk_identity(const SSL *s); -#endif - -#define SSL_NOTHING 1 -#define SSL_WRITING 2 -#define SSL_READING 3 -#define SSL_X509_LOOKUP 4 - -/* 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_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; - int type; /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ - - const SSL_METHOD *method; /* SSLv3 */ - - /* 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 - BIO *rbio; /* used by SSL_read */ - BIO *wbio; /* used by SSL_write */ - BIO *bbio; /* used during session-id reuse to concatenate - * messages */ -#else - char *rbio; /* used by SSL_read */ - char *wbio; /* used by SSL_write */ - 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. - */ - - int server; /* are we the server side? - mostly used by SSL_clear*/ - - int new_session;/* 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 quiet_shutdown;/* don't send shutdown packets */ - int shutdown; /* we have shut things down, 0x01 sent, 0x02 - * for received */ - int state; /* where we are */ - int rstate; /* where we are when reading */ - - 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 */ - int verify_mode; /* 0 don't care about verify failure. - * 1 fail if verify fails */ - int (*verify_callback)(int ok,X509_STORE_CTX *ctx); /* fail if callback returns 0 */ - - void (*info_callback)(const SSL *ssl,int type,int val); /* optional informational callback */ - - int error; /* error bytes to be written */ - int error_code; /* actual code */ - -#ifndef OPENSSL_NO_KRB5 - KSSL_CTX *kssl_ctx; /* Kerberos 5 context */ -#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; - unsigned long options; /* protocol behaviour */ - unsigned long mode; /* API behaviour */ - long max_cert_list; - int first_packet; - int client_version; /* what was passed, used for - * SSLv3/TLS rollback check */ - 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; - int servername_done; /* 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 - */ - /* 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; - unsigned char *tlsext_ecpointformatlist; /* our list */ - size_t tlsext_ellipticcurvelist_length; - unsigned char *tlsext_ellipticcurvelist; /* our list */ -#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 - - STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; /* What we'll do */ - SRTP_PROTECTION_PROFILE *srtp_profile; /* What's been chosen */ - - unsigned int tlsext_heartbeat; /* Is use of the Heartbeat extension negotiated? - 0: disabled - 1: enabled - 2: enabled, but not allowed to send Requests - */ - unsigned int tlsext_hb_pending; /* Indicates if a HeartbeatRequest is in flight */ - unsigned int tlsext_hb_seq; /* HeartbeatRequest sequence number */ -#else -#define session_ctx ctx -#endif /* OPENSSL_NO_TLSEXT */ - - int renegotiate;/* 1 if we are renegotiating. - * 2 if we are a server and are inside a handshake - * (i.e. not just sending a HelloRequest) */ - -#ifndef OPENSSL_NO_SRP - SRP_CTX srp_ctx; /* ctx for SRP authentication */ -#endif - }; - -#endif - -#ifdef __cplusplus -} -#endif - -#include -#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 - -/* 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)) -#define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) -#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)) - -/* 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 */ - -#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_CB_LOOP 0x01 -#define SSL_CB_EXIT 0x02 -#define SSL_CB_READ 0x04 -#define SSL_CB_WRITE 0x08 -#define SSL_CB_ALERT 0x4000 /* used in callback */ -#define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -#define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -#define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -#define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -#define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -#define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -#define SSL_CB_HANDSHAKE_START 0x10 -#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) - -/* The following 2 states are kept in ssl->rstate when reads fail, - * you should not need these */ -#define SSL_ST_READ_HEADER 0xF0 -#define SSL_ST_READ_BODY 0xF1 -#define SSL_ST_READ_DONE 0xF2 - -/* Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. */ -size_t SSL_get_finished(const SSL *s, void *buf, size_t count); -size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); - -/* use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options - * are 'ored' with SSL_VERIFY_PEER if they are desired */ -#define SSL_VERIFY_NONE 0x00 -#define SSL_VERIFY_PEER 0x01 -#define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 -#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)) -#endif -/* More backward compatibility */ -#define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -#define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -#define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -#define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -#define SSL_get_time(a) SSL_SESSION_get_time(a) -#define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -#define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -#define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -#define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -#define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) - -#define SSL_AD_REASON_OFFSET 1000 /* offset to get SSL_R_... value from SSL_AD_... */ - -/* These alert types are for SSLv3 and TLSv1 */ -#define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -#define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE /* fatal */ -#define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC /* fatal */ -#define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -#define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -#define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE/* fatal */ -#define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE/* fatal */ -#define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE /* Not for TLS */ -#define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -#define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -#define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -#define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -#define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -#define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER /* fatal */ -#define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA /* fatal */ -#define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED /* fatal */ -#define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR /* fatal */ -#define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -#define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION/* fatal */ -#define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION /* fatal */ -#define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY/* fatal */ -#define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR /* fatal */ -#define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED -#define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION -#define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION -#define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE -#define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME -#define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -#define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -#define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY /* fatal */ -#define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK /* fatal */ - -#define SSL_ERROR_NONE 0 -#define SSL_ERROR_SSL 1 -#define SSL_ERROR_WANT_READ 2 -#define SSL_ERROR_WANT_WRITE 3 -#define SSL_ERROR_WANT_X509_LOOKUP 4 -#define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */ -#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_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 -#define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -#define SSL_CTRL_GET_FLAGS 13 -#define SSL_CTRL_EXTRA_CHAIN_CERT 14 - -#define SSL_CTRL_SET_MSG_CALLBACK 15 -#define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 - -/* only applies to datagram connections */ -#define SSL_CTRL_SET_MTU 17 -/* Stats */ -#define SSL_CTRL_SESS_NUMBER 20 -#define SSL_CTRL_SESS_CONNECT 21 -#define SSL_CTRL_SESS_CONNECT_GOOD 22 -#define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -#define SSL_CTRL_SESS_ACCEPT 24 -#define SSL_CTRL_SESS_ACCEPT_GOOD 25 -#define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -#define SSL_CTRL_SESS_HIT 27 -#define SSL_CTRL_SESS_CB_HIT 28 -#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 -#define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -#define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -#define SSL_CTRL_SET_SESS_CACHE_MODE 44 -#define SSL_CTRL_GET_SESS_CACHE_MODE 45 - -#define SSL_CTRL_GET_MAX_CERT_LIST 50 -#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 - -#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_GET_EXTRA_CHAIN_CERTS 82 -#define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 - -#define SSL_CTRL_CHECK_PROTO_VERSION 119 - -#define DTLSv1_get_timeout(ssl, arg) \ - 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_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) -#define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) - -#define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) -#define SSL_CTX_get_extra_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) -#define SSL_CTX_clear_extra_chain_certs(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) - -#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); -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); -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 *); -void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *); -int SSL_want(const SSL *s); -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); - -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); -#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); -#endif -#ifndef OPENSSL_NO_BIO -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); -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)); -void SSL_set_verify_depth(SSL *s, int depth); -#ifndef OPENSSL_NO_RSA -int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -#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, long len); -int SSL_use_certificate(SSL *ssl, X509 *x); -int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); - -#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); -int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); /* PEM type */ -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, - const char *file); -#ifndef OPENSSL_SYS_VMS -#ifndef OPENSSL_SYS_MACINTOSH_CLASSIC /* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ -int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *dir); -#endif -#endif - -#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, - unsigned int sid_ctx_len); - -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 -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 -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); -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, - 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); -#endif - -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 *)); -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 *), 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, long len); -int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -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, 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); - -int SSL_CTX_check_private_key(const SSL_CTX *ctx); -int SSL_check_private_key(const SSL *ctx); - -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, - 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); - -int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -#ifndef OPENSSL_NO_SRP -int SSL_CTX_set_srp_username(SSL_CTX *ctx,char *name); -int SSL_CTX_set_srp_password(SSL_CTX *ctx,char *password); -int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb)(SSL *,void *)); -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb)(SSL *,void *)); -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb)(SSL *,int *,void *)); -int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -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); - -char *SSL_get_srp_username(SSL *s); -char *SSL_get_srp_userinfo(SSL *s); -#endif - -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); -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); - -/* 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 -const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ -#endif - -const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ - -const SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */ -const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */ -const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */ - -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 */ - -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 */ - -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 */ - - -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 */ - -STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); - -int SSL_do_handshake(SSL *s); -int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -int SSL_renegotiate_pending(SSL *s); -int SSL_shutdown(SSL *s); - -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); - -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); - -void SSL_set_connect_state(SSL *s); -void SSL_set_accept_state(SSL *s); - -long SSL_get_default_timeout(const SSL *s); - -int SSL_library_init(void ); - -char *SSL_CIPHER_description(const SSL_CIPHER *,char *buf,int size); -STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); - -SSL *SSL_dup(SSL *ssl); - -X509 *SSL_get_certificate(const SSL *ssl); -/* EVP_PKEY */ struct evp_pkey_st *SSL_get_privatekey(SSL *ssl); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode); -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); -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, - 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); -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); - -void SSL_set_verify_result(SSL *ssl,long v); -long SSL_get_verify_result(const SSL *ssl); - -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); -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); -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 ); - -#define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -#define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -#define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -#define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -#define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -#define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -#define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -#define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -#define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -#define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -#define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -#define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -#define SSL_CTX_set_max_send_fragment(ctx,m) \ - 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) - - /* 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_set_tmp_rsa_callback(SSL *ssl, - RSA *(*cb)(SSL *ssl,int is_export, - int keylength)); -#endif -#ifndef OPENSSL_NO_DH -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh)(SSL *ssl,int is_export, - int keylength)); -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 - -#ifndef OPENSSL_NO_COMP -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); -STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm); -#else -const void *SSL_get_current_compression(SSL *s); -const void *SSL_get_current_expansion(SSL *s); -const char *SSL_COMP_get_name(const void *comp); -void *SSL_COMP_get_compression_methods(void); -int SSL_COMP_add_compression_method(int id,void *cm); -#endif - -/* TLS extensions functions */ -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, - void *arg); - -/* Pre-shared secret session resumption functions */ -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); - -#ifndef OPENSSL_NO_UNIT_TEST -const struct openssl_ssl_test_functions *SSL_test_functions(void); -#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_SSL_strings(void); - -/* Error codes for the SSL functions. */ - -/* Function codes. */ -#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_D2I_SSL_SESSION 103 -#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_HEARTBEAT 305 -#define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 -#define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -#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_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_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_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_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_GENERATE_KEY_BLOCK 238 -#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_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_WRITE_BYTES 158 -#define SSL_F_SSL3_WRITE_PENDING 159 -#define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -#define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -#define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -#define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -#define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -#define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -#define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -#define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -#define SSL_F_SSL_BAD_METHOD 160 -#define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -#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_CHECK_PRIVATE_KEY 163 -#define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -#define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -#define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -#define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -#define SSL_F_SSL_CLEAR 164 -#define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -#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_MAKE_PROFILES 309 -#define SSL_F_SSL_CTX_NEW 169 -#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_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 -#define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -#define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -#define SSL_F_SSL_DO_HANDSHAKE 180 -#define SSL_F_SSL_GET_NEW_SESSION 181 -#define SSL_F_SSL_GET_PREV_SESSION 217 -#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_NEW 186 -#define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -#define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -#define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -#define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -#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_SESSION_NEW 189 -#define SSL_F_SSL_SESSION_PRINT_FP 190 -#define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -#define SSL_F_SSL_SESS_CERT_NEW 225 -#define SSL_F_SSL_SET_CERT 191 -#define SSL_F_SSL_SET_CIPHER_LIST 271 -#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_UNDEFINED_FUNCTION 197 -#define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -#define SSL_F_SSL_USE_CERTIFICATE 198 -#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -#define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -#define SSL_F_SSL_USE_PRIVATEKEY 201 -#define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -#define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -#define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -#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_VERIFY_CERT_CHAIN 207 -#define SSL_F_SSL_WRITE 208 -#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_EXPORT_KEYING_MATERIAL 314 -#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_WRITE_PENDING 212 - -/* 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_BAD_CHANGE_CIPHER_SPEC 103 -#define SSL_R_BAD_CHECKSUM 104 -#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_PUB_KEY_LENGTH 109 -#define SSL_R_BAD_DH_P_LENGTH 110 -#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_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_CCS_RECEIVED_EARLY 133 -#define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -#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_COOKIE_MISMATCH 308 -#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_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_ECGROUP_TOO_LARGE_FOR_CIPHER 310 -#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_EXCESSIVE_MESSAGE_SIZE 152 -#define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -#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_INAPPROPRIATE_FALLBACK 373 -#define SSL_R_INCONSISTENT_COMPRESSION 340 -#define SSL_R_INVALID_CHALLENGE_LENGTH 158 -#define SSL_R_INVALID_COMMAND 280 -#define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -#define SSL_R_INVALID_PURPOSE 278 -#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_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_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_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_SRTP_PROFILES 359 -#define SSL_R_NO_VERIFY_CALLBACK 194 -#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_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_PRE_MAC_LENGTH_TOO_LONG 205 -#define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 -#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_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -#define SSL_R_SERVERHELLO_TLSEXT 275 -#define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -#define SSL_R_SHORT_READ 219 -#define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -#define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -#define SSL_R_SRP_A_CALC 361 -#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 -#define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -#define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -#define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -#define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -#define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -#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_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_SESSION_ID_CALLBACK_FAILED 301 -#define SSL_R_SSL_SESSION_ID_CONFLICT 302 -#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_TLSV1_ALERT_ACCESS_DENIED 1049 -#define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -#define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -#define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -#define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -#define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -#define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -#define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -#define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -#define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -#define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -#define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -#define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -#define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -#define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -#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_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 -#define SSL_R_UNEXPECTED_RECORD 245 -#define SSL_R_UNINITIALIZED 276 -#define SSL_R_UNKNOWN_ALERT_TYPE 246 -#define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -#define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -#define SSL_R_UNKNOWN_CIPHER_TYPE 249 -#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_WRONG_CIPHER_RETURNED 261 -#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 -#define SSL_R_WRONG_SSL_VERSION 266 -#define SSL_R_WRONG_VERSION_NUMBER 267 -#define SSL_R_X509_LIB 268 -#define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ssl2.h b/src/sdk/extern/include/openssl/ssl2.h deleted file mode 100644 index eb25dcb..0000000 --- a/src/sdk/extern/include/openssl/ssl2.h +++ /dev/null @@ -1,272 +0,0 @@ -/* ssl/ssl2.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_SSL2_H -#define HEADER_SSL2_H - -#ifdef __cplusplus -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 -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/ssl23.h b/src/sdk/extern/include/openssl/ssl23.h deleted file mode 100644 index d322898..0000000 --- a/src/sdk/extern/include/openssl/ssl23.h +++ /dev/null @@ -1,83 +0,0 @@ -/* ssl/ssl23.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_SSL23_H -#define HEADER_SSL23_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*client */ -/* write to server */ -#define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) -#define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) -/* read from server */ -#define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) -#define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) - -/* server */ -/* read from client */ -#define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) -#define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/ssl3.h b/src/sdk/extern/include/openssl/ssl3.h deleted file mode 100644 index 85f1504..0000000 --- a/src/sdk/extern/include/openssl/ssl3.h +++ /dev/null @@ -1,699 +0,0 @@ -/* 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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_SSL3_H -#define HEADER_SSL3_H - -#ifndef OPENSSL_NO_COMP -#include -#endif -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) */ -#define SSL3_CK_SCSV 0x030000FF - -/* Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) */ -#define SSL3_CK_FALLBACK_SCSV 0x03005600 - -#define SSL3_CK_RSA_NULL_MD5 0x03000001 -#define SSL3_CK_RSA_NULL_SHA 0x03000002 -#define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -#define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -#define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -#define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -#define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -#define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -#define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -#define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -#define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -#define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -#define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -#define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -#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_EDH_DSS_DES_64_CBC_SHA 0x03000012 -#define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 -#define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 -#define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 -#define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 - -#define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -#define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -#define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -#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" -#define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -#define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -#define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -#define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -#define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -#define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -#define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -#define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -#define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -#define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -#define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -#define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -#define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -#define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -#define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -#define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -#define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -#define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -#define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -#define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -#define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -#define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -#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 - -#define SSL3_MASTER_SECRET_SIZE 48 -#define SSL3_RANDOM_SIZE 32 -#define SSL3_SESSION_ID_SIZE 32 -#define SSL3_RT_HEADER_LENGTH 5 - -#ifndef SSL3_ALIGN_PAYLOAD - /* Some will argue that this increases memory footprint, but it's - * not actually true. Point is that malloc has to return at least - * 64-bit aligned pointers, meaning that allocating 5 bytes wastes - * 3 bytes in either case. Suggested pre-gaping simply moves these - * wasted bytes from the end of allocated region to its front, - * but makes data payload aligned, which improves performance:-) */ -# define SSL3_ALIGN_PAYLOAD 8 -#else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -#endif - -/* This is the maximum MAC (digest) size used by the SSL library. - * Currently maximum of 20 is used by SHA1, but we reserve for - * future extension for 512-bit hashes. - */ - -#define SSL3_RT_MAX_MD_SIZE 64 - -/* Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -#define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -#define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -#define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -#define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* The standards give a maximum encryption overhead of 1024 bytes. - * In practice the value is lower than this. The overhead is the maximum - * number of padding bytes (256) plus the mac size. - */ -#define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) - -/* OpenSSL currently only uses a padding length of at most one block so - * the send overhead is smaller. - */ - -#define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -#ifdef OPENSSL_NO_COMP -#define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH -#else -#define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) -#endif -#define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) -#define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) - -#define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -#define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -#define SSL3_VERSION 0x0300 -#define SSL3_VERSION_MAJOR 0x03 -#define SSL3_VERSION_MINOR 0x00 - -#define SSL3_RT_CHANGE_CIPHER_SPEC 20 -#define SSL3_RT_ALERT 21 -#define SSL3_RT_HANDSHAKE 22 -#define SSL3_RT_APPLICATION_DATA 23 -#define TLS1_RT_HEARTBEAT 24 - -#define SSL3_AL_WARNING 1 -#define SSL3_AL_FATAL 2 - -#define SSL3_AD_CLOSE_NOTIFY 0 -#define SSL3_AD_UNEXPECTED_MESSAGE 10 /* fatal */ -#define SSL3_AD_BAD_RECORD_MAC 20 /* fatal */ -#define SSL3_AD_DECOMPRESSION_FAILURE 30 /* fatal */ -#define SSL3_AD_HANDSHAKE_FAILURE 40 /* fatal */ -#define SSL3_AD_NO_CERTIFICATE 41 -#define SSL3_AD_BAD_CERTIFICATE 42 -#define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -#define SSL3_AD_CERTIFICATE_REVOKED 44 -#define SSL3_AD_CERTIFICATE_EXPIRED 45 -#define SSL3_AD_CERTIFICATE_UNKNOWN 46 -#define SSL3_AD_ILLEGAL_PARAMETER 47 /* fatal */ - -#define TLS1_HB_REQUEST 1 -#define TLS1_HB_RESPONSE 2 - -#ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl3_record_st - { -/*r */ int type; /* type of record */ -/*rw*/ unsigned int length; /* How many bytes available */ -/*r */ unsigned int off; /* read/write offset into 'buf' */ -/*rw*/ unsigned char *data; /* pointer to the record data */ -/*rw*/ unsigned char *input; /* where the decode bytes are */ -/*r */ unsigned char *comp; /* only used with decompression - malloc()ed */ -/*r */ unsigned long epoch; /* epoch number, needed by DTLS1 */ -/*r */ unsigned char seq_num[8]; /* sequence number, needed by DTLS1 */ - } SSL3_RECORD; - -typedef struct ssl3_buffer_st - { - unsigned char *buf; /* at least SSL3_RT_MAX_PACKET_SIZE bytes, - * see ssl3_setup_buffers() */ - size_t len; /* buffer size */ - int offset; /* where to 'copy from' */ - int left; /* how many bytes left */ - } SSL3_BUFFER; - -#endif - -#define SSL3_CT_RSA_SIGN 1 -#define SSL3_CT_DSS_SIGN 2 -#define SSL3_CT_RSA_FIXED_DH 3 -#define SSL3_CT_DSS_FIXED_DH 4 -#define SSL3_CT_RSA_EPHEMERAL_DH 5 -#define SSL3_CT_DSS_EPHEMERAL_DH 6 -#define SSL3_CT_FORTEZZA_DMS 20 -/* SSL3_CT_NUMBER is used to size arrays and it must be large - * enough to contain all of the cert types defined either for - * SSLv3 and TLSv1. - */ -#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 -#define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 -#define TLS1_FLAGS_KEEP_HANDSHAKE 0x0020 -#define SSL3_FLAGS_CCS_OK 0x0080 - -/* SSL3_FLAGS_SGC_RESTART_DONE is set when we - * restart a handshake because of MS SGC and so prevents us - * from restarting the handshake in a loop. It's reset on a - * renegotiation, so effectively limits the client to one restart - * per negotiation. This limits the possibility of a DDoS - * attack where the client handshakes in a loop using SGC to - * restart. Servers which permit renegotiation can still be - * effected, but we can't prevent that. - */ -#define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 - -#ifndef OPENSSL_NO_SSL_INTERN - -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; - /* this is set whenerver we see a change_cipher_spec message - * come in when we are not looking for one */ - 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 */ -#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) -/* 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 SSL3_MT_HELLO_REQUEST 0 -#define SSL3_MT_CLIENT_HELLO 1 -#define SSL3_MT_SERVER_HELLO 2 -#define SSL3_MT_NEWSESSION_TICKET 4 -#define SSL3_MT_CERTIFICATE 11 -#define SSL3_MT_SERVER_KEY_EXCHANGE 12 -#define SSL3_MT_CERTIFICATE_REQUEST 13 -#define SSL3_MT_SERVER_DONE 14 -#define SSL3_MT_CERTIFICATE_VERIFY 15 -#define SSL3_MT_CLIENT_KEY_EXCHANGE 16 -#define SSL3_MT_FINISHED 20 -#define SSL3_MT_CERTIFICATE_STATUS 22 -#ifndef OPENSSL_NO_NEXTPROTONEG -#define SSL3_MT_NEXT_PROTO 67 -#endif -#define DTLS1_MT_HELLO_VERIFY_REQUEST 3 - - -#define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -#define SSL3_CC_READ 0x01 -#define SSL3_CC_WRITE 0x02 -#define SSL3_CC_CLIENT 0x10 -#define SSL3_CC_SERVER 0x20 -#define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) -#define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) -#define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) -#define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/stack.h b/src/sdk/extern/include/openssl/stack.h deleted file mode 100644 index ce35e55..0000000 --- a/src/sdk/extern/include/openssl/stack.h +++ /dev/null @@ -1,108 +0,0 @@ -/* crypto/stack/stack.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_STACK_H -#define HEADER_STACK_H - -#ifdef __cplusplus -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 */ - -#define M_sk_num(sk) ((sk) ? (sk)->num:-1) -#define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL) - -int sk_num(const _STACK *); -void *sk_value(const _STACK *, int); - -void *sk_set(_STACK *, int, void *); - -_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 *)); -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); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/symhacks.h b/src/sdk/extern/include/openssl/symhacks.h deleted file mode 100644 index bd2f000..0000000 --- a/src/sdk/extern/include/openssl/symhacks.h +++ /dev/null @@ -1,481 +0,0 @@ -/* ==================================================================== - * 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). - * - */ - -#ifndef HEADER_SYMHACKS_H -#define HEADER_SYMHACKS_H - -#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 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_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 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 long ENGINE 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 - -/* 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 - -/* 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) -#undef ERR_load_CRYPTO_strings -#define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -#undef OCSP_crlID_new -#define OCSP_crlID_new OCSP_crlID2_new - -#undef d2i_ECPARAMETERS -#define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -#undef i2d_ECPARAMETERS -#define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -#undef d2i_ECPKPARAMETERS -#define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -#undef i2d_ECPKPARAMETERS -#define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -/* These functions do not seem to exist! However, I'm paranoid... - Original command in x509v3.h: - These functions are being redefined in another directory, - and clash when the linker is case-insensitive, so let's - hide them a little, by giving them an extra 'o' at the - beginning of the name... */ -#undef X509v3_cleanup_extensions -#define X509v3_cleanup_extensions oX509v3_cleanup_extensions -#undef X509v3_add_extension -#define X509v3_add_extension oX509v3_add_extension -#undef X509v3_add_netscape_extensions -#define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -#undef X509v3_add_standard_extensions -#define X509v3_add_standard_extensions oX509v3_add_standard_extensions - -/* This one clashes with CMS_data_create */ -#undef cms_Data_create -#define cms_Data_create priv_cms_Data_create - -#endif - - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/src/sdk/extern/include/openssl/tls1.h b/src/sdk/extern/include/openssl/tls1.h deleted file mode 100644 index 6ae8876..0000000 --- a/src/sdk/extern/include/openssl/tls1.h +++ /dev/null @@ -1,744 +0,0 @@ -/* 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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_TLS1_H -#define HEADER_TLS1_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 - -#define TLS1_VERSION 0x0301 -#define TLS1_1_VERSION 0x0302 -#define TLS1_2_VERSION 0x0303 -#define TLS_MAX_VERSION TLS1_2_VERSION - -#define TLS1_VERSION_MAJOR 0x03 -#define TLS1_VERSION_MINOR 0x01 - -#define TLS1_1_VERSION_MAJOR 0x03 -#define TLS1_1_VERSION_MINOR 0x02 - -#define TLS1_2_VERSION_MAJOR 0x03 -#define TLS1_2_VERSION_MINOR 0x03 - -#define TLS1_get_version(s) \ - ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) - -#define TLS1_get_client_version(s) \ - ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) - -#define TLS1_AD_DECRYPTION_FAILED 21 -#define TLS1_AD_RECORD_OVERFLOW 22 -#define TLS1_AD_UNKNOWN_CA 48 /* fatal */ -#define TLS1_AD_ACCESS_DENIED 49 /* fatal */ -#define TLS1_AD_DECODE_ERROR 50 /* fatal */ -#define TLS1_AD_DECRYPT_ERROR 51 -#define TLS1_AD_EXPORT_RESTRICTION 60 /* fatal */ -#define TLS1_AD_PROTOCOL_VERSION 70 /* fatal */ -#define TLS1_AD_INSUFFICIENT_SECURITY 71 /* fatal */ -#define TLS1_AD_INTERNAL_ERROR 80 /* fatal */ -#define TLS1_AD_INAPPROPRIATE_FALLBACK 86 /* fatal */ -#define TLS1_AD_USER_CANCELLED 90 -#define TLS1_AD_NO_RENEGOTIATION 100 -/* codes 110-114 are from RFC3546 */ -#define TLS1_AD_UNSUPPORTED_EXTENSION 110 -#define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 -#define TLS1_AD_UNRECOGNIZED_NAME 112 -#define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -#define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -#define TLS1_AD_UNKNOWN_PSK_IDENTITY 115 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -#define TLSEXT_TYPE_server_name 0 -#define TLSEXT_TYPE_max_fragment_length 1 -#define TLSEXT_TYPE_client_certificate_url 2 -#define TLSEXT_TYPE_trusted_ca_keys 3 -#define TLSEXT_TYPE_truncated_hmac 4 -#define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -#define TLSEXT_TYPE_user_mapping 6 - -/* ExtensionType values from RFC5878 */ -#define TLSEXT_TYPE_client_authz 7 -#define TLSEXT_TYPE_server_authz 8 - -/* ExtensionType values from RFC6091 */ -#define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -#define TLSEXT_TYPE_elliptic_curves 10 -#define TLSEXT_TYPE_ec_point_formats 11 - -/* ExtensionType value from RFC5054 */ -#define TLSEXT_TYPE_srp 12 - -/* ExtensionType values from RFC5246 */ -#define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -#define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC5620 */ -#define TLSEXT_TYPE_heartbeat 15 - -/* ExtensionType value for TLS padding extension. - * http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml - * http://tools.ietf.org/html/draft-agl-tls-padding-03 - */ -#define TLSEXT_TYPE_padding 21 - -/* 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 - -#ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -#define TLSEXT_TYPE_next_proto_neg 13172 -#endif - -/* NameType value from RFC 3546 */ -#define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC 3546 */ -#define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from draft-ietf-tls-ecc-12 */ -#define TLSEXT_ECPOINTFORMAT_first 0 -#define TLSEXT_ECPOINTFORMAT_uncompressed 0 -#define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -#define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -#define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC 5246 */ - -#define TLSEXT_signature_anonymous 0 -#define TLSEXT_signature_rsa 1 -#define TLSEXT_signature_dsa 2 -#define TLSEXT_signature_ecdsa 3 - -#define TLSEXT_hash_none 0 -#define TLSEXT_hash_md5 1 -#define TLSEXT_hash_sha1 2 -#define TLSEXT_hash_sha224 3 -#define TLSEXT_hash_sha256 4 -#define TLSEXT_hash_sha384 5 -#define TLSEXT_hash_sha512 6 - -#ifndef OPENSSL_NO_TLSEXT - -#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); -/* 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. - */ -int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, const unsigned char *p, size_t plen, - int use_context); - -#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) \ -SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) - -#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) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) - -#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) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)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) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)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) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) - -#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_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) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) -#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) \ -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_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_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 - -#define SSL_get_tlsext_heartbeat_pending(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) -#define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ - SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) -#endif -#endif - -/* PSK ciphersuites from 4279 */ -#define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -#define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B -#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 - -/* AES ciphersuites from RFC3268 */ - -#define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -#define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -#define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -#define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 -#define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 -#define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 - -#define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 -#define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 -#define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 -#define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -#define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -#define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -#define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -#define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -#define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -#define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -#define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -#define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -#define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -#define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -#define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -#define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -#define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -#define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -#define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -#define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -#define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -#define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -#define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -#define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -#define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -#define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -#define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -#define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -#define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -#define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -#define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -#define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -#define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -#define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -#define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -#define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -#define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -#define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -#define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -#define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -#define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -#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 */ -#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 -#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -#define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -#define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -#define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -#define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -#define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -#define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -#define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -#define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -#define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -#define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -#define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -#define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -#define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -#define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -#define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -#define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -#define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -#define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -#define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -#define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -#define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -#define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -#define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -#define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -#define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -#define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -#define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 - -/* ECDH HMAC based ciphersuites from RFC5289 */ - -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 -#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 -#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -#define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -#define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -#define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -#define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -#define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -#define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -#define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -#define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* XXX - * Inconsistency alert: - * The OpenSSL names of ciphers with ephemeral DH here include the string - * "DHE", while elsewhere it has always been "EDH". - * (The alias for the list of all such ciphers also is "EDH".) - * The specifications speak of "EDH"; maybe we should allow both forms - * for everything. */ -#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" - -/* 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" -#define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -#define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -#define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -#define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -#define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -#define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -#define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -#define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -#define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -#define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */ -#define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -#define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -#define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -#define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -#define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -#define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -#define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -#define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -#define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -#define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -#define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -#define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -#define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -#define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -#define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -#define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -#define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -#define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -#define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -#define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -#define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -#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" - -/* 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" -#define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -#define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -#define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -#define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -#define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -#define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -#define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -#define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -#define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -#define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -#define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -#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" - -/* 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" -#define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -#define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -#define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -#define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -#define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -#define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -#define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -#define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -#define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -#define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -#define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -#define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -#define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -#define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -#define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -#define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -#define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -#define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -#define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -#define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -#define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -#define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -#define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -#define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -#define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -#define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -#define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -#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" - -/* ECDH HMAC based ciphersuites from RFC5289 */ - -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -#define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -#define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -#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" - -#define TLS_CT_RSA_SIGN 1 -#define TLS_CT_DSS_SIGN 2 -#define TLS_CT_RSA_FIXED_DH 3 -#define TLS_CT_DSS_FIXED_DH 4 -#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 -/* when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) */ -#define TLS_CT_NUMBER 9 - -#define TLS1_FINISH_MAC_LENGTH 12 - -#define TLS_MD_MAX_CONST_SIZE 20 -#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" -#define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -#define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -#define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -#define TLS_MD_IV_BLOCK_CONST "IV block" -#define TLS_MD_IV_BLOCK_CONST_SIZE 8 -#define TLS_MD_MASTER_SECRET_CONST "master secret" -#define TLS_MD_MASTER_SECRET_CONST_SIZE 13 - -#ifdef CHARSET_EBCDIC -#undef TLS_MD_CLIENT_FINISH_CONST -#define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*client finished*/ -#undef TLS_MD_SERVER_FINISH_CONST -#define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*server finished*/ -#undef TLS_MD_SERVER_WRITE_KEY_CONST -#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ -#undef TLS_MD_KEY_EXPANSION_CONST -#define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" /*key expansion*/ -#undef TLS_MD_CLIENT_WRITE_KEY_CONST -#define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*client write key*/ -#undef TLS_MD_SERVER_WRITE_KEY_CONST -#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ -#undef TLS_MD_IV_BLOCK_CONST -#define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" /*IV block*/ -#undef TLS_MD_MASTER_SECRET_CONST -#define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" /*master secret*/ -#endif - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st - { - unsigned short length; - void *data; - }; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ts.h b/src/sdk/extern/include/openssl/ts.h deleted file mode 100644 index c2448e3..0000000 --- a/src/sdk/extern/include/openssl/ts.h +++ /dev/null @@ -1,858 +0,0 @@ -/* 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). - * - */ - -#ifndef HEADER_TS_H -#define HEADER_TS_H - -#include -#include -#ifndef OPENSSL_NO_BUFFER -#include -#endif -#ifndef OPENSSL_NO_EVP -#include -#endif -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include -#include - -#ifndef OPENSSL_NO_RSA -#include -#endif - -#ifndef OPENSSL_NO_DSA -#include -#endif - -#ifndef OPENSSL_NO_DH -#include -#endif - -#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. */ - -#define TS_STATUS_GRANTED 0 -#define TS_STATUS_GRANTED_WITH_MODS 1 -#define TS_STATUS_REJECTION 2 -#define TS_STATUS_WAITING 3 -#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 */ - -#define TS_INFO_BAD_ALG 0 -#define TS_INFO_BAD_REQUEST 2 -#define TS_INFO_BAD_DATA_FORMAT 5 -#define TS_INFO_TIME_NOT_AVAILABLE 14 -#define TS_INFO_UNACCEPTED_POLICY 15 -#define TS_INFO_UNACCEPTED_EXTENSION 16 -#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) - -/* -TimeStampResp ::= SEQUENCE { - status PKIStatusInfo, - timeStampToken TimeStampToken OPTIONAL } -*/ - -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; - - -TS_REQ *TS_REQ_new(void); -void TS_REQ_free(TS_REQ *a); -int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); -TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); - -TS_REQ *TS_REQ_dup(TS_REQ *a); - -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); -void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); -int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, - const unsigned char **pp, long length); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); - -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); - -TS_RESP *TS_RESP_new(void); -void TS_RESP_free(TS_RESP *a); -int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); -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); - -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); - -TS_STATUS_INFO *TS_STATUS_INFO_new(void); -void TS_STATUS_INFO_free(TS_STATUS_INFO *a); -int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); -TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, - const unsigned char **pp, long length); -TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); - -TS_TST_INFO *TS_TST_INFO_new(void); -void TS_TST_INFO_free(TS_TST_INFO *a); -int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); -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); - -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); - -TS_ACCURACY *TS_ACCURACY_new(void); -void TS_ACCURACY_free(TS_ACCURACY *a); -int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); -TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, - long length); -TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); - -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); -void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); -int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, - unsigned char **pp); -ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, - const unsigned char **pp, long length); -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); - -ESS_CERT_ID *ESS_CERT_ID_new(void); -void ESS_CERT_ID_free(ESS_CERT_ID *a); -int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); -ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, - long length); -ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); - -ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); -void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); -int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, - unsigned char **pp); -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_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -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); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -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_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); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -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_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); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* Declarations related to response generation, defined in ts/ts_resp_sign.c. */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -#define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -#define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -#define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb)(struct TS_resp_ctx *, void *); - -/* This must return the seconds and microseconds since Jan 1, 1970 in - the sec and usec variables allocated by the caller. - Return non-zero for success and zero for failure. */ -typedef int (*TS_time_cb)(struct TS_resp_ctx *, void *, long *sec, long *usec); - -/* This must process the given extension. - * It can modify the TS_TST_INFO object of the context. - * Return values: !0 (processed), 0 (error, it must set the - * status info/failure info of the response). - */ -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; - -DECLARE_STACK_OF(EVP_MD) -DECLARE_ASN1_SET_OF(EVP_MD) - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -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); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, 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); - -/* 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); - -/* Adds a new acceptable message digest. Note that no message digests - are accepted by default. The md argument is shared with the caller. */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* Clock precision digits, i.e. the number of decimal digits: - '0' means sec, '3' msec, '6' usec, and so on. Default is 0. */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -#define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -#define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -#define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -#define TS_VFY_POLICY (1u << 2) -/* Verify the message imprint provided by the user. This flag should not be - specified with TS_VFY_DATA. */ -#define TS_VFY_IMPRINT (1u << 3) -/* Verify the message imprint computed by the verify method from the user - provided data and the MD algorithm of the response. This flag should not be - specified with TS_VFY_IMPRINT. */ -#define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -#define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -#define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -#define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -#define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -#define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | 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; - -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); - -/* - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* Function declarations for handling configuration options, - defined in ts/ts_conf.c */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -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); -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -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, - TS_RESP_CTX *ctx); -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_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); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -/* -------------------------------------------------- */ -/* 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_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 -#define TS_F_ESS_CERT_ID_NEW_INIT 113 -#define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -#define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -#define TS_F_PKCS7_TO_TS_TST_INFO 148 -#define TS_F_TS_ACCURACY_SET_MICROS 115 -#define TS_F_TS_ACCURACY_SET_MILLIS 116 -#define TS_F_TS_ACCURACY_SET_SECONDS 117 -#define TS_F_TS_CHECK_IMPRINTS 100 -#define TS_F_TS_CHECK_NONCES 101 -#define TS_F_TS_CHECK_POLICY 102 -#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_SET_DEFAULT_ENGINE 146 -#define TS_F_TS_GET_STATUS_TEXT 105 -#define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -#define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -#define TS_F_TS_REQ_SET_NONCE 120 -#define TS_F_TS_REQ_SET_POLICY_ID 121 -#define TS_F_TS_RESP_CREATE_RESPONSE 122 -#define TS_F_TS_RESP_CREATE_TST_INFO 123 -#define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -#define TS_F_TS_RESP_CTX_ADD_MD 125 -#define TS_F_TS_RESP_CTX_ADD_POLICY 126 -#define TS_F_TS_RESP_CTX_NEW 127 -#define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -#define TS_F_TS_RESP_CTX_SET_CERTS 129 -#define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -#define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -#define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -#define TS_F_TS_RESP_GET_POLICY 133 -#define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -#define TS_F_TS_RESP_SET_STATUS_INFO 135 -#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 -#define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -#define TS_F_TS_TST_INFO_SET_SERIAL 141 -#define TS_F_TS_TST_INFO_SET_TIME 142 -#define TS_F_TS_TST_INFO_SET_TSA 143 -#define TS_F_TS_VERIFY 108 -#define TS_F_TS_VERIFY_CERT 109 -#define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -#define TS_R_BAD_PKCS7_TYPE 132 -#define TS_R_BAD_TYPE 133 -#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 -#define TS_R_INVALID_NULL_POINTER 102 -#define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -#define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -#define TS_R_NONCE_MISMATCH 104 -#define TS_R_NONCE_NOT_RETURNED 105 -#define TS_R_NO_CONTENT 106 -#define TS_R_NO_TIME_STAMP_TOKEN 107 -#define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -#define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -#define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -#define TS_R_POLICY_MISMATCH 108 -#define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -#define TS_R_RESPONSE_SETUP_ERROR 121 -#define TS_R_SIGNATURE_FAILURE 109 -#define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -#define TS_R_TIME_SYSCALL_ERROR 122 -#define TS_R_TOKEN_NOT_PRESENT 130 -#define TS_R_TOKEN_PRESENT 131 -#define TS_R_TSA_NAME_MISMATCH 111 -#define TS_R_TSA_UNTRUSTED 112 -#define TS_R_TST_INFO_SETUP_ERROR 123 -#define TS_R_TS_DATASIGN 124 -#define TS_R_UNACCEPTABLE_POLICY 125 -#define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -#define TS_R_UNSUPPORTED_VERSION 113 -#define TS_R_WRONG_CONTENT_TYPE 114 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/txt_db.h b/src/sdk/extern/include/openssl/txt_db.h deleted file mode 100644 index 6abe435..0000000 --- a/src/sdk/extern/include/openssl/txt_db.h +++ /dev/null @@ -1,112 +0,0 @@ -/* crypto/txt_db/txt_db.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_TXT_DB_H -#define HEADER_TXT_DB_H - -#include -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include - -#define DB_ERROR_OK 0 -#define DB_ERROR_MALLOC 1 -#define DB_ERROR_INDEX_CLASH 2 -#define DB_ERROR_INDEX_OUT_OF_RANGE 3 -#define DB_ERROR_NO_INDEX 4 -#define DB_ERROR_INSERT_INDEX_CLASH 5 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st - { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual)(OPENSSL_STRING *); - long error; - long arg1; - long arg2; - 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); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/ui.h b/src/sdk/extern/include/openssl/ui.h deleted file mode 100644 index bd78aa4..0000000 --- a/src/sdk/extern/include/openssl/ui.h +++ /dev/null @@ -1,383 +0,0 @@ -/* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */ -/* 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). - * - */ - -#ifndef HEADER_UI_H -#define HEADER_UI_H - -#ifndef OPENSSL_NO_DEPRECATED -#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 everything is fine, they return 0, a positive value or a non-NULL - pointer, all depending on their purpose. */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/* The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - 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(). */ -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, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -#define UI_INPUT_FLAG_ECHO 0x01 -/* Use a default password. Where that password is found is completely - up to the application, it might for example be in the user data set - with UI_add_user_data(). It is not recommended to have more than - one input in each UI being marked with this flag, or the application - might get confused. */ -#define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/* The user of these routines may want to define flags of their own. The core - UI won't look at those, but will pass them on to the method routines. They - must use higher bits so they don't get confused with the UI bits above. - UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - example of use is this: - - #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - -*/ -#define UI_INPUT_FLAG_USER_BASE 16 - - -/* The following function helps construct a prompt. object_desc is a - textual short description of the object, for example "pass phrase", - and object_name is the name of the object (might be a card name or - a file name. - The returned string shall always be allocated on the heap with - OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - - If the ui_method doesn't contain a pointer to a user-defined prompt - constructor, a default string is built, looking like this: - - "Enter {object_desc} for {object_name}:" - - So, if object_desc has the value "pass phrase" and object_name has - the value "foo.key", the resulting string is: - - "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *object_desc, const char *object_name); - - -/* The following function is used to store a pointer to user-specific data. - Any previous such pointer will be returned and replaced. - - For callback purposes, this function makes a lot more sense than using - ex_data, since the latter requires that different parts of OpenSSL or - applications share the same ex_data index. - - Note that the UI_OpenSSL() method completely ignores the user data. - Other methods may not, however. */ -void *UI_add_user_data(UI *ui, void *user_data); -/* We need a user data retrieving function as well. */ -void *UI_get0_user_data(UI *ui); - -/* Return the result associated with a prompt given with the index i. */ -const char *UI_get0_result(UI *ui, int i); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* Give a user interface parametrised control commands. This can be used to - send down an integer, a data pointer or a function pointer, as well as - be used to get information from a UI. */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)(void)); - -/* The commands */ -/* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - OpenSSL error stack before printing any info or added error messages and - before any prompting. */ -#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 - if not. */ -#define UI_CTRL_IS_REDOABLE 2 - - -/* 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); -int UI_set_ex_data(UI *r,int idx,void *arg); -void *UI_get_ex_data(UI *r, int idx); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -const UI_METHOD *UI_get_default_method(void); -const UI_METHOD *UI_get_method(UI *ui); -const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void); - - -/* ---------- For method writers ---------- */ -/* A method contains a number of functions that implement the low level - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - 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 - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* The UI_STRING type is the data structure that contains all the needed info - 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) - -/* The different types of strings that are currently supported. - This is only needed by method authors. */ -enum UI_string_types - { - UIT_NONE=0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ - }; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(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, int (*writer)(UI *ui, UI_STRING *uis)); -int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui)); -int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis)); -int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui)); -int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name)); -int (*UI_method_get_opener(UI_METHOD *method))(UI*); -int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*); -int (*UI_method_get_flusher(UI_METHOD *method))(UI*); -int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*); -int (*UI_method_get_closer(UI_METHOD *method))(UI*); -char * (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*); - -/* The following functions are helpers for method writers to access relevant - data from a UI_STRING. */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -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 instruction) */ -const char *UI_get0_action_string(UI_STRING *uis); -/* Return the result of a prompt */ -const char *UI_get0_result_string(UI_STRING *uis); -/* Return the string to test the result against. Only useful with verifies. */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -int UI_get_result_maxsize(UI_STRING *uis); -/* Set the result of a UI_STRING. */ -int UI_set_result(UI *ui, UI_STRING *uis, const char *result); - - -/* A couple of popular utility functions */ -int UI_UTIL_read_pw_string(char *buf,int length,const char *prompt,int verify); -int UI_UTIL_read_pw(char *buf,char *buff,int size,const char *prompt,int verify); - - -/* 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_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -#define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -#define UI_F_GENERAL_ALLOCATE_PROMPT 109 -#define UI_F_GENERAL_ALLOCATE_STRING 100 -#define UI_F_UI_CTRL 111 -#define UI_F_UI_DUP_ERROR_STRING 101 -#define UI_F_UI_DUP_INFO_STRING 102 -#define UI_F_UI_DUP_INPUT_BOOLEAN 110 -#define UI_F_UI_DUP_INPUT_STRING 103 -#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_SET_RESULT 105 - -/* Reason codes. */ -#define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -#define UI_R_INDEX_TOO_LARGE 102 -#define UI_R_INDEX_TOO_SMALL 103 -#define UI_R_NO_RESULT_BUFFER 105 -#define UI_R_RESULT_TOO_LARGE 100 -#define UI_R_RESULT_TOO_SMALL 101 -#define UI_R_UNKNOWN_CONTROL_COMMAND 106 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/ui_compat.h b/src/sdk/extern/include/openssl/ui_compat.h deleted file mode 100644 index b35c9bb..0000000 --- a/src/sdk/extern/include/openssl/ui_compat.h +++ /dev/null @@ -1,83 +0,0 @@ -/* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */ -/* 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). - * - */ - -#ifndef HEADER_UI_COMPAT_H -#define HEADER_UI_COMPAT_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* The following functions were previously part of the DES section, - and are provided here for backward compatibility reasons. */ - -#define des_read_pw_string(b,l,p,v) \ - _ossl_old_des_read_pw_string((b),(l),(p),(v)) -#define des_read_pw(b,bf,s,p,v) \ - _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) - -int _ossl_old_des_read_pw_string(char *buf,int length,const char *prompt,int verify); -int _ossl_old_des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/whrlpool.h b/src/sdk/extern/include/openssl/whrlpool.h deleted file mode 100644 index 9e01f5b..0000000 --- a/src/sdk/extern/include/openssl/whrlpool.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef HEADER_WHRLPOOL_H -#define HEADER_WHRLPOOL_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define WHIRLPOOL_DIGEST_LENGTH (512/8) -#define WHIRLPOOL_BBLOCK 512 -#define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH/sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK/8]; - unsigned int bitoff; - 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); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/sdk/extern/include/openssl/x509.h b/src/sdk/extern/include/openssl/x509.h deleted file mode 100644 index 092dd74..0000000 --- a/src/sdk/extern/include/openssl/x509.h +++ /dev/null @@ -1,1297 +0,0 @@ -/* crypto/x509/x509.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 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_X509_H -#define HEADER_X509_H - -#include -#include -#ifndef OPENSSL_NO_BUFFER -#include -#endif -#ifndef OPENSSL_NO_EVP -#include -#endif -#ifndef OPENSSL_NO_BIO -#include -#endif -#include -#include -#include - -#ifndef OPENSSL_NO_EC -#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 - -#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 - -#define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -#define X509v3_KU_NON_REPUDIATION 0x0040 -#define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -#define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -#define X509v3_KU_KEY_AGREEMENT 0x0008 -#define X509v3_KU_KEY_CERT_SIGN 0x0004 -#define X509v3_KU_CRL_SIGN 0x0002 -#define X509v3_KU_ENCIPHER_ONLY 0x0001 -#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 - { - ASN1_TIME *notBefore; - 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_ALGOR *algor; - ASN1_OCTET_STRING *digest; - } X509_SIG; - -typedef struct X509_name_entry_st - { - ASN1_OBJECT *object; - ASN1_STRING *value; - int set; - int size; /* temp variable */ - } 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 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 STACK_OF(X509_EXTENSION) X509_EXTENSIONS; - -DECLARE_STACK_OF(X509_EXTENSION) -DECLARE_ASN1_SET_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; - -DECLARE_STACK_OF(X509_ATTRIBUTE) -DECLARE_ASN1_SET_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_st - { - X509_REQ_INFO *req_info; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int references; - } 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; - -/* 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_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) - -/* This is used for a table of trust checking functions */ - -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust)(struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; - -DECLARE_STACK_OF(X509_TRUST) - -typedef struct x509_cert_pair_st { - X509 *forward; - X509 *reverse; -} X509_CERT_PAIR; - -/* standard trust ids */ - -#define X509_TRUST_DEFAULT -1 /* Only valid in purpose settings */ - -#define X509_TRUST_COMPAT 1 -#define X509_TRUST_SSL_CLIENT 2 -#define X509_TRUST_SSL_SERVER 3 -#define X509_TRUST_EMAIL 4 -#define X509_TRUST_OBJECT_SIGN 5 -#define X509_TRUST_OCSP_SIGN 6 -#define X509_TRUST_OCSP_REQUEST 7 -#define X509_TRUST_TSA 8 - -/* Keep these up to date! */ -#define X509_TRUST_MIN 1 -#define X509_TRUST_MAX 8 - - -/* trust_flags values */ -#define X509_TRUST_DYNAMIC 1 -#define X509_TRUST_DYNAMIC_NAME 2 - -/* check_trust return codes */ - -#define X509_TRUST_TRUSTED 1 -#define X509_TRUST_REJECTED 2 -#define X509_TRUST_UNTRUSTED 3 - -/* Flags for X509_print_ex() */ - -#define X509_FLAG_COMPAT 0 -#define X509_FLAG_NO_HEADER 1L -#define X509_FLAG_NO_VERSION (1L << 1) -#define X509_FLAG_NO_SERIAL (1L << 2) -#define X509_FLAG_NO_SIGNAME (1L << 3) -#define X509_FLAG_NO_ISSUER (1L << 4) -#define X509_FLAG_NO_VALIDITY (1L << 5) -#define X509_FLAG_NO_SUBJECT (1L << 6) -#define X509_FLAG_NO_PUBKEY (1L << 7) -#define X509_FLAG_NO_EXTENSIONS (1L << 8) -#define X509_FLAG_NO_SIGDUMP (1L << 9) -#define X509_FLAG_NO_AUX (1L << 10) -#define X509_FLAG_NO_ATTRIBUTES (1L << 11) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -#define XN_FLAG_SEP_MASK (0xf << 16) - -#define XN_FLAG_COMPAT 0 /* Traditional SSLeay: 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 */ -#define XN_FLAG_SEP_MULTILINE (4 << 16) /* One line per field */ - -#define XN_FLAG_DN_REV (1 << 20) /* Reverse DN order */ - -/* How the field name is shown */ - -#define XN_FLAG_FN_MASK (0x3 << 21) - -#define XN_FLAG_FN_SN 0 /* Object short name */ -#define XN_FLAG_FN_LN (1 << 21) /* Object long name */ -#define XN_FLAG_FN_OID (2 << 21) /* Always use OIDs */ -#define XN_FLAG_FN_NONE (3 << 21) /* No field names */ - -#define XN_FLAG_SPC_EQ (1 << 23) /* Put spaces round '=' */ - -/* This determines if we dump fields we don't recognise: - * RFC2253 requires this. - */ - -#define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -#define XN_FLAG_FN_ALIGN (1 << 25) /* Align field names to 20 characters */ - -/* Complete set of RFC2253 flags */ - -#define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -#define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -#define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - 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 */ - }; - -DECLARE_STACK_OF(X509_REVOKED) -DECLARE_ASN1_SET_OF(X509_REVOKED) - -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) - -typedef struct private_key_st - { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - 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; - X509_PKEY *x_pkey; - - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; - - int references; - } X509_INFO; - -DECLARE_STACK_OF(X509_INFO) -#endif - -/* The next 2 structures and their 8 routines were sent to me by - * Pat Richard and are used to manipulate - * Netscapes spki structures - useful if you are writing a CA web page - */ -typedef struct Netscape_spkac_st - { - X509_PUBKEY *pubkey; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ - } NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st - { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR *sig_algor; - ASN1_BIT_STRING *signature; - } NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence - { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; - } NETSCAPE_CERT_SEQUENCE; - -/* Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { -ASN1_OCTET_STRING *salt; -ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { -X509_ALGOR *keyfunc; -X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -ASN1_TYPE *salt; /* Usually OCTET STRING but could be anything */ -ASN1_INTEGER *iter; -ASN1_INTEGER *keylength; -X509_ALGOR *prf; -} PBKDF2PARAM; - - -/* PKCS#8 private key info structure */ - -struct pkcs8_priv_key_info_st - { - int broken; /* Flag for various broken formats */ -#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; - ASN1_TYPE *pkey; /* Should be OCTET STRING but some are broken */ - STACK_OF(X509_ATTRIBUTE) *attributes; - }; - -#ifdef __cplusplus -} -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#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), - int (*crl_free)(X509_CRL *crl), - int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, - ASN1_INTEGER *ser, X509_NAME *issuer), - int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk)); -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); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len); -char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -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_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -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); -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, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data,const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_CRL_digest(const X509_CRL *data,const EVP_MD *type, - unsigned char *md, unsigned int *len); -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 -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); -int i2d_X509_CRL_fp(FILE *fp,X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp,X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp,X509_REQ *req); -#ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_fp(FILE *fp,RSA **rsa); -int i2d_RSAPrivateKey_fp(FILE *fp,RSA *rsa); -RSA *d2i_RSAPublicKey_fp(FILE *fp,RSA **rsa); -int i2d_RSAPublicKey_fp(FILE *fp,RSA *rsa); -RSA *d2i_RSA_PUBKEY_fp(FILE *fp,RSA **rsa); -int i2d_RSA_PUBKEY_fp(FILE *fp,RSA *rsa); -#endif -#ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -#endif -#ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); -#endif -X509_SIG *d2i_PKCS8_fp(FILE *fp,X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp,X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -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); -int i2d_X509_CRL_bio(BIO *bp,X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp,X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp,X509_REQ *req); -#ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_bio(BIO *bp,RSA **rsa); -int i2d_RSAPrivateKey_bio(BIO *bp,RSA *rsa); -RSA *d2i_RSAPublicKey_bio(BIO *bp,RSA **rsa); -int i2d_RSAPublicKey_bio(BIO *bp,RSA *rsa); -RSA *d2i_RSA_PUBKEY_bio(BIO *bp,RSA **rsa); -int i2d_RSA_PUBKEY_bio(BIO *bp,RSA *rsa); -#endif -#ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -#endif -#ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); -#endif -X509_SIG *d2i_PKCS8_bio(BIO *bp,X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp,X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); -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); -X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); -X509_CRL *X509_CRL_dup(X509_CRL *crl); -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_set_md(X509_ALGOR *alg, const EVP_MD *md); - -X509_NAME *X509_NAME_dup(X509_NAME *xn); -X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -ASN1_TIME * X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME * X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME * X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char * X509_get_default_cert_area(void ); -const char * X509_get_default_cert_dir(void ); -const char * X509_get_default_cert_file(void ); -const char * X509_get_default_cert_dir_env(void ); -const char * X509_get_default_cert_file_env(void ); -const char * X509_get_default_private_dir(void ); - -X509_REQ * X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 * X509_REQ_to_X509(X509_REQ *r, int days,EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY * X509_PUBKEY_get(X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, - STACK_OF(X509) *chain); -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 -int i2d_RSA_PUBKEY(RSA *a,unsigned char **pp); -RSA * d2i_RSA_PUBKEY(RSA **a,const unsigned char **pp, - long length); -#endif -#ifndef OPENSSL_NO_DSA -int i2d_DSA_PUBKEY(DSA *a,unsigned char **pp); -DSA * d2i_DSA_PUBKEY(DSA **a,const unsigned char **pp, - long length); -#endif -#ifndef OPENSSL_NO_EC -int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); -EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, - long length); -#endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, X509_NAME *name); - -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); -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); -X509 * d2i_X509_AUX(X509 **a,const unsigned char **pp,long length); - -int X509_alias_set1(X509 *x, unsigned char *name, int len); -int X509_keyid_set1(X509 *x, 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); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, ASN1_INTEGER *serial); -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); - -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey); - -int ASN1_digest(i2d_of_void *i2d,const EVP_MD *type,char *data, - unsigned char *md,unsigned int *len); - -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - char *data,EVP_PKEY *pkey, const EVP_MD *type); - -int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data, - unsigned char *md,unsigned int *len); - -int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature,void *data,EVP_PKEY *pkey); - -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, - ASN1_BIT_STRING *signature, - void *data, EVP_PKEY *pkey, const EVP_MD *type); -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 - -int X509_set_version(X509 *x,long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER * X509_get_serialNumber(X509 *x); -int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME * X509_get_issuer_name(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); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -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_REQ_set_version(X509_REQ *x,long version); -int X509_REQ_set_subject_name(X509_REQ *req,X509_NAME *name); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY * X509_REQ_get_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); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, - int nid); -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 lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -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_sort(X509_CRL *crl); - -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); - -int X509_REQ_check_private_key(X509_REQ *x509,EVP_PKEY *pkey); - -int X509_check_private_key(X509 *x509,EVP_PKEY *pkey); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -#ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -#endif - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -unsigned long X509_NAME_hash(X509_NAME *x); -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_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, 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, 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_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, - char *buf,int len); - -/* NOTE: you should be passsing -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 lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(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 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 set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - 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 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 unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, - 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); - -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); -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); -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); -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); -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); -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); -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 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); -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); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -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,ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex,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 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); -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, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) **x, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) **x, - int nid, int type, - const unsigned char *bytes, int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) **x, - const char *attrname, 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); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, int atrtype, const void *data, int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, const unsigned char *bytes, int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -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); -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 lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_verify_cert(X509_STORE_CTX *ctx); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk,X509_NAME *name, - ASN1_INTEGER *serial); -X509 *X509_find_by_subject(STACK_OF(X509) *sk,X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(PBEPARAM) -DECLARE_ASN1_FUNCTIONS(PBE2PARAM) -DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) - -int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); - -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(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, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, - PKCS8_PRIV_KEY_INFO *p8); - -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, - X509_PUBKEY *pub); - -int X509_check_trust(X509 *x, int id, int flags); -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); -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); - -/* 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_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -#define X509_F_ADD_CERT_DIR 100 -#define X509_F_BY_FILE_CTRL 101 -#define X509_F_CHECK_POLICY 145 -#define X509_F_DIR_CTRL 102 -#define X509_F_GET_CERT_BY_SUBJECT 103 -#define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -#define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -#define X509_F_X509AT_ADD1_ATTR 135 -#define X509_F_X509V3_ADD_EXT 104 -#define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -#define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -#define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -#define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -#define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -#define X509_F_X509_CHECK_PRIVATE_KEY 128 -#define X509_F_X509_CRL_PRINT_FP 147 -#define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -#define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -#define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -#define X509_F_X509_LOAD_CERT_CRL_FILE 132 -#define X509_F_X509_LOAD_CERT_FILE 111 -#define X509_F_X509_LOAD_CRL_FILE 112 -#define X509_F_X509_NAME_ADD_ENTRY 113 -#define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -#define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -#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_PRINT_EX_FP 118 -#define X509_F_X509_PUBKEY_GET 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 -#define X509_F_X509_REQ_PRINT_FP 122 -#define X509_F_X509_REQ_TO_X509 123 -#define X509_F_X509_STORE_ADD_CERT 124 -#define X509_F_X509_STORE_ADD_CRL 125 -#define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -#define X509_F_X509_STORE_CTX_INIT 143 -#define X509_F_X509_STORE_CTX_NEW 142 -#define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -#define X509_F_X509_TO_X509_REQ 126 -#define X509_F_X509_TRUST_ADD 133 -#define X509_F_X509_TRUST_SET 141 -#define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -#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_ERR_ASN1_LIB 102 -#define X509_R_INVALID_DIRECTORY 113 -#define X509_R_INVALID_FIELD_NAME 119 -#define X509_R_INVALID_TRUST 123 -#define X509_R_KEY_TYPE_MISMATCH 115 -#define X509_R_KEY_VALUES_MISMATCH 116 -#define X509_R_LOADING_CERT_DIR 103 -#define X509_R_LOADING_DEFAULTS 104 -#define X509_R_METHOD_NOT_SUPPORTED 124 -#define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -#define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -#define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -#define X509_R_SHOULD_RETRY 106 -#define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -#define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -#define X509_R_UNKNOWN_KEY_TYPE 117 -#define X509_R_UNKNOWN_NID 109 -#define X509_R_UNKNOWN_PURPOSE_ID 121 -#define X509_R_UNKNOWN_TRUST_ID 120 -#define X509_R_UNSUPPORTED_ALGORITHM 111 -#define X509_R_WRONG_LOOKUP_TYPE 112 -#define X509_R_WRONG_TYPE 122 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/openssl/x509_vfy.h b/src/sdk/extern/include/openssl/x509_vfy.h deleted file mode 100644 index fe09b30..0000000 --- a/src/sdk/extern/include/openssl/x509_vfy.h +++ /dev/null @@ -1,567 +0,0 @@ -/* 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. */ -#endif - -#ifndef HEADER_X509_VFY_H -#define HEADER_X509_VFY_H - -#include -#ifndef OPENSSL_NO_LHASH -#include -#endif -#include -#include -#include - -#ifdef __cplusplus -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 - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -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 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; - -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; - -/* 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; - -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 */ - int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */ - int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */ - int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); /* get issuers cert from ctx */ - int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); /* check issued */ - int (*check_revocation)(X509_STORE_CTX *ctx); /* Check revocation status of chain */ - int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */ - int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */ - int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */ - 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 */; - -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)) - -/* 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; - int current_method; /* used when looking up certs */ - - /* The following are set by the caller */ - X509 *cert; /* The cert to check */ - STACK_OF(X509) *untrusted; /* chain of X509s - untrusted - passed in */ - STACK_OF(X509_CRL) *crls; /* set of CRLs passed in */ - - X509_VERIFY_PARAM *param; - void *other_ctx; /* Other info for use with get_issuer() */ - - /* Callbacks for various operations */ - int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */ - int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */ - int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); /* get issuers cert from ctx */ - int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); /* check issued */ - int (*check_revocation)(X509_STORE_CTX *ctx); /* Check revocation status of chain */ - int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */ - int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */ - int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */ - 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 */ - int valid; /* if 0, rebuild chain */ - int last_untrusted; /* index of last untrusted cert */ - STACK_OF(X509) *chain; /* chain of X509s - built up and trusted */ - X509_POLICY_TREE *tree; /* Valid policy tree */ - - int explicit_policy; /* Require explicit policy value */ - - /* When something goes wrong, this is why */ - int error_depth; - int error; - X509 *current_cert; - X509 *current_issuer; /* cert currently being tested as valid issuer */ - X509_CRL *current_crl; /* current CRL */ - - int current_crl_score; /* score of current CRL */ - unsigned int current_reasons; /* Reason mask */ - - X509_STORE_CTX *parent; /* For CRL path validation: parent context */ - - CRYPTO_EX_DATA ex_data; - } /* X509_STORE_CTX */; - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -#define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -#define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -#define X509_L_FILE_LOAD 1 -#define X509_L_ADD_DIR 2 - -#define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -#define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -#define X509_V_OK 0 -/* illegal error (for uninitialized values, to avoid X509_V_OK): 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 -#define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -#define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -#define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -#define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -#define X509_V_ERR_CERT_NOT_YET_VALID 9 -#define X509_V_ERR_CERT_HAS_EXPIRED 10 -#define X509_V_ERR_CRL_NOT_YET_VALID 11 -#define X509_V_ERR_CRL_HAS_EXPIRED 12 -#define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -#define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -#define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -#define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -#define X509_V_ERR_OUT_OF_MEM 17 -#define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -#define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -#define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -#define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -#define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -#define X509_V_ERR_CERT_REVOKED 23 -#define X509_V_ERR_INVALID_CA 24 -#define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -#define X509_V_ERR_INVALID_PURPOSE 26 -#define X509_V_ERR_CERT_UNTRUSTED 27 -#define X509_V_ERR_CERT_REJECTED 28 -/* These are 'informational' when looking for issuer cert */ -#define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -#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 -#define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -#define X509_V_ERR_INVALID_NON_CA 37 -#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 -#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 - -/* The application is not happy */ -#define X509_V_ERR_APPLICATION_VERIFICATION 50 - -/* Certificate verify flags */ - -/* Send issuer+subject checks to verify_cb */ -#define X509_V_FLAG_CB_ISSUER_CHECK 0x1 -/* Use check time instead of current time */ -#define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -#define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -#define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -#define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -#define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -#define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -#define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -#define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -#define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -#define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -#define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -#define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -#define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check selfsigned CA signature */ -#define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 - - -#define X509_VP_FLAG_DEFAULT 0x1 -#define X509_VP_FLAG_OVERWRITE 0x2 -#define X509_VP_FLAG_RESET_FLAGS 0x4 -#define X509_VP_FLAG_LOCKED 0x8 -#define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -#define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,int 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); -X509_STORE *X509_STORE_new(void ); -void X509_STORE_free(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); -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); - -void X509_STORE_set_verify_cb(X509_STORE *ctx, - int (*verify_cb)(int, X509_STORE_CTX *)); - -X509_STORE_CTX *X509_STORE_CTX_new(void); - -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_cleanup(X509_STORE_CTX *ctx); - -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_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, X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, 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); -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); -X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); -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_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_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); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -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); - -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); - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -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_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_get_depth(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, - unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL * - X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, int i); - -STACK_OF(X509_POLICY_NODE) * - X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); - -STACK_OF(X509_POLICY_NODE) * - X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) * - X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); -const X509_POLICY_NODE * - X509_policy_node_get0_parent(const X509_POLICY_NODE *node); - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/src/sdk/extern/include/openssl/x509v3.h b/src/sdk/extern/include/openssl/x509v3.h deleted file mode 100644 index b308abe..0000000 --- a/src/sdk/extern/include/openssl/x509v3.h +++ /dev/null @@ -1,1007 +0,0 @@ -/* 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). - * - */ -#ifndef HEADER_X509V3_H -#define HEADER_X509V3_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void * (*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE)(void *); -typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long); -typedef int (*X509V3_EXT_I2D)(void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V)(const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void * (*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char * (*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext); -typedef void * (*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void * (*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { -int ext_nid; -int ext_flags; -/* If this is set the following four fields are ignored */ -ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ -X509V3_EXT_NEW ext_new; -X509V3_EXT_FREE ext_free; -X509V3_EXT_D2I d2i; -X509V3_EXT_I2D i2d; - -/* The following pair is used for string extensions */ -X509V3_EXT_I2S i2s; -X509V3_EXT_S2I s2i; - -/* The following pair is used for multi-valued extensions */ -X509V3_EXT_I2V i2v; -X509V3_EXT_V2I v2i; - -/* The following are used for raw extensions */ -X509V3_EXT_I2R i2r; -X509V3_EXT_R2I r2i; - -void *usr_data; /* Any extension specific data */ -}; - -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); -void (*free_string)(void *db, char * string); -void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info */ -struct v3_ext_ctx { -#define CTX_TEST 0x1 -int flags; -X509 *issuer_cert; -X509 *subject_cert; -X509_REQ *subject_req; -X509_CRL *crl; -X509V3_CONF_METHOD *db_meth; -void *db; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -DECLARE_STACK_OF(X509V3_EXT_METHOD) - -/* ext_flags values */ -#define X509V3_EXT_DYNAMIC 0x1 -#define X509V3_EXT_CTX_DEP 0x2 -#define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { -int ca; -ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - - -typedef struct PKEY_USAGE_PERIOD_st { -ASN1_GENERALIZEDTIME *notBefore; -ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { -ASN1_OBJECT *type_id; -ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { - -#define GEN_OTHERNAME 0 -#define GEN_EMAIL 1 -#define GEN_DNS 2 -#define GEN_X400 3 -#define GEN_DIRNAME 4 -#define GEN_EDIPARTY 5 -#define GEN_URI 6 -#define GEN_IPADD 7 -#define GEN_RID 8 - -int type; -union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_TYPE *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ -} d; -} GENERAL_NAME; - -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -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) - -DECLARE_STACK_OF(ACCESS_DESCRIPTION) -DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) - -typedef struct DIST_POINT_NAME_st { -int type; -union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; -} name; -/* If relativename then this contains the full distribution point name */ -X509_NAME *dpname; -} DIST_POINT_NAME; -/* All existing reasons */ -#define CRLDP_ALL_REASONS 0x807f - -#define CRL_REASON_NONE -1 -#define CRL_REASON_UNSPECIFIED 0 -#define CRL_REASON_KEY_COMPROMISE 1 -#define CRL_REASON_CA_COMPROMISE 2 -#define CRL_REASON_AFFILIATION_CHANGED 3 -#define CRL_REASON_SUPERSEDED 4 -#define CRL_REASON_CESSATION_OF_OPERATION 5 -#define CRL_REASON_CERTIFICATE_HOLD 6 -#define CRL_REASON_REMOVE_FROM_CRL 8 -#define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -#define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { -DIST_POINT_NAME *distpoint; -ASN1_BIT_STRING *reasons; -GENERAL_NAMES *CRLissuer; -int dp_reasons; -}; - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -DECLARE_STACK_OF(DIST_POINT) -DECLARE_ASN1_SET_OF(DIST_POINT) - -struct AUTHORITY_KEYID_st { -ASN1_OCTET_STRING *keyid; -GENERAL_NAMES *issuer; -ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -DECLARE_STACK_OF(SXNETID) -DECLARE_ASN1_SET_OF(SXNETID) - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -DECLARE_STACK_OF(POLICYQUALINFO) -DECLARE_ASN1_SET_OF(POLICYQUALINFO) - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -DECLARE_STACK_OF(POLICYINFO) -DECLARE_ASN1_SET_OF(POLICYINFO) - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -DECLARE_STACK_OF(POLICY_MAPPING) - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -DECLARE_STACK_OF(GENERAL_SUBTREE) - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st - { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; - } PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st - { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; - } PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st - { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; - }; - -/* Values in idp_flags field */ -/* IDP present */ -#define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -#define IDP_INVALID 0x2 -/* onlyuser true */ -#define IDP_ONLYUSER 0x4 -/* onlyCA true */ -#define IDP_ONLYCA 0x8 -/* onlyattr true */ -#define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -#define IDP_INDIRECT 0x20 -/* onlysomereasons present */ -#define IDP_REASONS 0x40 - -#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ -",name:", val->name, ",value:", val->value); - -#define X509V3_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) -#define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -#define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -#define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -#define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - - -/* X509_PURPOSE stuff */ - -#define EXFLAG_BCONS 0x1 -#define EXFLAG_KUSAGE 0x2 -#define EXFLAG_XKUSAGE 0x4 -#define EXFLAG_NSCERT 0x8 - -#define EXFLAG_CA 0x10 -/* Really self issued not necessarily self signed */ -#define EXFLAG_SI 0x20 -#define EXFLAG_SS 0x20 -#define EXFLAG_V1 0x40 -#define EXFLAG_INVALID 0x80 -#define EXFLAG_SET 0x100 -#define EXFLAG_CRITICAL 0x200 -#define EXFLAG_PROXY 0x400 - -#define EXFLAG_INVALID_POLICY 0x800 -#define EXFLAG_FRESHEST 0x1000 - -#define KU_DIGITAL_SIGNATURE 0x0080 -#define KU_NON_REPUDIATION 0x0040 -#define KU_KEY_ENCIPHERMENT 0x0020 -#define KU_DATA_ENCIPHERMENT 0x0010 -#define KU_KEY_AGREEMENT 0x0008 -#define KU_KEY_CERT_SIGN 0x0004 -#define KU_CRL_SIGN 0x0002 -#define KU_ENCIPHER_ONLY 0x0001 -#define KU_DECIPHER_ONLY 0x8000 - -#define NS_SSL_CLIENT 0x80 -#define NS_SSL_SERVER 0x40 -#define NS_SMIME 0x20 -#define NS_OBJSIGN 0x10 -#define NS_SSL_CA 0x04 -#define NS_SMIME_CA 0x02 -#define NS_OBJSIGN_CA 0x01 -#define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -#define XKU_SSL_SERVER 0x1 -#define XKU_SSL_CLIENT 0x2 -#define XKU_SMIME 0x4 -#define XKU_CODE_SIGN 0x8 -#define XKU_SGC 0x10 -#define XKU_OCSP_SIGN 0x20 -#define XKU_TIMESTAMP 0x40 -#define XKU_DVCS 0x80 - -#define X509_PURPOSE_DYNAMIC 0x1 -#define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose)(const struct x509_purpose_st *, - const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -#define X509_PURPOSE_SSL_CLIENT 1 -#define X509_PURPOSE_SSL_SERVER 2 -#define X509_PURPOSE_NS_SSL_SERVER 3 -#define X509_PURPOSE_SMIME_SIGN 4 -#define X509_PURPOSE_SMIME_ENCRYPT 5 -#define X509_PURPOSE_CRL_SIGN 6 -#define X509_PURPOSE_ANY 7 -#define X509_PURPOSE_OCSP_HELPER 8 -#define X509_PURPOSE_TIMESTAMP_SIGN 9 - -#define X509_PURPOSE_MIN 1 -#define X509_PURPOSE_MAX 9 - -/* Flags for X509V3_EXT_print() */ - -#define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -#define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -#define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -#define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -#define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -#define X509V3_ADD_OP_MASK 0xfL -#define X509V3_ADD_DEFAULT 0L -#define X509V3_ADD_APPEND 1L -#define X509V3_ADD_REPLACE 2L -#define X509V3_ADD_REPLACE_EXISTING 3L -#define X509V3_ADD_KEEP_EXISTING 4L -#define X509V3_ADD_DELETE 5L -#define X509V3_ADD_SILENT 0x10 - -DECLARE_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 userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, 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); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - - - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -DECLARE_ASN1_FUNCTIONS(OTHERNAME) -DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) -int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); -void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -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); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a); - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -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); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -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); - -#ifdef HEADER_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, - CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc); -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, STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - int ext_nid, char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *name, char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(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); -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); -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, - X509_REQ *req, X509_CRL *crl, int flags); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -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, - 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_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, 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); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -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, int *idx); - - -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); - -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); -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, unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -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); -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_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); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(X509_PURPOSE *); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); - -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 - -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -#define ASIdOrRange_id 0 -#define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DECLARE_STACK_OF(ASIdOrRange) - -#define ASIdentifierChoice_inherit 0 -#define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -#define IPAddressOrRange_addressPrefix 0 -#define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DECLARE_STACK_OF(IPAddressOrRange) - -#define IPAddressChoice_inherit 0 -#define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DECLARE_STACK_OF(IPAddressFamily) - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -#define V3_ASID_ASNUM 0 -#define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * 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 - -/* - * 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); - -/* - * 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); - -/* - * 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); - -/* - * 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); - -#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); - -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -#define X509V3_F_A2I_GENERAL_NAME 164 -#define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -#define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -#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 -#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -#define X509V3_F_NOTICE_SECTION 132 -#define X509V3_F_NREF_NOS 133 -#define X509V3_F_POLICY_SECTION 131 -#define X509V3_F_PROCESS_PCI_VALUE 150 -#define X509V3_F_R2I_CERTPOL 130 -#define X509V3_F_R2I_PCI 155 -#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 -#define X509V3_F_SXNET_GET_ID_ASC 128 -#define X509V3_F_SXNET_GET_ID_ULONG 129 -#define X509V3_F_V2I_ASIDENTIFIERS 163 -#define X509V3_F_V2I_ASN1_BIT_STRING 101 -#define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -#define X509V3_F_V2I_AUTHORITY_KEYID 119 -#define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -#define X509V3_F_V2I_CRLD 134 -#define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -#define X509V3_F_V2I_GENERAL_NAMES 118 -#define X509V3_F_V2I_GENERAL_NAME_EX 117 -#define X509V3_F_V2I_IDP 157 -#define X509V3_F_V2I_IPADDRBLOCKS 159 -#define X509V3_F_V2I_ISSUER_ALT 153 -#define X509V3_F_V2I_NAME_CONSTRAINTS 147 -#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_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_I2D 136 -#define X509V3_F_X509V3_EXT_NCONF 152 -#define X509V3_F_X509V3_GET_SECTION 142 -#define X509V3_F_X509V3_GET_STRING 143 -#define X509V3_F_X509V3_GET_VALUE_BOOL 110 -#define X509V3_F_X509V3_PARSE_LIST 109 -#define X509V3_F_X509_PURPOSE_ADD 137 -#define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -#define X509V3_R_BAD_IP_ADDRESS 118 -#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_DIRNAME_ERROR 149 -#define X509V3_R_DISTPOINT_ALREADY_SET 160 -#define X509V3_R_DUPLICATE_ZONE_ID 133 -#define X509V3_R_ERROR_CONVERTING_ZONE 131 -#define X509V3_R_ERROR_CREATING_EXTENSION 144 -#define X509V3_R_ERROR_IN_EXTENSION 128 -#define X509V3_R_EXPECTED_A_SECTION_NAME 137 -#define X509V3_R_EXTENSION_EXISTS 145 -#define X509V3_R_EXTENSION_NAME_ERROR 115 -#define X509V3_R_EXTENSION_NOT_FOUND 102 -#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_MULTIPLE_RDNS 161 -#define X509V3_R_INVALID_ASNUMBER 162 -#define X509V3_R_INVALID_ASRANGE 163 -#define X509V3_R_INVALID_BOOLEAN_STRING 104 -#define X509V3_R_INVALID_EXTENSION_STRING 105 -#define X509V3_R_INVALID_INHERITANCE 165 -#define X509V3_R_INVALID_IPADDRESS 166 -#define X509V3_R_INVALID_NAME 106 -#define X509V3_R_INVALID_NULL_ARGUMENT 107 -#define X509V3_R_INVALID_NULL_NAME 108 -#define X509V3_R_INVALID_NULL_VALUE 109 -#define X509V3_R_INVALID_NUMBER 140 -#define X509V3_R_INVALID_NUMBERS 141 -#define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -#define X509V3_R_INVALID_OPTION 138 -#define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -#define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -#define X509V3_R_INVALID_PURPOSE 146 -#define X509V3_R_INVALID_SAFI 164 -#define X509V3_R_INVALID_SECTION 135 -#define X509V3_R_INVALID_SYNTAX 143 -#define X509V3_R_ISSUER_DECODE_ERROR 126 -#define X509V3_R_MISSING_VALUE 124 -#define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -#define X509V3_R_NO_CONFIG_DATABASE 136 -#define X509V3_R_NO_ISSUER_CERTIFICATE 121 -#define X509V3_R_NO_ISSUER_DETAILS 127 -#define X509V3_R_NO_POLICY_IDENTIFIER 139 -#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 -#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -#define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -#define X509V3_R_UNKNOWN_EXTENSION 129 -#define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -#define X509V3_R_UNKNOWN_OPTION 120 -#define X509V3_R_UNSUPPORTED_OPTION 117 -#define X509V3_R_UNSUPPORTED_TYPE 167 -#define X509V3_R_USER_TOO_LONG 132 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/sdk/extern/include/uuid.h b/src/sdk/extern/include/uuid.h deleted file mode 100644 index 874d65a..0000000 --- a/src/sdk/extern/include/uuid.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Public include file for the UUID library - * - * Copyright (C) 1996, 1997, 1998 Theodore Ts'o. - * - * %Begin-Header% - * 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, and the entire permission notice in its entirety, - * including the disclaimer of warranties. - * 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. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF - * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * %End-Header% - */ - -#ifndef _UUID_UUID_H -#define _UUID_UUID_H - -#include -#ifndef _WIN32 -#include -#endif -#include - -typedef unsigned char uuid_t[16]; - -/* UUID Variant definitions */ -#define UUID_VARIANT_NCS 0 -#define UUID_VARIANT_DCE 1 -#define UUID_VARIANT_MICROSOFT 2 -#define UUID_VARIANT_OTHER 3 - -/* UUID Type definitions */ -#define UUID_TYPE_DCE_TIME 1 -#define UUID_TYPE_DCE_RANDOM 4 - -/* Allow UUID constants to be defined */ -#ifdef __GNUC__ -#define UUID_DEFINE(name,u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15) \ - static const uuid_t name __attribute__ ((unused)) = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} -#else -#define UUID_DEFINE(name,u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15) \ - static const uuid_t name = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* clear.c */ -void uuid_clear(uuid_t uu); - -/* compare.c */ -int uuid_compare(const uuid_t uu1, const uuid_t uu2); - -/* copy.c */ -void uuid_copy(uuid_t dst, const uuid_t src); - -/* gen_uuid.c */ -void uuid_generate(uuid_t out); -void uuid_generate_random(uuid_t out); -void uuid_generate_time(uuid_t out); -int uuid_generate_time_safe(uuid_t out); - -/* isnull.c */ -int uuid_is_null(const uuid_t uu); - -/* parse.c */ -int uuid_parse(const char *in, uuid_t uu); - -/* unparse.c */ -void uuid_unparse(const uuid_t uu, char *out); -void uuid_unparse_lower(const uuid_t uu, char *out); -void uuid_unparse_upper(const uuid_t uu, char *out); - -/* uuid_time.c */ -time_t uuid_time(const uuid_t uu, struct timeval *ret_tv); -int uuid_type(const uuid_t uu); -int uuid_variant(const uuid_t uu); - -#ifdef __cplusplus -} -#endif - -#endif /* _UUID_UUID_H */ diff --git a/src/sdk/extern/include/zconf.h b/src/sdk/extern/include/zconf.h deleted file mode 100644 index 996fff2..0000000 --- a/src/sdk/extern/include/zconf.h +++ /dev/null @@ -1,511 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzvprintf z_gzvprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateGetDictionary z_inflateGetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/src/sdk/extern/include/zlib.h b/src/sdk/extern/include/zlib.h deleted file mode 100644 index 3e0c767..0000000 --- a/src/sdk/extern/include/zlib.h +++ /dev/null @@ -1,1768 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.8" -#define ZLIB_VERNUM 0x1280 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 8 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use in the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some - output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed code - block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the stream - are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least the - value returned by deflateBound (see below). Then deflate is guaranteed to - return Z_STREAM_END. If not enough output space is provided, deflate will - not return Z_STREAM_END, and it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - producted so far. The CRC-32 is checked against the gzip trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/src/sdk/extern/lib/libcrypto.a b/src/sdk/extern/lib/libcrypto.a deleted file mode 100644 index dc81942c64ad1298a716a676f804826c8488bf02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4240616 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

QTH8auKu_Cu>ZP#k&2^r+rkW9nk^OC2W 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%0AFJxD|0N!w{x`4H|;WTk0A0~w)vK}Tq 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 z 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

v#b`adSnPn7v#=GXE++TeElHe2ve&ZUOl^09k* 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 z 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⪼#FiAQgWDH`82Nvg2rllQ@mwsg&Rx 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

$Kbz?!Sy>_+P@M%m4AZV_xQN( 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

1*MWcp3&@cws(6dm5* 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 diff --git a/src/sdk/extern/lib/libiconv.a b/src/sdk/extern/lib/libiconv.a deleted file mode 100644 index 0327c51ddeb525b012054492e7771f17cccc9c28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588866 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

_rC`4u1=sTTCONo< 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 z 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%0DhW1gvH-elfo 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℞|>1Cv6%2 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 z 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%0Do_6wQ+YPF9M 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%0A)AW1lH<{za~(s{p;f2P#6zZime1& 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�VYij;f)>P(H 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�MnT{DS0z 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

0yDX(7=Uhrje&&->lDFQVP;dzsNO->X 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
n2)W5Z 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 F{{vb35qAIp diff --git a/src/sdk/extern/lib/libz.a b/src/sdk/extern/lib/libz.a deleted file mode 100644 index fd22e16aabb7abde89a96cffb5d2fa66560c4ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136182 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 diff --git a/src/sdk/请先读README.md.txt b/src/sdk/请先读README.md.txt deleted file mode 100644 index 839b1fc..0000000 --- a/src/sdk/请先读README.md.txt +++ /dev/null @@ -1 +0,0 @@ -请先读README.md

*>h1@(Q%Oh@SK_YQ>K%Buin@rE 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�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