Skip to content
This repository was archived by the owner on Oct 28, 2021. It is now read-only.

Commit 1af4f47

Browse files
committed
Add basic AES128-CTR unit tests
1 parent f0f8ed5 commit 1af4f47

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

test/libdevcrypto/AES.cpp

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,47 +31,67 @@ BOOST_AUTO_TEST_SUITE(Crypto)
3131

3232
BOOST_FIXTURE_TEST_SUITE(AES, TestOutputHelper)
3333

34+
BOOST_AUTO_TEST_CASE(AesEncryptConst)
35+
{
36+
auto key = asBytes("0123456789abcdef");
37+
h128 iv;
38+
iv[5] = 1;
39+
auto msg = asBytes("Hello!.........................................");
40+
auto e = encryptAES128CTR(&key, iv, &msg);
41+
auto expected = "0378b494602bb95ef9e4832f9ba6cba50ea3423b5b2904a5ea66cfef31019ca39135f7e551829e85f64a099edc223d";
42+
BOOST_CHECK_GT(msg.size(), 32);
43+
BOOST_CHECK_EQUAL(msg.size(), e.size());
44+
BOOST_CHECK_EQUAL(toHex(e), expected);
45+
}
46+
47+
BOOST_AUTO_TEST_CASE(AesDecryptConst)
48+
{
49+
auto key = asBytes("0123456789abcdef");
50+
h128 iv;
51+
iv[5] = 1;
52+
auto msg = asBytes("Hello!.........................................");
53+
auto d = decryptAES128CTR(&key, iv, &msg);
54+
auto expected = "0378b494602bb95ef9e4832f9ba6cba50ea3423b5b2904a5ea66cfef31019ca39135f7e551829e85f64a099edc223d";
55+
BOOST_CHECK_GT(msg.size(), 32);
56+
BOOST_CHECK_EQUAL(msg.size(), d.size());
57+
BOOST_CHECK_EQUAL(toHex(d.makeInsecure()), expected);
58+
}
59+
3460
BOOST_AUTO_TEST_CASE(AesDecrypt)
3561
{
36-
cnote << "AesDecrypt";
3762
bytes seed = fromHex("2dbaead416c20cfd00c2fc9f1788ff9f965a2000799c96a624767cb0e1e90d2d7191efdd92349226742fdc73d1d87e2d597536c4641098b9a89836c94f58a2ab4c525c27c4cb848b3e22ea245b2bc5c8c7beaa900b0c479253fc96fce7ffc621");
3863
KeyPair kp(sha3Secure(aesDecrypt(&seed, "test")));
3964
BOOST_CHECK(Address("07746f871de684297923f933279555dda418f8a2") == kp.address());
4065
}
4166

4267
BOOST_AUTO_TEST_CASE(AesDecryptWrongSeed)
4368
{
44-
cnote << "AesDecryptWrongSeed";
4569
bytes seed = fromHex("badaead416c20cfd00c2fc9f1788ff9f965a2000799c96a624767cb0e1e90d2d7191efdd92349226742fdc73d1d87e2d597536c4641098b9a89836c94f58a2ab4c525c27c4cb848b3e22ea245b2bc5c8c7beaa900b0c479253fc96fce7ffc621");
4670
KeyPair kp(sha3Secure(aesDecrypt(&seed, "test")));
4771
BOOST_CHECK(Address("07746f871de684297923f933279555dda418f8a2") != kp.address());
4872
}
4973

5074
BOOST_AUTO_TEST_CASE(AesDecryptWrongPassword)
5175
{
52-
cnote << "AesDecryptWrongPassword";
5376
bytes seed = fromHex("2dbaead416c20cfd00c2fc9f1788ff9f965a2000799c96a624767cb0e1e90d2d7191efdd92349226742fdc73d1d87e2d597536c4641098b9a89836c94f58a2ab4c525c27c4cb848b3e22ea245b2bc5c8c7beaa900b0c479253fc96fce7ffc621");
5477
KeyPair kp(sha3Secure(aesDecrypt(&seed, "badtest")));
5578
BOOST_CHECK(Address("07746f871de684297923f933279555dda418f8a2") != kp.address());
5679
}
5780

5881
BOOST_AUTO_TEST_CASE(AesDecryptFailInvalidSeed)
5982
{
60-
cnote << "AesDecryptFailInvalidSeed";
6183
bytes seed = fromHex("xdbaead416c20cfd00c2fc9f1788ff9f965a2000799c96a624767cb0e1e90d2d7191efdd92349226742fdc73d1d87e2d597536c4641098b9a89836c94f58a2ab4c525c27c4cb848b3e22ea245b2bc5c8c7beaa900b0c479253fc96fce7ffc621");
6284
BOOST_CHECK(bytes() == aesDecrypt(&seed, "test"));
6385
}
6486

6587
BOOST_AUTO_TEST_CASE(AesDecryptFailInvalidSeedSize)
6688
{
67-
cnote << "AesDecryptFailInvalidSeedSize";
6889
bytes seed = fromHex("000102030405060708090a0b0c0d0e0f");
6990
BOOST_CHECK(bytes() == aesDecrypt(&seed, "test"));
7091
}
7192

7293
BOOST_AUTO_TEST_CASE(AesDecryptFailInvalidSeed2)
7394
{
74-
cnote << "AesDecryptFailInvalidSeed2";
7595
bytes seed = fromHex("000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f");
7696
BOOST_CHECK(bytes() == aesDecrypt(&seed, "test"));
7797
}

0 commit comments

Comments
 (0)