Hash :
c0fea97c
Author :
Date :
2007-05-28T16:49:41
Unconditionally include <config.h> in unit tests. * tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H. * tests/test-allocsa.c, tests/test-arcfour.c, tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c, tests/test-array_list.c, tests/test-array_oset.c, tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c, test-avltreehash_list.c, test-base64.c, test-binary-io.c, test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c, test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c, test-carray_list.c, test-crc.c, test-des.c, test-dirname.c, test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c, test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c, test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c, test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c, test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c, test-iconv.c, test-linked_list.c, test-linkedhash_list.c, test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c, test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c, test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c, test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c, test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c, test-md5.c, test-memmem.c, test-printf-posix.c, test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c, test-read-file.c, test-rijndael.c, test-snprintf-posix.c, test-snprintf.c, test-sprintf-posix.c, test-stdint.c, test-strcasestr.c, test-striconv.c, test-striconveh.c, test-striconveha.c, test-tls.c, test-vasnprintf-posix.c, test-vasnprintf-posix2.c, test-vasnprintf.c, test-vasprintf-posix.c, test-vasprintf.c, test-verify.c, test-vfprintf-posix.c, test-vprintf-posix.c, test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c, test-xvasprintf.c: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
/*
* Copyright (C) 2005 Free Software Foundation
* Written by Simon Josefsson
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA. */
#include <config.h>
#include <stdio.h>
#include <string.h>
#include "gc.h"
int
main (int argc, char *argv[])
{
gc_cipher_handle ctx;
/* Test vector from Cryptlib via Libgcrypt labeled there: "from the
State/Commerce Department". */
static char key_1[] = { 0x61, 0x8A, 0x63, 0xD2, 0xFB };
static char plaintext_1[] = { 0xDC, 0xEE, 0x4C, 0xF9, 0x2C };
static const char ciphertext_1[] = { 0xF1, 0x38, 0x29, 0xC9, 0xDE };
char scratch[16];
Gc_rc rc;
rc = gc_init ();
if (rc != GC_OK)
{
printf ("gc_init() failed\n");
return 1;
}
rc = gc_cipher_open (GC_ARCFOUR40, GC_STREAM, &ctx);
if (rc != GC_OK)
return 1;
rc = gc_cipher_setkey (ctx, sizeof (key_1), key_1);
if (rc != GC_OK)
return 1;
memcpy (scratch, plaintext_1, sizeof (plaintext_1));
rc = gc_cipher_encrypt_inline (ctx, sizeof (plaintext_1), scratch);
if (rc != GC_OK)
return 1;
if (memcmp (scratch, ciphertext_1, sizeof (ciphertext_1)))
{
size_t i;
printf ("expected:\n");
for (i = 0; i < 5; i++)
printf ("%02x ", scratch[i] & 0xFF);
printf ("\ncomputed:\n");
for (i = 0; i < 5; i++)
printf ("%02x ", ciphertext_1[i] & 0xFF);
printf ("\n");
return 1;
}
/* decrypt */
rc = gc_cipher_setkey (ctx, sizeof (key_1), key_1);
if (rc != GC_OK)
return 1;
rc = gc_cipher_decrypt_inline (ctx, sizeof (plaintext_1), scratch);
if (rc != GC_OK)
return 1;
if (memcmp (scratch, plaintext_1, sizeof (plaintext_1)))
{
size_t i;
printf ("expected:\n");
for (i = 0; i < 5; i++)
printf ("%02x ", plaintext_1[i] & 0xFF);
printf ("\ncomputed:\n");
for (i = 0; i < 5; i++)
printf ("%02x ", scratch[i] & 0xFF);
printf ("\n");
return 1;
}
gc_done ();
return 0;
}