| Index: net/android/keystore_openssl.cc
 | 
| diff --git a/net/android/keystore_openssl.cc b/net/android/keystore_openssl.cc
 | 
| index ec08d70236a84018adcda576bac38b7c17990edf..e2e53d7b10e93a774238e212b7ab8aedcdea9d16 100644
 | 
| --- a/net/android/keystore_openssl.cc
 | 
| +++ b/net/android/keystore_openssl.cc
 | 
| @@ -26,6 +26,7 @@
 | 
|  #include "base/lazy_instance.h"
 | 
|  #include "base/logging.h"
 | 
|  #include "crypto/openssl_util.h"
 | 
| +#include "crypto/scoped_openssl_types.h"
 | 
|  #include "net/android/keystore.h"
 | 
|  #include "net/ssl/ssl_client_cert_type.h"
 | 
|  
 | 
| @@ -101,11 +102,7 @@ namespace android {
 | 
|  
 | 
|  namespace {
 | 
|  
 | 
| -typedef crypto::ScopedOpenSSL<EVP_PKEY, EVP_PKEY_free> ScopedEVP_PKEY;
 | 
| -typedef crypto::ScopedOpenSSL<RSA, RSA_free> ScopedRSA;
 | 
| -typedef crypto::ScopedOpenSSL<DSA, DSA_free> ScopedDSA;
 | 
| -typedef crypto::ScopedOpenSSL<EC_KEY, EC_KEY_free> ScopedEC_KEY;
 | 
| -typedef crypto::ScopedOpenSSL<EC_GROUP, EC_GROUP_free> ScopedEC_GROUP;
 | 
| +typedef crypto::ScopedOpenSSL<EC_GROUP, EC_GROUP_free>::Type ScopedEC_GROUP;
 | 
|  
 | 
|  // Custom RSA_METHOD that uses the platform APIs.
 | 
|  // Note that for now, only signing through RSA_sign() is really supported.
 | 
| @@ -283,7 +280,7 @@ bool SwapBigNumPtrFromBytes(const std::vector<uint8>& new_bytes,
 | 
|  // IMPORTANT: The EVP_PKEY will *only* work on Android >= 4.2. For older
 | 
|  // platforms, use GetRsaLegacyKey() instead.
 | 
|  bool GetRsaPkeyWrapper(jobject private_key, EVP_PKEY* pkey) {
 | 
| -  ScopedRSA rsa(RSA_new());
 | 
| +  crypto::ScopedRSA rsa(RSA_new());
 | 
|    RSA_set_method(rsa.get(), &android_rsa_method);
 | 
|  
 | 
|    // HACK: RSA_size() doesn't work with custom RSA_METHODs. To ensure that
 | 
| @@ -327,7 +324,7 @@ class KeystoreEngineWorkaround {
 | 
|    void LeakRsaEngine(EVP_PKEY* pkey) {
 | 
|      if (leaked_engine_)
 | 
|        return;
 | 
| -    ScopedRSA rsa(EVP_PKEY_get1_RSA(pkey));
 | 
| +    crypto::ScopedRSA rsa(EVP_PKEY_get1_RSA(pkey));
 | 
|      if (!rsa.get() ||
 | 
|          !rsa.get()->engine ||
 | 
|          strcmp(ENGINE_get_id(rsa.get()->engine), "keystore") ||
 | 
| @@ -480,7 +477,7 @@ const DSA_METHOD android_dsa_method = {
 | 
|  // On success, this creates a global JNI reference to the same object
 | 
|  // that will be owned by and destroyed with the EVP_PKEY.
 | 
|  bool GetDsaPkeyWrapper(jobject private_key, EVP_PKEY* pkey) {
 | 
| -  ScopedDSA dsa(DSA_new());
 | 
| +  crypto::ScopedDSA dsa(DSA_new());
 | 
|    DSA_set_method(dsa.get(), &android_dsa_method);
 | 
|  
 | 
|    // DSA_size() doesn't work with custom DSA_METHODs. To ensure it
 | 
| @@ -649,7 +646,7 @@ const ECDSA_METHOD android_ecdsa_method = {
 | 
|  // is owned by and destroyed with the EVP_PKEY. I.e. the caller shall
 | 
|  // always free |private_key| after the call.
 | 
|  bool GetEcdsaPkeyWrapper(jobject private_key, EVP_PKEY* pkey) {
 | 
| -  ScopedEC_KEY eckey(EC_KEY_new());
 | 
| +  crypto::ScopedEC_KEY eckey(EC_KEY_new());
 | 
|    ECDSA_set_method(eckey.get(), &android_ecdsa_method);
 | 
|  
 | 
|    // To ensure that ECDSA_size() works properly, craft a custom EC_GROUP
 | 
| @@ -688,7 +685,7 @@ bool GetEcdsaPkeyWrapper(jobject private_key, EVP_PKEY* pkey) {
 | 
|  
 | 
|  EVP_PKEY* GetOpenSSLPrivateKeyWrapper(jobject private_key) {
 | 
|    // Create new empty EVP_PKEY instance.
 | 
| -  ScopedEVP_PKEY pkey(EVP_PKEY_new());
 | 
| +  crypto::ScopedEVP_PKEY pkey(EVP_PKEY_new());
 | 
|    if (!pkey.get())
 | 
|      return NULL;
 | 
|  
 | 
| 
 |