LibCrypto: Yet more ByteBuffer::wrap() removal. Not much left now!

This commit is contained in:
Andreas Kling 2020-12-19 17:50:49 +01:00
parent 497f1fd472
commit a8dbfc3398
Notes: sideshowbarker 2024-07-19 00:44:24 +09:00
4 changed files with 14 additions and 14 deletions

View file

@ -52,8 +52,8 @@ public:
virtual void encrypt(ReadonlyBytes in, ByteBuffer& out) = 0;
virtual void decrypt(ReadonlyBytes in, ByteBuffer& out) = 0;
virtual void sign(ReadonlyBytes in, ByteBuffer& out) = 0;
virtual void verify(ReadonlyBytes in, ByteBuffer& out) = 0;
virtual void sign(ReadonlyBytes in, Bytes& out) = 0;
virtual void verify(ReadonlyBytes in, Bytes& out) = 0;
virtual String class_name() const = 0;

View file

@ -149,7 +149,7 @@ void RSA::decrypt(ReadonlyBytes in, ByteBuffer& out)
out = out.slice(out.size() - aligned_size, aligned_size);
}
void RSA::sign(ReadonlyBytes in, ByteBuffer& out)
void RSA::sign(ReadonlyBytes in, Bytes& out)
{
auto in_integer = UnsignedBigInteger::import_data(in.data(), in.size());
auto exp = NumberTheory::ModularPower(in_integer, m_private_key.private_exponent(), m_private_key.modulus());
@ -157,7 +157,7 @@ void RSA::sign(ReadonlyBytes in, ByteBuffer& out)
out = out.slice(out.size() - size, size);
}
void RSA::verify(ReadonlyBytes in, ByteBuffer& out)
void RSA::verify(ReadonlyBytes in, Bytes& out)
{
auto in_integer = UnsignedBigInteger::import_data(in.data(), in.size());
auto exp = NumberTheory::ModularPower(in_integer, m_public_key.public_exponent(), m_public_key.modulus());
@ -198,7 +198,7 @@ void RSA::import_public_key(ReadonlyBytes bytes, bool pem)
}
template<typename HashFunction>
void RSA_EMSA_PSS<HashFunction>::sign(ReadonlyBytes in, ByteBuffer& out)
void RSA_EMSA_PSS<HashFunction>::sign(ReadonlyBytes in, Bytes& out)
{
// -- encode via EMSA_PSS
auto mod_bits = m_rsa.private_key().modulus().trimmed_length() * sizeof(u32) * 8;
@ -219,7 +219,7 @@ VerificationConsistency RSA_EMSA_PSS<HashFunction>::verify(ReadonlyBytes in)
return VerificationConsistency::Inconsistent;
u8 EM[mod_bytes];
auto EM_buf = ByteBuffer::wrap(EM, mod_bytes);
auto EM_buf = Bytes { EM, mod_bytes };
// -- verify via RSA
m_rsa.verify(in, EM_buf);
@ -317,11 +317,11 @@ void RSA_PKCS1_EME::decrypt(ReadonlyBytes in, ByteBuffer& out)
out = out.slice(offset, out.size() - offset);
}
void RSA_PKCS1_EME::sign(ReadonlyBytes, ByteBuffer&)
void RSA_PKCS1_EME::sign(ReadonlyBytes, Bytes&)
{
dbg() << "FIXME: RSA_PKCS_EME::sign";
}
void RSA_PKCS1_EME::verify(ReadonlyBytes, ByteBuffer&)
void RSA_PKCS1_EME::verify(ReadonlyBytes, Bytes&)
{
dbg() << "FIXME: RSA_PKCS_EME::verify";
}

View file

@ -181,8 +181,8 @@ public:
virtual void encrypt(ReadonlyBytes in, ByteBuffer& out) override;
virtual void decrypt(ReadonlyBytes in, ByteBuffer& out) override;
virtual void sign(ReadonlyBytes in, ByteBuffer& out) override;
virtual void verify(ReadonlyBytes in, ByteBuffer& out) override;
virtual void sign(ReadonlyBytes in, Bytes& out) override;
virtual void verify(ReadonlyBytes in, Bytes& out) override;
virtual String class_name() const override { return "RSA"; }
@ -203,7 +203,7 @@ public:
{
}
void sign(ReadonlyBytes in, ByteBuffer& out);
void sign(ReadonlyBytes in, Bytes& out);
VerificationConsistency verify(ReadonlyBytes in);
private:
@ -225,8 +225,8 @@ public:
virtual void encrypt(ReadonlyBytes in, ByteBuffer& out) override;
virtual void decrypt(ReadonlyBytes in, ByteBuffer& out) override;
virtual void sign(ReadonlyBytes, ByteBuffer&) override;
virtual void verify(ReadonlyBytes, ByteBuffer&) override;
virtual void sign(ReadonlyBytes, Bytes&) override;
virtual void verify(ReadonlyBytes, Bytes&) override;
virtual String class_name() const override { return "RSA_PKCS1-EME"; }
virtual size_t output_size() const override { return m_public_key.length(); }

View file

@ -700,7 +700,7 @@ static void aes_cbc_test_encrypt()
0xd6, 0xa0, 0x46
};
u8 key[] { 0x0a, 0x8c, 0x5b, 0x0d, 0x8a, 0x68, 0x43, 0xf7, 0xaf, 0xc0, 0xe3, 0x4e, 0x4b, 0x43, 0xaa, 0x28, 0x69, 0x9b, 0x6f, 0xe7, 0x24, 0x82, 0x1c, 0x71, 0x86, 0xf6, 0x2b, 0x87, 0xd6, 0x8b, 0x8f, 0xf1 };
Crypto::Cipher::AESCipher::CBCMode cipher(ByteBuffer::wrap(key, 32), 256, Crypto::Cipher::Intent::Encryption);
Crypto::Cipher::AESCipher::CBCMode cipher(ReadonlyBytes { key, sizeof(key) }, 256, Crypto::Cipher::Intent::Encryption);
test_it(cipher, result);
}
// TODO: Test non-CMS padding options