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

Side by Side Diff: content/renderer/media/crypto/proxy_decryptor.cc

Issue 77413005: Remove support for non-JSON keys in AesDecryptor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add pipeline_integration_tests Created 7 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | media/cdm/aes_decryptor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/crypto/proxy_decryptor.h" 5 #include "content/renderer/media/crypto/proxy_decryptor.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // compatibility the error is not thrown, but rather reported as a 142 // compatibility the error is not thrown, but rather reported as a
143 // KeyError. 143 // KeyError.
144 key_error_cb_.Run(std::string(), media::MediaKeys::kUnknownError, 0); 144 key_error_cb_.Run(std::string(), media::MediaKeys::kUnknownError, 0);
145 return; 145 return;
146 } 146 }
147 147
148 // EME WD spec only supports a single array passed to the CDM. For 148 // EME WD spec only supports a single array passed to the CDM. For
149 // Clear Key using v0.1b, both arrays are used (|init_data| is key_id). 149 // Clear Key using v0.1b, both arrays are used (|init_data| is key_id).
150 // Since the EME WD spec supports the key as a JSON Web Key, 150 // Since the EME WD spec supports the key as a JSON Web Key,
151 // convert the 2 arrays to a JWK and pass it as the single array. 151 // convert the 2 arrays to a JWK and pass it as the single array.
152 // TODO(jrummell): When updating Decryptor interface to match WD, move the 152 if (is_clear_key_) {
153 // workaround for handling |init_data| == null here. 153 // Decryptor doesn't support empty key ID (see http://crbug.com/123265).
154 if (is_clear_key_ && init_data_length) { 154 // So ensure a non-empty value is passed.
155 if (!init_data) {
156 static const uint8 kDummyInitData[1] = {0};
157 init_data = kDummyInitData;
158 init_data_length = arraysize(kDummyInitData);
159 }
160
155 std::string jwk = 161 std::string jwk =
156 media::GenerateJWKSet(key, key_length, init_data, init_data_length); 162 media::GenerateJWKSet(key, key_length, init_data, init_data_length);
157 DCHECK(!jwk.empty()); 163 DCHECK(!jwk.empty());
158 media_keys_->AddKey(reference_id, 164 media_keys_->AddKey(reference_id,
159 reinterpret_cast<const uint8*>(jwk.data()), jwk.size(), 165 reinterpret_cast<const uint8*>(jwk.data()), jwk.size(),
160 NULL, 0); 166 NULL, 0);
161 return; 167 return;
162 } 168 }
163 169
164 media_keys_->AddKey(reference_id, key, key_length, NULL, 0); 170 media_keys_->AddKey(reference_id, key, key_length, NULL, 0);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 252
247 const std::string& ProxyDecryptor::LookupSessionId(uint32 reference_id) { 253 const std::string& ProxyDecryptor::LookupSessionId(uint32 reference_id) {
248 DCHECK_NE(reference_id, INVALID_REFERENCE_ID); 254 DCHECK_NE(reference_id, INVALID_REFERENCE_ID);
249 255
250 // Session may not exist if error happens during GenerateKeyRequest(). 256 // Session may not exist if error happens during GenerateKeyRequest().
251 SessionIdMap::iterator it = sessions_.find(reference_id); 257 SessionIdMap::iterator it = sessions_.find(reference_id);
252 return (it != sessions_.end()) ? it->second : EmptyString(); 258 return (it != sessions_.end()) ? it->second : EmptyString();
253 } 259 }
254 260
255 } // namespace content 261 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | media/cdm/aes_decryptor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698