2020#include < gtest/gtest.h>
2121
2222TEST (TestShaEncryptUtils, TestAesEncryptDecrypt) {
23- // 8 bytes key
24- auto * key = " 1234abcd " ;
23+ // 16 bytes key
24+ auto * key = " 12345678abcdefgh " ;
2525 auto * to_encrypt = " some test string" ;
2626
27+ auto key_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(key)));
2728 auto to_encrypt_len =
2829 static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
2930 unsigned char cipher_1[64 ];
3031
31- int32_t cipher_1_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_1);
32+ int32_t cipher_1_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, key_len, cipher_1);
3233
3334 unsigned char decrypted_1[64 ];
3435 int32_t decrypted_1_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_1),
35- cipher_1_len, key, decrypted_1);
36+ cipher_1_len, key, key_len, decrypted_1);
3637
3738 EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
3839 std::string (reinterpret_cast <const char *>(decrypted_1), decrypted_1_len));
3940
40- // 16 bytes key
41- key = " 12345678abcdefgh " ;
41+ // 24 bytes key
42+ key = " 12345678abcdefgh12345678 " ;
4243 to_encrypt = " some\n test\n string" ;
4344
45+ key_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(key)));
4446 to_encrypt_len =
4547 static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
4648 unsigned char cipher_2[64 ];
4749
48- int32_t cipher_2_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_2);
50+ int32_t cipher_2_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, key_len, cipher_2);
4951
5052 unsigned char decrypted_2[64 ];
5153 int32_t decrypted_2_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_2),
52- cipher_2_len, key, decrypted_2);
54+ cipher_2_len, key, key_len, decrypted_2);
5355
5456 EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
5557 std::string (reinterpret_cast <const char *>(decrypted_2), decrypted_2_len));
@@ -58,97 +60,51 @@ TEST(TestShaEncryptUtils, TestAesEncryptDecrypt) {
5860 key = " 12345678abcdefgh12345678abcdefgh" ;
5961 to_encrypt = " New\n test\n string" ;
6062
63+ key_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(key)));
6164 to_encrypt_len =
6265 static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
6366 unsigned char cipher_3[64 ];
6467
65- int32_t cipher_3_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_3);
68+ int32_t cipher_3_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, key_len, cipher_3);
6669
6770 unsigned char decrypted_3[64 ];
6871 int32_t decrypted_3_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_3),
69- cipher_3_len, key, decrypted_3);
72+ cipher_3_len, key, key_len, decrypted_3);
7073
7174 EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
7275 std::string (reinterpret_cast <const char *>(decrypted_3), decrypted_3_len));
7376
74- // 64 bytes key
77+ // check exception
78+ char cipher[64 ] = " JBB7oJAQuqhDCx01fvBRi8PcljW1+nbnOSMk+R0Sz7E==" ;
79+ int32_t cipher_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(cipher)));
80+ unsigned char plain_text[64 ];
81+
7582 key = " 12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh" ;
7683 to_encrypt = " New\n test\n string" ;
7784
85+ key_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(key)));
7886 to_encrypt_len =
7987 static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
8088 unsigned char cipher_4[64 ];
89+ ASSERT_THROW ({
90+ gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, key_len, cipher_4);
91+ }, std::runtime_error);
8192
82- int32_t cipher_4_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_4);
83-
84- unsigned char decrypted_4[64 ];
85- int32_t decrypted_4_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_4),
86- cipher_4_len, key, decrypted_4);
87-
88- EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
89- std::string (reinterpret_cast <const char *>(decrypted_4), decrypted_4_len));
90-
91- // 128 bytes key
92- key =
93- " 12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12"
94- " 345678abcdefgh12345678abcdefgh12345678abcdefgh" ;
95- to_encrypt = " A much more longer string then the previous one, but without newline" ;
96-
97- to_encrypt_len =
98- static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
99- unsigned char cipher_5[128 ];
100-
101- int32_t cipher_5_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_5);
102-
103- unsigned char decrypted_5[128 ];
104- int32_t decrypted_5_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_5),
105- cipher_5_len, key, decrypted_5);
106-
107- EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
108- std::string (reinterpret_cast <const char *>(decrypted_5), decrypted_5_len));
109-
110- // 192 bytes key
111- key =
112- " 12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12"
113- " 345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh1234"
114- " 5678abcdefgh12345678abcdefgh" ;
115- to_encrypt =
116- " A much more longer string then the previous one, but with \n newline, pretty cool, "
117- " right?" ;
118-
119- to_encrypt_len =
120- static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
121- unsigned char cipher_6[256 ];
122-
123- int32_t cipher_6_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_6);
124-
125- unsigned char decrypted_6[256 ];
126- int32_t decrypted_6_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_6),
127- cipher_6_len, key, decrypted_6);
93+ ASSERT_THROW ({
94+ gandiva::aes_decrypt (cipher, cipher_len, key, key_len, plain_text);
95+ }, std::runtime_error);
12896
129- EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
130- std::string (reinterpret_cast <const char *>(decrypted_6), decrypted_6_len));
131-
132- // 256 bytes key
133- key =
134- " 12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12"
135- " 345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh1234"
136- " 5678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh12345678abcdefgh123456"
137- " 78abcdefgh" ;
138- to_encrypt =
139- " A much more longer string then the previous one, but with \n newline, pretty cool, "
140- " right?" ;
97+ key = " 12345678" ;
98+ to_encrypt = " New\n test\n string" ;
14199
100+ key_len = static_cast <int32_t >(strlen (reinterpret_cast <const char *>(key)));
142101 to_encrypt_len =
143102 static_cast <int32_t >(strlen (reinterpret_cast <const char *>(to_encrypt)));
144- unsigned char cipher_7[256 ];
145-
146- int32_t cipher_7_len = gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, cipher_7);
147-
148- unsigned char decrypted_7[256 ];
149- int32_t decrypted_7_len = gandiva::aes_decrypt (reinterpret_cast <const char *>(cipher_7),
150- cipher_7_len, key, decrypted_7);
151-
152- EXPECT_EQ (std::string (reinterpret_cast <const char *>(to_encrypt), to_encrypt_len),
153- std::string (reinterpret_cast <const char *>(decrypted_7), decrypted_7_len));
103+ unsigned char cipher_5[64 ];
104+ ASSERT_THROW ({
105+ gandiva::aes_encrypt (to_encrypt, to_encrypt_len, key, key_len, cipher_5);
106+ }, std::runtime_error);
107+ ASSERT_THROW ({
108+ gandiva::aes_decrypt (cipher, cipher_len, key, key_len, plain_text);
109+ }, std::runtime_error);
154110}
0 commit comments