Add RSA test.

This commit is contained in:
levlam 2020-12-22 22:28:04 +03:00
parent 7d1e5bca55
commit 03bb56ae96
2 changed files with 21 additions and 1 deletions

View File

@ -104,6 +104,7 @@ size_t RSA::encrypt(unsigned char *from, size_t from_len, size_t max_from_len, u
CHECK(chunks * 256 <= to_len);
Random::secure_bytes(from + from_len, pad);
size_t result = chunks * 256;
BigNumContext ctx;
BigNum y;
while (chunks-- > 0) {
@ -112,7 +113,7 @@ size_t RSA::encrypt(unsigned char *from, size_t from_len, size_t max_from_len, u
MutableSlice(to, 256).copy_from(y.to_binary(256));
to += 256;
}
return chunks * 256;
return result;
}
void RSA::decrypt_signature(Slice from, MutableSlice to) const {

View File

@ -711,3 +711,22 @@ TEST(Mtproto, TlsTransport) {
}
sched.finish();
}
TEST(Mtproto, RSA) {
auto pem = td::Slice(
"-----BEGIN RSA PUBLIC KEY-----\n"
"MIIBCgKCAQEAr4v4wxMDXIaMOh8bayF/NyoYdpcysn5EbjTIOZC0RkgzsRj3SGlu\n"
"52QSz+ysO41dQAjpFLgxPVJoOlxXokaOq827IfW0bGCm0doT5hxtedu9UCQKbE8j\n"
"lDOk+kWMXHPZFJKWRgKgTu9hcB3y3Vk+JFfLpq3d5ZB48B4bcwrRQnzkx5GhWOFX\n"
"x73ZgjO93eoQ2b/lDyXxK4B4IS+hZhjzezPZTI5upTRbs5ljlApsddsHrKk6jJNj\n"
"8Ygs/ps8e6ct82jLXbnndC9s8HjEvDvBPH9IPjv5JUlmHMBFZ5vFQIfbpo0u0+1P\n"
"n6bkEi5o7/ifoyVv2pAZTRwppTz0EuXD8QIDAQAB\n"
"-----END RSA PUBLIC KEY-----");
auto rsa = RSA::from_pem_public_key(pem).move_as_ok();
ASSERT_EQ(-7596991558377038078, rsa.get_fingerprint());
ASSERT_EQ(256u, rsa.size());
string s(255, '\0');
string to(256, '\0');
ASSERT_EQ(256u, rsa.encrypt(MutableSlice(s).ubegin(), 10, 255, MutableSlice(to).ubegin(), 256));
}