/* * 'OpenSSL for Ruby' project * Copyright (C) 2001-2002 Michal Rokos * All rights reserved. */ /* * This program is licensed under the same licence as Ruby. * (See the file 'LICENCE'.) */ #if !defined(_OSSL_OPENSSL_MISSING_H_) #define _OSSL_OPENSSL_MISSING_H_ #if defined(__cplusplus) extern "C" { #endif /*** added in 0.9.8X ***/ #if !defined(HAVE_EVP_CIPHER_CTX_NEW) EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); #endif #if !defined(HAVE_EVP_CIPHER_CTX_FREE) void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx); #endif #if !defined(HAVE_SSL_CTX_CLEAR_OPTIONS) # define SSL_CTX_clear_options(ctx, op) do \ (ctx)->options &= ~(op); while (0) #endif /*** added in 1.0.0 ***/ #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_HMAC_CTX_COPY) int HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in); #endif #if !defined(HAVE_X509_STORE_CTX_GET0_CURRENT_CRL) # define X509_STORE_CTX_get0_current_crl(x) ((x)->current_crl) #endif #if !defined(HAVE_X509_STORE_SET_VERIFY_CB) # define X509_STORE_set_verify_cb X509_STORE_set_verify_cb_func #endif /*** added in 1.0.1 ***/ /*** added in 1.0.2 ***/ #if !defined(HAVE_CRYPTO_MEMCMP) int CRYPTO_memcmp(const volatile void * volatile in_a, const volatile void * volatile in_b, size_t len); #endif #if !defined(HAVE_X509_REVOKED_DUP) # define X509_REVOKED_dup(rev) (X509_REVOKED *)ASN1_dup((i2d_of_void *)i2d_X509_REVOKED, \ (d2i_of_void *)d2i_X509_REVOKED, (char *)(rev)) #endif /*** 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_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_X509_STORE_GET_EX_DATA) void *X509_STORE_get_ex_data(X509_STORE *str, int idx); #endif #if !defined(HAVE_X509_STORE_SET_EX_DATA) int X509_STORE_set_ex_data(X509_STORE *str, int idx, void *data); #endif #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_X509_REQ_GET0_SIGNATURE) void X509_REQ_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, X509_REQ *req); #endif #if !defined(HAVE_X509_REVOKED_GET0_SERIALNUMBER) # define X509_REVOKED_get0_serialNumber(x) ((x)->serialNumber) #endif #if !defined(HAVE_X509_REVOKED_GET0_REVOCATIONDATE) # define X509_REVOKED_get0_revocationDate(x) ((x)->revocationDate) #endif #if !defined(HAVE_X509_GET0_TBS_SIGALG) # define X509_get0_tbs_sigalg(x) ((x)->cert_info->signature) #endif #if !defined(HAVE_X509_STORE_CTX_GET0_UNTRUSTED) # define X509_STORE_CTX_get0_untrusted(x) ((x)->untrusted) #endif #if !defined(HAVE_X509_STORE_CTX_GET0_CERT) # define X509_STORE_CTX_get0_cert(x) ((x)->cert) #endif #if !defined(HAVE_X509_STORE_CTX_GET0_CHAIN) # define X509_STORE_CTX_get0_chain(ctx) X509_STORE_CTX_get_chain(ctx) #endif #if !defined(HAVE_OCSP_SINGLERESP_GET0_ID) # define OCSP_SINGLERESP_get0_id(s) ((s)->certId) #endif #if !defined(HAVE_X509_UP_REF) # define X509_up_ref(x) \ CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_X509) #endif #if !defined(HAVE_X509_CRL_UP_REF) # define X509_CRL_up_ref(x) \ CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_X509_CRL); #endif #if !defined(HAVE_X509_STORE_UP_REF) # define X509_STORE_up_ref(x) \ CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_X509_STORE); #endif #if !defined(HAVE_SSL_SESSION_UP_REF) # define SSL_SESSION_up_ref(x) \ CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_SSL_SESSION); #endif #if !defined(HAVE_EVP_PKEY_UP_REF) # define EVP_PKEY_up_ref(x) \ CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_EVP_PKEY); #endif #if defined(__cplusplus) } #endif #endif /* _OSSL_OPENSSL_MISSING_H_ */