18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Test program for EAP-SIM PRF 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "eap_common/eap_sim_common.c" 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic int test_eap_sim_prf(void) 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* http://csrc.nist.gov/encryption/dss/Examples-1024bit.pdf */ 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 xkey[] = { 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0xbd, 0x02, 0x9b, 0xbe, 0x7f, 0x51, 0x96, 0x0b, 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0xcf, 0x9e, 0xdb, 0x2b, 0x61, 0xf0, 0x6f, 0x0f, 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0xeb, 0x5a, 0x38, 0xb6 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt }; 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 w[] = { 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0x20, 0x70, 0xb3, 0x22, 0x3d, 0xba, 0x37, 0x2f, 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0xde, 0x1c, 0x0f, 0xfc, 0x7b, 0x2e, 0x3b, 0x49, 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0x8b, 0x26, 0x06, 0x14, 0x3c, 0x6c, 0x18, 0xba, 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0xcb, 0x0f, 0x6c, 0x55, 0xba, 0xbb, 0x13, 0x78, 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 0x8e, 0x20, 0xd7, 0x37, 0xa3, 0x27, 0x51, 0x16 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt }; 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 buf[40]; 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt printf("Testing EAP-SIM PRF (FIPS 186-2 + change notice 1)\n"); 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt eap_sim_prf(xkey, buf, sizeof(buf)); 3161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt if (memcmp(w, buf, sizeof(w)) != 0) { 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt printf("eap_sim_prf failed\n"); 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return 1; 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt } 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return 0; 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt} 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint main(int argc, char *argv[]) 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int errors = 0; 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt errors += test_eap_sim_prf(); 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return errors; 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt} 48