Index: content/renderer/webcrypto/shared_crypto.cc |
diff --git a/content/renderer/webcrypto/shared_crypto.cc b/content/renderer/webcrypto/shared_crypto.cc |
index fec723909d992b40f842b49004e875c20c77bb38..b960c7fdaa7d01bf2044f9225fc3ac3a65ab6821 100644 |
--- a/content/renderer/webcrypto/shared_crypto.cc |
+++ b/content/renderer/webcrypto/shared_crypto.cc |
@@ -94,13 +94,13 @@ Status EncryptDecryptAesGcm(EncryptOrDecrypt mode, |
if (!params) |
return Status::ErrorUnexpected(); |
- // TODO(eroman): The spec doesn't define the default value. Assume 128 for now |
- // since that is the maximum tag length: |
- // http://www.w3.org/2012/webcrypto/track/issues/46 |
unsigned int tag_length_bits = 128; |
if (params->hasTagLengthBits()) |
tag_length_bits = params->optionalTagLengthBits(); |
- if (tag_length_bits > 128) |
+ |
+ if (tag_length_bits != 32 && tag_length_bits != 64 && tag_length_bits != 96 && |
+ tag_length_bits != 104 && tag_length_bits != 112 && |
+ tag_length_bits != 120 && tag_length_bits != 128) |
return Status::ErrorInvalidAesGcmTagLength(); |
return platform::EncryptDecryptAesGcm( |