1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir 29*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 30*cdf0e10cSrcweir #include "precompiled_sal.hxx" 31*cdf0e10cSrcweir 32*cdf0e10cSrcweir #include <testshl/simpleheader.hxx> 33*cdf0e10cSrcweir #include <rtl/strbuf.hxx> 34*cdf0e10cSrcweir #include <rtl/cipher.h> 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 37*cdf0e10cSrcweir namespace rtl_cipher 38*cdf0e10cSrcweir { 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir rtl::OString createHex(sal_uInt8 *_pKeyBuffer, sal_uInt32 _nKeyLen) 41*cdf0e10cSrcweir { 42*cdf0e10cSrcweir // Create hex-value string from the value to keep the string size minimal 43*cdf0e10cSrcweir rtl::OStringBuffer aBuffer( _nKeyLen * 2 + 1 ); 44*cdf0e10cSrcweir for ( sal_uInt32 i = 0; i < _nKeyLen; i++ ) 45*cdf0e10cSrcweir { 46*cdf0e10cSrcweir sal_Int32 nValue = (sal_Int32)_pKeyBuffer[i]; 47*cdf0e10cSrcweir if (nValue < 16) // maximul hex value for 1 byte 48*cdf0e10cSrcweir { 49*cdf0e10cSrcweir aBuffer.append( sal_Int32(0), 16 /* radix */ ); 50*cdf0e10cSrcweir } 51*cdf0e10cSrcweir aBuffer.append( nValue, 16 /* radix */ ); 52*cdf0e10cSrcweir } 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir return aBuffer.makeStringAndClear(); 55*cdf0e10cSrcweir } 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 58*cdf0e10cSrcweir 59*cdf0e10cSrcweir class create : public CppUnit::TestFixture 60*cdf0e10cSrcweir { 61*cdf0e10cSrcweir public: 62*cdf0e10cSrcweir // initialise your test code values here. 63*cdf0e10cSrcweir void setUp() 64*cdf0e10cSrcweir { 65*cdf0e10cSrcweir } 66*cdf0e10cSrcweir 67*cdf0e10cSrcweir void tearDown() 68*cdf0e10cSrcweir { 69*cdf0e10cSrcweir } 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir void create_001() 72*cdf0e10cSrcweir { 73*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 74*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 75*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 76*cdf0e10cSrcweir } 77*cdf0e10cSrcweir void create_002() 78*cdf0e10cSrcweir { 79*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeECB); 80*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 81*cdf0e10cSrcweir } 82*cdf0e10cSrcweir void create_003() 83*cdf0e10cSrcweir { 84*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeCBC); 85*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 86*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 87*cdf0e10cSrcweir } 88*cdf0e10cSrcweir void create_004() 89*cdf0e10cSrcweir { 90*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeCBC); 91*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 92*cdf0e10cSrcweir } 93*cdf0e10cSrcweir void create_005() 94*cdf0e10cSrcweir { 95*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeStream); 96*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 97*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 98*cdf0e10cSrcweir } 99*cdf0e10cSrcweir void create_006() 100*cdf0e10cSrcweir { 101*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeStream); 102*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 103*cdf0e10cSrcweir } 104*cdf0e10cSrcweir void create_007() 105*cdf0e10cSrcweir { 106*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeInvalid); 107*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 108*cdf0e10cSrcweir } 109*cdf0e10cSrcweir void create_008() 110*cdf0e10cSrcweir { 111*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeInvalid); 112*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 113*cdf0e10cSrcweir } 114*cdf0e10cSrcweir 115*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 116*cdf0e10cSrcweir // member functions of the current class, 117*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(create); 120*cdf0e10cSrcweir CPPUNIT_TEST(create_001); 121*cdf0e10cSrcweir CPPUNIT_TEST(create_002); 122*cdf0e10cSrcweir CPPUNIT_TEST(create_003); 123*cdf0e10cSrcweir CPPUNIT_TEST(create_004); 124*cdf0e10cSrcweir CPPUNIT_TEST(create_005); 125*cdf0e10cSrcweir CPPUNIT_TEST(create_006); 126*cdf0e10cSrcweir CPPUNIT_TEST(create_007); 127*cdf0e10cSrcweir CPPUNIT_TEST(create_008); 128*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 129*cdf0e10cSrcweir }; // class create 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 132*cdf0e10cSrcweir class createBF : public CppUnit::TestFixture 133*cdf0e10cSrcweir { 134*cdf0e10cSrcweir public: 135*cdf0e10cSrcweir // initialise your test code values here. 136*cdf0e10cSrcweir void setUp() 137*cdf0e10cSrcweir { 138*cdf0e10cSrcweir } 139*cdf0e10cSrcweir 140*cdf0e10cSrcweir void tearDown() 141*cdf0e10cSrcweir { 142*cdf0e10cSrcweir } 143*cdf0e10cSrcweir 144*cdf0e10cSrcweir void createBF_001() 145*cdf0e10cSrcweir { 146*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeECB); 147*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 148*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 149*cdf0e10cSrcweir } 150*cdf0e10cSrcweir void createBF_002() 151*cdf0e10cSrcweir { 152*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeCBC); 153*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 154*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 155*cdf0e10cSrcweir } 156*cdf0e10cSrcweir void createBF_003() 157*cdf0e10cSrcweir { 158*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeStream); 159*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 160*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 161*cdf0e10cSrcweir } 162*cdf0e10cSrcweir void createBF_004() 163*cdf0e10cSrcweir { 164*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeInvalid); 165*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL); 166*cdf0e10cSrcweir // rtl_cipher_destroy(aCipher); 167*cdf0e10cSrcweir } 168*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 169*cdf0e10cSrcweir // member functions of the current class, 170*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 171*cdf0e10cSrcweir 172*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(createBF); 173*cdf0e10cSrcweir CPPUNIT_TEST(createBF_001); 174*cdf0e10cSrcweir CPPUNIT_TEST(createBF_002); 175*cdf0e10cSrcweir CPPUNIT_TEST(createBF_003); 176*cdf0e10cSrcweir CPPUNIT_TEST(createBF_004); 177*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 178*cdf0e10cSrcweir }; // class createBF 179*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 180*cdf0e10cSrcweir class decode : public CppUnit::TestFixture 181*cdf0e10cSrcweir { 182*cdf0e10cSrcweir public: 183*cdf0e10cSrcweir // initialise your test code values here. 184*cdf0e10cSrcweir void setUp() 185*cdf0e10cSrcweir { 186*cdf0e10cSrcweir } 187*cdf0e10cSrcweir 188*cdf0e10cSrcweir void tearDown() 189*cdf0e10cSrcweir { 190*cdf0e10cSrcweir } 191*cdf0e10cSrcweir 192*cdf0e10cSrcweir void test_encode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, rtl::OString const& _sPlainTextStr) 193*cdf0e10cSrcweir { 194*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 195*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 196*cdf0e10cSrcweir 197*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 198*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 199*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 200*cdf0e10cSrcweir pKeyBuffer[0] = _nKeyValue; 201*cdf0e10cSrcweir 202*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 203*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 204*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 205*cdf0e10cSrcweir pArgBuffer[0] = _nArgValue; 206*cdf0e10cSrcweir 207*cdf0e10cSrcweir t_print(T_VERBOSE, " init Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 208*cdf0e10cSrcweir t_print(T_VERBOSE, " init Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 211*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 212*cdf0e10cSrcweir 213*cdf0e10cSrcweir sal_uInt32 nPlainTextLen = 16; 214*cdf0e10cSrcweir sal_uInt8 *pPlainTextBuffer = new sal_uInt8[ nPlainTextLen ]; 215*cdf0e10cSrcweir memset(pPlainTextBuffer, 0, nPlainTextLen); 216*cdf0e10cSrcweir strncpy((char*)pPlainTextBuffer, _sPlainTextStr.getStr(), 16); 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir sal_uInt32 nCipherLen = 16; 219*cdf0e10cSrcweir sal_uInt8 *pCipherBuffer = new sal_uInt8[ nCipherLen ]; 220*cdf0e10cSrcweir memset(pCipherBuffer, 0, nCipherLen); 221*cdf0e10cSrcweir 222*cdf0e10cSrcweir /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pPlainTextBuffer, nPlainTextLen, pCipherBuffer, nCipherLen); 223*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None); 224*cdf0e10cSrcweir 225*cdf0e10cSrcweir t_print(T_VERBOSE, " Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 226*cdf0e10cSrcweir t_print(T_VERBOSE, " Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 227*cdf0e10cSrcweir t_print(T_VERBOSE, " Plain: %s\n", createHex(pPlainTextBuffer, nPlainTextLen).getStr()); 228*cdf0e10cSrcweir t_print( "Cipher Buf: %s\n", createHex(pCipherBuffer, nCipherLen).getStr()); 229*cdf0e10cSrcweir 230*cdf0e10cSrcweir sal_uInt32 nPlainText2Len = 16; 231*cdf0e10cSrcweir sal_uInt8 *pPlainText2Buffer = new sal_uInt8[ nPlainText2Len ]; 232*cdf0e10cSrcweir memset(pPlainText2Buffer, 0, nPlainText2Len); 233*cdf0e10cSrcweir 234*cdf0e10cSrcweir /* rtlCipherError */ aError = rtl_cipher_decode(aCipher, pCipherBuffer, nCipherLen, pPlainText2Buffer, nPlainText2Len); 235*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("decode should not work", aError != rtl_Cipher_E_None); 236*cdf0e10cSrcweir 237*cdf0e10cSrcweir // rtl::OString sPlainText2Str((char*)pPlainText2Buffer, nPlainText2Len); 238*cdf0e10cSrcweir // t_print(T_VERBOSE, " Plain: %s\n", createHex(pPlainText2Buffer, nPlainText2Len).getStr()); 239*cdf0e10cSrcweir // t_print(T_VERBOSE, " ascii: %s\n", sPlainText2Str.getStr()); 240*cdf0e10cSrcweir // 241*cdf0e10cSrcweir // // t_print(" Buf: %s\n", createHex(pCipherBuffer, nCipherLen).getStr()); 242*cdf0e10cSrcweir // 243*cdf0e10cSrcweir // sal_Int32 nCompare = memcmp(pPlainTextBuffer, pPlainText2Buffer, 16); 244*cdf0e10cSrcweir // 245*cdf0e10cSrcweir // CPPUNIT_ASSERT_MESSAGE("compare between plain and decoded plain failed", nCompare == 0); 246*cdf0e10cSrcweir // 247*cdf0e10cSrcweir // delete [] pPlainText2Buffer; 248*cdf0e10cSrcweir // 249*cdf0e10cSrcweir // delete [] pCipherBuffer; 250*cdf0e10cSrcweir // delete [] pPlainTextBuffer; 251*cdf0e10cSrcweir // 252*cdf0e10cSrcweir // delete [] pArgBuffer; 253*cdf0e10cSrcweir // delete [] pKeyBuffer; 254*cdf0e10cSrcweir // 255*cdf0e10cSrcweir // rtl_cipher_destroy(aCipher); 256*cdf0e10cSrcweir } 257*cdf0e10cSrcweir 258*cdf0e10cSrcweir void test_encode_and_decode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, rtl::OString const& _sPlainTextStr) 259*cdf0e10cSrcweir { 260*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 261*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 262*cdf0e10cSrcweir 263*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 264*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 265*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 266*cdf0e10cSrcweir pKeyBuffer[0] = _nKeyValue; 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 269*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 270*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 271*cdf0e10cSrcweir pArgBuffer[0] = _nArgValue; 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir t_print(T_VERBOSE, " init Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 274*cdf0e10cSrcweir t_print(T_VERBOSE, " init Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 275*cdf0e10cSrcweir 276*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionBoth, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 277*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir sal_uInt32 nPlainTextLen = 16; 280*cdf0e10cSrcweir sal_uInt8 *pPlainTextBuffer = new sal_uInt8[ nPlainTextLen ]; 281*cdf0e10cSrcweir memset(pPlainTextBuffer, 0, nPlainTextLen); 282*cdf0e10cSrcweir strncpy((char*)pPlainTextBuffer, _sPlainTextStr.getStr(), 16); 283*cdf0e10cSrcweir 284*cdf0e10cSrcweir sal_uInt32 nCipherLen = 16; 285*cdf0e10cSrcweir sal_uInt8 *pCipherBuffer = new sal_uInt8[ nCipherLen ]; 286*cdf0e10cSrcweir memset(pCipherBuffer, 0, nCipherLen); 287*cdf0e10cSrcweir 288*cdf0e10cSrcweir /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pPlainTextBuffer, nPlainTextLen, pCipherBuffer, nCipherLen); 289*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None); 290*cdf0e10cSrcweir 291*cdf0e10cSrcweir t_print(T_VERBOSE, " Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 292*cdf0e10cSrcweir t_print(T_VERBOSE, " Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 293*cdf0e10cSrcweir t_print(T_VERBOSE, " Plain: %s\n", createHex(pPlainTextBuffer, nPlainTextLen).getStr()); 294*cdf0e10cSrcweir t_print( "Cipher Buf: %s\n", createHex(pCipherBuffer, nCipherLen).getStr()); 295*cdf0e10cSrcweir 296*cdf0e10cSrcweir sal_uInt32 nPlainText2Len = 16; 297*cdf0e10cSrcweir sal_uInt8 *pPlainText2Buffer = new sal_uInt8[ nPlainText2Len ]; 298*cdf0e10cSrcweir memset(pPlainText2Buffer, 0, nPlainText2Len); 299*cdf0e10cSrcweir 300*cdf0e10cSrcweir /* rtlCipherError */ aError = rtl_cipher_decode(aCipher, pCipherBuffer, nCipherLen, pPlainText2Buffer, nPlainText2Len); 301*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong decode", aError == rtl_Cipher_E_None); 302*cdf0e10cSrcweir 303*cdf0e10cSrcweir rtl::OString sPlainText2Str((char*)pPlainText2Buffer, nPlainText2Len); 304*cdf0e10cSrcweir t_print(T_VERBOSE, " Plain: %s\n", createHex(pPlainText2Buffer, nPlainText2Len).getStr()); 305*cdf0e10cSrcweir t_print(T_VERBOSE, " as ascii: %s\n", sPlainText2Str.getStr()); 306*cdf0e10cSrcweir 307*cdf0e10cSrcweir // t_print(" Buf: %s\n", createHex(pCipherBuffer, nCipherLen).getStr()); 308*cdf0e10cSrcweir 309*cdf0e10cSrcweir sal_Int32 nCompare = memcmp(pPlainTextBuffer, pPlainText2Buffer, 16); 310*cdf0e10cSrcweir 311*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("compare between plain and decoded plain failed", nCompare == 0); 312*cdf0e10cSrcweir 313*cdf0e10cSrcweir delete [] pPlainText2Buffer; 314*cdf0e10cSrcweir 315*cdf0e10cSrcweir delete [] pCipherBuffer; 316*cdf0e10cSrcweir delete [] pPlainTextBuffer; 317*cdf0e10cSrcweir 318*cdf0e10cSrcweir delete [] pArgBuffer; 319*cdf0e10cSrcweir delete [] pKeyBuffer; 320*cdf0e10cSrcweir 321*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 322*cdf0e10cSrcweir } 323*cdf0e10cSrcweir 324*cdf0e10cSrcweir void decode_001() 325*cdf0e10cSrcweir { 326*cdf0e10cSrcweir test_encode_and_decode(0,0,""); 327*cdf0e10cSrcweir test_encode_and_decode(0,0,"hallo"); 328*cdf0e10cSrcweir test_encode_and_decode(1,0,"B2Aahg5B"); 329*cdf0e10cSrcweir test_encode_and_decode(1,2,"Longer text string"); 330*cdf0e10cSrcweir } 331*cdf0e10cSrcweir 332*cdf0e10cSrcweir void decode_002() 333*cdf0e10cSrcweir { 334*cdf0e10cSrcweir test_encode(0,0,""); 335*cdf0e10cSrcweir test_encode(0,0,"hallo"); 336*cdf0e10cSrcweir test_encode(1,0,"B2Aahg5B"); 337*cdf0e10cSrcweir test_encode(1,2,"Longer text string"); 338*cdf0e10cSrcweir } 339*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 340*cdf0e10cSrcweir // member functions of the current class, 341*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 342*cdf0e10cSrcweir 343*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(decode); 344*cdf0e10cSrcweir CPPUNIT_TEST(decode_001); 345*cdf0e10cSrcweir CPPUNIT_TEST(decode_002); 346*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 347*cdf0e10cSrcweir }; // class decode 348*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 349*cdf0e10cSrcweir class decodeBF : public CppUnit::TestFixture 350*cdf0e10cSrcweir { 351*cdf0e10cSrcweir public: 352*cdf0e10cSrcweir // initialise your test code values here. 353*cdf0e10cSrcweir void setUp() 354*cdf0e10cSrcweir { 355*cdf0e10cSrcweir } 356*cdf0e10cSrcweir 357*cdf0e10cSrcweir void tearDown() 358*cdf0e10cSrcweir { 359*cdf0e10cSrcweir } 360*cdf0e10cSrcweir 361*cdf0e10cSrcweir void decodeBF_001() 362*cdf0e10cSrcweir { 363*cdf0e10cSrcweir } 364*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 365*cdf0e10cSrcweir // member functions of the current class, 366*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 367*cdf0e10cSrcweir 368*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(decodeBF); 369*cdf0e10cSrcweir CPPUNIT_TEST(decodeBF_001); 370*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 371*cdf0e10cSrcweir }; // class decodeBF 372*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 373*cdf0e10cSrcweir class destroy : public CppUnit::TestFixture 374*cdf0e10cSrcweir { 375*cdf0e10cSrcweir public: 376*cdf0e10cSrcweir // initialise your test code values here. 377*cdf0e10cSrcweir void setUp() 378*cdf0e10cSrcweir { 379*cdf0e10cSrcweir } 380*cdf0e10cSrcweir 381*cdf0e10cSrcweir void tearDown() 382*cdf0e10cSrcweir { 383*cdf0e10cSrcweir } 384*cdf0e10cSrcweir 385*cdf0e10cSrcweir void destroy_001() 386*cdf0e10cSrcweir { 387*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeCBC); 388*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 389*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 390*cdf0e10cSrcweir } 391*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 392*cdf0e10cSrcweir // member functions of the current class, 393*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 394*cdf0e10cSrcweir 395*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(destroy); 396*cdf0e10cSrcweir CPPUNIT_TEST(destroy_001); 397*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 398*cdf0e10cSrcweir }; // class destroy 399*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 400*cdf0e10cSrcweir class destroyBF : public CppUnit::TestFixture 401*cdf0e10cSrcweir { 402*cdf0e10cSrcweir public: 403*cdf0e10cSrcweir // initialise your test code values here. 404*cdf0e10cSrcweir void setUp() 405*cdf0e10cSrcweir { 406*cdf0e10cSrcweir } 407*cdf0e10cSrcweir 408*cdf0e10cSrcweir void tearDown() 409*cdf0e10cSrcweir { 410*cdf0e10cSrcweir } 411*cdf0e10cSrcweir 412*cdf0e10cSrcweir void destroyBF_001() 413*cdf0e10cSrcweir { 414*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeECB); 415*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 416*cdf0e10cSrcweir rtl_cipher_destroyBF(aCipher); 417*cdf0e10cSrcweir // more proforma 418*cdf0e10cSrcweir // should not GPF 419*cdf0e10cSrcweir } 420*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 421*cdf0e10cSrcweir // member functions of the current class, 422*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 423*cdf0e10cSrcweir 424*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(destroyBF); 425*cdf0e10cSrcweir CPPUNIT_TEST(destroyBF_001); 426*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 427*cdf0e10cSrcweir }; // class destroyBF 428*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 429*cdf0e10cSrcweir class encode : public CppUnit::TestFixture 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir public: 432*cdf0e10cSrcweir // initialise your test code values here. 433*cdf0e10cSrcweir void setUp() 434*cdf0e10cSrcweir { 435*cdf0e10cSrcweir } 436*cdf0e10cSrcweir 437*cdf0e10cSrcweir void tearDown() 438*cdf0e10cSrcweir { 439*cdf0e10cSrcweir } 440*cdf0e10cSrcweir 441*cdf0e10cSrcweir void test_encode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, sal_uInt8 _nDataValue) 442*cdf0e10cSrcweir { 443*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 444*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 445*cdf0e10cSrcweir 446*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 447*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 448*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 449*cdf0e10cSrcweir pKeyBuffer[0] = _nKeyValue; 450*cdf0e10cSrcweir 451*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 452*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 453*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 454*cdf0e10cSrcweir pArgBuffer[0] = _nArgValue; 455*cdf0e10cSrcweir 456*cdf0e10cSrcweir t_print(T_VERBOSE, "init Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 457*cdf0e10cSrcweir t_print(T_VERBOSE, "init Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 458*cdf0e10cSrcweir 459*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 460*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 461*cdf0e10cSrcweir 462*cdf0e10cSrcweir sal_uInt32 nDataLen = 16; 463*cdf0e10cSrcweir sal_uInt8 *pDataBuffer = new sal_uInt8[ nDataLen ]; 464*cdf0e10cSrcweir memset(pDataBuffer, 0, nDataLen); 465*cdf0e10cSrcweir pDataBuffer[0] = _nDataValue; 466*cdf0e10cSrcweir 467*cdf0e10cSrcweir sal_uInt32 nLen = 16; 468*cdf0e10cSrcweir sal_uInt8 *pBuffer = new sal_uInt8[ nLen ]; 469*cdf0e10cSrcweir memset(pBuffer, 0, nLen); 470*cdf0e10cSrcweir 471*cdf0e10cSrcweir /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pDataBuffer, nDataLen, pBuffer, nLen); 472*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None); 473*cdf0e10cSrcweir 474*cdf0e10cSrcweir t_print(T_VERBOSE, " Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 475*cdf0e10cSrcweir t_print(T_VERBOSE, " Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 476*cdf0e10cSrcweir t_print(T_VERBOSE, "Data: %s\n", createHex(pDataBuffer, nDataLen).getStr()); 477*cdf0e10cSrcweir t_print(T_VERBOSE, " Buf: %s\n", createHex(pBuffer, nLen).getStr()); 478*cdf0e10cSrcweir 479*cdf0e10cSrcweir delete [] pBuffer; 480*cdf0e10cSrcweir delete [] pDataBuffer; 481*cdf0e10cSrcweir 482*cdf0e10cSrcweir delete [] pArgBuffer; 483*cdf0e10cSrcweir delete [] pKeyBuffer; 484*cdf0e10cSrcweir 485*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 486*cdf0e10cSrcweir } 487*cdf0e10cSrcweir 488*cdf0e10cSrcweir void encode_001() 489*cdf0e10cSrcweir { 490*cdf0e10cSrcweir test_encode(0,0,0); 491*cdf0e10cSrcweir test_encode(1,0,0); 492*cdf0e10cSrcweir test_encode(0,1,0); 493*cdf0e10cSrcweir test_encode(1,1,0); 494*cdf0e10cSrcweir 495*cdf0e10cSrcweir test_encode(0,0,1); 496*cdf0e10cSrcweir test_encode(1,0,1); 497*cdf0e10cSrcweir test_encode(0,1,1); 498*cdf0e10cSrcweir test_encode(1,1,1); 499*cdf0e10cSrcweir } 500*cdf0e10cSrcweir 501*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 502*cdf0e10cSrcweir // member functions of the current class, 503*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 504*cdf0e10cSrcweir 505*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(encode); 506*cdf0e10cSrcweir CPPUNIT_TEST(encode_001); 507*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 508*cdf0e10cSrcweir }; // class encode 509*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 510*cdf0e10cSrcweir class encodeBF : public CppUnit::TestFixture 511*cdf0e10cSrcweir { 512*cdf0e10cSrcweir public: 513*cdf0e10cSrcweir // initialise your test code values here. 514*cdf0e10cSrcweir void setUp() 515*cdf0e10cSrcweir { 516*cdf0e10cSrcweir } 517*cdf0e10cSrcweir 518*cdf0e10cSrcweir void tearDown() 519*cdf0e10cSrcweir { 520*cdf0e10cSrcweir } 521*cdf0e10cSrcweir 522*cdf0e10cSrcweir void encodeBF_001() 523*cdf0e10cSrcweir { 524*cdf0e10cSrcweir } 525*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 526*cdf0e10cSrcweir // member functions of the current class, 527*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 528*cdf0e10cSrcweir 529*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(encodeBF); 530*cdf0e10cSrcweir CPPUNIT_TEST(encodeBF_001); 531*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 532*cdf0e10cSrcweir }; // class encodeBF 533*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 534*cdf0e10cSrcweir class init : public CppUnit::TestFixture 535*cdf0e10cSrcweir { 536*cdf0e10cSrcweir public: 537*cdf0e10cSrcweir // initialise your test code values here. 538*cdf0e10cSrcweir void setUp() 539*cdf0e10cSrcweir { 540*cdf0e10cSrcweir } 541*cdf0e10cSrcweir 542*cdf0e10cSrcweir void tearDown() 543*cdf0e10cSrcweir { 544*cdf0e10cSrcweir } 545*cdf0e10cSrcweir 546*cdf0e10cSrcweir void init_001() 547*cdf0e10cSrcweir { 548*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 549*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 550*cdf0e10cSrcweir 551*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 552*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 553*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 554*cdf0e10cSrcweir 555*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 556*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 557*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 558*cdf0e10cSrcweir 559*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 560*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 561*cdf0e10cSrcweir 562*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 563*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 564*cdf0e10cSrcweir 565*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 566*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 567*cdf0e10cSrcweir 568*cdf0e10cSrcweir delete [] pArgBuffer; 569*cdf0e10cSrcweir delete [] pKeyBuffer; 570*cdf0e10cSrcweir 571*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 572*cdf0e10cSrcweir } 573*cdf0e10cSrcweir 574*cdf0e10cSrcweir void init_002() 575*cdf0e10cSrcweir { 576*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 577*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 578*cdf0e10cSrcweir 579*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 580*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 581*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 582*cdf0e10cSrcweir pKeyBuffer[0] = 1; 583*cdf0e10cSrcweir 584*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 585*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 586*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 587*cdf0e10cSrcweir 588*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 589*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 590*cdf0e10cSrcweir 591*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 592*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 593*cdf0e10cSrcweir 594*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 595*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 596*cdf0e10cSrcweir 597*cdf0e10cSrcweir delete [] pArgBuffer; 598*cdf0e10cSrcweir delete [] pKeyBuffer; 599*cdf0e10cSrcweir 600*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 601*cdf0e10cSrcweir } 602*cdf0e10cSrcweir void init_003() 603*cdf0e10cSrcweir { 604*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 605*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 606*cdf0e10cSrcweir 607*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 608*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 609*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 610*cdf0e10cSrcweir 611*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 612*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 613*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 614*cdf0e10cSrcweir pArgBuffer[0] = 1; 615*cdf0e10cSrcweir 616*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 617*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 618*cdf0e10cSrcweir 619*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 620*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 621*cdf0e10cSrcweir 622*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 623*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 624*cdf0e10cSrcweir 625*cdf0e10cSrcweir delete [] pArgBuffer; 626*cdf0e10cSrcweir delete [] pKeyBuffer; 627*cdf0e10cSrcweir 628*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 629*cdf0e10cSrcweir } 630*cdf0e10cSrcweir void init_004() 631*cdf0e10cSrcweir { 632*cdf0e10cSrcweir rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB); 633*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL); 634*cdf0e10cSrcweir 635*cdf0e10cSrcweir sal_uInt32 nKeyLen = 16; 636*cdf0e10cSrcweir sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ]; 637*cdf0e10cSrcweir memset(pKeyBuffer, 0, nKeyLen); 638*cdf0e10cSrcweir pKeyBuffer[0] = 1; 639*cdf0e10cSrcweir 640*cdf0e10cSrcweir sal_uInt32 nArgLen = 16; 641*cdf0e10cSrcweir sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ]; 642*cdf0e10cSrcweir memset(pArgBuffer, 0, nArgLen); 643*cdf0e10cSrcweir pArgBuffer[0] = 1; 644*cdf0e10cSrcweir 645*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 646*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen); 649*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None); 650*cdf0e10cSrcweir 651*cdf0e10cSrcweir t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr()); 652*cdf0e10cSrcweir t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr()); 653*cdf0e10cSrcweir 654*cdf0e10cSrcweir delete [] pArgBuffer; 655*cdf0e10cSrcweir delete [] pKeyBuffer; 656*cdf0e10cSrcweir 657*cdf0e10cSrcweir rtl_cipher_destroy(aCipher); 658*cdf0e10cSrcweir } 659*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 660*cdf0e10cSrcweir // member functions of the current class, 661*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 662*cdf0e10cSrcweir 663*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(init); 664*cdf0e10cSrcweir CPPUNIT_TEST(init_001); 665*cdf0e10cSrcweir CPPUNIT_TEST(init_002); 666*cdf0e10cSrcweir CPPUNIT_TEST(init_003); 667*cdf0e10cSrcweir CPPUNIT_TEST(init_004); 668*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 669*cdf0e10cSrcweir }; // class init 670*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 671*cdf0e10cSrcweir class initBF : public CppUnit::TestFixture 672*cdf0e10cSrcweir { 673*cdf0e10cSrcweir public: 674*cdf0e10cSrcweir // initialise your test code values here. 675*cdf0e10cSrcweir void setUp() 676*cdf0e10cSrcweir { 677*cdf0e10cSrcweir } 678*cdf0e10cSrcweir 679*cdf0e10cSrcweir void tearDown() 680*cdf0e10cSrcweir { 681*cdf0e10cSrcweir } 682*cdf0e10cSrcweir 683*cdf0e10cSrcweir void initBF_001() 684*cdf0e10cSrcweir { 685*cdf0e10cSrcweir // seems to be the same as init, so empty 686*cdf0e10cSrcweir } 687*cdf0e10cSrcweir 688*cdf0e10cSrcweir // Change the following lines only, if you add, remove or rename 689*cdf0e10cSrcweir // member functions of the current class, 690*cdf0e10cSrcweir // because these macros are need by auto register mechanism. 691*cdf0e10cSrcweir 692*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(initBF); 693*cdf0e10cSrcweir CPPUNIT_TEST(initBF_001); 694*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 695*cdf0e10cSrcweir }; // class initBF 696*cdf0e10cSrcweir 697*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 698*cdf0e10cSrcweir 699*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::create, "rtl_cipher"); 700*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::createBF, "rtl_cipher"); 701*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::decode, "rtl_cipher"); 702*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::decodeBF, "rtl_cipher"); 703*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::destroy, "rtl_cipher"); 704*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::destroyBF, "rtl_cipher"); 705*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::encode, "rtl_cipher"); 706*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::encodeBF, "rtl_cipher"); 707*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::init, "rtl_cipher"); 708*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_cipher::initBF, "rtl_cipher"); 709*cdf0e10cSrcweir 710*cdf0e10cSrcweir } // namespace rtl_cipher 711*cdf0e10cSrcweir 712*cdf0e10cSrcweir 713*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 714*cdf0e10cSrcweir 715*cdf0e10cSrcweir // this macro creates an empty function, which will called by the RegisterAllFunctions() 716*cdf0e10cSrcweir // to let the user the possibility to also register some functions by hand. 717*cdf0e10cSrcweir NOADDITIONAL; 718