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

Issue 10535029: Add support for encrypted WebM files as defined in the RFC. (Closed)

Created:
8 years, 6 months ago by fgalligan1
Modified:
8 years, 5 months ago
Reviewers:
xhwang, ddorwin, Tom Finegan
CC:
chromium-reviews, feature-media-reviews_chromium.org, jshin+watch_chromium.org, strobe_
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

Add support for encrypted WebM files as defined in the RFC. The WebM parser now reads the HMAC and IV from every encrypted Block and stores that information in the DecryptorConfig object. Added two new elements ContentEncAESSettings and AESSettingsCipherMode used by encrypted WebM files. BUG=119845 TEST=media_unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=147169 Committed as https://chromiumcodereview.appspot.com/10810026

Patch Set 1 #

Total comments: 14

Patch Set 2 : Added support for RFC encrypted WebM to decryptor. #

Patch Set 3 : Rebase PS2 onto master. #

Patch Set 4 : Add OVERRIDE and fix a few issues. #

Patch Set 5 : Add more OVERRIDEs. #

Patch Set 6 : Add tests for encrypted WebM RFC. #

Patch Set 7 : Moved decryptor from media/base to media/crypto. #

Patch Set 8 : Updated encrypted WebM test data. #

Total comments: 22

Patch Set 9 : –Fix DecodeEncryptedFrame_WrongKey test. #

Total comments: 10

Patch Set 10 : Addressing comments in the CL. #

Total comments: 6

Patch Set 11 : Rebase to master #

Total comments: 122

Patch Set 12 : Addressing comments in the CL. #

Total comments: 47

Patch Set 13 : Addressing comments from Patch Set 12. #

Total comments: 23

Patch Set 14 : Addressing comments from Patch Set 13. #

Total comments: 6

Patch Set 15 : Addressing comments from Patch Set 14. #

Total comments: 2

Patch Set 16 : Rebase to master #

