Commit Graph

27 Commits

Author SHA1 Message Date
Lu Chen
ad81d517a5 Fix build to include ecmg example 2020-09-25 11:33:21 -07:00
Lu Chen
90bbcb4b4d Add custom key fetcher callback to Simulcrypt ECMG 2020-09-18 18:34:38 -07:00
Lu Chen
02c1c8adf5 Minor fix 2020-09-16 11:31:34 -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
d71d62d272 Update SimulCrypt ECMG on injecting entitlement keys 2020-02-14 15:46:03 -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
6a1fcfa108 1) Removes dependency of common/status.h from wv_cas_types.
2) Do not use glogs in example binary code.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=229984175
2019-01-18 13:32:11 -08:00
Fang Yu
c20687acf3 1) Do not use gflags in the example binary code.
2) Also surface wv_cas_key_fetcher_example to partner.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=229965302
2019-01-18 11:43:12 -08:00
Fang Yu
e7173c82cd 1) Change return type to WvCasStatus for functions in wv_cas_types.cc.
2) Add a binary wv_cas_types_example.
3) Surface wv_cas_key_fetcher *source code* to partner to serve as an example of how they would make a HTTP request to acquire an entitlement key from license server.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=229953562
2019-01-18 10:41:13 -08:00
Fang Yu
e35ce1c32e Update hardcoded default content_id and provider to match the test CAS content we have setup in Staging and UAT.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=226935596
2018-12-26 15:22:36 -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
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
fb96918196 Print uint16 as \x01 not \x1
-------------
Allow the usage of different entitlement keys to wrap even vs. odd key.

-------------
(1) Change parameter type from 'string' to 'const char* const' to handle possible '\x00' (Nul char) byte in the input.
(2) Check size of generated ECM string, return error if the size is not as expected.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=220172089
2018-11-05 14:26:39 -08:00
Fang Yu
581ae9080d Be clear it is DVB_CSA2 we are supporting right now. There shouldn't be anyone using DVB_CSA anymore, DVB_CSA3 is in the future.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219867168
2018-11-02 16:23:11 -07:00
Fang Yu
0441c0b8d4 Add a few more checks for "key length" and "iv length".
-------------
Pad key value when crypto_mode is DVB_CSA, so that the key length is always 16 bytes.

-------------
Minor comment and example code update.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219860612
2018-11-02 14:23:38 -07:00
Fang Yu
5ac3c5a95b (1) Move the CryptoMode enum definition to media_cas_packager_sdk partners can use it when calling libraries in the SDK.
(2) Add a new enum value for kDvbCsa.
(3) Allow caller to specify CTR, CBC, as well as CSA when using the ecm genertor from the SDK.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219707788
2018-11-01 15:24:51 -07:00
Fang Yu
8c474ebada Do NOT expose the Simulcrypt client/server binary in the SDK yet, they are not ready yet.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219539981
2018-10-31 14:42:00 -07:00
Fang Yu
051a520776 Create a WvCasStatus to be used as return type of libraries in media_cas_packager_sdk.
Following example: []/video/widevine/export/provisioning_sdk/public/provisioning_status.h
and
[]/video/widevine/export/exported_root/util/status.h

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218918745
2018-10-26 15:00:41 -07:00
Fang Yu
70f62ed75e (1) Return a boolean instead of util::Status for methods in wv_cas_ecm.h
(2) Update wv_cas_ecm_example to NOT depend on ABSL

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218884631
2018-10-26 11:23:12 -07: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
fcdd9fa38c Implement a set of "Simplified APIs" for ECM generation for castlabs.com.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217601738
2018-10-17 16:50:08 -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