http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/objects.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/objects.h 
b/thirdparty/libressl/include/openssl/objects.h
new file mode 100644
index 0000000..c40991b
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/objects.h
@@ -0,0 +1,1140 @@
+/* $OpenBSD: objects.h,v 1.12 2017/01/21 04:53:22 jsing Exp $ */
+/* Copyright (C) 1995-1998 Eric Young ([email protected])
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young ([email protected]).
+ * 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 ([email protected]).
+ *
+ * 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 ([email protected])"
+ *    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 
([email protected])"
+ *
+ * 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 <openssl/obj_mac.h>
+#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 <openssl/bio.h>
+#include <openssl/asn1.h>
+
+#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);
+
+#ifndef LIBRESSL_INTERNAL
+
+#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)
+
+#endif /* !LIBRESSL_INTERNAL */
+
+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

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/ocsp.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/ocsp.h 
b/thirdparty/libressl/include/openssl/ocsp.h
new file mode 100644
index 0000000..e3fa6f5
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/ocsp.h
@@ -0,0 +1,669 @@
+/* $OpenBSD: ocsp.h,v 1.11 2016/12/30 16:19:04 jsing Exp $ */
+/* Written by Tom Titchener <[email protected]> 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
+ *    [email protected].
+ *
+ * 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
+ * ([email protected]).  This product includes software written by Tim
+ * Hudson ([email protected]).
+ *
+ */
+
+#ifndef HEADER_OCSP_H
+#define HEADER_OCSP_H
+
+#include <openssl/ossl_typ.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include <openssl/safestack.h>
+
+#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)
+
+
+/*   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)
+OCSP_RESPID *OCSP_RESPID_new(void);
+void OCSP_RESPID_free(OCSP_RESPID *a);
+OCSP_RESPID *d2i_OCSP_RESPID(OCSP_RESPID **a, const unsigned char **in, long 
len);
+int i2d_OCSP_RESPID(OCSP_RESPID *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_RESPID_it;
+
+/*   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)
+
+/*   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        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 OCSP_REQUEST_sign(o,pkey,md) \
+    ASN1_item_sign(&OCSP_REQINFO_it, \
+       o->optionalSignature->signatureAlgorithm,NULL, \
+       o->optionalSignature->signature,o->tbsRequest,pkey,md)
+
+#define OCSP_BASICRESP_sign(o,pkey,md,d) \
+    ASN1_item_sign(&OCSP_RESPDATA_it,o->signatureAlgorithm,NULL, \
+       o->signature,o->tbsResponseData,pkey,md)
+
+#define OCSP_REQUEST_verify(a,r) \
+    ASN1_item_verify(&OCSP_REQINFO_it, \
+       a->optionalSignature->signatureAlgorithm, \
+       a->optionalSignature->signature,a->tbsRequest,r)
+
+#define OCSP_BASICRESP_verify(a,r,d) \
+    ASN1_item_verify(&OCSP_RESPDATA_it, \
+       a->signatureAlgorithm,a->signature,a->tbsResponseData,r)
+
+#define ASN1_BIT_STRING_digest(data,type,md,len) \
+    ASN1_item_digest(&ASN1_BIT_STRING_it,type,data,md,len)
+
+#define OCSP_CERTSTATUS_dup(cs) \
+       ASN1_item_dup(&OCSP_CERTSTATUS_it, 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);
+
+OCSP_SINGLERESP *OCSP_SINGLERESP_new(void);
+void OCSP_SINGLERESP_free(OCSP_SINGLERESP *a);
+OCSP_SINGLERESP *d2i_OCSP_SINGLERESP(OCSP_SINGLERESP **a, const unsigned char 
**in, long len);
+int i2d_OCSP_SINGLERESP(OCSP_SINGLERESP *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_SINGLERESP_it;
+OCSP_CERTSTATUS *OCSP_CERTSTATUS_new(void);
+void OCSP_CERTSTATUS_free(OCSP_CERTSTATUS *a);
+OCSP_CERTSTATUS *d2i_OCSP_CERTSTATUS(OCSP_CERTSTATUS **a, const unsigned char 
**in, long len);
+int i2d_OCSP_CERTSTATUS(OCSP_CERTSTATUS *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_CERTSTATUS_it;
+OCSP_REVOKEDINFO *OCSP_REVOKEDINFO_new(void);
+void OCSP_REVOKEDINFO_free(OCSP_REVOKEDINFO *a);
+OCSP_REVOKEDINFO *d2i_OCSP_REVOKEDINFO(OCSP_REVOKEDINFO **a, const unsigned 
char **in, long len);
+int i2d_OCSP_REVOKEDINFO(OCSP_REVOKEDINFO *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_REVOKEDINFO_it;
+OCSP_BASICRESP *OCSP_BASICRESP_new(void);
+void OCSP_BASICRESP_free(OCSP_BASICRESP *a);
+OCSP_BASICRESP *d2i_OCSP_BASICRESP(OCSP_BASICRESP **a, const unsigned char 
**in, long len);
+int i2d_OCSP_BASICRESP(OCSP_BASICRESP *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_BASICRESP_it;
+OCSP_RESPDATA *OCSP_RESPDATA_new(void);
+void OCSP_RESPDATA_free(OCSP_RESPDATA *a);
+OCSP_RESPDATA *d2i_OCSP_RESPDATA(OCSP_RESPDATA **a, const unsigned char **in, 
long len);
+int i2d_OCSP_RESPDATA(OCSP_RESPDATA *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_RESPDATA_it;
+OCSP_RESPID *OCSP_RESPID_new(void);
+void OCSP_RESPID_free(OCSP_RESPID *a);
+OCSP_RESPID *d2i_OCSP_RESPID(OCSP_RESPID **a, const unsigned char **in, long 
len);
+int i2d_OCSP_RESPID(OCSP_RESPID *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_RESPID_it;
+OCSP_RESPONSE *OCSP_RESPONSE_new(void);
+void OCSP_RESPONSE_free(OCSP_RESPONSE *a);
+OCSP_RESPONSE *d2i_OCSP_RESPONSE(OCSP_RESPONSE **a, const unsigned char **in, 
long len);
+int i2d_OCSP_RESPONSE(OCSP_RESPONSE *a, unsigned char **out);
+OCSP_RESPONSE *d2i_OCSP_RESPONSE_bio(BIO *bp, OCSP_RESPONSE **a);
+int i2d_OCSP_RESPONSE_bio(BIO *bp, OCSP_RESPONSE *a);
+extern const ASN1_ITEM OCSP_RESPONSE_it;
+OCSP_RESPBYTES *OCSP_RESPBYTES_new(void);
+void OCSP_RESPBYTES_free(OCSP_RESPBYTES *a);
+OCSP_RESPBYTES *d2i_OCSP_RESPBYTES(OCSP_RESPBYTES **a, const unsigned char 
**in, long len);
+int i2d_OCSP_RESPBYTES(OCSP_RESPBYTES *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_RESPBYTES_it;
+OCSP_ONEREQ *OCSP_ONEREQ_new(void);
+void OCSP_ONEREQ_free(OCSP_ONEREQ *a);
+OCSP_ONEREQ *d2i_OCSP_ONEREQ(OCSP_ONEREQ **a, const unsigned char **in, long 
len);
+int i2d_OCSP_ONEREQ(OCSP_ONEREQ *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_ONEREQ_it;
+OCSP_CERTID *OCSP_CERTID_new(void);
+void OCSP_CERTID_free(OCSP_CERTID *a);
+OCSP_CERTID *d2i_OCSP_CERTID(OCSP_CERTID **a, const unsigned char **in, long 
len);
+int i2d_OCSP_CERTID(OCSP_CERTID *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_CERTID_it;
+OCSP_REQUEST *OCSP_REQUEST_new(void);
+void OCSP_REQUEST_free(OCSP_REQUEST *a);
+OCSP_REQUEST *d2i_OCSP_REQUEST(OCSP_REQUEST **a, const unsigned char **in, 
long len);
+int i2d_OCSP_REQUEST(OCSP_REQUEST *a, unsigned char **out);
+OCSP_REQUEST *d2i_OCSP_REQUEST_bio(BIO *bp, OCSP_REQUEST **a);
+int i2d_OCSP_REQUEST_bio(BIO *bp, OCSP_REQUEST *a);
+extern const ASN1_ITEM OCSP_REQUEST_it;
+OCSP_SIGNATURE *OCSP_SIGNATURE_new(void);
+void OCSP_SIGNATURE_free(OCSP_SIGNATURE *a);
+OCSP_SIGNATURE *d2i_OCSP_SIGNATURE(OCSP_SIGNATURE **a, const unsigned char 
**in, long len);
+int i2d_OCSP_SIGNATURE(OCSP_SIGNATURE *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_SIGNATURE_it;
+OCSP_REQINFO *OCSP_REQINFO_new(void);
+void OCSP_REQINFO_free(OCSP_REQINFO *a);
+OCSP_REQINFO *d2i_OCSP_REQINFO(OCSP_REQINFO **a, const unsigned char **in, 
long len);
+int i2d_OCSP_REQINFO(OCSP_REQINFO *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_REQINFO_it;
+OCSP_CRLID *OCSP_CRLID_new(void);
+void OCSP_CRLID_free(OCSP_CRLID *a);
+OCSP_CRLID *d2i_OCSP_CRLID(OCSP_CRLID **a, const unsigned char **in, long len);
+int i2d_OCSP_CRLID(OCSP_CRLID *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_CRLID_it;
+OCSP_SERVICELOC *OCSP_SERVICELOC_new(void);
+void OCSP_SERVICELOC_free(OCSP_SERVICELOC *a);
+OCSP_SERVICELOC *d2i_OCSP_SERVICELOC(OCSP_SERVICELOC **a, const unsigned char 
**in, long len);
+int i2d_OCSP_SERVICELOC(OCSP_SERVICELOC *a, unsigned char **out);
+extern const ASN1_ITEM OCSP_SERVICELOC_it;
+
+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

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/opensslconf.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/opensslconf.h 
b/thirdparty/libressl/include/openssl/opensslconf.h
new file mode 100644
index 0000000..bb71768
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/opensslconf.h
@@ -0,0 +1,153 @@
+#include <openssl/opensslfeatures.h>
+/* crypto/opensslconf.h.in */
+
+#if defined(_MSC_VER) && !defined(__attribute__)
+#define __attribute__(a)
+#endif
+
+#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
+#define OPENSSLDIR "/etc/ssl"
+#endif
+
+#undef OPENSSL_UNISTD
+#define OPENSSL_UNISTD <unistd.h>
+
+#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 int
+#endif
+#if !defined(RC4_CHUNK)
+/*
+ * This enables code handling data aligned at natural CPU word
+ * boundary. See crypto/rc4/rc4_enc.c for further details.
+ */
+#define RC4_CHUNK unsigned long
+#endif
+#endif
+
+#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
+/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
+ * %20 speed up (longs are 8 bytes, int's are 4). */
+#ifndef DES_LONG
+#define DES_LONG unsigned int
+#endif
+#endif
+
+#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
+#define CONFIG_HEADER_BN_H
+#undef BN_LLONG
+
+/* Should we define BN_DIV2W here? */
+
+/* Only one for the following should be defined */
+#define SIXTY_FOUR_BIT_LONG
+#undef SIXTY_FOUR_BIT
+#undef THIRTY_TWO_BIT
+#endif
+
+#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
+#define CONFIG_HEADER_RC4_LOCL_H
+/* if this is defined data[i] is used instead of *data, this is a %20
+ * speedup on x86 */
+#undef RC4_INDEX
+#endif
+
+#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
+#define CONFIG_HEADER_BF_LOCL_H
+#undef BF_PTR
+#endif /* HEADER_BF_LOCL_H */
+
+#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
+#define CONFIG_HEADER_DES_LOCL_H
+#ifndef DES_DEFAULT_OPTIONS
+/* the following is tweaked from a config script, that is why it is a
+ * protected undef/define */
+#ifndef DES_PTR
+#undef DES_PTR
+#endif
+
+/* This helps C compiler generate the correct code for multiple functional
+ * units.  It reduces register dependancies at the expense of 2 more
+ * registers */
+#ifndef DES_RISC1
+#undef DES_RISC1
+#endif
+
+#ifndef DES_RISC2
+#undef DES_RISC2
+#endif
+
+#if defined(DES_RISC1) && defined(DES_RISC2)
+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 <[email protected]>
+ * 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 */

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/opensslfeatures.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/opensslfeatures.h 
b/thirdparty/libressl/include/openssl/opensslfeatures.h
new file mode 100644
index 0000000..ba4dbba
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/opensslfeatures.h
@@ -0,0 +1,26 @@
+# define OPENSSL_NO_EC_NISTP_64_GCC_128
+# define OPENSSL_NO_CMS
+# define OPENSSL_NO_COMP
+# define OPENSSL_NO_EGD
+# define OPENSSL_NO_GMP
+# define OPENSSL_NO_JPAKE
+# define OPENSSL_NO_KRB5
+# define OPENSSL_NO_MD2
+# define OPENSSL_NO_MDC2
+# define OPENSSL_NO_PSK
+# define OPENSSL_NO_RC5
+# define OPENSSL_NO_RFC3779
+# define OPENSSL_NO_RSAX
+# define OPENSSL_NO_SCTP
+# define OPENSSL_NO_SEED
+# define OPENSSL_NO_SHA0
+# define OPENSSL_NO_SRP
+# define OPENSSL_NO_SSL2
+# define OPENSSL_NO_SSL3
+# define OPENSSL_NO_SSL3_METHOD
+# define OPENSSL_NO_STORE
+# define OPENSSL_NO_BUF_FREELISTS
+# define OPENSSL_NO_HEARTBEATS
+# define OPENSSL_NO_DYNAMIC_ENGINE
+
+# define OPENSSL_THREADS

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/opensslv.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/opensslv.h 
b/thirdparty/libressl/include/openssl/opensslv.h
new file mode 100644
index 0000000..c8dd39d
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/opensslv.h
@@ -0,0 +1,17 @@
+/* $OpenBSD: opensslv.h,v 1.43.4.1 2017/12/11 10:50:37 bcook Exp $ */
+#ifndef HEADER_OPENSSLV_H
+#define HEADER_OPENSSLV_H
+
+/* These will change with each release of LibreSSL-portable */
+#define LIBRESSL_VERSION_NUMBER        0x2060400fL
+#define LIBRESSL_VERSION_TEXT  "LibreSSL 2.6.4"
+
+/* These will never change */
+#define OPENSSL_VERSION_NUMBER 0x20000000L
+#define OPENSSL_VERSION_TEXT   LIBRESSL_VERSION_TEXT
+#define OPENSSL_VERSION_PTEXT  " part of " OPENSSL_VERSION_TEXT
+
+#define SHLIB_VERSION_HISTORY ""
+#define SHLIB_VERSION_NUMBER "1.0.0"
+
+#endif /* HEADER_OPENSSLV_H */

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/1ce874ea/thirdparty/libressl/include/openssl/ossl_typ.h
----------------------------------------------------------------------
diff --git a/thirdparty/libressl/include/openssl/ossl_typ.h 
b/thirdparty/libressl/include/openssl/ossl_typ.h
new file mode 100644
index 0000000..b1a9e0e
--- /dev/null
+++ b/thirdparty/libressl/include/openssl/ossl_typ.h
@@ -0,0 +1,190 @@
+/* $OpenBSD: ossl_typ.h,v 1.13 2015/09/30 04:10:07 doug Exp $ */
+/* ====================================================================
+ * 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
+ *    [email protected].
+ *
+ * 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
+ * ([email protected]).  This product includes software written by Tim
+ * Hudson ([email protected]).
+ *
+ */
+
+#ifndef HEADER_OPENSSL_TYPES_H
+#define HEADER_OPENSSL_TYPES_H
+
+#include <openssl/opensslconf.h>
+
+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;
+
+typedef struct ASN1_ITEM_st ASN1_ITEM;
+typedef struct asn1_pctx_st ASN1_PCTX;
+
+#if defined(_WIN32) && defined(__WINCRYPT_H__)
+#ifndef LIBRESSL_INTERNAL
+#ifdef _MSC_VER
+#pragma message("Warning, overriding WinCrypt defines")
+#else
+#warning overriding WinCrypt defines
+#endif
+#endif
+#undef X509_NAME
+#undef X509_CERT_PAIR
+#undef X509_EXTENSIONS
+#undef OCSP_REQUEST
+#undef OCSP_RESPONSE
+#undef PKCS7_ISSUER_AND_SERIAL
+#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;
+
+#endif /* def HEADER_OPENSSL_TYPES_H */

Reply via email to