| Index: content/child/webcrypto/openssl/key_openssl.h
|
| diff --git a/content/child/webcrypto/openssl/key_openssl.h b/content/child/webcrypto/openssl/key_openssl.h
|
| index ef3243893106161c24c0a9b7d3bdbd5356d9e1e9..768acafbd1c5c5c279979733e53fabb4860312d9 100644
|
| --- a/content/child/webcrypto/openssl/key_openssl.h
|
| +++ b/content/child/webcrypto/openssl/key_openssl.h
|
| @@ -5,12 +5,16 @@
|
| #ifndef CONTENT_CHILD_WEBCRYPTO_OPENSSL_KEY_OPENSSL_H_
|
| #define CONTENT_CHILD_WEBCRYPTO_OPENSSL_KEY_OPENSSL_H_
|
|
|
| +#include <openssl/ossl_typ.h>
|
| +
|
| #include "content/child/webcrypto/algorithm_implementation.h"
|
| +#include "crypto/scoped_openssl_types.h"
|
|
|
| namespace content {
|
|
|
| namespace webcrypto {
|
|
|
| +class AsymKeyOpenSsl;
|
| class SymKeyOpenSsl;
|
|
|
| // Base key class for all OpenSSL keys, used to safely cast between types. Each
|
| @@ -23,6 +27,7 @@ class KeyOpenSsl : public blink::WebCryptoKeyHandle {
|
| virtual ~KeyOpenSsl();
|
|
|
| virtual SymKeyOpenSsl* AsSymKey();
|
| + virtual AsymKeyOpenSsl* AsAsymKey();
|
|
|
| const std::vector<uint8>& serialized_key_data() const {
|
| return serialized_key_data_;
|
| @@ -49,6 +54,24 @@ class SymKeyOpenSsl : public KeyOpenSsl {
|
| DISALLOW_COPY_AND_ASSIGN(SymKeyOpenSsl);
|
| };
|
|
|
| +class AsymKeyOpenSsl : public KeyOpenSsl {
|
| + public:
|
| + virtual ~AsymKeyOpenSsl();
|
| + AsymKeyOpenSsl(crypto::ScopedEVP_PKEY key,
|
| + const CryptoData& serialized_key_data);
|
| +
|
| + static AsymKeyOpenSsl* Cast(const blink::WebCryptoKey& key);
|
| +
|
| + virtual AsymKeyOpenSsl* AsAsymKey() OVERRIDE;
|
| +
|
| + EVP_PKEY* key() { return key_.get(); }
|
| +
|
| + private:
|
| + crypto::ScopedEVP_PKEY key_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(AsymKeyOpenSsl);
|
| +};
|
| +
|
| } // namespace webcrypto
|
|
|
| } // namespace content
|
|
|