namespace webcrypto {
-class PublicKeyNss;
-class PrivateKeyNss;
-
// Base class for an RSA algorithm whose keys additionaly have a hash parameter
// bound to them. Provides functionality for generating, importing, and
// exporting keys.
virtual const char* GetJwkAlgorithm(
const blink::WebCryptoAlgorithmId hash) const = 0;
- virtual Status VerifyKeyUsagesBeforeGenerateKeyPair(
- blink::WebCryptoKeyUsageMask combined_usage_mask,
- blink::WebCryptoKeyUsageMask* public_usage_mask,
- blink::WebCryptoKeyUsageMask* private_usage_mask) const OVERRIDE;
-
- virtual Status GenerateKeyPair(
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask public_usage_mask,
- blink::WebCryptoKeyUsageMask private_usage_mask,
- blink::WebCryptoKey* public_key,
- blink::WebCryptoKey* private_key) const OVERRIDE;
+ Status GenerateKey(const blink::WebCryptoAlgorithm& algorithm,
+ bool extractable,
+ blink::WebCryptoKeyUsageMask usages,
+ GenerateKeyResult* result) const override;
- virtual Status VerifyKeyUsagesBeforeImportKey(
+ Status VerifyKeyUsagesBeforeImportKey(
blink::WebCryptoKeyFormat format,
- blink::WebCryptoKeyUsageMask usage_mask) const OVERRIDE;
-
- virtual Status ImportKeyPkcs8(const CryptoData& key_data,
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask usage_mask,
- blink::WebCryptoKey* key) const OVERRIDE;
-
- virtual Status ImportKeySpki(const CryptoData& key_data,
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask usage_mask,
- blink::WebCryptoKey* key) const OVERRIDE;
-
- virtual Status ImportKeyJwk(const CryptoData& key_data,
- const blink::WebCryptoAlgorithm& algorithm,
- bool extractable,
- blink::WebCryptoKeyUsageMask usage_mask,
- blink::WebCryptoKey* key) const OVERRIDE;
-
- virtual Status ExportKeyPkcs8(const blink::WebCryptoKey& key,
- std::vector<uint8_t>* buffer) const OVERRIDE;
-
- virtual Status ExportKeySpki(const blink::WebCryptoKey& key,
- std::vector<uint8_t>* buffer) const OVERRIDE;
-
- virtual Status ExportKeyJwk(const blink::WebCryptoKey& key,
- std::vector<uint8_t>* buffer) const OVERRIDE;
+ blink::WebCryptoKeyUsageMask usages) const override;
+
+ Status ImportKeyPkcs8(const CryptoData& key_data,
+ const blink::WebCryptoAlgorithm& algorithm,
+ bool extractable,
+ blink::WebCryptoKeyUsageMask usages,
+ blink::WebCryptoKey* key) const override;
+
+ Status ImportKeySpki(const CryptoData& key_data,
+ const blink::WebCryptoAlgorithm& algorithm,
+ bool extractable,
+ blink::WebCryptoKeyUsageMask usages,
+ blink::WebCryptoKey* key) const override;
+
+ Status ImportKeyJwk(const CryptoData& key_data,
+ const blink::WebCryptoAlgorithm& algorithm,
+ bool extractable,
+ blink::WebCryptoKeyUsageMask usages,
+ blink::WebCryptoKey* key) const override;
+
+ Status ExportKeyPkcs8(const blink::WebCryptoKey& key,
+ std::vector<uint8_t>* buffer) const override;
+
+ Status ExportKeySpki(const blink::WebCryptoKey& key,
+ std::vector<uint8_t>* buffer) const override;
+
+ Status ExportKeyJwk(const blink::WebCryptoKey& key,
+ std::vector<uint8_t>* buffer) const override;
private:
blink::WebCryptoKeyUsageMask all_public_key_usages_;