Update to support OEMCrypto v16 with ODK

This commit is contained in:
KongQun Yang
2020-09-21 15:54:04 -07:00
parent 93265ab9d1
commit 69d813f0f1
203 changed files with 16337 additions and 2290 deletions

View File

@@ -41,9 +41,10 @@ cc_binary(
"//base",
"//common:aes_cbc_util",
"//common:file_util",
"//common:hash_algorithm_util",
"//common:random_util",
"//common:rsa_key",
"//protos/public:certificate_provisioning_proto",
"//protos/public:client_identification_proto",
"//protos/public:certificate_provisioning_cc_proto",
"//protos/public:client_identification_cc_proto",
],
)

View File

@@ -21,7 +21,6 @@ using widevine::kCertificateTypeTesting;
using widevine::OK;
using widevine::ProvisioningEngine;
using widevine::ProvisioningSession;
using widevine::SignedProvisioningMessage;
std::string GetContents(const std::string& file_name) {
if (file_name.empty()) {
@@ -96,10 +95,9 @@ int main(int argc, char** argv) {
// message is processed successfully; if ProcessMessage fails, they can be
// reused on another session.
std::unique_ptr<ProvisioningSession> session;
if (engine.NewProvisioningSession(SignedProvisioningMessage::PROVISIONING_30,
GetContents("example_data/device.public"),
GetContents("example_data/device.private"),
&session) != OK) {
if (engine.NewProvisioningSession(
GetContents("example_data/device.public"),
GetContents("example_data/device.private"), &session) != OK) {
std::cout << "Failed to create session." << std::endl;
return 1;
}

View File

@@ -13,6 +13,7 @@
#include "glog/logging.h"
#include "common/aes_cbc_util.h"
#include "common/file_util.h"
#include "common/hash_algorithm_util.h"
#include "common/random_util.h"
#include "common/rsa_key.h"
#include "protos/public/certificate_provisioning.pb.h"
@@ -36,7 +37,8 @@ namespace widevine {
bool GenerateProvisioningMessage(const std::string& service_public_key,
const std::string& certificate,
const std::string& private_key, std::string* message) {
const std::string& private_key,
std::string* message) {
ClientIdentification client_id;
client_id.set_token(certificate);
client_id.set_type(ClientIdentification::OEM_DEVICE_CERTIFICATE);
@@ -64,8 +66,10 @@ bool GenerateProvisioningMessage(const std::string& service_public_key,
SignedProvisioningMessage signed_message;
signed_message.set_message(request.SerializeAsString());
std::unique_ptr<RsaPrivateKey> signer(RsaPrivateKey::Create(private_key));
CHECK(signer->GenerateSignature(signed_message.message(),
signed_message.mutable_signature()));
CHECK(signer->GenerateSignature(
signed_message.message(),
HashAlgorithmProtoToEnum(signed_message.hash_algorithm()),
signed_message.mutable_signature()));
*message = signed_message.SerializeAsString();
return true;
}