[ Merge of http://go/wvgerrit/153589 ] Some unit tests call InstallTestRSAKey() a few times. In current provision 2 with Keybox, the test RSA DRM key is hard coded. But for provision 4, it will be generated by OEMCrypto. When a test calls multiple times of InstallTestRSAKey(), we don't want the key to be generated during each call, and we want to use the same key in order for the decrytion to work. The fix to cache the drm key once it is created for prov 4 tests. Bug: 180530495 Bug: 236317198 Test: oemcrypto_test Change-Id: I1b2d96a89e0619861492e6d9bc56862e2c440c86
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
|