Add session parameter to OEMCrypto_CopyBuffer
Merge from master branch of Widevine repo of http://go/wvgerrit/66070 Merge from oemcrypto-v15 branch of Widevine repo of http://go/wvgerrit/63662 To make the threading model more clear, CopyBuffer is now a session function. This means we need to pass in which session the current thread locks. Test: unit tests. Test: tested as part of http://go/ag/5501993 Bug: 113680369 Change-Id: I2fdd2cfcaab99f3793950b3845941463675f5e4c
This commit is contained in:
@@ -398,6 +398,8 @@ TEST_F(OEMCryptoClientTest, PreventNonceFlood3API09) {
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoClientTest, ClearCopyTestAPI10) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
const int kDataSize = 256;
|
||||
vector<uint8_t> input_buffer(kDataSize);
|
||||
GetRandBytes(&input_buffer[0], input_buffer.size());
|
||||
@@ -408,31 +410,36 @@ TEST_F(OEMCryptoClientTest, ClearCopyTestAPI10) {
|
||||
dest_buffer.buffer.clear.max_length = output_buffer.size();
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_SUCCESS,
|
||||
OEMCrypto_CopyBuffer(&input_buffer[0], input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_CopyBuffer(s.session_id(), &input_buffer[0],
|
||||
input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
ASSERT_EQ(input_buffer, output_buffer);
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_ERROR_INVALID_CONTEXT,
|
||||
OEMCrypto_CopyBuffer(NULL, input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_ERROR_INVALID_CONTEXT,
|
||||
OEMCrypto_CopyBuffer(&input_buffer[0], input_buffer.size(), NULL,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
ASSERT_EQ(OEMCrypto_ERROR_INVALID_CONTEXT,
|
||||
OEMCrypto_CopyBuffer(
|
||||
s.session_id(), NULL, input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
ASSERT_EQ(OEMCrypto_ERROR_INVALID_CONTEXT,
|
||||
OEMCrypto_CopyBuffer(
|
||||
s.session_id(), &input_buffer[0], input_buffer.size(), NULL,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
dest_buffer.buffer.clear.address = NULL;
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_ERROR_INVALID_CONTEXT,
|
||||
OEMCrypto_CopyBuffer(&input_buffer[0], input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_CopyBuffer(s.session_id(), &input_buffer[0],
|
||||
input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
dest_buffer.buffer.clear.address = &output_buffer[0];
|
||||
dest_buffer.buffer.clear.max_length = output_buffer.size() - 1;
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_ERROR_SHORT_BUFFER,
|
||||
OEMCrypto_CopyBuffer(&input_buffer[0], input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_CopyBuffer(s.session_id(), &input_buffer[0],
|
||||
input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoClientTest, ClearCopyTestLargeBufferAPI10) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
vector<uint8_t> input_buffer(kMaxDecryptSize);
|
||||
GetRandBytes(&input_buffer[0], input_buffer.size());
|
||||
vector<uint8_t> output_buffer(kMaxDecryptSize);
|
||||
@@ -442,7 +449,8 @@ TEST_F(OEMCryptoClientTest, ClearCopyTestLargeBufferAPI10) {
|
||||
dest_buffer.buffer.clear.max_length = output_buffer.size();
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_SUCCESS,
|
||||
OEMCrypto_CopyBuffer(&input_buffer[0], input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_CopyBuffer(s.session_id(), &input_buffer[0],
|
||||
input_buffer.size(), &dest_buffer,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample));
|
||||
ASSERT_EQ(input_buffer, output_buffer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user