This is a merge of the following CLs: Style clean up in oemcrypto/mock https://widevine-internal-review.googlesource.com/#/c/10660 Split off default keybox. https://widevine-internal-review.googlesource.com/#/c/10661/ Split off several properties from CryptoEngine. https://widevine-internal-review.googlesource.com/#/c/10662/ Split off Keybox installation. https://widevine-internal-review.googlesource.com/#/c/10680/ Wii-U build compatibility fixes. https://widevine-internal-review.googlesource.com/#/c/10720/ Fix style issues in oemcrypto_logging_test. https://widevine-internal-review.googlesource.com/#/c/10824/ Correct OEMCrypto error codes in the mock. https://widevine-internal-review.googlesource.com/#/c/10821/ Enable logging during OEMCrypto unit tests. https://widevine-internal-review.googlesource.com/#/c/10833/ Wait to create usage table path until needed. https://widevine-internal-review.googlesource.com/#/c/10831/ Allow keybox installation to be unimplemented. https://widevine-internal-review.googlesource.com/#/c/10850/ Minor clean up in the OEMCrypto header. https://widevine-internal-review.googlesource.com/#/c/10921/ Add usage table device property to the mock oemcrypto https://widevine-internal-review.googlesource.com/#/c/11092/ Change-Id: I02a818a620bcd4bd2291f1b3c0ac9308ae444319
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// Copyright 2013 Google Inc. All Rights Reserved.
|
|
//
|
|
// Mock implementation of OEMCrypto APIs
|
|
//
|
|
#ifndef OEMCRYPTO_KEYBOX_MOCK_H_
|
|
#define OEMCRYPTO_KEYBOX_MOCK_H_
|
|
|
|
#include "oemcrypto_key_mock.h"
|
|
|
|
namespace wvoec_mock {
|
|
|
|
const int DEVICE_KEY_LENGTH = 16;
|
|
typedef uint8_t WvKeyboxKey[DEVICE_KEY_LENGTH];
|
|
|
|
const int KEY_DATA_LENGTH = 72;
|
|
typedef uint8_t WvKeyboxKeyData[KEY_DATA_LENGTH];
|
|
|
|
enum KeyboxError { NO_ERROR, BAD_CRC, BAD_MAGIC, OTHER_ERROR };
|
|
|
|
// Widevine keybox
|
|
class WvKeybox {
|
|
public:
|
|
WvKeybox();
|
|
~WvKeybox() {}
|
|
|
|
KeyboxError Validate();
|
|
const std::vector<uint8_t>& device_id() { return device_id_; }
|
|
std::vector<uint8_t>& device_key() { return device_key_; }
|
|
const WvKeyboxKeyData& key_data() { return key_data_; }
|
|
size_t key_data_length() { return KEY_DATA_LENGTH; }
|
|
bool InstallKeybox(const uint8_t* keybox, size_t keyBoxLength);
|
|
|
|
private:
|
|
bool Prepare();
|
|
|
|
bool valid_;
|
|
std::vector<uint8_t> device_id_;
|
|
std::vector<uint8_t> device_key_;
|
|
WvKeyboxKeyData key_data_;
|
|
uint8_t magic_[4];
|
|
uint8_t crc_[4];
|
|
};
|
|
|
|
} // namespace wvoec_mock
|
|
|
|
#endif // OEMCRYPTO_KEYBOX_MOCK_H_
|