Index: media/cdm/json_web_key_unittest.cc |
diff --git a/media/cdm/json_web_key_unittest.cc b/media/cdm/json_web_key_unittest.cc |
index 57a57c290ca7bb5ee1157f62bf2f31ba0da92052..0eccc486a0dc43127074b995019eb1dedb9996d3 100644 |
--- a/media/cdm/json_web_key_unittest.cc |
+++ b/media/cdm/json_web_key_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "media/cdm/json_web_key.h" |
+#include "base/base64.h" |
#include "base/logging.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -125,7 +126,7 @@ TEST_F(JSONWebKeyTest, ExtractValidJWKKeys) { |
" \"kty\": \"oct\"," |
" \"alg\": \"A128KW\"," |
" \"kid\": \"JCUmJygpKissLS4vMA\"," |
- " \"k\":\"MTIzNDU2Nzg5Ojs8PT4/QA\"" |
+ " \"k\":\"MTIzNDU2Nzg5Ojs8PT4_QA\"" |
" }" |
" ]" |
"}"; |
@@ -152,7 +153,7 @@ TEST_F(JSONWebKeyTest, ExtractValidJWKKeys) { |
" \"kty\": \"oct\"," |
" \"alg\": \"A128KW\"," |
" \"kid\": \"JCUmJygpKissLS4vMA\"," |
- " \"k\":\"MTIzNDU2Nzg5Ojs8PT4/QA\"" |
+ " \"k\":\"MTIzNDU2Nzg5Ojs8PT4_QA\"" |
" }" |
" ]" |
"}"; |
@@ -471,5 +472,27 @@ TEST_F(JSONWebKeyTest, ExtractLicense) { |
ExtractKeyFromLicenseAndExpect("{\"kids\":[\"!@#$%^&*()\"]}", false, NULL, 0); |
} |
+TEST_F(JSONWebKeyTest, Base64UrlEncoding) { |
ddorwin
2015/02/19 04:45:56
Ideally, we'd have both special characters. We can
jrummell
2015/02/19 18:20:07
Found one.
|
+ const uint8 data1[] = { 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, |
+ 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03 }; |
+ |
+ // Verify that |data1| contains invalid base64url characters when converted |
+ // to base64. |
+ std::string encoded_text; |
+ base::Base64Encode( |
+ std::string(reinterpret_cast<const char*>(&data1[0]), arraysize(data1)), |
+ &encoded_text); |
+ EXPECT_NE(encoded_text.find('+'), std::string::npos); |
ddorwin
2015/02/19 04:45:56
Does the encode give us padding? If so, we can che
jrummell
2015/02/19 18:20:07
Added extra case.
|
+ EXPECT_EQ(encoded_text.find('-'), std::string::npos); |
+ |
+ CreateLicenseAndExpect( |
+ data1, arraysize(data1), MediaKeys::TEMPORARY_SESSION, |
+ "{\"kids\":[\"flcdA35XHQN-Vx0DflcdAw\"],\"type\":\"temporary\"}"); |
+ |
+ ExtractKeyFromLicenseAndExpect( |
+ "{\"kids\":[\"flcdA35XHQN-Vx0DflcdAw\"],\"type\":\"temporary\"}", true, |
+ data1, arraysize(data1)); |
+} |
+ |
} // namespace media |