Index: content/child/webcrypto/openssl/util_openssl.h |
diff --git a/content/child/webcrypto/openssl/util_openssl.h b/content/child/webcrypto/openssl/util_openssl.h |
index 49277fdedd49c6ef173ba8f76aa0a4879563410b..1dfc9dbb21577a73d51cd59823c36e0739de5809 100644 |
--- a/content/child/webcrypto/openssl/util_openssl.h |
+++ b/content/child/webcrypto/openssl/util_openssl.h |
@@ -9,6 +9,7 @@ |
#include <openssl/ossl_typ.h> |
+#include "crypto/scoped_openssl_types.h" |
#include "third_party/WebKit/public/platform/WebCryptoAlgorithm.h" |
#include "third_party/WebKit/public/platform/WebCryptoKey.h" |
@@ -38,6 +39,40 @@ Status AeadEncryptDecrypt(EncryptOrDecrypt mode, |
const EVP_AEAD* aead_alg, |
std::vector<uint8_t>* buffer); |
+// Creates a WebCrypto public key given an EVP_PKEY. This step includes |
+// exporting the key to SPKI format, for use by serialization later. |
+Status CreateWebCryptoPublicKey( |
+ crypto::ScopedEVP_PKEY public_key, |
+ const blink::WebCryptoKeyAlgorithm& algorithm, |
+ bool extractable, |
+ blink::WebCryptoKeyUsageMask usages, |
+ blink::WebCryptoKey* key); |
+ |
+// Creates a WebCrypto private key given an EVP_PKEY. This step includes |
+// exporting the key to PKCS8 format, for use by serialization later. |
+Status CreateWebCryptoPrivateKey( |
+ crypto::ScopedEVP_PKEY private_key, |
+ const blink::WebCryptoKeyAlgorithm& algorithm, |
+ bool extractable, |
+ blink::WebCryptoKeyUsageMask usages, |
+ blink::WebCryptoKey* key); |
+ |
+// Imports SPKI bytes to an EVP_PKEY for a public key. The resulting asymmetric |
+// key may be invalid, and should be verified using something like |
+// RSA_check_key(). The only validation performed by this function is to ensure |
+// the key type matched |expected_pkey_id|. |
+Status ImportUnverifiedPkeyFromSpki(const CryptoData& key_data, |
+ int expected_pkey_id, |
+ crypto::ScopedEVP_PKEY* pkey); |
+ |
+// Imports PKCS8 bytes to an EVP_PKEY for a private key. The resulting |
+// asymmetric key may be invalid, and should be verified using something like |
+// RSA_check_key(). The only validation performed by this function is to ensure |
+// the key type matched |expected_pkey_id|. |
+Status ImportUnverifiedPkeyFromPkcs8(const CryptoData& key_data, |
+ int expected_pkey_id, |
+ crypto::ScopedEVP_PKEY* pkey); |
+ |
} // namespace webcrypto |
} // namespace content |