Update to support OEMCrypto v16 with ODK
This commit is contained in:
@@ -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",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user