}
struct TestMockCryptoBlockCrypto : public TestFixture {
- MockDataCryptor cryptor;
+ MockDataCryptor* cryptor;
ceph::ref_t<BlockCrypto<MockCryptoContext>> bc;
int cryptor_block_size = 16;
int cryptor_iv_size = 16;
void SetUp() override {
TestFixture::SetUp();
- cryptor.block_size = cryptor_block_size;
+ cryptor = new MockDataCryptor();
+ cryptor->block_size = cryptor_block_size;
bc = new BlockCrypto<MockCryptoContext>(
- reinterpret_cast<CephContext*>(m_ioctx.cct()), &cryptor,
+ reinterpret_cast<CephContext*>(m_ioctx.cct()), cryptor,
block_size, data_offset);
expectation_set = new ExpectationSet();
}
void TearDown() override {
delete expectation_set;
+ bc->put();
TestFixture::TearDown();
}
void expect_get_context(CipherMode mode) {
_set_last_expectation(
- EXPECT_CALL(cryptor, get_context(mode))
+ EXPECT_CALL(*cryptor, get_context(mode))
.After(*expectation_set).WillOnce(Return(
new MockCryptoContext())));
}
void expect_init_context(const std::string& iv) {
_set_last_expectation(
- EXPECT_CALL(cryptor, init_context(_, CompareArrayToString(iv),
+ EXPECT_CALL(*cryptor, init_context(_, CompareArrayToString(iv),
cryptor_iv_size))
.After(*expectation_set));
}
void expect_update_context(const std::string& in_str, int out_ret) {
_set_last_expectation(
- EXPECT_CALL(cryptor, update_context(_,
+ EXPECT_CALL(*cryptor, update_context(_,
CompareArrayToString(in_str),
_, in_str.length()))
.After(*expectation_set).WillOnce(Return(out_ret)));
expect_update_context(std::string(2048, '1') + std::string(2048, '2'), 4096);
expect_init_context(std::string("\x38\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16));
expect_update_context(std::string(2048, '2') + std::string(2048, '3'), 4096);
- EXPECT_CALL(cryptor, return_context(_, CipherMode::CIPHER_MODE_ENC));
+ EXPECT_CALL(*cryptor, return_context(_, CipherMode::CIPHER_MODE_ENC));
ASSERT_EQ(0, bc->encrypt(&data, image_offset));
TEST_F(TestMockCryptoBlockCrypto, GetContextError) {
ceph::bufferlist data;
data.append(std::string(4096, '1'));
- EXPECT_CALL(cryptor, get_context(CipherMode::CIPHER_MODE_ENC)).WillOnce(
+ EXPECT_CALL(*cryptor, get_context(CipherMode::CIPHER_MODE_ENC)).WillOnce(
Return(nullptr));
ASSERT_EQ(-EIO, bc->encrypt(&data, 0));
}
ceph::bufferlist data;
data.append(std::string(4096, '1'));
expect_get_context(CipherMode::CIPHER_MODE_ENC);
- EXPECT_CALL(cryptor, init_context(_, _, _)).WillOnce(Return(-123));
+ EXPECT_CALL(*cryptor, init_context(_, _, _)).WillOnce(Return(-123));
ASSERT_EQ(-123, bc->encrypt(&data, 0));
}
ceph::bufferlist data;
data.append(std::string(4096, '1'));
expect_get_context(CipherMode::CIPHER_MODE_ENC);
- EXPECT_CALL(cryptor, init_context(_, _, _));
- EXPECT_CALL(cryptor, update_context(_, _, _, _)).WillOnce(Return(-123));
+ EXPECT_CALL(*cryptor, init_context(_, _, _));
+ EXPECT_CALL(*cryptor, update_context(_, _, _, _)).WillOnce(Return(-123));
ASSERT_EQ(-123, bc->encrypt(&data, 0));
}