Patch Set 17 : Fix uint64 literal. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+729 lines, -138 lines) Patch
M media/base/decrypt_config.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +35 lines, -4 lines 0 comments Download
M media/base/decrypt_config.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +17 lines, -3 lines 0 comments Download
M media/crypto/aes_decryptor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +43 lines, -3 lines 0 comments Download
M media/crypto/aes_decryptor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 chunks +162 lines, -24 lines 0 comments Download
M media/crypto/aes_decryptor_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +297 lines, -71 lines 0 comments Download
M media/filters/ffmpeg_video_decoder_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7 chunks +63 lines, -24 lines 0 comments Download
M media/filters/pipeline_integration_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +11 lines, -5 lines 0 comments Download
M media/webm/webm_cluster_parser.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +4 lines, -0 lines 0 comments Download
M media/webm/webm_cluster_parser.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +40 lines, -3 lines 0 comments Download
M media/webm/webm_constants.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +7 lines, -0 lines 0 comments Download
M media/webm/webm_content_encodings.h View 1 3 chunks +9 lines, -0 lines 0 comments Download
M media/webm/webm_content_encodings.cc View 1 chunk +2 lines, -1 line 0 comments Download
M media/webm/webm_content_encodings_client.cc View 1 3 chunks +29 lines, -0 lines 0 comments Download
M media/webm/webm_parser.cc View 1 2 3 4 5 6 7 8 9 4 chunks +9 lines, -0 lines 0 comments Download
M media/webm/webm_stream_parser.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 28 (0 generated)
xhwang
Some preliminary comments. https://chromiumcodereview.appspot.com/10535029/diff/1/media/webm/webm_cluster_parser.cc File media/webm/webm_cluster_parser.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/1/media/webm/webm_cluster_parser.cc#newcode189 media/webm/webm_cluster_parser.cc:189: (cluster_timecode_ + timecode) * timecode_multiplier_); I ...
8 years, 6 months ago (2012-06-06 20:54:06 UTC) #1
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/1/media/webm/webm_cluster_parser.cc File media/webm/webm_cluster_parser.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/1/media/webm/webm_cluster_parser.cc#newcode189 media/webm/webm_cluster_parser.cc:189: (cluster_timecode_ + timecode) * timecode_multiplier_); On 2012/06/06 20:54:06, xhwang ...
8 years, 6 months ago (2012-06-08 21:02:38 UTC) #2
xhwang
http://codereview.chromium.org/10535029/diff/2002/media/base/decrypt_config.h File media/base/decrypt_config.h (right): http://codereview.chromium.org/10535029/diff/2002/media/base/decrypt_config.h#newcode19 media/base/decrypt_config.h:19: // http://wiki.webmproject.org/encryption/webm-encryption-rfc. Remove the trailing "." as people may ...
8 years, 6 months ago (2012-06-14 19:42:27 UTC) #3
ddorwin
Mainly high-level comments after discussions with xhwang. I didn't review much of the code yet. ...
8 years, 6 months ago (2012-06-14 21:41:24 UTC) #4
ddorwin
Is there an RFC version or date you can reference in the title or description? ...
8 years, 6 months ago (2012-06-14 21:44:45 UTC) #5
Tom Finegan
Just some nits from reading through comments as I'm working on ppapi CDM stuff. https://chromiumcodereview.appspot.com/10535029/diff/4005/media/crypto/aes_decryptor.cc ...
8 years, 6 months ago (2012-06-15 15:09:08 UTC) #6
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/2002/media/base/decrypt_config.h File media/base/decrypt_config.h (right): https://chromiumcodereview.appspot.com/10535029/diff/2002/media/base/decrypt_config.h#newcode19 media/base/decrypt_config.h:19: // http://wiki.webmproject.org/encryption/webm-encryption-rfc. On 2012/06/14 19:42:27, xhwang wrote: > Remove ...
8 years, 5 months ago (2012-07-03 22:00:15 UTC) #7
ddorwin
Reviewed the first 4 files. More tomorrow. Some of the comments relate to how we ...
8 years, 5 months ago (2012-07-10 01:12:19 UTC) #8
xhwang
http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc#newcode28 media/crypto/aes_decryptor.cc:28: int key_size) { Can we pass |secret| and |seed| ...
8 years, 5 months ago (2012-07-10 06:31:25 UTC) #9
ddorwin
Finished reviewing, plus one more comment in one one of the files I already reviewed. ...
8 years, 5 months ago (2012-07-11 01:00:26 UTC) #10
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/17001/media/base/decrypt_config.h File media/base/decrypt_config.h (right): https://chromiumcodereview.appspot.com/10535029/diff/17001/media/base/decrypt_config.h#newcode17 media/base/decrypt_config.h:17: DecryptConfig(const uint8* data_to_verify, int data_to_verify_size, On 2012/07/10 01:12:20, ddorwin ...
8 years, 5 months ago (2012-07-11 22:06:33 UTC) #11
ddorwin
http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc#newcode214 media/crypto/aes_decryptor.cc:214: HmacEncryptionKeys* keys = new HmacEncryptionKeys(key_string); On 2012/07/11 22:06:33, fgalligan1 ...
8 years, 5 months ago (2012-07-13 00:47:59 UTC) #12
xhwang
http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc#newcode214 media/crypto/aes_decryptor.cc:214: HmacEncryptionKeys* keys = new HmacEncryptionKeys(key_string); On 2012/07/13 00:48:00, ddorwin ...
8 years, 5 months ago (2012-07-13 01:23:21 UTC) #13
xhwang
http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): http://codereview.chromium.org/10535029/diff/17001/media/crypto/aes_decryptor.cc#newcode214 media/crypto/aes_decryptor.cc:214: HmacEncryptionKeys* keys = new HmacEncryptionKeys(key_string); On 2012/07/13 01:23:21, xhwang ...
8 years, 5 months ago (2012-07-13 01:28:10 UTC) #14
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/19009/media/base/decrypt_config.h File media/base/decrypt_config.h (right): https://chromiumcodereview.appspot.com/10535029/diff/19009/media/base/decrypt_config.h#newcode17 media/base/decrypt_config.h:17: // |key_id| is the initialization data defined in the ...
8 years, 5 months ago (2012-07-13 21:40:41 UTC) #15
xhwang
http://codereview.chromium.org/10535029/diff/38001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): http://codereview.chromium.org/10535029/diff/38001/media/crypto/aes_decryptor.cc#newcode290 media/crypto/aes_decryptor.cc:290: } nit: return true here and eliminate the following ...
8 years, 5 months ago (2012-07-14 00:05:22 UTC) #16
ddorwin
Thanks. Just minor comments. https://chromiumcodereview.appspot.com/10535029/diff/19009/media/crypto/aes_decryptor_unittest.cc File media/crypto/aes_decryptor_unittest.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/19009/media/crypto/aes_decryptor_unittest.cc#newcode151 media/crypto/aes_decryptor_unittest.cc:151: static std::string GenerateCounterBlock(const uint8* iv, ...
8 years, 5 months ago (2012-07-14 00:50:31 UTC) #17
xhwang
https://chromiumcodereview.appspot.com/10535029/diff/38001/media/crypto/aes_decryptor.cc File media/crypto/aes_decryptor.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/38001/media/crypto/aes_decryptor.cc#newcode249 media/crypto/aes_decryptor.cc:249: return NULL; On 2012/07/14 00:50:31, ddorwin wrote: > Until ...
8 years, 5 months ago (2012-07-14 01:02:31 UTC) #18
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/19009/media/crypto/aes_decryptor_unittest.cc File media/crypto/aes_decryptor_unittest.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/19009/media/crypto/aes_decryptor_unittest.cc#newcode151 media/crypto/aes_decryptor_unittest.cc:151: static std::string GenerateCounterBlock(const uint8* iv, int iv_size) { On ...
8 years, 5 months ago (2012-07-16 23:51:41 UTC) #19
ddorwin
LGTM with comments. Thanks. https://chromiumcodereview.appspot.com/10535029/diff/38001/media/base/decrypt_config.h File media/base/decrypt_config.h (right): https://chromiumcodereview.appspot.com/10535029/diff/38001/media/base/decrypt_config.h#newcode39 media/base/decrypt_config.h:39: scoped_array<uint8> key_id_; On 2012/07/16 23:51:42, ...
8 years, 5 months ago (2012-07-17 00:19:52 UTC) #20
xhwang
LGTM On 2012/07/17 00:19:52, ddorwin wrote: > LGTM with comments. Thanks. > > https://chromiumcodereview.appspot.com/10535029/diff/38001/media/base/decrypt_config.h > ...
8 years, 5 months ago (2012-07-17 00:26:37 UTC) #21
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/38001/media/base/decrypt_config.h File media/base/decrypt_config.h (right): https://chromiumcodereview.appspot.com/10535029/diff/38001/media/base/decrypt_config.h#newcode39 media/base/decrypt_config.h:39: scoped_array<uint8> key_id_; On 2012/07/17 00:19:52, ddorwin wrote: > On ...
8 years, 5 months ago (2012-07-17 16:34:56 UTC) #22
ddorwin
https://chromiumcodereview.appspot.com/10535029/diff/51004/media/base/decrypt_config.cc File media/base/decrypt_config.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/51004/media/base/decrypt_config.cc#newcode19 media/base/decrypt_config.cc:19: checksum_(new uint8[checksum_size]), This could be a 0-sized array. Something ...
8 years, 5 months ago (2012-07-17 16:57:45 UTC) #23
fgalligan1
https://chromiumcodereview.appspot.com/10535029/diff/51004/media/base/decrypt_config.cc File media/base/decrypt_config.cc (right): https://chromiumcodereview.appspot.com/10535029/diff/51004/media/base/decrypt_config.cc#newcode19 media/base/decrypt_config.cc:19: checksum_(new uint8[checksum_size]), On 2012/07/17 16:57:45, ddorwin wrote: > This ...
8 years, 5 months ago (2012-07-17 18:53:01 UTC) #24
ddorwin
lgtm Assuming all but one change are due to the rebase.
8 years, 5 months ago (2012-07-18 00:59:22 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/fgalligan@chromium.org/10535029/47008
8 years, 5 months ago (2012-07-18 01:27:10 UTC) #26
commit-bot: I haz the power
Change committed as 147169
8 years, 5 months ago (2012-07-18 02:58:10 UTC) #27
commit-bot: I haz the power
8 years, 5 months ago (2012-07-19 19:29:39 UTC) #28

Powered by Google App Engine
This is Rietveld 408576698