Revert scoped_types.h change. This reverts commits: 8d79ed67407e433d80ebc8d3aa080e8ce16e6eb7 19fdcb523402ed13ab798cf811fb0119e3e7b104 8d79ed67407e433d80ebc8d3aa080e8ce16e6eb7 Because WebRTC (at least) includes our headers in an extern "C" block, which precludes having any C++ in them. Change-Id: Ia849f43795a40034cbd45b22ea680b51aab28b2d
diff --git a/crypto/asn1/asn1_test.cc b/crypto/asn1/asn1_test.cc index 86dd02a..e3e310b 100644 --- a/crypto/asn1/asn1_test.cc +++ b/crypto/asn1/asn1_test.cc
@@ -18,6 +18,8 @@ #include <openssl/crypto.h> #include <openssl/err.h> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/crypto/bio/bio_test.cc b/crypto/bio/bio_test.cc index cd56e62..e7c061e 100644 --- a/crypto/bio/bio_test.cc +++ b/crypto/bio/bio_test.cc
@@ -40,6 +40,8 @@ #include <algorithm> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/crypto/bn/bn_test.cc b/crypto/bn/bn_test.cc index 67ab924..3028745 100644 --- a/crypto/bn/bn_test.cc +++ b/crypto/bn/bn_test.cc
@@ -81,12 +81,12 @@ #include <utility> #include <openssl/bn.h> -#include <openssl/bytestring.h> #include <openssl/crypto.h> #include <openssl/err.h> #include <openssl/mem.h> #include "../crypto/test/file_test.h" +#include "../crypto/test/scoped_types.h" #include "../crypto/test/test_util.h"
diff --git a/crypto/bytestring/bytestring_test.cc b/crypto/bytestring/bytestring_test.cc index 39ac0ae..95d9b85 100644 --- a/crypto/bytestring/bytestring_test.cc +++ b/crypto/bytestring/bytestring_test.cc
@@ -26,6 +26,7 @@ #include <openssl/bytestring.h> #include "internal.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/cipher/aead_test.cc b/crypto/cipher/aead_test.cc index 70b84ab..cf0f24a 100644 --- a/crypto/cipher/aead_test.cc +++ b/crypto/cipher/aead_test.cc
@@ -22,6 +22,7 @@ #include <openssl/err.h> #include "../test/file_test.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/cipher/cipher_test.cc b/crypto/cipher/cipher_test.cc index beaef2c..221eb67 100644 --- a/crypto/cipher/cipher_test.cc +++ b/crypto/cipher/cipher_test.cc
@@ -62,6 +62,7 @@ #include <openssl/err.h> #include "../test/file_test.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/cmac/cmac_test.cc b/crypto/cmac/cmac_test.cc index 7b42129..11b7ad6 100644 --- a/crypto/cmac/cmac_test.cc +++ b/crypto/cmac/cmac_test.cc
@@ -17,9 +17,8 @@ #include <algorithm> #include <openssl/cmac.h> -#include <openssl/evp.h> -#include <openssl/mem.h> +#include "../test/scoped_types.h" #include "../test/test_util.h"
diff --git a/crypto/curve25519/spake25519_test.cc b/crypto/curve25519/spake25519_test.cc index ee7e0fb..b8742ed 100644 --- a/crypto/curve25519/spake25519_test.cc +++ b/crypto/curve25519/spake25519_test.cc
@@ -19,6 +19,7 @@ #include <string.h> #include <openssl/curve25519.h> +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/dh/dh_test.cc b/crypto/dh/dh_test.cc index 9cf76f6..8fe496c 100644 --- a/crypto/dh/dh_test.cc +++ b/crypto/dh/dh_test.cc
@@ -68,6 +68,7 @@ #include <openssl/mem.h> #include "internal.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/digest/digest_test.cc b/crypto/digest/digest_test.cc index c390913..32d12d2 100644 --- a/crypto/digest/digest_test.cc +++ b/crypto/digest/digest_test.cc
@@ -23,6 +23,8 @@ #include <openssl/md5.h> #include <openssl/sha.h> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/crypto/ec/ec_test.cc b/crypto/ec/ec_test.cc index 7572434..864cd49 100644 --- a/crypto/ec/ec_test.cc +++ b/crypto/ec/ec_test.cc
@@ -17,13 +17,13 @@ #include <vector> -#include <openssl/bn.h> #include <openssl/bytestring.h> #include <openssl/crypto.h> #include <openssl/ec_key.h> #include <openssl/err.h> #include <openssl/mem.h> -#include <openssl/obj.h> + +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/ecdsa/ecdsa_test.cc b/crypto/ecdsa/ecdsa_test.cc index 6b42d4e..ad2325b 100644 --- a/crypto/ecdsa/ecdsa_test.cc +++ b/crypto/ecdsa/ecdsa_test.cc
@@ -62,6 +62,8 @@ #include <openssl/nid.h> #include <openssl/rand.h> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/crypto/evp/evp_extra_test.cc b/crypto/evp/evp_extra_test.cc index 750da75..2253c56 100644 --- a/crypto/evp/evp_extra_test.cc +++ b/crypto/evp/evp_extra_test.cc
@@ -25,9 +25,10 @@ #include <openssl/digest.h> #include <openssl/err.h> #include <openssl/evp.h> -#include <openssl/pkcs8.h> #include <openssl/rsa.h> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/crypto/evp/evp_test.cc b/crypto/evp/evp_test.cc index a20c6a6..9b8a683 100644 --- a/crypto/evp/evp_test.cc +++ b/crypto/evp/evp_test.cc
@@ -74,6 +74,7 @@ #include <openssl/err.h> #include "../test/file_test.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/hmac/hmac_test.cc b/crypto/hmac/hmac_test.cc index 9f76495..ba84cc2 100644 --- a/crypto/hmac/hmac_test.cc +++ b/crypto/hmac/hmac_test.cc
@@ -65,6 +65,7 @@ #include <openssl/hmac.h> #include "../test/file_test.h" +#include "../test/scoped_types.h" namespace bssl {
diff --git a/crypto/newhope/newhope_statistical_test.cc b/crypto/newhope/newhope_statistical_test.cc index 1344506..d3a5443 100644 --- a/crypto/newhope/newhope_statistical_test.cc +++ b/crypto/newhope/newhope_statistical_test.cc
@@ -21,6 +21,7 @@ #include <openssl/crypto.h> #include <openssl/rand.h> +#include "../test/scoped_types.h" #include "internal.h"
diff --git a/crypto/newhope/newhope_test.cc b/crypto/newhope/newhope_test.cc index c127d4f..d94eee8 100644 --- a/crypto/newhope/newhope_test.cc +++ b/crypto/newhope/newhope_test.cc
@@ -19,6 +19,7 @@ #include <openssl/crypto.h> #include <openssl/rand.h> +#include "../test/scoped_types.h" #include "internal.h"
diff --git a/crypto/newhope/newhope_vectors_test.cc b/crypto/newhope/newhope_vectors_test.cc index a3398fa..691d693 100644 --- a/crypto/newhope/newhope_vectors_test.cc +++ b/crypto/newhope/newhope_vectors_test.cc
@@ -20,6 +20,7 @@ #include <openssl/rand.h> #include "../test/file_test.h" +#include "../test/scoped_types.h" #include "internal.h"
diff --git a/crypto/pkcs8/pkcs12_test.cc b/crypto/pkcs8/pkcs12_test.cc index 2c4adc4..1069444 100644 --- a/crypto/pkcs8/pkcs12_test.cc +++ b/crypto/pkcs8/pkcs12_test.cc
@@ -23,6 +23,8 @@ #include <openssl/stack.h> #include <openssl/x509.h> +#include "../test/scoped_types.h" + /* kPKCS12DER contains sample PKCS#12 data generated by OpenSSL with: * openssl pkcs12 -export -inkey key.pem -in cacert.pem */
diff --git a/crypto/pkcs8/pkcs8_test.cc b/crypto/pkcs8/pkcs8_test.cc index b58461f..e54a699 100644 --- a/crypto/pkcs8/pkcs8_test.cc +++ b/crypto/pkcs8/pkcs8_test.cc
@@ -21,6 +21,8 @@ #include <openssl/pkcs8.h> #include <openssl/x509.h> +#include "../test/scoped_types.h" + /* kDER is a PKCS#8 encrypted private key. It was generated with: *
diff --git a/crypto/rsa/rsa_test.cc b/crypto/rsa/rsa_test.cc index 698eb92..5307f2c 100644 --- a/crypto/rsa/rsa_test.cc +++ b/crypto/rsa/rsa_test.cc
@@ -65,6 +65,8 @@ #include <openssl/err.h> #include <openssl/nid.h> +#include "../test/scoped_types.h" + // kPlaintext is a sample plaintext. static const uint8_t kPlaintext[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a";
diff --git a/crypto/test/scoped_types.h b/crypto/test/scoped_types.h new file mode 100644 index 0000000..7e4a48e --- /dev/null +++ b/crypto/test/scoped_types.h
@@ -0,0 +1,97 @@ +/* Copyright (c) 2015, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_TEST_SCOPED_TYPES_H +#define OPENSSL_HEADER_CRYPTO_TEST_SCOPED_TYPES_H + +#include <openssl/base.h> + +#include <stdint.h> +#include <stdio.h> + +#include <memory> + +#include <openssl/aead.h> +#include <openssl/asn1.h> +#include <openssl/bio.h> +#include <openssl/bn.h> +#include <openssl/bytestring.h> +#include <openssl/cmac.h> +#include <openssl/curve25519.h> +#include <openssl/dh.h> +#include <openssl/ecdsa.h> +#include <openssl/ec.h> +#include <openssl/ec_key.h> +#include <openssl/evp.h> +#include <openssl/hmac.h> +#include <openssl/mem.h> +#include <openssl/newhope.h> +#include <openssl/pkcs8.h> +#include <openssl/rsa.h> +#include <openssl/stack.h> +#include <openssl/x509.h> + +namespace bssl { + +struct FileCloser { + void operator()(FILE *file) { + fclose(file); + } +}; + +using ScopedASN1_TYPE = ScopedType<ASN1_TYPE, ASN1_TYPE_free>; +using ScopedBIO = ScopedType<BIO, BIO_vfree>; +using ScopedBIGNUM = ScopedType<BIGNUM, BN_free>; +using ScopedBN_CTX = ScopedType<BN_CTX, BN_CTX_free>; +using ScopedBN_MONT_CTX = ScopedType<BN_MONT_CTX, BN_MONT_CTX_free>; +using ScopedCMAC_CTX = ScopedType<CMAC_CTX, CMAC_CTX_free>; +using ScopedDH = ScopedType<DH, DH_free>; +using ScopedECDSA_SIG = ScopedType<ECDSA_SIG, ECDSA_SIG_free>; +using ScopedEC_GROUP = ScopedType<EC_GROUP, EC_GROUP_free>; +using ScopedEC_KEY = ScopedType<EC_KEY, EC_KEY_free>; +using ScopedEC_POINT = ScopedType<EC_POINT, EC_POINT_free>; +using ScopedEVP_PKEY = ScopedType<EVP_PKEY, EVP_PKEY_free>; +using ScopedEVP_PKEY_CTX = ScopedType<EVP_PKEY_CTX, EVP_PKEY_CTX_free>; +using ScopedNEWHOPE_POLY = ScopedType<NEWHOPE_POLY, NEWHOPE_POLY_free>; +using ScopedPKCS8_PRIV_KEY_INFO = + ScopedType<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free>; +using ScopedPKCS12 = ScopedType<PKCS12, PKCS12_free>; +using ScopedSPAKE2_CTX = ScopedType<SPAKE2_CTX, SPAKE2_CTX_free>; +using ScopedRSA = ScopedType<RSA, RSA_free>; +using ScopedX509 = ScopedType<X509, X509_free>; +using ScopedX509_ALGOR = ScopedType<X509_ALGOR, X509_ALGOR_free>; +using ScopedX509_SIG = ScopedType<X509_SIG, X509_SIG_free>; +using ScopedX509_STORE_CTX = ScopedType<X509_STORE_CTX, X509_STORE_CTX_free>; + +using ScopedX509Stack = ScopedStack<STACK_OF(X509), X509, X509_free>; + +using ScopedCBB = ScopedContext<CBB, void, CBB_zero, CBB_cleanup>; +using ScopedEVP_AEAD_CTX = + ScopedContext<EVP_AEAD_CTX, void, EVP_AEAD_CTX_zero, EVP_AEAD_CTX_cleanup>; +using ScopedEVP_CIPHER_CTX = + ScopedContext<EVP_CIPHER_CTX, int, EVP_CIPHER_CTX_init, + EVP_CIPHER_CTX_cleanup>; +using ScopedEVP_MD_CTX = + ScopedContext<EVP_MD_CTX, int, EVP_MD_CTX_init, EVP_MD_CTX_cleanup>; +using ScopedHMAC_CTX = + ScopedContext<HMAC_CTX, void, HMAC_CTX_init, HMAC_CTX_cleanup>; + +using ScopedBytes = std::unique_ptr<uint8_t, Free<uint8_t>>; +using ScopedString = std::unique_ptr<char, Free<char>>; + +using ScopedFILE = std::unique_ptr<FILE, FileCloser>; + +} // namespace bssl + +#endif // OPENSSL_HEADER_CRYPTO_TEST_SCOPED_TYPES_H
diff --git a/crypto/x509/x509_test.cc b/crypto/x509/x509_test.cc index 41221ce..cb28df7 100644 --- a/crypto/x509/x509_test.cc +++ b/crypto/x509/x509_test.cc
@@ -24,6 +24,8 @@ #include <openssl/pem.h> #include <openssl/x509.h> +#include "../test/scoped_types.h" + namespace bssl {
diff --git a/include/openssl/aead.h b/include/openssl/aead.h index 7d9ee1f..7895825 100644 --- a/include/openssl/aead.h +++ b/include/openssl/aead.h
@@ -333,18 +333,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEVP_AEAD_CTX = - ScopedContext<EVP_AEAD_CTX, void, EVP_AEAD_CTX_zero, EVP_AEAD_CTX_cleanup>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_AEAD_H */
diff --git a/include/openssl/asn1.h b/include/openssl/asn1.h index e1c9447..42c9535 100644 --- a/include/openssl/asn1.h +++ b/include/openssl/asn1.h
@@ -1016,17 +1016,6 @@ #ifdef __cplusplus } - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedASN1_TYPE = ScopedType<ASN1_TYPE, ASN1_TYPE_free>; - -} // namespace bssl - -#endif - #endif #define ASN1_R_ASN1_LENGTH_MISMATCH 100
diff --git a/include/openssl/base.h b/include/openssl/base.h index 21eb04f..68df107 100644 --- a/include/openssl/base.h +++ b/include/openssl/base.h
@@ -170,13 +170,6 @@ #define OPENSSL_MSVC_PRAGMA(arg) #endif -/* MSVC doesn't set __cplusplus to 201103 to indicate C++11 support (see - * https://connect.microsoft.com/VisualStudio/feedback/details/763051/a-value-of-predefined-macro-cplusplus-is-still-199711l) - * so MSVC is just assumed to support C++11. */ -#if defined(__cplusplus) && (__cplusplus >= 201103 || defined(_MSC_VER)) -#define BORINGSSL_HAVE_CXX11 -#endif - /* CRYPTO_THREADID is a dummy value. */ typedef int CRYPTO_THREADID; @@ -300,9 +293,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - namespace bssl { template<typename T, void (*func)(T*)> @@ -342,6 +332,4 @@ #endif -#endif - #endif /* OPENSSL_HEADER_BASE_H */
diff --git a/include/openssl/bio.h b/include/openssl/bio.h index 5ec40b2..5416c65 100644 --- a/include/openssl/bio.h +++ b/include/openssl/bio.h
@@ -895,17 +895,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedBIO = ScopedType<BIO, BIO_vfree>; - -} // namespace bssl - -#endif - #endif #define BIO_R_BAD_FOPEN_MODE 100
diff --git a/include/openssl/bn.h b/include/openssl/bn.h index 03ea7dc..a686696 100644 --- a/include/openssl/bn.h +++ b/include/openssl/bn.h
@@ -866,19 +866,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedBIGNUM = ScopedType<BIGNUM, BN_free>; -using ScopedBN_CTX = ScopedType<BN_CTX, BN_CTX_free>; -using ScopedBN_MONT_CTX = ScopedType<BN_MONT_CTX, BN_MONT_CTX_free>; - -} // namespace bssl - -#endif - #endif #define BN_R_ARG2_LT_ARG3 100
diff --git a/include/openssl/bytestring.h b/include/openssl/bytestring.h index b969662..c24281a 100644 --- a/include/openssl/bytestring.h +++ b/include/openssl/bytestring.h
@@ -393,17 +393,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedCBB = ScopedContext<CBB, void, CBB_zero, CBB_cleanup>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_BYTESTRING_H */
diff --git a/include/openssl/cipher.h b/include/openssl/cipher.h index 984e3f3..5312308 100644 --- a/include/openssl/cipher.h +++ b/include/openssl/cipher.h
@@ -540,19 +540,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEVP_CIPHER_CTX = - ScopedContext<EVP_CIPHER_CTX, int, EVP_CIPHER_CTX_init, - EVP_CIPHER_CTX_cleanup>; - -} // namespace bssl - -#endif - #endif #define CIPHER_R_AES_KEY_SETUP_FAILED 100
diff --git a/include/openssl/cmac.h b/include/openssl/cmac.h index e66ac4f..0bb44b9 100644 --- a/include/openssl/cmac.h +++ b/include/openssl/cmac.h
@@ -71,17 +71,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedCMAC_CTX = ScopedType<CMAC_CTX, CMAC_CTX_free>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_CMAC_H */
diff --git a/include/openssl/curve25519.h b/include/openssl/curve25519.h index e5b847a..a9441cd 100644 --- a/include/openssl/curve25519.h +++ b/include/openssl/curve25519.h
@@ -167,17 +167,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedSPAKE2_CTX = ScopedType<SPAKE2_CTX, SPAKE2_CTX_free>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_CURVE25519_H */
diff --git a/include/openssl/dh.h b/include/openssl/dh.h index b929c67..a087651 100644 --- a/include/openssl/dh.h +++ b/include/openssl/dh.h
@@ -255,17 +255,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedDH = ScopedType<DH, DH_free>; - -} // namespace bssl - -#endif - #endif #define DH_R_BAD_GENERATOR 100
diff --git a/include/openssl/digest.h b/include/openssl/digest.h index d13dfc8..07ea07a 100644 --- a/include/openssl/digest.h +++ b/include/openssl/digest.h
@@ -260,18 +260,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEVP_MD_CTX = - ScopedContext<EVP_MD_CTX, int, EVP_MD_CTX_init, EVP_MD_CTX_cleanup>; - -} // namespace bssl - -#endif - #endif #define DIGEST_R_INPUT_NOT_INITIALIZED 100
diff --git a/include/openssl/ec.h b/include/openssl/ec.h index b149c45..32aded6 100644 --- a/include/openssl/ec.h +++ b/include/openssl/ec.h
@@ -353,26 +353,14 @@ OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves, size_t max_num_curves); +/* Old code expects to get EC_KEY from ec.h. */ +#include <openssl/ec_key.h> + #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEC_GROUP = ScopedType<EC_GROUP, EC_GROUP_free>; -using ScopedEC_POINT = ScopedType<EC_POINT, EC_POINT_free>; - -} // namespace bssl - #endif -#endif - -/* Old code expects to get EC_KEY from ec.h. */ -#include <openssl/ec_key.h> - #define EC_R_BUFFER_TOO_SMALL 100 #define EC_R_COORDINATES_OUT_OF_RANGE 101 #define EC_R_D2I_ECPKPARAMETERS_FAILURE 102
diff --git a/include/openssl/ec_key.h b/include/openssl/ec_key.h index 5b0f516..63554a7 100644 --- a/include/openssl/ec_key.h +++ b/include/openssl/ec_key.h
@@ -322,17 +322,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEC_KEY = ScopedType<EC_KEY, EC_KEY_free>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_EC_KEY_H */
diff --git a/include/openssl/ecdsa.h b/include/openssl/ecdsa.h index 3a04adf..a060eab 100644 --- a/include/openssl/ecdsa.h +++ b/include/openssl/ecdsa.h
@@ -194,17 +194,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedECDSA_SIG = ScopedType<ECDSA_SIG, ECDSA_SIG_free>; - -} // namespace bssl - -#endif - #endif #define ECDSA_R_BAD_SIGNATURE 100
diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 263944e..5407407 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h
@@ -747,18 +747,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedEVP_PKEY = ScopedType<EVP_PKEY, EVP_PKEY_free>; -using ScopedEVP_PKEY_CTX = ScopedType<EVP_PKEY_CTX, EVP_PKEY_CTX_free>; - -} // namespace bssl - -#endif - #endif #define EVP_R_BUFFER_TOO_SMALL 100
diff --git a/include/openssl/hmac.h b/include/openssl/hmac.h index 6a6c8c0..5a4e9c7 100644 --- a/include/openssl/hmac.h +++ b/include/openssl/hmac.h
@@ -153,18 +153,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedHMAC_CTX = - ScopedContext<HMAC_CTX, void, HMAC_CTX_init, HMAC_CTX_cleanup>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_HMAC_H */
diff --git a/include/openssl/mem.h b/include/openssl/mem.h index 172198d..d773752 100644 --- a/include/openssl/mem.h +++ b/include/openssl/mem.h
@@ -134,8 +134,6 @@ #if defined(__cplusplus) } /* extern C */ -#if defined(BORINGSSL_HAVE_CXX11) - namespace bssl { template<typename T> @@ -145,13 +143,8 @@ } }; -using ScopedBytes = std::unique_ptr<uint8_t, Free<uint8_t>>; -using ScopedString = std::unique_ptr<char, Free<char>>; - } // namespace bssl #endif -#endif - #endif /* OPENSSL_HEADER_MEM_H */
diff --git a/include/openssl/newhope.h b/include/openssl/newhope.h index 3d91ce7..487e03f 100644 --- a/include/openssl/newhope.h +++ b/include/openssl/newhope.h
@@ -142,17 +142,6 @@ #if defined(__cplusplus) } /* extern "C" */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedNEWHOPE_POLY = ScopedType<NEWHOPE_POLY, NEWHOPE_POLY_free>; - -} // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_NEWHOPE_H */
diff --git a/include/openssl/pkcs8.h b/include/openssl/pkcs8.h index 87d1e05..28cf6ac 100644 --- a/include/openssl/pkcs8.h +++ b/include/openssl/pkcs8.h
@@ -187,19 +187,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedPKCS8_PRIV_KEY_INFO = - ScopedType<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free>; -using ScopedPKCS12 = ScopedType<PKCS12, PKCS12_free>; - -} // namespace bssl - -#endif - #endif #define PKCS8_R_BAD_PKCS12_DATA 100
diff --git a/include/openssl/rsa.h b/include/openssl/rsa.h index f6abdfb..063d2e8 100644 --- a/include/openssl/rsa.h +++ b/include/openssl/rsa.h
@@ -612,17 +612,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedRSA = ScopedType<RSA, RSA_free>; - -} // namespace bssl - -#endif - #endif #define RSA_R_BAD_ENCODING 100
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 583cbf8..2ae5ab1 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h
@@ -4505,19 +4505,6 @@ #if defined(__cplusplus) } /* extern C */ - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedSSL = ScopedType<SSL, SSL_free>; -using ScopedSSL_CTX = ScopedType<SSL_CTX, SSL_CTX_free>; -using ScopedSSL_SESSION = ScopedType<SSL_SESSION, SSL_SESSION_free>; - -} // namespace bssl - -#endif - #endif #define SSL_R_APP_DATA_IN_HANDSHAKE 100
diff --git a/include/openssl/stack.h b/include/openssl/stack.h index b521353..913db50 100644 --- a/include/openssl/stack.h +++ b/include/openssl/stack.h
@@ -291,8 +291,6 @@ #if defined(__cplusplus) } /* extern C */ -#if defined(BORINGSSL_HAVE_CXX11) - namespace bssl { template<typename StackType, typename T, void (*func)(T*)> @@ -308,9 +306,6 @@ std::unique_ptr<StackType, StackDeleter<StackType, T, func>>; } // namespace bssl - -#endif - #endif #endif /* OPENSSL_HEADER_STACK_H */
diff --git a/include/openssl/x509.h b/include/openssl/x509.h index e57d615..bbc263e 100644 --- a/include/openssl/x509.h +++ b/include/openssl/x509.h
@@ -1225,22 +1225,6 @@ #ifdef __cplusplus } - -#if defined(BORINGSSL_HAVE_CXX11) - -namespace bssl { - -using ScopedX509 = ScopedType<X509, X509_free>; -using ScopedX509_ALGOR = ScopedType<X509_ALGOR, X509_ALGOR_free>; -using ScopedX509_SIG = ScopedType<X509_SIG, X509_SIG_free>; -using ScopedX509_STORE_CTX = ScopedType<X509_STORE_CTX, X509_STORE_CTX_free>; - -using ScopedX509Stack = ScopedStack<STACK_OF(X509), X509, X509_free>; - -} // namespace bssl - -#endif - #endif #define X509_R_AKID_MISMATCH 100
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc index 30c9777..92fad05 100644 --- a/ssl/ssl_test.cc +++ b/ssl/ssl_test.cc
@@ -29,6 +29,7 @@ #include <openssl/ssl.h> #include <openssl/x509.h> +#include "test/scoped_types.h" #include "../crypto/test/test_util.h"
diff --git a/ssl/test/async_bio.h b/ssl/test/async_bio.h index 6bfe1a9..1799347 100644 --- a/ssl/test/async_bio.h +++ b/ssl/test/async_bio.h
@@ -17,6 +17,8 @@ #include <openssl/bio.h> +#include "../../crypto/test/scoped_types.h" + namespace bssl {
diff --git a/ssl/test/bssl_shim.cc b/ssl/test/bssl_shim.cc index 30aaba6..9ce8b5f 100644 --- a/ssl/test/bssl_shim.cc +++ b/ssl/test/bssl_shim.cc
@@ -55,8 +55,10 @@ #include <string> #include <vector> +#include "../../crypto/test/scoped_types.h" #include "async_bio.h" #include "packeted_bio.h" +#include "scoped_types.h" #include "test_config.h"
diff --git a/ssl/test/packeted_bio.h b/ssl/test/packeted_bio.h index 351fc2c..e6dcfe4 100644 --- a/ssl/test/packeted_bio.h +++ b/ssl/test/packeted_bio.h
@@ -18,6 +18,8 @@ #include <openssl/base.h> #include <openssl/bio.h> +#include "../../crypto/test/scoped_types.h" + #if defined(OPENSSL_WINDOWS) OPENSSL_MSVC_PRAGMA(warning(push, 3)) #include <winsock2.h>
diff --git a/ssl/test/scoped_types.h b/ssl/test/scoped_types.h new file mode 100644 index 0000000..0b3b562 --- /dev/null +++ b/ssl/test/scoped_types.h
@@ -0,0 +1,32 @@ +/* Copyright (c) 2015, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_SSL_TEST_SCOPED_TYPES_H +#define OPENSSL_HEADER_SSL_TEST_SCOPED_TYPES_H + +#include <openssl/ssl.h> + +#include "../../crypto/test/scoped_types.h" + + +namespace bssl { + +using ScopedSSL = ScopedType<SSL, SSL_free>; +using ScopedSSL_CTX = ScopedType<SSL_CTX, SSL_CTX_free>; +using ScopedSSL_SESSION = ScopedType<SSL_SESSION, SSL_SESSION_free>; + +} // namespace bssl + + +#endif // OPENSSL_HEADER_SSL_TEST_SCOPED_TYPES_H
diff --git a/tool/ciphers.cc b/tool/ciphers.cc index 2de29a6..fa060ab 100644 --- a/tool/ciphers.cc +++ b/tool/ciphers.cc
@@ -20,6 +20,8 @@ #include <openssl/ssl.h> +#include "../crypto/test/scoped_types.h" +#include "../ssl/test/scoped_types.h" #include "internal.h"
diff --git a/tool/client.cc b/tool/client.cc index 03e46a4..593e3c6 100644 --- a/tool/client.cc +++ b/tool/client.cc
@@ -20,6 +20,8 @@ #include <openssl/pem.h> #include <openssl/ssl.h> +#include "../crypto/test/scoped_types.h" +#include "../ssl/test/scoped_types.h" #include "internal.h" #include "transport_common.h"
diff --git a/tool/generate_ed25519.cc b/tool/generate_ed25519.cc index 17f086b..9672b78 100644 --- a/tool/generate_ed25519.cc +++ b/tool/generate_ed25519.cc
@@ -18,6 +18,7 @@ #include <stdio.h> #include <string.h> +#include "../crypto/test/scoped_types.h" #include "internal.h" @@ -36,14 +37,6 @@ }, }; -struct FileCloser { - void operator()(FILE *file) { - fclose(file); - } -}; - -using ScopedFILE = std::unique_ptr<FILE, FileCloser>; - static bool WriteToFile(const std::string &path, const uint8_t *in, size_t in_len) { ScopedFILE file(fopen(path.c_str(), "wb"));
diff --git a/tool/genrsa.cc b/tool/genrsa.cc index 3412475..576bd7c 100644 --- a/tool/genrsa.cc +++ b/tool/genrsa.cc
@@ -18,6 +18,7 @@ #include <openssl/pem.h> #include <openssl/rsa.h> +#include "../crypto/test/scoped_types.h" #include "internal.h"
diff --git a/tool/speed.cc b/tool/speed.cc index 1fdda6b..8efd1f4 100644 --- a/tool/speed.cc +++ b/tool/speed.cc
@@ -21,11 +21,8 @@ #include <string.h> #include <openssl/aead.h> -#include <openssl/bn.h> #include <openssl/curve25519.h> #include <openssl/digest.h> -#include <openssl/ecdsa.h> -#include <openssl/ec.h> #include <openssl/err.h> #include <openssl/newhope.h> #include <openssl/nid.h> @@ -40,6 +37,7 @@ #include <sys/time.h> #endif +#include "../crypto/test/scoped_types.h" #include "internal.h"
diff --git a/util/BUILD b/util/BUILD index 6b645e6..51e95b1 100644 --- a/util/BUILD +++ b/util/BUILD
@@ -113,7 +113,10 @@ cc_binary( name = "bssl", - srcs = tool_sources + tool_headers, + srcs = tool_sources + tool_headers + [ + "src/crypto/test/scoped_types.h", + "src/ssl/test/scoped_types.h", + ], copts = boringssl_copts_cxx, visibility = ["//visibility:public"], deps = [":ssl"],