1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2011 The Android Open Source Project 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License"); 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License. 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// http://www.apache.org/licenses/LICENSE-2.0 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS, 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License. 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 16877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 17cddd2d09878704128d35ddfeec862109b7d7fdc9Alex Deymo#include "shill/crypto_rot47.h" 18cddd2d09878704128d35ddfeec862109b7d7fdc9Alex Deymo 198a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko#include <string> 208a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko 21877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov#include <gtest/gtest.h> 22877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 23877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovusing std::string; 24877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovusing testing::Test; 25877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 26877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovnamespace shill { 27877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 28877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovnamespace { 29877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovconst char kEmpty[] = ""; 30877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovconst char kPlainText[] = "~{\"Hello world!\" OPQ ['1234']}"; 31877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovconst char kCipherText[] = "OLQw6==@ H@C=5PQ ~!\" ,V`abcV.N"; 328a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko} // namespace 33877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 34877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkovclass CryptoROT47Test : public Test { 35877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov protected: 36877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov CryptoROT47 crypto_; 37877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov}; 38877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 39877642b0c9e2416f69a2f76b26539f30ef98d43cDarin PetkovTEST_F(CryptoROT47Test, GetID) { 40877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_EQ(CryptoROT47::kID, crypto_.GetID()); 41877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov} 42877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 43877642b0c9e2416f69a2f76b26539f30ef98d43cDarin PetkovTEST_F(CryptoROT47Test, Encrypt) { 44877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov string text; 45877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_TRUE(crypto_.Encrypt(kPlainText, &text)); 46877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_EQ(kCipherText, text); 47877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_TRUE(crypto_.Encrypt(kEmpty, &text)); 48877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_EQ(kEmpty, text); 49877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov} 50877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 51877642b0c9e2416f69a2f76b26539f30ef98d43cDarin PetkovTEST_F(CryptoROT47Test, Decrypt) { 52877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov string text; 53877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_TRUE(crypto_.Decrypt(kCipherText, &text)); 54877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_EQ(kPlainText, text); 55877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_TRUE(crypto_.Decrypt(kEmpty, &text)); 56877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov EXPECT_EQ(kEmpty, text); 57877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov} 58877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov 59877642b0c9e2416f69a2f76b26539f30ef98d43cDarin Petkov} // namespace shill 60