2 * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
16 #include <sw-backend/crypto.h>
18 #include <boost/test/unit_test.hpp>
20 #include "test_common.h"
23 using namespace CKM::Crypto::SW::Cipher;
25 BOOST_AUTO_TEST_SUITE(SW_BACKEND_TEST)
27 BOOST_AUTO_TEST_SUITE(CRYPTO)
29 BOOST_AUTO_TEST_CASE(constructs)
31 BOOST_REQUIRE_NO_THROW(AesCbcEncryption128(createRandom(16), createRandom(16)));
33 BOOST_REQUIRE_THROW(AesCbcEncryption128(createRandom(16), createRandom(5)),
34 Exc::Crypto::InternalError);
35 BOOST_REQUIRE_THROW(AesCbcEncryption128(createRandom(17), createRandom(16)),
36 Exc::Crypto::InternalError);
39 BOOST_AUTO_TEST_CASE(encryption_cbc)
41 AesCbcEncryption128 cipher(createRandom(16), createRandom(16));
43 BOOST_REQUIRE_NO_THROW(cipher.Append(createRandom(10)));
44 BOOST_REQUIRE_NO_THROW(cipher.Finalize());
47 BOOST_AUTO_TEST_CASE(encryption_gcm)
49 AesGcmEncryption128 cipher(createRandom(16), createRandom(16));
51 BOOST_REQUIRE_NO_THROW(cipher.AppendAAD(createRandom(10)));
52 BOOST_REQUIRE_NO_THROW(cipher.Append(createRandom(10)));
53 BOOST_REQUIRE_NO_THROW(cipher.Finalize());
56 BOOST_AUTO_TEST_SUITE_END() // CRYPTO
58 BOOST_AUTO_TEST_SUITE_END() // SW_BACKEND_TEST