251 lines
12 KiB
C
251 lines
12 KiB
C
/*
|
|
******************************************************************************
|
|
* INTERPEAK SOURCE FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: iphwcrypto_evptest.c,v $ $Revision: 1.8.48.1 $
|
|
* $Source: /home/interpeak/CVSRoot/iphwcrypto/src/iphwcrypto_evptest.c,v $
|
|
* $Author: zan $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
* Design and implementation by Markus Carlstedt <markus@interpeak.se>
|
|
******************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 CONFIGURATION
|
|
****************************************************************************
|
|
*/
|
|
|
|
#include "iphwcrypto_config.h"
|
|
|
|
#if defined(IPCRYPTO) && defined(IPHWCRYPTO_CREATE_EVP_TEST_FILE)
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 3 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
|
|
#define IPCOM_USE_CLIB_PROTO
|
|
#include <ipcom_type.h>
|
|
#include <ipcom_cstyle.h>
|
|
#include <ipcom_clib.h>
|
|
#include <ipcom_err.h>
|
|
#include <ipcom_syslog.h>
|
|
|
|
#include "iphwcrypto.h"
|
|
#include "iphwcrypto_h.h"
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 4 DEFINES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 5 TYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 EXTERN PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 7 LOCAL PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 8 DATA
|
|
****************************************************************************
|
|
*/
|
|
|
|
/* Test file name */
|
|
IP_STATIC IP_CONST char *testfilename = IPCOM_FILE_ROOT"evptests";
|
|
|
|
/* Test specification for IPCRYPTO evp_test function */
|
|
IP_STATIC IP_CONST char *iphwcrypto_evptests[] =
|
|
{
|
|
"#cipher:key:iv:plaintext:ciphertext:0/1(decrypt/encrypt)\n",
|
|
"#digest:::input:output\n",
|
|
"\n",
|
|
|
|
"# MD5 tests\n",
|
|
"MD5::::d41d8cd98f00b204e9800998ecf8427e\n",
|
|
|
|
"MD5:::61:0cc175b9c0f1b6a831c399e269772661\n",
|
|
"MD5:::616263:900150983cd24fb0d6963f7d28e17f72\n",
|
|
"MD5:::6d65737361676520646967657374:f96b697d7cb7938d525a2f31aaf161d0\n",
|
|
"MD5:::6162636465666768696a6b6c6d6e6f707172737475767778797a:c3fcd3d76192e4007dfb496cca67e13b\n",
|
|
"MD5:::4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839:d174ab98d277d9f5a5611c2c9f419d9f\n",
|
|
"MD5:::3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930:57edf4a22be3c955ac49da2e2107b67a\n",
|
|
"\n",
|
|
|
|
"# SHA1 tests\n",
|
|
"SHA1:::616263:a9993e364706816aba3e25717850c26c9cd0d89d\n",
|
|
"\n",
|
|
|
|
"# DES-CBC tests\n",
|
|
"DES-CBC:0123456789abcdef:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:ccd173ffab2039f4acd8aefddfd8a1eb468e91157888ba681d269397f7fe62b4\n",
|
|
"\n",
|
|
|
|
"# DES-ECB tests \n",
|
|
"DES-ECB:0000000000000000::0000000000000000:8CA64DE9C1B123A7\n",
|
|
"DES-ECB:FFFFFFFFFFFFFFFF::FFFFFFFFFFFFFFFF:7359B2163E4EDC58\n",
|
|
"DES-ECB:3000000000000000::1000000000000001:958E6E627A05557B\n",
|
|
"DES-ECB:1111111111111111::1111111111111111:F40379AB9E0EC533\n",
|
|
"DES-ECB:0123456789ABCDEF::1111111111111111:17668DFC7292532D\n",
|
|
"DES-ECB:1111111111111111::0123456789ABCDEF:8A5AE1F81AB8F2DD\n",
|
|
"DES-ECB:0000000000000000::0000000000000000:8CA64DE9C1B123A7\n",
|
|
"DES-ECB:FEDCBA9876543210::0123456789ABCDEF:ED39D950FA74BCC4\n",
|
|
"DES-ECB:7CA110454A1A6E57::01A1D6D039776742:690F5B0D9A26939B\n",
|
|
"DES-ECB:0131D9619DC1376E::5CD54CA83DEF57DA:7A389D10354BD271\n",
|
|
"DES-ECB:07A1133E4A0B2686::0248D43806F67172:868EBB51CAB4599A\n",
|
|
"DES-ECB:3849674C2602319E::51454B582DDF440A:7178876E01F19B2A\n",
|
|
"DES-ECB:04B915BA43FEB5B6::42FD443059577FA2:AF37FB421F8C4095\n",
|
|
"DES-ECB:0113B970FD34F2CE::059B5E0851CF143A:86A560F10EC6D85B\n",
|
|
"DES-ECB:0170F175468FB5E6::0756D8E0774761D2:0CD3DA020021DC09\n",
|
|
"DES-ECB:43297FAD38E373FE::762514B829BF486A:EA676B2CB7DB2B7A\n",
|
|
"DES-ECB:07A7137045DA2A16::3BDD119049372802:DFD64A815CAF1A0F\n",
|
|
"DES-ECB:04689104C2FD3B2F::26955F6835AF609A:5C513C9C4886C088\n",
|
|
"DES-ECB:37D06BB516CB7546::164D5E404F275232:0A2AEEAE3FF4AB77\n",
|
|
"DES-ECB:1F08260D1AC2465E::6B056E18759F5CCA:EF1BF03E5DFA575A\n",
|
|
"DES-ECB:584023641ABA6176::004BD6EF09176062:88BF0DB6D70DEE56\n",
|
|
"DES-ECB:025816164629B007::480D39006EE762F2:A1F9915541020B56\n",
|
|
"DES-ECB:49793EBC79B3258F::437540C8698F3CFA:6FBF1CAFCFFD0556\n",
|
|
"DES-ECB:4FB05E1515AB73A7::072D43A077075292:2F22E49BAB7CA1AC\n",
|
|
"DES-ECB:49E95D6D4CA229BF::02FE55778117F12A:5A6B612CC26CCE4A\n",
|
|
"DES-ECB:018310DC409B26D6::1D9D5C5018F728C2:5F4C038ED12B2E41\n",
|
|
"DES-ECB:1C587F1C13924FEF::305532286D6F295A:63FAC0D034D9F793\n",
|
|
"DES-ECB:0101010101010101::0123456789ABCDEF:617B3A0CE8F07100\n",
|
|
"DES-ECB:1F1F1F1F0E0E0E0E::0123456789ABCDEF:DB958605F8C8C606\n",
|
|
"DES-ECB:E0FEE0FEF1FEF1FE::0123456789ABCDEF:EDBFD1C66C29CCC7\n",
|
|
"DES-ECB:0000000000000000::FFFFFFFFFFFFFFFF:355550B2150E2451\n",
|
|
"DES-ECB:FFFFFFFFFFFFFFFF::0000000000000000:CAAAAF4DEAF1DBAE\n",
|
|
"DES-ECB:0123456789ABCDEF::0000000000000000:D5D44FF720683D0D\n",
|
|
"DES-ECB:FEDCBA9876543210::FFFFFFFFFFFFFFFF:2A2BB008DF97C2F2\n",
|
|
"\n",
|
|
|
|
"# DES-EDE3-CBC tests\n",
|
|
"DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675\n",
|
|
"\n",
|
|
|
|
"# DES-EDE3 tests\n",
|
|
"DES-EDE3:0123456789abcdef23456789abcdef01456789abcdef0123::4e6f772069732074:314f8327fa7a09a8\n",
|
|
"\n",
|
|
|
|
"# AES-128-CBC tests\n",
|
|
"AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:7649ABAC8119B246CEE98E9B12E9197D\n",
|
|
"AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:7649ABAC8119B246CEE98E9B12E9197D:AE2D8A571E03AC9C9EB76FAC45AF8E51:5086CB9B507219EE95DB113A917678B2\n",
|
|
"AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:5086CB9B507219EE95DB113A917678B2:30C81C46A35CE411E5FBC1191A0A52EF:73BED6B8E3C1743B7116E69E22229516\n",
|
|
"AES-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:73BED6B8E3C1743B7116E69E22229516:F69F2445DF4F9B17AD2B417BE66C3710:3FF1CAA1681FAC09120ECA307586E1A7\n",
|
|
|
|
"# AES-128-ECB tests\n",
|
|
"AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::6BC1BEE22E409F96E93D7E117393172A:3AD77BB40D7A3660A89ECAF32466EF97\n",
|
|
"AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::AE2D8A571E03AC9C9EB76FAC45AF8E51:F5D3D58503B9699DE785895A96FDBAAF\n",
|
|
"AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::30C81C46A35CE411E5FBC1191A0A52EF:43B1CD7F598ECE23881B00E3ED030688\n",
|
|
"AES-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::F69F2445DF4F9B17AD2B417BE66C3710:7B0C785E27E8AD3F8223207104725DD4\n",
|
|
|
|
"# AES-192-CBC tests\n",
|
|
"AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:4F021DB243BC633D7178183A9FA071E8\n",
|
|
"AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:4F021DB243BC633D7178183A9FA071E8:AE2D8A571E03AC9C9EB76FAC45AF8E51:B4D9ADA9AD7DEDF4E5E738763F69145A\n",
|
|
"AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:B4D9ADA9AD7DEDF4E5E738763F69145A:30C81C46A35CE411E5FBC1191A0A52EF:571B242012FB7AE07FA9BAAC3DF102E0\n",
|
|
"AES-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:571B242012FB7AE07FA9BAAC3DF102E0:F69F2445DF4F9B17AD2B417BE66C3710:08B0E27988598881D920A9E64F5615CD\n",
|
|
|
|
"# AES-192-ECB tests\n",
|
|
"AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::6BC1BEE22E409F96E93D7E117393172A:BD334F1D6E45F25FF712A214571FA5CC\n",
|
|
"AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::AE2D8A571E03AC9C9EB76FAC45AF8E51:974104846D0AD3AD7734ECB3ECEE4EEF\n",
|
|
"AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::30C81C46A35CE411E5FBC1191A0A52EF:EF7AFD2270E2E60ADCE0BA2FACE6444E\n",
|
|
"AES-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::F69F2445DF4F9B17AD2B417BE66C3710:9A4B41BA738D6C72FB16691603C18E0E\n",
|
|
|
|
"# AES-256-CBC tests\n",
|
|
"AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:F58C4C04D6E5F1BA779EABFB5F7BFBD6\n",
|
|
"AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D\n",
|
|
"AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461\n",
|
|
"AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B\n",
|
|
|
|
"# AES-256-ECB tests\n",
|
|
"AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::6BC1BEE22E409F96E93D7E117393172A:F3EED1BDB5D2A03C064B5A7E3DB181F8\n",
|
|
"AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::AE2D8A571E03AC9C9EB76FAC45AF8E51:591CCB10D410ED26DC5BA74A31362870\n",
|
|
"AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::30C81C46A35CE411E5FBC1191A0A52EF:B6ED21B99CA6F4F9F153E7B1BEAFED1D\n",
|
|
"AES-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::F69F2445DF4F9B17AD2B417BE66C3710:23304B7A39F9F3FF067D8D8F9E24ECC7\n",
|
|
|
|
IP_NULL
|
|
};
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 9 STATIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 10 GLOBAL FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*===========================================================================
|
|
* iphwcrypto_evptests_create
|
|
*===========================================================================
|
|
* Description: Create a test file for IPCRYPTO evp_test utility.
|
|
* Parameters: none.
|
|
* Returns: 1 = ok
|
|
* 0 = fail
|
|
*/
|
|
IP_GLOBAL int
|
|
iphwcrypto_evptests_create(void)
|
|
{
|
|
IP_FILE *fp;
|
|
const char **s;
|
|
|
|
fp = ipcom_fopen(testfilename, "w");
|
|
if(fp != IP_NULL)
|
|
{
|
|
for (s = iphwcrypto_evptests; *s != IP_NULL; s++)
|
|
(void)ipcom_fwrite(*s, 1, ipcom_strlen(*s), fp);
|
|
ipcom_fclose(fp);
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
IPCOM_LOG1(ERR, "iphwcrypto_evptests_create() :: failed to create \"%s\"", testfilename);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
#else
|
|
int iphwcrypto_evptests_empty_file;
|
|
#endif /* #if defined(IPCRYPTO) && defined(IPHWCRYPTO_CREATE_EVP_TEST_FILE) */
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 11 PUBLIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|