diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-01-25 11:39:07 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-01-25 15:20:42 +0000 |
commit | 6c91641271e536ffaa88a1dff5127e42ee99a91e (patch) | |
tree | 703d9dd49602377ddc90cbf886aad37913f2496b /chromium/net/ssl/ssl_platform_key_android.cc | |
parent | b145b7fafd36f0c260d6a768c81fc14e32578099 (diff) | |
download | qtwebengine-chromium-6c91641271e536ffaa88a1dff5127e42ee99a91e.tar.gz |
BASELINE: Update Chromium to 49.0.2623.23
Also adds missing printing sources.
Change-Id: I3726b8f0c7d6751c9fc846096c571fadca7108cd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'chromium/net/ssl/ssl_platform_key_android.cc')
-rw-r--r-- | chromium/net/ssl/ssl_platform_key_android.cc | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/chromium/net/ssl/ssl_platform_key_android.cc b/chromium/net/ssl/ssl_platform_key_android.cc index 773844a08fa..6a6595cc0e6 100644 --- a/chromium/net/ssl/ssl_platform_key_android.cc +++ b/chromium/net/ssl/ssl_platform_key_android.cc @@ -6,13 +6,14 @@ #include <openssl/digest.h> #include <openssl/evp.h> +#include <utility> #include "base/logging.h" #include "base/macros.h" -#include "base/stl_util.h" #include "crypto/scoped_openssl_types.h" #include "net/base/net_errors.h" #include "net/ssl/openssl_client_key_store.h" +#include "net/ssl/ssl_platform_key_task_runner.h" #include "net/ssl/ssl_private_key.h" #include "net/ssl/threaded_ssl_private_key.h" @@ -23,7 +24,7 @@ namespace { class SSLPlatformKeyAndroid : public ThreadedSSLPrivateKey::Delegate { public: SSLPlatformKeyAndroid(crypto::ScopedEVP_PKEY key, SSLPrivateKey::Type type) - : key_(key.Pass()), type_(type) {} + : key_(std::move(key)), type_(type) {} ~SSLPlatformKeyAndroid() override {} @@ -79,19 +80,16 @@ class SSLPlatformKeyAndroid : public ThreadedSSLPrivateKey::Delegate { return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED; } - uint8_t* input_ptr = - const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(input.data())); + const uint8_t* input_ptr = reinterpret_cast<const uint8_t*>(input.data()); size_t input_len = input.size(); size_t sig_len = 0; if (!EVP_PKEY_sign(ctx.get(), NULL, &sig_len, input_ptr, input_len)) return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED; signature->resize(sig_len); - uint8_t* sig = const_cast<uint8_t*>( - reinterpret_cast<const uint8_t*>(vector_as_array(signature))); - if (!sig) - return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED; - if (!EVP_PKEY_sign(ctx.get(), sig, &sig_len, input_ptr, input_len)) + if (!EVP_PKEY_sign(ctx.get(), signature->data(), &sig_len, input_ptr, + input_len)) { return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED; + } signature->resize(sig_len); @@ -105,14 +103,7 @@ class SSLPlatformKeyAndroid : public ThreadedSSLPrivateKey::Delegate { DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyAndroid); }; -} // namespace - -scoped_ptr<SSLPrivateKey> FetchClientCertPrivateKey( - X509Certificate* certificate, - scoped_refptr<base::SequencedTaskRunner> task_runner) { - crypto::ScopedEVP_PKEY key = - OpenSSLClientKeyStore::GetInstance()->FetchClientCertPrivateKey( - certificate); +scoped_refptr<SSLPrivateKey> WrapOpenSSLPrivateKey(crypto::ScopedEVP_PKEY key) { if (!key) return nullptr; @@ -128,9 +119,19 @@ scoped_ptr<SSLPrivateKey> FetchClientCertPrivateKey( LOG(ERROR) << "Unknown key type: " << EVP_PKEY_id(key.get()); return nullptr; } - return make_scoped_ptr(new ThreadedSSLPrivateKey( - make_scoped_ptr(new SSLPlatformKeyAndroid(key.Pass(), type)), - task_runner.Pass())); + return make_scoped_refptr(new ThreadedSSLPrivateKey( + make_scoped_ptr(new SSLPlatformKeyAndroid(std::move(key), type)), + GetSSLPlatformKeyTaskRunner())); +} + +} // namespace + +scoped_refptr<SSLPrivateKey> FetchClientCertPrivateKey( + X509Certificate* certificate) { + crypto::ScopedEVP_PKEY key = + OpenSSLClientKeyStore::GetInstance()->FetchClientCertPrivateKey( + certificate); + return WrapOpenSSLPrivateKey(std::move(key)); } } // namespace net |