24 Commits

Author SHA1 Message Date
Lu Chen
c387750897 Add AES-ECB as a supported encryption mode in ECMG 2021-09-07 18:08:13 -07:00
Lu Chen
b3a5fff77d Entitlement rotation support
Updates also include:
- Add APIs to query current Simulcrypt channel & stream status;
- EMM format change (used only to carry fingerprinting and service
blocking info);
- Key fetcher example to use curl key fetcher.
2021-06-29 14:51:49 -07:00
Lu Chen
62777d7d3b Support for group license
Content keys in ECM v3 can now additionally be encrypted by group
entitlement keys.
2021-03-04 14:35:08 -08:00
Lu Chen
79e39b482d Add support for Widevine ECM v3
Widevine ECM v3 is redesigned mainly based on protobuf, and supports new features including carrying fingerprinting and service blocking information. Existing clients must upgrade the Widevine CAS plugin to use the new ECM v3.
2020-12-14 09:49:52 -08:00
Lu Chen
eb0b70b26b Fix build to include ecmg example 2020-09-25 10:48:59 -07:00
Lu Chen
90bbcb4b4d Add custom key fetcher callback to Simulcrypt ECMG 2020-09-18 18:34:38 -07:00
Lu Chen
28de00389b Add EMMG to carry fingerprinting and service blocking info 2020-09-15 10:15:51 -07:00
Lu Chen
06c81c67d2 Add EMMG to carry fingerprinting and service blocking info 2020-09-15 09:57:43 -07:00
Lu Chen
3707ffffee Add EMMG to carry fingerprinting and service blocking info 2020-09-15 09:48:33 -07:00
Lu Chen
1ce468e5ba Add EMMG to carry fingerprinting and service blocking info 2020-09-15 09:16:59 -07:00
Lu Chen
785df31261 Update Simulcrypt ECMg 2020-07-24 18:17:12 -07:00
Lu Chen
ed5a1d5db1 Minor change 2020-02-25 13:16:44 -08:00
Lu Chen
688dd62dae Fix external build issue 2020-02-14 14:08:15 -08:00
Lu Chen
77b2fcc678 Decouple key fetcher; Update ECMG API 2020-02-11 18:08:06 -08:00
Lu Chen
ac564bb46f Update includes and BUILD 2020-02-05 11:21:51 -08:00
Lu Chen
5c42bf9b7f Replace hardcoded parameters 2020-01-27 16:05:15 -08:00
Fang Yu
cec860dc52 IWYU tool
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=231629062
2019-01-30 13:25:05 -08:00
Fang Yu
bc68878bdf Minimal implementation of Widevine MediaCAS ECMG.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=226515998
2018-12-21 14:25:01 -08:00
Fang Yu
9750711fbd util/status.h -> common/status.h 2018-12-07 16:52:30 -08:00
Fang Yu
f3be3be9dd util:status -> common:status 2018-12-07 16:45:21 -08:00
Fang Yu
121d554c20 Change order of loading certificates from pk7 cert
-------------
Add libcurl to media_cas_packager_sdk. libcurl will later be used by a key fetcher to retrieve entitlement key from License Server using a HTTP request.

-------------
Add a function named parsehelper to parse DCSL from the key smith response.

-------------
Move wv_cas_key_fetcher to media_cas_packager_sdk so partners can use it request entitlement keys from License Server.

-------------
Add pkcs7 write method to x509_cert.cc

-------------
Update boringssl_repo to latest in master-with-bazel

-------------
Add a TsPacket class to media_cas_packager_sdk to allow the construction of a ECM TS packet in the SDK.

-------------
Move InsertEcm() from our internal CAS directory to the media_cas_packager_sdk, to be used to build a ECM TS packet by the SDK.

-------------
Add METADATA in common folder

-------------
Refactoring of certificate verification into DrmRootCertificate.

-------------
Extend the default duration of leaf certificates.

-------------
Fix moe_test

-------------
Add a new method to WvCasEcm to allow partner to create a TS packet carrying the generated ECM.

-------------
Change from SHA1 to SHA256 for Cast certificates

-------------
Update crypto mode enumeration to match WV ECM document

-------------
Fix the way we set the validity dates

-------------
Move exported_root/util/status to common/ to prepare for util::Status migration

Also added constructor/operator to copy from/to util::Status.

-------------
Add GenerateDCSLrequest function to certificate_util.h.

-------------
Fix build break

-------------
Allow 'table_id' (in the section header) be specified by caller of SDK method WvCasEcm::GenerateTsPacket().

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=224535399
2018-12-07 16:40:33 -08:00
Fang Yu
947b950d95 (1) Change wv_cas_ecm to allow 16 bytes of content_iv
(2) Remove "wrapping_iv" parameters from wv_cas_ecm
(3) Internally derive "wrapping_iv"s and "key_id"s
(4) Add an example binary for demo the usage of wv_cas_ecm

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218209010
2018-10-22 13:26:28 -07:00
Fang Yu
9962e87676 Specify widevine/media_cas_packager_sdk/presubmit in media_cas_packager_sdk METADATA file.
-------------
Moves ecm_generator to media_cas_packager_sdk/internal.

-------------
Add a simple TCP server listening on a port. My intention is to use this server to support the Simulcrypt APIs (TODO).

Also add a simple TCP client binary for testing the server and also demo how to call the Simulcrypt APIs (TODO).

-------------
If only a single key is in the ECM, it is the EVEN key. To make the code matches this understanding, change a parameter from 'false' to 'true'. But this change has NO impact on the produced ECM, regardless this parameter is 'false' or 'true' (i.e., whether using push_front or push_back), only a single key is in the ECM.

-------------
Add classes that process Simulcrypt ECMG messages
1) Stream_set-up
2) CW_provision

-------------
Renames server and client binaries.

-------------
Make ecmg call ecm_generator to generate ecm. The return of the ecm to Simulcrypt caller will be implemented in the next CL.

For now, using the 'key' (control word) in CW_provision message also as the 'key_id'.

-------------
Move common folder

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217358698
2018-10-17 11:42:32 -07:00
Fang Yu
ba0d63e2c1 Export media_cas_packager_sdk 2018-10-01 14:59:29 -07:00