From f9e3fbf9c84ada22370b8557e443d0f2572f99ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Mon, 14 Jan 2002 02:16:42 +0100 Subject: [PATCH] rsa.h is now obsolete. Rev: src/nettle/hmac-md5.h:1.1 Rev: src/nettle/rsa.h:1.5 Rev: src/nettle/rsa_md5.c:1.3 Rev: src/nettle/rsa_sha1.c:1.3 Rev: src/nettle/testsuite/Makefile.am:1.18 Rev: src/nettle/testsuite/aes-test.c:1.2 Rev: src/nettle/testsuite/arcfour-test.c:1.2 Rev: src/nettle/testsuite/bignum-test.c:1.2 Rev: src/nettle/testsuite/blowfish-test.c:1.2 Rev: src/nettle/testsuite/cast128-test.c:1.2 Rev: src/nettle/testsuite/cbc-test.c:1.2 Rev: src/nettle/testsuite/des-compat-test.c:1.3 Rev: src/nettle/testsuite/des-test.c:1.2 Rev: src/nettle/testsuite/des3-test.c:1.2 Rev: src/nettle/testsuite/md5-compat-test.c:1.2 Rev: src/nettle/testsuite/md5-test.c:1.2 Rev: src/nettle/testsuite/serpent-test.c:1.2 Rev: src/nettle/testsuite/sha1-test.c:1.2 Rev: src/nettle/testsuite/sha256-test.c:1.2 Rev: src/nettle/testsuite/testutils.c:1.6 Rev: src/nettle/testsuite/testutils.h:1.4 Rev: src/nettle/testsuite/twofish-test.c:1.2 Rev: src/nettle/testsuite/yarrow-test.c:1.11 --- hmac-md5.h | 46 +++++++++++++++++++++++++++++++++++++ rsa.h | 9 ++++++++ rsa_md5.c | 3 ++- rsa_sha1.c | 5 ++-- testsuite/Makefile.am | 2 +- testsuite/aes-test.c | 2 +- testsuite/arcfour-test.c | 2 +- testsuite/bignum-test.c | 8 +++---- testsuite/blowfish-test.c | 2 +- testsuite/cast128-test.c | 2 +- testsuite/cbc-test.c | 2 +- testsuite/des-compat-test.c | 4 +++- testsuite/des-test.c | 2 +- testsuite/des3-test.c | 2 +- testsuite/md5-compat-test.c | 2 +- testsuite/md5-test.c | 2 +- testsuite/serpent-test.c | 2 +- testsuite/sha1-test.c | 2 +- testsuite/sha256-test.c | 2 +- testsuite/testutils.c | 31 +++++++++++++++++++++++++ testsuite/testutils.h | 8 ++++++- testsuite/twofish-test.c | 2 +- testsuite/yarrow-test.c | 9 +------- 23 files changed, 119 insertions(+), 32 deletions(-) create mode 100644 hmac-md5.h diff --git a/hmac-md5.h b/hmac-md5.h new file mode 100644 index 00000000..014e51b9 --- /dev/null +++ b/hmac-md5.h @@ -0,0 +1,46 @@ +/* hmac-md5.h + * + * HMAC message authentication code. + */ + +/* nettle, low-level cryptographics library + * + * Copyright (C) 2001 Niels M�ller + * + * The nettle library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or (at your + * option) any later version. + * + * The nettle library 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 Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the nettle library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + +#ifndef NETTLE_HMAC_MD5_H_INCLUDED +#define NETTLE_HMAC_MD5_H_INCLUDED + +#include "hmac.h" +#include "md5.h" + +struct hmac_md5_ctx HMAC_CTX(struct md5_ctx); + +void +hmac_md5_set_key(struct hmac_md5_ctx *ctx, + unsigned key_length, const uint8_t *key); + +void +hmac_md5_update(struct hmac_md5_ctx *ctx, + unsigned length, const uint8_t *data); + +void +hmac_md5_digest(struct hmac_md5_ctx *ctx, + unsigned length, uint8_t *digest); + +#endif /* NETTLE_HMAC_MD5_H_INCLUDED */ diff --git a/rsa.h b/rsa.h index 08df531d..295abc31 100644 --- a/rsa.h +++ b/rsa.h @@ -137,5 +137,14 @@ rsa_sha1_verify(struct rsa_public_key *key, void rsa_compute_root(struct rsa_private_key *key, mpz_t x, const mpz_t m); +#define RSA_SIGN(key, algorithm, ctx, length, data, signature) ( \ + algorithm##_update(ctx, length, data), \ + rsa_##algorithm##_sign(key, ctx, signature) \ +) + +#define RSA_VERIFY(key, algorithm, ctx, length, data, signature) ( \ + algorithm##_update(ctx, length, data), \ + rsa_##algorithm##_verify(key, ctx, signature) \ +) #endif /* NETTLE_RSA_H_INCLUDED */ diff --git a/rsa_md5.c b/rsa_md5.c index a0a0109c..a8cf622c 100644 --- a/rsa_md5.c +++ b/rsa_md5.c @@ -90,7 +90,8 @@ rsa_md5_verify(struct rsa_public_key *key, * md5Identifier ::= AlgorithmIdentifier {md5, NULL} */ -static const uint8_t md5_prefix[] = +static const uint8_t +md5_prefix[] = { /* 18 octets prefix, 16 octets hash, 34 total. */ 0x30, 32, /* SEQUENCE */ diff --git a/rsa_sha1.c b/rsa_sha1.c index 21c70f29..864e44a0 100644 --- a/rsa_sha1.c +++ b/rsa_sha1.c @@ -90,7 +90,8 @@ rsa_sha1_verify(struct rsa_public_key *key, * sha1Identifier ::= AlgorithmIdentifier {id-sha1, NULL} */ -static const uint8_t sha1_prefix[] = +static const uint8_t +sha1_prefix[] = { /* 15 octets prefix, 20 octets hash, total 35 */ 0x30, 33, /* SEQUENCE */ @@ -102,8 +103,6 @@ static const uint8_t sha1_prefix[] = /* Here comes the raw hash value */ }; - - static void pkcs1_encode_sha1(mpz_t m, unsigned length, struct sha1_ctx *hash) { diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 3229f03c..b9eb25c3 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -5,7 +5,7 @@ TS_PROGS = aes-test arcfour-test blowfish-test cast128-test \ des-test des3-test des-compat-test \ md5-test md5-compat-test sha1-test sha256-test \ serpent-test twofish-test \ - cbc-test bignum-test yarrow-test + cbc-test rsa-test bignum-test yarrow-test # M4_FILES = aes-test.m4 arcfour-test.m4 blowfish-test.m4 cast128-test.m4 \ # des-test.m4 des3-test.m4 \ diff --git a/testsuite/aes-test.c b/testsuite/aes-test.c index 42b3cda1..1da4d518 100644 --- a/testsuite/aes-test.c +++ b/testsuite/aes-test.c @@ -2,7 +2,7 @@ #include "aes.h" int -main(int argc, char **argv) +test_main(void) { /* 128 bit keys */ test_cipher(&nettle_aes128, diff --git a/testsuite/arcfour-test.c b/testsuite/arcfour-test.c index 47886dfb..5b1021a8 100644 --- a/testsuite/arcfour-test.c +++ b/testsuite/arcfour-test.c @@ -2,7 +2,7 @@ #include "arcfour.h" int -main(int argc, char **argv) +test_main(void) { test_cipher(&nettle_arcfour128, HL("01234567 89ABCDEF 00000000 00000000"), diff --git a/testsuite/bignum-test.c b/testsuite/bignum-test.c index 905eef0e..bfdcddb0 100644 --- a/testsuite/bignum-test.c +++ b/testsuite/bignum-test.c @@ -4,12 +4,12 @@ #include "config.h" #endif -#if HAVE_LIBGMP -#include "bignum.h" - #include <stdlib.h> #include <string.h> +#if HAVE_LIBGMP +#include "bignum.h" + static void test_bignum(const char *hex, unsigned length, const uint8_t *base256) { @@ -38,7 +38,7 @@ test_bignum(const char *hex, unsigned length, const uint8_t *base256) #endif /* HAVE_LIBGMP */ int -main(int argc, char **argv) +test_main(void) { #if HAVE_LIBGMP test_bignum("0", 0, ""); diff --git a/testsuite/blowfish-test.c b/testsuite/blowfish-test.c index 9d160bd6..c4311bb7 100644 --- a/testsuite/blowfish-test.c +++ b/testsuite/blowfish-test.c @@ -3,7 +3,7 @@ #include "blowfish.h" int -main(int argc, char **argv) +test_main(void) { /* 208 bit key. Test from GNUPG. */ test_cipher(&nettle_blowfish128, diff --git a/testsuite/cast128-test.c b/testsuite/cast128-test.c index 611733ec..e4b7830e 100644 --- a/testsuite/cast128-test.c +++ b/testsuite/cast128-test.c @@ -2,7 +2,7 @@ #include "cast128.h" int -main(int argc, char **argv) +test_main(void) { /* Test vectors from B.1. Single Plaintext-Key-Ciphertext Sets, RFC * 2144 */ diff --git a/testsuite/cbc-test.c b/testsuite/cbc-test.c index 6e1a9463..4645ee83 100644 --- a/testsuite/cbc-test.c +++ b/testsuite/cbc-test.c @@ -3,7 +3,7 @@ #include "cbc.h" int -main(int argc, char **argv) +test_main(void) { uint8_t msg[2 * AES_BLOCK_SIZE] = "Listen, I'll say this only once!"; diff --git a/testsuite/des-compat-test.c b/testsuite/des-compat-test.c index 9a950e0f..b77a3e3a 100644 --- a/testsuite/des-compat-test.c +++ b/testsuite/des-compat-test.c @@ -62,6 +62,7 @@ #include <string.h> #include "des-compat.h" +#include "testutils.h" #define C_Block des_cblock #define Key_schedule des_key_schedule @@ -300,7 +301,8 @@ static int cfb64_test(); static int ede_cfb64_test(); #endif -int main(int argc, char **argv) +int +test_main(void) { int i,j,err=0; des_cblock in,out,outin,iv3; diff --git a/testsuite/des-test.c b/testsuite/des-test.c index 1ca8dd9e..fd47fbac 100644 --- a/testsuite/des-test.c +++ b/testsuite/des-test.c @@ -3,7 +3,7 @@ #include "des.h" int -main(int argc, char **argv) +test_main(void) { struct des_ctx ctx; diff --git a/testsuite/des3-test.c b/testsuite/des3-test.c index b3a44291..678a235e 100644 --- a/testsuite/des3-test.c +++ b/testsuite/des3-test.c @@ -3,7 +3,7 @@ #include "des.h" int -main(int argc, char **argv) +test_main(void) { /* Intermediate values: * After first DES encryption: "cd ea 2a 20 c2 e0 9e 48" diff --git a/testsuite/md5-compat-test.c b/testsuite/md5-compat-test.c index 4304ea85..bffb6232 100644 --- a/testsuite/md5-compat-test.c +++ b/testsuite/md5-compat-test.c @@ -2,7 +2,7 @@ #include "md5-compat.h" int -main(int argc, char **argv) +test_main(void) { MD5_CTX ctx; unsigned char digest[MD5_DIGEST_SIZE]; diff --git a/testsuite/md5-test.c b/testsuite/md5-test.c index a65958ab..fece067f 100644 --- a/testsuite/md5-test.c +++ b/testsuite/md5-test.c @@ -2,7 +2,7 @@ #include "md5.h" int -main(int argc, char **argv) +test_main(void) { test_hash(&nettle_md5, 0, "", H("D41D8CD98F00B204 E9800998ECF8427E")); diff --git a/testsuite/serpent-test.c b/testsuite/serpent-test.c index 345417e4..b1101ea3 100644 --- a/testsuite/serpent-test.c +++ b/testsuite/serpent-test.c @@ -2,7 +2,7 @@ #include "serpent.h" int -main(int argc, char **argv) +test_main(void) { /* The first test for each key size from the ecb_vk.txt and ecb_vt.txt * files in the serpent package. */ diff --git a/testsuite/sha1-test.c b/testsuite/sha1-test.c index 5f602c97..cd65ecab 100644 --- a/testsuite/sha1-test.c +++ b/testsuite/sha1-test.c @@ -2,7 +2,7 @@ #include "sha.h" int -main(int argc, char **argv) +test_main(void) { test_hash(&nettle_sha1, 0, "", H("DA39A3EE5E6B4B0D 3255BFEF95601890 AFD80709")); diff --git a/testsuite/sha256-test.c b/testsuite/sha256-test.c index 89a0a234..77995351 100644 --- a/testsuite/sha256-test.c +++ b/testsuite/sha256-test.c @@ -2,7 +2,7 @@ #include "sha.h" int -main(int argc, char **argv) +test_main(void) { test_hash(&nettle_sha256, 3, "abc", H("ba7816bf8f01cfea 414140de5dae2223" diff --git a/testsuite/testutils.c b/testsuite/testutils.c index 152b4f35..41ae5771 100644 --- a/testsuite/testutils.c +++ b/testsuite/testutils.c @@ -5,9 +5,13 @@ #include "cbc.h" #include <ctype.h> +#include <stdio.h> #include <stdlib.h> #include <string.h> +/* For getopt() */ +#include <unistd.h> + /* -1 means invalid */ const signed char hex_digits[0x100] = { @@ -103,6 +107,33 @@ decode_hex_dup(const char *hex) } } +int verbose = 0; + +int +main(int argc, char **argv) +{ + int c; + + while ((c = getopt (argc, argv, "v")) != -1) + switch (c) + { + case 'v': + verbose = 1; + break; + case '?': + if (isprint (optopt)) + fprintf (stderr, "Unknown option `-%c'.\n", optopt); + else + fprintf (stderr, + "Unknown option character `\\x%x'.\n", + optopt); + default: + abort(); + } + + return test_main(); +} + void test_cipher(const struct nettle_cipher *cipher, unsigned key_length, diff --git a/testsuite/testutils.h b/testsuite/testutils.h index efdb6d66..ff51d215 100644 --- a/testsuite/testutils.h +++ b/testsuite/testutils.h @@ -20,6 +20,12 @@ decode_hex(uint8_t *dst, const char *hex); const uint8_t * decode_hex_dup(const char *hex); +/* The main program */ +int +test_main(void); + +extern int verbose; + void test_cipher(const struct nettle_cipher *cipher, unsigned key_length, @@ -42,7 +48,7 @@ test_hash(const struct nettle_hash *hash, unsigned length, const uint8_t *data, const uint8_t *digest); - + #define H2(d, s) decode_hex((d), (s)) #define H(x) decode_hex_dup(x) #define HL(x) decode_hex_length(x), decode_hex_dup(x) diff --git a/testsuite/twofish-test.c b/testsuite/twofish-test.c index 935c0523..65558d37 100644 --- a/testsuite/twofish-test.c +++ b/testsuite/twofish-test.c @@ -2,7 +2,7 @@ #include "twofish.h" int -main(int argc, char **argv) +test_main(void) { /* 128 bit key */ test_cipher(&nettle_twofish128, diff --git a/testsuite/yarrow-test.c b/testsuite/yarrow-test.c index 938e51c4..955fe2ef 100644 --- a/testsuite/yarrow-test.c +++ b/testsuite/yarrow-test.c @@ -9,8 +9,6 @@ #include <stdlib.h> #include <string.h> -static int verbose = 0; - /* Lagged fibonacci sequence as described in Knuth 3.6 */ #define KK 100 @@ -166,7 +164,7 @@ open_file(const char *name) } int -main(int argc, char **argv) +test_main(void) { FILE *input; @@ -200,11 +198,6 @@ main(int argc, char **argv) static const char zeroes[100]; - if ((argc == 2) - && (argv[1][0] == '-') - && (argv[1][1] == 'v')) - verbose = 1; - yarrow256_init(&yarrow, 2, sources); memset(&yarrow.seed_file, 0, sizeof(yarrow.seed_file)); -- GitLab