aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl/openssl_missing.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/openssl/openssl_missing.h')
-rw-r--r--ext/openssl/openssl_missing.h413
1 files changed, 267 insertions, 146 deletions
diff --git a/ext/openssl/openssl_missing.h b/ext/openssl/openssl_missing.h
index 02a50fbd95..b51f8bb057 100644
--- a/ext/openssl/openssl_missing.h
+++ b/ext/openssl/openssl_missing.h
@@ -10,24 +10,24 @@
#if !defined(_OSSL_OPENSSL_MISSING_H_)
#define _OSSL_OPENSSL_MISSING_H_
+#include <openssl/ssl.h>
+
#if defined(__cplusplus)
extern "C" {
#endif
+/* added in -0.9.7 */
+/* These functions are not included in headers of OPENSSL <= 0.9.6b */
#ifndef TYPEDEF_D2I_OF
-typedef char *d2i_of_void();
+typedef char *d2i_of_void(void **, const unsigned char **, long);
#endif
#ifndef TYPEDEF_I2D_OF
-typedef int i2d_of_void();
+typedef int i2d_of_void(void *, unsigned char **);
#endif
-/*
- * These functions are not included in headers of OPENSSL <= 0.9.6b
- */
-
#if !defined(PEM_read_bio_DSAPublicKey)
# define PEM_read_bio_DSAPublicKey(bp,x,cb,u) (DSA *)PEM_ASN1_read_bio( \
- (d2i_of_void *)d2i_DSAPublicKey,PEM_STRING_DSA_PUBLIC,(bp),(void **)(x),(cb),(u))
+ (d2i_of_void *)d2i_DSAPublicKey,PEM_STRING_DSA_PUBLIC,(bp),(void **)(x),(cb),(u))
#endif
#if !defined(PEM_write_bio_DSAPublicKey)
@@ -62,47 +62,86 @@ typedef int i2d_of_void();
(d2i_of_void *)d2i_PKCS7_RECIP_INFO, (char *)(ri))
#endif
-#if !defined(HAVE_X509_CRL_SET_NEXTUPDATE)
-int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
+
+#if !defined(EVP_CIPHER_name)
+# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e))
#endif
+#if !defined(EVP_MD_name)
+# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_type(e))
+#endif
+#if !defined(PKCS7_is_detached)
+# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
+#endif
-#if !defined(HAVE_HMAC_CTX_NEW)
-HMAC_CTX *HMAC_CTX_new(void);
+#if !defined(PKCS7_type_is_encrypted)
+# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
#endif
-#if !defined(HAVE_HMAC_CTX_FREE)
-void HMAC_CTX_free(HMAC_CTX *ctx);
+/* start: checked by extconf.rb */
+#if !defined(HAVE_OPENSSL_CLEANSE)
+#define OPENSSL_cleanse(p, l) memset((p), 0, (l))
#endif
-#if !defined(HAVE_HMAC_CTX_COPY)
-void HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in);
+#if !defined(HAVE_ERR_PEEK_LAST_ERROR)
#endif
-#if !defined(HAVE_EVP_MD_CTX_NEW)
-EVP_MD_CTX *EVP_MD_CTX_new(void);
+#if !defined(HAVE_CONF_GET1_DEFAULT_CONFIG_FILE)
+char *CONF_get1_default_config_file(void);
#endif
-#if !defined(HAVE_EVP_MD_CTX_FREE)
-void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
+#if !defined(HAVE_ASN1_PUT_EOC)
+int ASN1_put_eoc(unsigned char **pp);
#endif
-#if !defined(HAVE_EVP_CIPHER_CTX_NEW)
-EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
+#if !defined(HAVE_OBJ_NAME_DO_ALL_SORTED)
#endif
-#if !defined(HAVE_EVP_CIPHER_CTX_FREE)
-void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx);
+#if !defined(HAVE_PEM_DEF_CALLBACK)
+int PEM_def_callback(char *buf, int num, int w, void *key);
#endif
-#if !defined(HAVE_EVP_CIPHER_CTX_COPY)
-int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, EVP_CIPHER_CTX *in);
+#if !defined(HAVE_BN_RAND_RANGE)
+int BN_rand_range(BIGNUM *r, const BIGNUM *range);
+#endif
+
+#if !defined(HAVE_BN_PSEUDO_RAND_RANGE)
+int BN_pseudo_rand_range(BIGNUM *r, const BIGNUM *range);
+#endif
+
+#if !defined(HAVE_BN_NNMOD)
+int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx);
+#endif
+
+#if !defined(HAVE_BN_MOD_ADD)
+int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
+#endif
+
+#if !defined(HAVE_BN_MOD_SUB)
+int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
+#endif
+
+#if !defined(HAVE_BN_MOD_SQR)
+int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
+#endif
+
+#if !defined(HAVE_MD_CTX_INIT)
+#endif
+
+#if !defined(HAVE_MD_CTX_CREATE)
+#endif
+
+#if !defined(HAVE_MD_CTX_DESTROY)
+#endif
+
+#if !defined(HAVE_EVP_CIPHER_CTX_SET_PADDING)
#endif
#if !defined(HAVE_EVP_DIGESTINIT_EX)
# define EVP_DigestInit_ex(ctx, md, engine) EVP_DigestInit((ctx), (md))
#endif
+
#if !defined(HAVE_EVP_DIGESTFINAL_EX)
# define EVP_DigestFinal_ex(ctx, buf, len) EVP_DigestFinal((ctx), (buf), (len))
#endif
@@ -110,141 +149,181 @@ int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, EVP_CIPHER_CTX *in);
#if !defined(HAVE_EVP_CIPHERINIT_EX)
# define EVP_CipherInit_ex(ctx, type, impl, key, iv, enc) EVP_CipherInit((ctx), (type), (key), (iv), (enc))
#endif
+
#if !defined(HAVE_EVP_CIPHERFINAL_EX)
# define EVP_CipherFinal_ex(ctx, outm, outl) EVP_CipherFinal((ctx), (outm), (outl))
#endif
-#if !defined(EVP_CIPHER_name)
-# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e))
+#if !defined(OPENSSL_NO_HMAC)
+#if !defined(HAVE_HMAC_INIT_EX)
+int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int key_len, const EVP_MD *md, void *impl);
#endif
-#if !defined(EVP_MD_name)
-# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_type(e))
+#if !defined(HAVE_HMAC_CTX_INIT)
#endif
-#if !defined(PKCS7_is_detached)
-# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
+#if !defined(HAVE_HMAC_CTX_CLEANUP)
+#endif
#endif
-#if !defined(PKCS7_type_is_encrypted)
-# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
+#if !defined(HAVE_X509_CRL_SET_NEXTUPDATE)
+int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
#endif
-#if !defined(HAVE_OPENSSL_CLEANSE)
-#define OPENSSL_cleanse(p, l) memset((p), 0, (l))
+#if !defined(HAVE_X509_CRL_ADD0_REVOKED)
+int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
+#endif
+
+#if !defined(HAVE_X509_CRL_SET_ISSUER_NAME)
+int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
+#endif
+
+#if !defined(HAVE_X509_CRL_SET_VERSION)
+int X509_CRL_set_version(X509_CRL *x, long version);
+#endif
+
+#if !defined(HAVE_X509_CRL_SORT)
+int X509_CRL_sort(X509_CRL *c);
#endif
#if !defined(HAVE_X509_STORE_GET_EX_DATA)
-void *X509_STORE_get_ex_data(X509_STORE *str, int idx);
+# define X509_STORE_get_ex_data(str, idx) \
+ CRYPTO_get_ex_data(&(str)->ex_data, idx)
#endif
#if !defined(HAVE_X509_STORE_SET_EX_DATA)
-int X509_STORE_set_ex_data(X509_STORE *str, int idx, void *data);
+# define X509_STORE_set_ex_data(str, idx, data) \
+ CRYPTO_set_ex_data(&(str)->ex_data, idx, data)
#endif
-#if !defined(HAVE_X509_CRL_SET_VERSION)
-int X509_CRL_set_version(X509_CRL *x, long version);
+#if !defined(HAVE_X509V3_SET_NCONF)
#endif
-#if !defined(HAVE_X509_CRL_SET_ISSUER_NAME)
-int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
+#if !defined(HAVE_X509V3_EXT_NCONF_NID)
#endif
-#if !defined(HAVE_X509_CRL_SORT)
-int X509_CRL_sort(X509_CRL *c);
+/* ENGINE related API can't be polyfilled */
+
+
+/*** added in 0.9.8 ***/
+#if !defined(HAVE_BN_IS_PRIME_EX)
+int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb);
#endif
-#if !defined(HAVE_X509_CRL_ADD0_REVOKED)
-int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
+#if !defined(HAVE_BN_IS_PRIME_FASTTEST_EX)
+int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, int do_trial_division, BN_GENCB *cb);
#endif
-#if !defined(HAVE_BN_MOD_SQR)
-int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx);
+#if !defined(HAVE_BN_GENERATE_PRIME_EX)
+int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb);
#endif
-#if !defined(HAVE_BN_MOD_ADD)
-int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
+#if !defined(HAVE_EVP_CIPHER_CTX_NEW)
+EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
#endif
-#if !defined(HAVE_BN_MOD_SUB)
-int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
+#if !defined(HAVE_EVP_CIPHER_CTX_FREE)
+void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx);
#endif
-#if !defined(HAVE_BN_RAND_RANGE)
-int BN_rand_range(BIGNUM *r, BIGNUM *range);
+#if !defined(HAVE_DH_GENERATE_PARAMETERS_EX)
#endif
-#if !defined(HAVE_BN_PSEUDO_RAND_RANGE)
-int BN_pseudo_rand_range(BIGNUM *r, BIGNUM *range);
+#if !defined(HAVE_DSA_GENERATE_PARAMETERS_EX)
#endif
-#if !defined(HAVE_CONF_GET1_DEFAULT_CONFIG_FILE)
-char *CONF_get1_default_config_file(void);
+#if !defined(HAVE_RSA_GENERATE_KEY_EX)
#endif
-#if !defined(HAVE_PEM_DEF_CALLBACK)
-int PEM_def_callback(char *buf, int num, int w, void *key);
+#if !defined(HAVE_SSL_SESSION_GET_ID)
+int SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len);
#endif
-#if !defined(HAVE_ASN1_PUT_EOC)
-int ASN1_put_eoc(unsigned char **pp);
+#if !defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK)
+#endif
+
+#if !defined(HAVE_OCSP_SINGLERESP_DELETE_EXT)
+# define OCSP_SINGLERESP_delete_ext(s, loc) \
+ sk_X509_EXTENSION_delete((s)->singleExtensions, (loc))
+#endif
+
+/*** added in 1.0.0 ***/
+#if !defined(HAVE_CRYPTO_THREADID_PTR)
+#endif
+
+#if !defined(HAVE_EVP_CIPHER_CTX_COPY)
+int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in);
#endif
#if !defined(HAVE_EVP_PKEY_id)
-int EVP_PKEY_id(const EVP_PKEY *pkey);
+# define EVP_PKEY_id(pkey) ((pkey)->type)
#endif
-#if !defined(X509_CRL_GET0_SIGNATURE)
-void X509_CRL_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, X509_CRL *crl);
+#if !defined(HAVE_HMAC_CTX_COPY)
+void HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in);
#endif
-#if !defined(X509_REQ_GET0_SIGNATURE)
-void X509_REQ_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, X509_REQ *req);
+#if !defined(HAVE_PKCS5_PBKDF2_HMAC)
#endif
-#if !defined(X509_REVOKED_GET0_SERIALNUMBER)
-ASN1_INTEGER *X509_REVOKED_get0_serialNumber(X509_REVOKED *x);
+#if !defined(HAVE_X509_NAME_HASH_OLD)
#endif
-#if !defined(X509_REVOKED_SET_SERIALNUMBER)
-int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial);
+#if !defined(HAVE_SSL_SET_TLSEXT_HOST_NAME)
#endif
-#if !defined(HAVE_EC_CURVE_NIST2NID) /* new in 1.0.2 */
+/*** added in 1.0.1 ***/
+#if !defined(HAVE_SSL_CTX_SET_NEXT_PROTO_SELECT_CB)
+#endif
+
+/*** added in 1.0.2 ***/
+#if !defined(HAVE_EC_CURVE_NIST2NID)
int EC_curve_nist2nid(const char *str);
#endif
-/*** new in 1.1.0 ***/
-/* OCSP */
-#if defined(HAVE_OPENSSL_OCSP_H)
-#if !defined(HAVE_OCSP_ID_GET0_INFO)
-int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd,
- ASN1_OCTET_STRING **pikeyHash,
- ASN1_INTEGER **pserial, OCSP_CERTID *cid);
+#if !defined(HAVE_SSL_CTX_SET_ALPN_SELECT_CB)
#endif
-#if !defined(HAVE_OCSP_SINGLERESP_DELETE_EXT) /* for 0.9.6 */
-# define OCSP_SINGLERESP_delete_ext(s, loc) \
- sk_X509_EXTENSION_delete((s)->singleExtensions, (loc))
+#if !defined(HAVE_SSL_CTX_SET1_CURVES_LIST)
#endif
-#if !defined(HAVE_OCSP_SINGLERESP_GET0_ID)
-# define OCSP_SINGLERESP_get0_id(s) (s)->certId
+#if !defined(HAVE_SSL_CTX_SET_ECDH_AUTO)
#endif
-#endif /* HAVE_OPENSSL_OCSP_H */
-/* SSL */
-#include <openssl/ssl.h>
-#if !defined(HAVE_SSL_SESSION_GET_ID)
-int SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len);
+#if !defined(HAVE_SSL_GET_SERVER_TMP_KEY)
#endif
-#if !defined(HAVE_SSL_SESSION_CMP)
-int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b);
+/*** added in 1.1.0 ***/
+#if !defined(HAVE_BN_GENCB_NEW)
+# define BN_GENCB_new() ((BN_GENCB *)OPENSSL_malloc(sizeof(BN_GENCB)))
#endif
-#if !defined(HAVE_SSL_CTX_GET_CIPHERS)
-static inline STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(SSL_CTX *ctx) { return ctx->cipher_list; }
+#if !defined(HAVE_BN_GENCB_FREE)
+# define BN_GENCB_free(cb) OPENSSL_free(cb)
+#endif
+
+#if !defined(HAVE_BN_GENCB_GET_ARG)
+# define BN_GENCB_get_arg(cb) (cb)->arg
+#endif
+
+#if !defined(HAVE_HMAC_CTX_NEW)
+HMAC_CTX *HMAC_CTX_new(void);
+#endif
+
+#if !defined(HAVE_HMAC_CTX_FREE)
+void HMAC_CTX_free(HMAC_CTX *ctx);
+#endif
+
+#if !defined(HAVE_HMAC_CTX_RESET)
+int HMAC_CTX_reset(HMAC_CTX *ctx);
+#endif
+
+#if !defined(HAVE_EVP_MD_CTX_NEW)
+EVP_MD_CTX *EVP_MD_CTX_new(void);
+#endif
+
+#if !defined(HAVE_EVP_MD_CTX_FREE)
+void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
#endif
/* reference counter */
@@ -261,82 +340,124 @@ static inline STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(SSL_CTX *ctx) { return c
CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_EVP_PKEY);
#endif
-/* EVP_PKEY */
-#if !defined(HAVE_EVP_PKEY_ID)
-# define EVP_PKEY_id(pkey) (pkey->type)
+#if !defined(HAVE_X509_CRL_GET0_SIGNATURE)
+void X509_CRL_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, X509_CRL *crl);
#endif
-#if defined(HAVE_EVP_PKEY_TYPE) /* is not opaque */
-static inline RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey) { return pkey->pkey.rsa; }
-static inline DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey) { return pkey->pkey.dsa; }
-static inline EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey) { return pkey->pkey.ec; }
-static inline DH *EVP_PKEY_get0_DH(EVP_PKEY *pkey) { return pkey->pkey.dh; }
+#if !defined(HAVE_X509_REQ_GET0_SIGNATURE)
+void X509_REQ_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, X509_REQ *req);
+#endif
-static inline void RSA_get0_key(RSA *rsa, BIGNUM **pn, BIGNUM **pe, BIGNUM **pd) {
- if (pn) *pn = rsa->n;
- if (pe) *pe = rsa->e;
- if (pd) *pd = rsa->d; }
-static inline void RSA_get0_factors(RSA *rsa, BIGNUM **pp, BIGNUM **pq) {
- if (pp) *pp = rsa->p;
- if (pq) *pq = rsa->q; }
-static inline void RSA_get0_crt_params(RSA *rsa, BIGNUM **pdmp1, BIGNUM **pdmq1, BIGNUM **piqmp) {
- if (pdmp1) *pdmp1 = rsa->dmp1;
- if (pdmq1) *pdmq1 = rsa->dmq1;
- if (piqmp) *piqmp = rsa->iqmp; }
-
-static inline void DSA_get0_key(DSA *dsa, BIGNUM **ppub_key, BIGNUM **ppriv_key) {
- if (ppub_key) *ppub_key = dsa->pub_key;
- if (ppriv_key) *ppriv_key = dsa->priv_key; }
-static inline void DSA_get0_pqg(DSA *dsa, BIGNUM **pp, BIGNUM **pq, BIGNUM **pg) {
- if (pp) *pp = dsa->p;
- if (pq) *pq = dsa->q;
- if (pg) *pg = dsa->g; }
+#if !defined(HAVE_X509_GET0_TBS_SIGALG)
+# define X509_get0_tbs_sigalg(x) ((x)->cert_info->signature)
+#endif
-static inline ENGINE *DH_get0_engine(DH *dh) { return dh->engine; }
-static inline void DH_get0_key(DH *dh, BIGNUM **ppub_key, BIGNUM **ppriv_key) {
- if (ppub_key) *ppub_key = dh->pub_key;
- if (ppriv_key) *ppriv_key = dh->priv_key; }
-static inline void DH_get0_pqg(DH *dh, BIGNUM **pp, BIGNUM **pq, BIGNUM **pg) {
- if (pp) *pp = dh->p;
- if (pq) *pq = dh->q;
- if (pg) *pg = dh->g; }
+#if !defined(HAVE_X509_REVOKED_GET0_SERIALNUMBER)
+# define X509_REVOKED_get0_serialNumber(x) ((x)->serialNumber)
#endif
-/* HMAC */
-#if !defined(HAVE_HMAC_CTX_RESET)
-int HMAC_CTX_reset(HMAC_CTX *ctx);
+#if !defined(HAVE_X509_REVOKED_SET_SERIALNUMBER)
+int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial);
#endif
-#if !defined(HAVE_HMAC_INIT_EX)
-int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int key_len, const EVP_MD *md, void *impl);
+#if !defined(HAVE_X509_REVOKED_GET0_REVOCATIONDATE)
+# define X509_REVOKED_get0_revocationDate(x) (x->revocationDate)
#endif
-#if !defined(HAVE_HMAC_CTX_NEW)
-HMAC_CTX *HMAC_CTX_new(void);
+#if !defined(HAVE_TLS_METHOD)
+# define TLS_method SSLv23_method
+# define TLS_server_method SSLv23_server_method
+# define TLS_client_method SSLv23_client_method
#endif
-/* BN_GENCB */
-#if !defined(HAVE_BN_GENCB_NEW)
-# define BN_GENCB_new() ((BN_GENCB *)OPENSSL_malloc(sizeof(BN_GENCB)))
-# define BN_GENCB_free(cb) OPENSSL_free(cb)
-# define BN_GENCB_get_arg(cb) cb->arg
+#if !defined(HAVE_SSL_CTX_GET_CIPHERS)
+static inline STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx) { return ctx->cipher_list; }
#endif
-/* X509 */
-#if !defined(HAVE_X509_GET0_TBS_SIGALG)
-# define X509_get0_tbs_sigalg(x) (x->cert_info->signature)
+#if !defined(HAVE_SSL_CTX_GET_SECURITY_LEVEL)
#endif
-#if !defined(HAVE_X509_REVOKED_GET0_SERIALNUMBER)
-# define X509_REVOKED_get0_serialNumber(x) (x->serialNumber)
+#if !defined(HAVE_SSL_CTX_SET_SECURITY_LEVEL)
#endif
-#if !defined(HAVE_X509_REVOKED_GET0_REVOCATIONDATE)
-# define X509_REVOKED_get0_revocationDate(x) (x->revocationDate)
+#if !defined(HAVE_OCSP_SINGLERESP_GET0_ID)
+# define OCSP_SINGLERESP_get0_id(s) (s)->certId
#endif
+#if defined(HAVE_EVP_PKEY_TYPE) /* is not opaque */
+static inline RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey) { return pkey->pkey.rsa; }
+static inline DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey) { return pkey->pkey.dsa; }
+static inline EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey) { return pkey->pkey.ec; }
+static inline DH *EVP_PKEY_get0_DH(EVP_PKEY *pkey) { return pkey->pkey.dh; }
+static inline void RSA_get0_key(RSA *rsa, BIGNUM **n, BIGNUM **e, BIGNUM **d) {
+ if (n) *n = rsa->n;
+ if (e) *e = rsa->e;
+ if (d) *d = rsa->d; }
+static inline int RSA_set0_key(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d) {
+ if (!n || !e) return 0;
+ BN_free(rsa->n); rsa->n = n;
+ BN_free(rsa->e); rsa->e = e;
+ BN_free(rsa->d); rsa->d = d;
+ return 1; }
+static inline void RSA_get0_factors(RSA *rsa, BIGNUM **p, BIGNUM **q) {
+ if (p) *p = rsa->p;
+ if (q) *q = rsa->q; }
+static inline int RSA_set0_factors(RSA *rsa, BIGNUM *p, BIGNUM *q) {
+ if (!p || !q) return 0;
+ BN_free(rsa->p); rsa->p = p;
+ BN_free(rsa->q); rsa->q = q;
+ return 1; }
+static inline void RSA_get0_crt_params(RSA *rsa, BIGNUM **dmp1, BIGNUM **dmq1, BIGNUM **iqmp) {
+ if (dmp1) *dmp1 = rsa->dmp1;
+ if (dmq1) *dmq1 = rsa->dmq1;
+ if (iqmp) *iqmp = rsa->iqmp; }
+static inline int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) {
+ if (!dmp1 || !dmq1 || !iqmp) return 0;
+ BN_free(rsa->dmp1); rsa->dmp1 = dmp1;
+ BN_free(rsa->dmq1); rsa->dmq1 = dmq1;
+ BN_free(rsa->iqmp); rsa->iqmp = iqmp;
+ return 1; }
+
+static inline void DSA_get0_key(DSA *dsa, BIGNUM **pub_key, BIGNUM **priv_key) {
+ if (pub_key) *pub_key = dsa->pub_key;
+ if (priv_key) *priv_key = dsa->priv_key; }
+static inline int DSA_set0_key(DSA *dsa, BIGNUM *pub_key, BIGNUM *priv_key) {
+ if (!pub_key) return 0;
+ BN_free(dsa->pub_key); dsa->pub_key = pub_key;
+ BN_free(dsa->priv_key); dsa->priv_key = priv_key;
+ return 1; }
+static inline void DSA_get0_pqg(DSA *dsa, BIGNUM **p, BIGNUM **q, BIGNUM **g) {
+ if (p) *p = dsa->p;
+ if (q) *q = dsa->q;
+ if (g) *g = dsa->g; }
+static inline int DSA_set0_pqg(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g) {
+ if (!p || !q || !g) return 0;
+ BN_free(dsa->p); dsa->p = p;
+ BN_free(dsa->q); dsa->q = q;
+ BN_free(dsa->g); dsa->g = g;
+ return 1; }
+static inline ENGINE *DH_get0_engine(DH *dh) { return dh->engine; }
+static inline void DH_get0_key(DH *dh, BIGNUM **pub_key, BIGNUM **priv_key) {
+ if (pub_key) *pub_key = dh->pub_key;
+ if (priv_key) *priv_key = dh->priv_key; }
+static inline int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) {
+ if (!pub_key) return 0;
+ BN_free(dh->pub_key); dh->pub_key = pub_key;
+ BN_free(dh->priv_key); dh->priv_key = priv_key;
+ return 1; }
+static inline void DH_get0_pqg(DH *dh, BIGNUM **p, BIGNUM **q, BIGNUM **g) {
+ if (p) *p = dh->p;
+ if (q) *q = dh->q;
+ if (g) *g = dh->g; }
+static inline int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) {
+ if (!p || !g) return 0;
+ BN_free(dh->p); dh->p = p;
+ BN_free(dh->q); dh->q = q;
+ BN_free(dh->g); dh->g = g;
+ return 1; }
+#endif
#if defined(__cplusplus)
}