41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#include <assert.h>
|
|
#include <openssl/aes.h>
|
|
#include <openssl/rand.h>
|
|
#include <algorithm>
|
|
#include <iostream>
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
#include "oec_session_util.h"
|
|
#include "oec_test_data.h"
|
|
|
|
namespace wvoec {
|
|
|
|
class SessionUtil {
|
|
public:
|
|
SessionUtil()
|
|
: encoded_rsa_key_(kTestRSAPKCS8PrivateKeyInfo2_2048,
|
|
kTestRSAPKCS8PrivateKeyInfo2_2048 +
|
|
sizeof(kTestRSAPKCS8PrivateKeyInfo2_2048)) {}
|
|
|
|
// Create a new wrapped DRM Certificate.
|
|
void CreateWrappedRSAKey();
|
|
|
|
// This is used to force installation of a keybox. This overwrites the
|
|
// production keybox -- it does NOT use OEMCrypto_LoadTestKeybox.
|
|
void InstallKeybox(const wvoec::WidevineKeybox& keybox, bool good);
|
|
|
|
// This loads the test keybox or the test RSA key, using LoadTestKeybox or
|
|
// LoadTestRSAKey as needed.
|
|
void EnsureTestKeys();
|
|
|
|
void InstallTestRSAKey(Session* s);
|
|
|
|
std::vector<uint8_t> encoded_rsa_key_;
|
|
std::vector<uint8_t> wrapped_rsa_key_;
|
|
OEMCrypto_PrivateKeyType key_type_;
|
|
std::vector<uint8_t> drm_public_key_;
|
|
wvoec::WidevineKeybox keybox_;
|
|
};
|
|
|
|
} // namespace wvoec
|