Chromium Code Reviews| Index: content/child/webcrypto/test/rsa_ssa_unittest.cc |
| diff --git a/content/child/webcrypto/test/rsa_ssa_unittest.cc b/content/child/webcrypto/test/rsa_ssa_unittest.cc |
| index 1733ae78e3a9ce92aef0d0e05bb9d6edd9f4399b..a8f968193f7423696d85f7fd4639be54cab8b895 100644 |
| --- a/content/child/webcrypto/test/rsa_ssa_unittest.cc |
| +++ b/content/child/webcrypto/test/rsa_ssa_unittest.cc |
| @@ -823,6 +823,62 @@ TEST(WebCryptoRsaSsaTest, GenerateKeyPairEmptyUsages) { |
| true, 0, &public_key, &private_key)); |
| } |
| +TEST(WebCryptoRsaSsaTest, ImportKeyEmptyUsages) { |
|
eroman
2014/12/17 01:23:51
Add a test for
if (!SupportsRsaPrivateKeyImport()
Habib Virji
2014/12/17 15:41:54
Done.
|
| + blink::WebCryptoKey public_key; |
| + blink::WebCryptoKey private_key; |
| + blink::WebCryptoKey key; |
|
eroman
2014/12/17 01:23:51
It is unclear what this variable means. Can you in
Habib Virji
2014/12/17 15:41:54
Done.
|
| + |
| + // Public without usage does not throw an error. |
| + ASSERT_EQ(Status::Success(), |
|
eroman
2014/12/17 01:23:51
It would be good if each of these successful Impor
Habib Virji
2014/12/17 15:41:54
Done.
|
| + ImportKey(blink::WebCryptoKeyFormatSpki, |
| + CryptoData(HexStringToBytes(kPublicKeySpkiDerHex)), |
| + CreateRsaHashedImportAlgorithm( |
| + blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, |
| + blink::WebCryptoAlgorithmIdSha256), |
| + true, 0, &public_key)); |
| + |
| + // Private empty usage will throw an error. |
| + ASSERT_EQ(Status::ErrorCreateKeyEmptyUsages(), |
| + ImportKey(blink::WebCryptoKeyFormatPkcs8, |
| + CryptoData(HexStringToBytes(kPrivateKeyPkcs8DerHex)), |
| + CreateRsaHashedImportAlgorithm( |
| + blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, |
| + blink::WebCryptoAlgorithmIdSha1), |
| + true, 0, &private_key)); |
| + |
| + std::vector<uint8_t> public_jwk; |
| + ASSERT_EQ(Status::Success(), |
| + ExportKey(blink::WebCryptoKeyFormatJwk, public_key, &public_jwk)); |
| + |
| + ASSERT_EQ(Status::Success(), |
| + ImportKey(blink::WebCryptoKeyFormatJwk, |
| + CryptoData(public_jwk), |
| + CreateRsaHashedImportAlgorithm( |
| + blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, |
| + blink::WebCryptoAlgorithmIdSha256), |
| + true, 0, &key)); |
| + |
| + // With correct usage to get correct imported private_key |
| + std::vector<uint8_t> private_jwk; |
| + ImportKey(blink::WebCryptoKeyFormatPkcs8, |
| + CryptoData(HexStringToBytes(kPrivateKeyPkcs8DerHex)), |
| + CreateRsaHashedImportAlgorithm( |
| + blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, |
| + blink::WebCryptoAlgorithmIdSha1), |
| + true, blink::WebCryptoKeyUsageSign, &private_key); |
| + |
| + ASSERT_EQ(Status::Success(), |
| + ExportKey(blink::WebCryptoKeyFormatJwk, private_key, &private_jwk)); |
| + |
| + ASSERT_EQ(Status::ErrorCreateKeyEmptyUsages(), |
| + ImportKey(blink::WebCryptoKeyFormatJwk, |
| + CryptoData(private_jwk), |
| + CreateRsaHashedImportAlgorithm( |
| + blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, |
| + blink::WebCryptoAlgorithmIdSha1), |
| + true, 0, &key)); |
| +} |
| + |
| TEST(WebCryptoRsaSsaTest, ImportExportJwkRsaPublicKey) { |
| struct TestCase { |
| const blink::WebCryptoAlgorithmId hash; |