Add alternate RSA signing
From the Widevine CDM repository: https://widevine-internal-review.googlesource.com/#/c/9183/ This adds unit tests for RSA signing with PKCS1 block type 1. It also adds a reference implementation. This is part of OEMCrypto v9. Change-Id: I2a40dbff65f6e09d75f16ae048499512f60c168d
This commit is contained in:
@@ -88,7 +88,7 @@ class SessionContext {
|
||||
public:
|
||||
explicit SessionContext(CryptoEngine* ce, SessionId sid)
|
||||
: valid_(true), ce_(ce), id_(sid), current_content_key_(NULL),
|
||||
rsa_key_(NULL) {}
|
||||
rsa_key_(NULL), allowed_schemes_(kSign_RSASSA_PSS) {}
|
||||
~SessionContext() {}
|
||||
|
||||
void Open();
|
||||
@@ -110,7 +110,8 @@ class SessionContext {
|
||||
bool GenerateRSASignature(const uint8_t* message,
|
||||
size_t message_length,
|
||||
uint8_t* signature,
|
||||
size_t* signature_length);
|
||||
size_t* signature_length,
|
||||
RSA_Padding_Scheme padding_scheme);
|
||||
bool ValidateMessage(const uint8_t* message,
|
||||
size_t message_length,
|
||||
const uint8_t* signature,
|
||||
@@ -177,6 +178,7 @@ class SessionContext {
|
||||
encryption_key_ = enc_key;
|
||||
}
|
||||
const std::vector<uint8_t>& encryption_key() { return encryption_key_; }
|
||||
const uint32_t allowed_schemes() { return allowed_schemes_; }
|
||||
|
||||
void AddNonce(uint32_t nonce);
|
||||
bool CheckNonce(uint32_t nonce);
|
||||
@@ -198,6 +200,7 @@ class SessionContext {
|
||||
SessionKeyTable session_keys_;
|
||||
NonceTable nonce_table_;
|
||||
RSA* rsa_key_;
|
||||
uint32_t allowed_schemes_; // for RSA signatures.
|
||||
time_t timer_start_;
|
||||
|
||||
CORE_DISALLOW_COPY_AND_ASSIGN(SessionContext);
|
||||
|
||||
Reference in New Issue
Block a user