This change updates the copyright notice to make it more clear that the code is distribued under the Widevine Master License Agreement. It also updates the unit tests and sample code to correct the useage of AES 256. AES 256 is used to decrypt entitled content keys, but it is not used to decrypt key control blocks.
29 lines
826 B
C++
29 lines
826 B
C++
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine Master
|
|
// License Agreement.
|
|
|
|
#ifndef WV_KEYBOX_H_
|
|
#define WV_KEYBOX_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace wvoec_mock {
|
|
|
|
// This is the format of a Widevine keybox.
|
|
typedef struct { // 128 bytes total.
|
|
// C character string identifying the device. Null terminated.
|
|
uint8_t device_id_[32];
|
|
// 128 bit AES key assigned to device. Generated by Widevine.
|
|
uint8_t device_key_[16];
|
|
// Key Data. Encrypted data.
|
|
uint8_t data_[72];
|
|
// Constant code used to recognize a valid keybox "kbox" = 0x6b626f78.
|
|
uint8_t magic_[4];
|
|
// The CRC checksum of the first 124 bytes of the keybox.
|
|
uint8_t crc_[4];
|
|
} WidevineKeybox;
|
|
|
|
} // namespace wvoec_mock
|
|
|
|
#endif // WV_KEYBOX_H_
|