Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(642)

Unified Diff: media/cdm/json_web_key_unittest.cc

Issue 934423002: Encode JSON key IDs and keys as base64url (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« media/cdm/json_web_key.cc ('K') | « media/cdm/json_web_key.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« media/cdm/json_web_key.cc ('K') | « media/cdm/json_web_key.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698