From 2ef59575df8be8fc10e58030b69bc4f471758ddb Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Mon, 3 Mar 2003 01:01:40 +0000 Subject: [PATCH] added libtomcrypt-0.78 --- aes.c | 16 +- changes | 14 ++ crypt.c | 18 +- crypt.pdf | Bin 342167 -> 337482 bytes crypt.tex | 220 ++++++-------------- demos/small.c | 2 +- demos/test.c | 35 ++-- dh.c | 20 +- dh_sys.c | 431 +-------------------------------------- ecc.c | 39 ++-- ecc_sys.c | 491 +-------------------------------------------- keyring.c | 18 +- makefile | 20 +- makefile.ps2 | 25 +-- makefile.vc | 27 +-- mycrypt.h | 4 +- mycrypt_argchk.h | 26 +-- mycrypt_cipher.h | 28 ++- mycrypt_kr.h | 6 +- mycrypt_pk.h | 71 +------ noekeon.c | 210 +++++++++++++++++++ notes/tech0003.txt | 10 +- rsa.c | 16 +- rsa_sys.c | 347 -------------------------------- safer+.c | 2 +- xtea.c | 2 +- yarrow.c | 2 + 27 files changed, 479 insertions(+), 1621 deletions(-) create mode 100644 noekeon.c diff --git a/aes.c b/aes.c index 121a022..ad85b37 100644 --- a/aes.c +++ b/aes.c @@ -31,6 +31,18 @@ const struct _cipher_descriptor rijndael_desc = &rijndael_keysize }; +const struct _cipher_descriptor aes_desc = +{ + "aes", + 6, + 16, 32, 16, 10, + &rijndael_setup, + &rijndael_ecb_encrypt, + &rijndael_ecb_decrypt, + &rijndael_test, + &rijndael_keysize +}; + #include "aes_tab.c" #define byte(x, y) (((x)>>(8*(y)))&255) @@ -186,7 +198,7 @@ int rijndael_setup(const unsigned char *key, int keylen, int numrounds, symmetri f_rl(bo, bi, 2, k); \ f_rl(bo, bi, 3, k) -#ifdef RIJNDAEL_SMALL +#ifdef SMALL_CODE static void _fnround(unsigned long *bo, unsigned long *bi, unsigned long *k) { @@ -255,7 +267,7 @@ void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ i_rl(bo, bi, 2, k); \ i_rl(bo, bi, 3, k) -#ifdef RIJNDAEL_SMALL +#ifdef SMALL_CODE static void _inround(unsigned long *bo, unsigned long *bi, unsigned long *k) { diff --git a/changes b/changes index 414812b..4708da3 100644 --- a/changes +++ b/changes @@ -1,3 +1,17 @@ +Nov 28th, 2002 +v0.78 -- Made the default ARGCHK macro a function call instead which reduced the code size from 264KB to 239KB. + -- Fixed a bug in the XTEA keysize function which called ARGCHK incorrectly. + -- Added Noekeon block cipher at 2,800 bytes of object code and 345Mbit/sec it is a welcome addition. + -- Made the KR code check if the other PK systems are included [provides error when building otherwise]. + -- Made "aes" an alias for Rijndael via a pre-processor macro. Now you can use "aes_ecb_encrypt", etc... :-) + Thanks to Jean-Luc Cooke for the "buzzword conformance" suggestion. + -- Removed the old PK code entirely (e.g. rsa_sign, dh_encrypt). The *_sign_hash and *_encrypt_key functions + are all that is to remain. + -- **NOTE** Changed the PK *_import (including the keyring) routine to accept a "inlen" parameter. This fixes a + bug where improperly made key packets could result in reading passed the end of the buffer. This means + the code is no longer source compatible but still binary compatible. + -- Fixed a few other minor bugs in the PK import code while I was at it. + Nov 26th, 2002 v0.77 -- Updated the XTEA code to use pre-computed keys. With optimizations for speed it achieves 222Mbit/sec compared to the 121Mbit/sec before. It is 288 bytes bigger than before. diff --git a/crypt.c b/crypt.c index 0668b23..41d5eef 100644 --- a/crypt.c +++ b/crypt.c @@ -103,6 +103,21 @@ struct _prng_descriptor prng_descriptor[32] = { { NULL, NULL, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; +#if (ARGTYPE == 0) && defined(SMALL_CODE) + +void crypt_argchk(char *v, char *s, int d) +{ +#ifdef SONY_PS2 + printf("_ARGCHK '%s' failure on line %d of file %s\n", v, d, s); +#else + fprintf(stderr, "_ARGCHK '%s' failure on line %d of file %s\n", v, d, s); +#endif + raise(SIGABRT); +} + +#endif + + int find_cipher(const char *name) { int x; @@ -187,7 +202,7 @@ int register_cipher(const struct _cipher_descriptor *cipher) /* is it already registered? */ for (x = 0; x < 32; x++) { - if (!memcmp(&cipher_descriptor[x], cipher, sizeof(struct _cipher_descriptor))) { + if (cipher_descriptor[x].name != NULL && cipher_descriptor[x].ID == cipher->ID) { return x; } } @@ -214,6 +229,7 @@ int unregister_cipher(const struct _cipher_descriptor *cipher) for (x = 0; x < 32; x++) { if (!memcmp(&cipher_descriptor[x], cipher, sizeof(struct _cipher_descriptor))) { cipher_descriptor[x].name = NULL; + cipher_descriptor[x].ID = 255; return CRYPT_OK; } } diff --git a/crypt.pdf b/crypt.pdf index 161240b622ce911ebf90d88942760e0c67795a89..fe3dc997f849a6a7728c3e6601547346ead8f2c5 100644 GIT binary patch delta 184071 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 z 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

$g^M_?NYI9THXpkd; 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

l-h)`nA`u3- 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

sERbi#^ZS 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 GlKnsZN=50 so we send second */ - if (recv(sock, buf2, sizeof(buf2), 0) <= 0) { + if ((inlen = recv(sock, buf2, sizeof(buf2), 0)) <= 0) { res = CRYPT_ERROR; goto done2; } @@ -1614,7 +1572,7 @@ int establish_secure_socket(int sock, int mode, unsigned char *key, } } - if ((errno = dh_import(buf2, &theirkey)) != CRYPT_OK) { + if ((errno = dh_import(buf2, inlen, &theirkey)) != CRYPT_OK) { res = errno; goto done2; } @@ -1667,31 +1625,8 @@ void dh_sizes(int *low, int *high); Which stores the smallest and largest key sizes support into the two variables. \section{DH Packet} -There are routines to perform the work similar to that of ``rsa\_encrypt()'' and ``rsa\_decrypt()'' for DH keys as well. -The encrypt routine will make up a random key, attach the public key to the message and used the shared secret to encrypt -the message with a cipher you choose (and hash the shared secret into a symmetric key with a hash you choose). The encrypt -function is a bit long to call but its worth it. -\index{dh\_encrypt()} -\begin{verbatim} -int dh_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, int hash, - dh_key *key); -\end{verbatim} -Where ``in'' is the plaintext and ``out'' is where the ciphertext will go. Make sure you set the ``outlen'' value before -calling. The ``key'' is the public DH key of the user you want to encrypt to not your private key. It will randomly make up -a Diffie-Hellman key, export the public copy, hash the shared key with the hash you specify and use the message digest in a -cipher you specify to encrypt the message. To decrypt one of these packets call: -\index{dh\_decrypt()} -\begin{verbatim} -int dh_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - dh_key *key); -\end{verbatim} -Where ``in'' is the ciphertext and len is the length of the ciphertext. ``out'' is where the plaintext should be stored -and ``outlen'' is the length of the output (you must first set it to the size of your buffer). - -To facilate encrypting to multiple parties the follow two functions are provided: +Similar to the RSA related functions there are functions to encrypt or decrypt symmetric keys using the DH public key +algorithms. \begin{verbatim} int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, @@ -1706,25 +1641,7 @@ and find the hash of the shared secret. The message digest is than XOR'ed again data is placed in ``out'' by ``dh\_encrypt\_key()''. The hash must produce a message digest at least as large as the symmetric key you are trying to share. -To sign with a Diffie-Hellman key call: -\index{dh\_sign()} -\begin{verbatim} -int dh_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, int hash, - prng_state *prng, int wprng, dh_key *key); -\end{verbatim} -Where ``in'' is the message to size of length ``inlen'' bytes. ``out'' is where the signature is placed and ``outlen'' -is the length of the signature (you must first set it to the size of your buffer). To verify call: -\index{dh\_verify()} -\begin{verbatim} -int dh_verify(const unsigned char *sig, - const unsigned char *msg, - unsigned long inlen, int *stat, dh_key *key); -\end{verbatim} -Where ``sig'' is the output of ''dh\_sign()`` and ``msg'' is the message of length ``inlen''. It stores a zero in ``stat'' -if the signature is invalid otherwise it puts a one in there. - -Similar to the RSA system you can sign and verify a pre-hashed block as well using: +Similar to the RSA system you can sign and verify a hash of a message. \begin{verbatim} int dh_sign_hash(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, @@ -1735,6 +1652,10 @@ int dh_verify_hash(const unsigned char *sig, const unsigned char *hash, dh_key *key); \end{verbatim} +The ``dh\_sign\_hash'' function signs the message hash in ``in'' of length ``inlen'' and forms a DH packet in ``out''. +The ``dh\_verify\_hash'' function verifies the DH signature in ``sig'' against the hash in ``hash''. It sets ``stat'' +to non-zero if the signature passes or zero if it fails. + \chapter{Elliptic Curve Cryptography} \section{Background} @@ -1784,7 +1705,7 @@ To import and export a key there are: int ecc_export(unsigned char *out, unsigned long *outlen, int type, ecc_key *key); -int ecc_import(const unsigned char *in, ecc_key *key); +int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key); \end{verbatim} These two work exactly like there DH counterparts. Finally when you share your public key you can make a shared secret with: @@ -1813,28 +1734,8 @@ void ecc_sizes(int *low, int *high); Which both work like their DH counterparts. \section{ECC Packet} -There are routines to perform the work similar to that of ``rsa\_encrypt()'' and ``rsa\_decrypt()'' for ECC keys as well. -The encrypt routine will make up a random key, attach the public key to the message and used the shared secret to encrypt -the message with a cipher you choose (and hash the shared secret into a symmetric key with a hash you choose). The encrypt -function is a bit long to call but its worth it. -\index{ecc\_encrypt()} -\begin{verbatim} -int ecc_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, - int wprng, int cipher, int hash, - ecc_key *key); -\end{verbatim} -Where ``in'' is the plaintext and ``out'' is where the ciphertext will go. Make sure you set the ``outlen'' value before -calling. The ``key'' is the public ECC key of the user you want to encrypt too. To decrypt one of these packets call: -\index{ecc\_decrypt()} -\begin{verbatim} -int ecc_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - ecc_key *key); -\end{verbatim} -Similar to the DH code there are two functions to facilate multi-party code. They work exactly like the DH code and are -given as: +Similar to the RSA API there are two functions which encrypt and decrypt symmetric keys using the ECC public key +algorithms. \begin{verbatim} int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, @@ -1844,24 +1745,13 @@ int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, int ecc_decrypt_key(const unsigned char *in, unsigned char *outkey, unsigned long *keylen, ecc_key *key); \end{verbatim} -You can sign messages with the ECC routines as well, to sign a message call: -\index{ecc\_sign()} -\begin{verbatim} -int ecc_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, - int hash, prng_state *prng, int wprng, - ecc_key *key); -\end{verbatim} -Where ``in'' is the message to sign and ``out'' is where the signature will go. ``hash'' is the index into the descriptor -table of which hash function you want to use (e.g. use ``find\_hash()''). You must set ``outlen'' to the size of the -output buffer before calling. To verify a signature call: -\index{ecc\_verify()} -\begin{verbatim} -int ecc_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, ecc_key *key); -\end{verbatim} -Where ``sig'' is the signature from ``ecc\_sign()'' and ``msg'' is the input message. It sets ``stat'' to 0 if the signature -is invalid and it sets ``stat'' to 1 if its valid. To sign or verify pre-hashed blocks use + +Where ``inkey'' is an input symmetric key of no more than 32 bytes. Essentially these routines created a random public key +and find the hash of the shared secret. The message digest is than XOR'ed against the symmetric key. All of the required +data is placed in ``out'' by ``ecc\_encrypt\_key()''. The hash chosen must produce a message digest at least as large +as the symmetric key you are trying to share. + +There are also functions to sign and verify the hash of a message. \begin{verbatim} int ecc_sign_hash(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, @@ -1872,6 +1762,11 @@ int ecc_verify_hash(const unsigned char *sig, const unsigned char *hash, ecc_key *key); \end{verbatim} +The ``ecc\_sign\_hash'' function signs the message hash in ``in'' of length ``inlen'' and forms a ECC packet in ``out''. +The ``ecc\_verify\_hash'' function verifies the ECC signature in ``sig'' against the hash in ``hash''. It sets ``stat'' +to non-zero if the signature passes or zero if it fails. + + \section{ECC Keysizes} With ECC if you try and sign a hash that is bigger than your ECC key you can run into problems. The math will still work and in effect the signature will still work. With ECC keys the strength of the signature is limited by the size of @@ -2417,9 +2312,8 @@ useful when TWOFISH\_SMALL is defined as the table values are computed on the fl will increase by approximately 500 bytes. If this is defined but TWOFISH\_SMALL is not the cipher will still work but it will not speed up the encryption or decryption functions. -\subsubsection{SAFERP\_SMALL and RIJNDAEL\_SMALL} -These two build options let you use slower versions of the ciphers which are also much smaller. In the case of the SAFER+ -implementation it ends up being 1/6th the size. As for Rijndael its roughly half the size. - +\subsubsection{SMALL\_CODE} +When this is defined some of the code such as the Rijndael and SAFER+ ciphers are replaced with smaller code variants. +These variants are slower but can save quite a bit of code space. \end{document} diff --git a/demos/small.c b/demos/small.c index bb4bfdb..e45f3a6 100644 --- a/demos/small.c +++ b/demos/small.c @@ -6,6 +6,6 @@ int main(void) { register_cipher(&rijndael_desc); register_prng(&yarrow_desc); - register_hash(&sha1_desc); + register_hash(&sha256_desc); return 0; } diff --git a/demos/test.c b/demos/test.c index 3fcd645..dcd4a42 100644 --- a/demos/test.c +++ b/demos/test.c @@ -259,7 +259,7 @@ void ctr_tests(void) for (x = 0; x < 32; x++) blk[x] = count[x] = x; /* now lets start a ctr session */ - if ((errno = ctr_start(find_cipher("rijndael"), count, key, 16, 0, &ctr)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } + if ((errno = ctr_start(find_cipher("aes"), count, key, 16, 0, &ctr)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } /* now lets encode 32 bytes */ for (x = 0; x < 4; x++) @@ -272,7 +272,7 @@ void ctr_tests(void) for (x = 0; x < 32; x++) count[x] = x; /* now lets start a cbc session */ - if ((errno = ctr_start(find_cipher("rijndael"), count, key, 16, 0, &ctr)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } + if ((errno = ctr_start(find_cipher("aes"), count, key, 16, 0, &ctr)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } /* now lets decode 32 bytes */ for (x = 0; x < 4; x++) @@ -369,7 +369,7 @@ void rsa_test(void) /* now lets test rsa_encrypt() */ for (x = 0; x < 8; x++) in[x] = (unsigned char)x; x = sizeof(out); - if ((errno = rsa_encrypt(in, 8, out, &x, &prng, find_prng("yarrow"), find_cipher("rijndael"), &key)) != CRYPT_OK) { + if ((errno = rsa_encrypt(in, 8, out, &x, &prng, find_prng("yarrow"), find_cipher("aes"), &key)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } @@ -410,7 +410,7 @@ void rsa_test(void) } printf("RSA Export takes %lu bytes\n", x); rsa_free(&key); - if ((errno = rsa_import(out, &key)) != CRYPT_OK) { + if ((errno = rsa_import(out, &key, x)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } @@ -596,7 +596,7 @@ void time_ecb(void) func = cipher_descriptor[x].ecb_encrypt; y1 = 0; t1 = XCLOCK(); - while (XCLOCK() - t1 < 2*XCLOCKS_PER_SEC) { + while (XCLOCK() - t1 < 3*XCLOCKS_PER_SEC) { DO256; y1 += 256; } t1 = XCLOCK() - t1; @@ -604,7 +604,7 @@ void time_ecb(void) func = cipher_descriptor[x].ecb_decrypt; y2 = 0; t2 = XCLOCK(); - while (XCLOCK() - t2 < 2*XCLOCKS_PER_SEC) { + while (XCLOCK() - t2 < 3*XCLOCKS_PER_SEC) { DO256; y2 += 256; } t2 = XCLOCK() - t2; @@ -673,7 +673,7 @@ void dh_tests(void) dh_free(&userb); /* import and make the shared secret again */ - if ((errno = dh_import(buf[1], &userb)) != CRYPT_OK) { + if ((errno = dh_import(buf[1], y, &userb)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } @@ -741,7 +741,7 @@ void dh_tests(void) dh_make_key(&prng, find_prng("yarrow"), 24, &usera); x = 4096; - if (dh_encrypt(buf[0], 16, buf[1], &x, &prng, find_prng("yarrow"), find_cipher("rijndael"), + if (dh_encrypt(buf[0], 16, buf[1], &x, &prng, find_prng("yarrow"), find_cipher("aes"), find_hash("sha1"), &usera) != CRYPT_OK) { printf("dh_encrypt says %s\n", error_to_string(errno)); return; @@ -910,7 +910,7 @@ void ecc_tests(void) printf("ECC-192 export took %ld bytes\n", y); /* import and make the shared secret again */ - if ((errno = ecc_import(buf[1], &userb)) != CRYPT_OK) { + if ((errno = ecc_import(buf[1], y, &userb)) != CRYPT_OK) { printf("Error: %s\n", error_to_string(errno)); return; } @@ -973,7 +973,7 @@ void ecc_tests(void) ecc_make_key(&prng, find_prng("yarrow"), 20, &usera); x = 4096; - if (ecc_encrypt(buf[0], 16, buf[1], &x, &prng, find_prng("yarrow"), find_cipher("rijndael"), + if (ecc_encrypt(buf[0], 16, buf[1], &x, &prng, find_prng("yarrow"), find_cipher("aes"), find_hash("tiger"), &usera) != CRYPT_OK) { printf("ecc_encrypt says %s\n", error_to_string(errno)); return; @@ -1158,7 +1158,7 @@ void register_all_algs(void) register_cipher(&serpent_desc); #endif #ifdef RIJNDAEL - register_cipher(&rijndael_desc); + register_cipher(&aes_desc); #endif #ifdef TWOFISH register_cipher(&twofish_desc); @@ -1179,6 +1179,9 @@ void register_all_algs(void) #ifdef CAST5 register_cipher(&cast5_desc); #endif +#ifdef NOEKEON + register_cipher(&noekeon_desc); +#endif register_cipher(&null_desc); @@ -1284,7 +1287,7 @@ void kr_test(void) exit(-1); } kr_display(kr); - if ((errno = kr_import(kr, buf)) != CRYPT_OK) { + if ((errno = kr_import(kr, buf, len)) != CRYPT_OK) { printf("Error importing key %d, %s\n", i, error_to_string(errno)); exit(-1); } @@ -1303,7 +1306,7 @@ void kr_test(void) exit(-1); } kr_display(kr); - if ((errno = kr_import(kr, buf)) != CRYPT_OK) { + if ((errno = kr_import(kr, buf, len)) != CRYPT_OK) { printf("Error importing key %d, %s\n", i, error_to_string(errno)); exit(-1); } @@ -1441,7 +1444,7 @@ void kr_test(void) kr_clear(&kr); kr_init(&kr); kr_display(kr); - if ((errno = kr_import(kr, buf)) != CRYPT_OK) { + if ((errno = kr_import(kr, buf, len)) != CRYPT_OK) { printf("Error importing key %s\n", error_to_string(errno)); exit(-1); } @@ -1459,7 +1462,7 @@ void kr_test(void) kr_clear(&kr); kr_init(&kr); kr_display(kr); - if ((errno = kr_import(kr, buf2)) != CRYPT_OK) { + if ((errno = kr_import(kr, buf2, len)) != CRYPT_OK) { printf("Error importing key %s\n", error_to_string(errno)); exit(-1); } @@ -1529,7 +1532,7 @@ int main(void) #endif register_all_algs(); - + if ((errno = yarrow_start(&prng)) != CRYPT_OK) { printf("yarrow_start: %s\n", error_to_string(errno)); } diff --git a/dh.c b/dh.c index 019ab20..44a237a 100644 --- a/dh.c +++ b/dh.c @@ -315,18 +315,22 @@ void dh_free(dh_key *key) #define INPUT_BIGNUM(num, in, x, y) \ { \ /* load value */ \ + if (y + 4 > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ + goto error; \ + } \ LOAD32L(x, in+y); \ y += 4; \ \ /* sanity check... */ \ - if (x > 1024) { \ - errno = CRYPT_ERROR; \ + if (x+y > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ goto error; \ } \ \ /* load it */ \ if (mp_read_raw(num, (unsigned char *)in+y, x) != MP_OKAY) {\ - return CRYPT_MEM; \ + errno = CRYPT_MEM; \ goto error; \ } \ y += x; \ @@ -381,9 +385,9 @@ int dh_export(unsigned char *out, unsigned long *outlen, int type, dh_key *key) return CRYPT_OK; } -int dh_import(const unsigned char *in, dh_key *key) +int dh_import(const unsigned char *in, unsigned long inlen, dh_key *key) { - long x, y, s; + unsigned long x, y, s; int errno; _ARGCHK(in != NULL); @@ -393,6 +397,10 @@ int dh_import(const unsigned char *in, dh_key *key) if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_DH, PACKET_SUB_KEY)) != CRYPT_OK) { return errno; } + + if (2+PACKET_SIZE > inlen) { + return CRYPT_INVALID_PACKET; + } /* init */ if (mp_init_multi(&key->x, &key->y, NULL) != MP_OKAY) { @@ -403,7 +411,7 @@ int dh_import(const unsigned char *in, dh_key *key) key->type = in[y++]; s = (long)in[y++] * 8; - for (x = 0; (s > sets[x].size) && (sets[x].size); x++); + for (x = 0; (s > (unsigned long)sets[x].size) && (sets[x].size); x++); if (sets[x].size == 0) { errno = CRYPT_INVALID_KEYSIZE; goto error; diff --git a/dh_sys.c b/dh_sys.c index ee31ee3..ad94896 100644 --- a/dh_sys.c +++ b/dh_sys.c @@ -1,432 +1,3 @@ -#ifdef PK_PACKET - -int dh_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, int hash, - dh_key *key) -{ - unsigned char pub_expt[1536], dh_shared[1536], IV[MAXBLOCKSIZE], skey[MAXBLOCKSIZE]; - dh_key pubkey; - unsigned long x, y, z, hashsize, blocksize, pubkeysize; - int keysize, errno; - symmetric_CTR ctr; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* check that wprng/cipher/hash are not invalid */ - if ((errno = prng_is_valid(wprng)) != CRYPT_OK) { - return errno; - } - - if ((errno = hash_is_valid(hash)) != CRYPT_OK) { - return errno; - } - - if ((errno = cipher_is_valid(cipher)) != CRYPT_OK) { - return errno; - } - - /* make a random key and export the public copy */ - if ((errno = dh_make_key(prng, wprng, dh_get_size(key), &pubkey)) != CRYPT_OK) { - return errno; - } - - pubkeysize = sizeof(pub_expt); - if ((errno = dh_export(pub_expt, &pubkeysize, PK_PUBLIC, &pubkey)) != CRYPT_OK) { - dh_free(&pubkey); - return errno; - } - - /* now check if the out buffer is big enough */ - if (*outlen < (10 + PACKET_SIZE + pubkeysize + cipher_descriptor[cipher].block_length + len)) { - dh_free(&pubkey); - return CRYPT_BUFFER_OVERFLOW; - } - - /* make random key */ - blocksize = cipher_descriptor[cipher].block_length; - hashsize = hash_descriptor[hash].hashsize; - keysize = hashsize; - if ((errno = cipher_descriptor[cipher].keysize(&keysize)) != CRYPT_OK) { - dh_free(&pubkey); - return errno; - } - - x = sizeof(dh_shared); - if ((errno = dh_shared_secret(&pubkey, key, dh_shared, &x)) != CRYPT_OK) { - dh_free(&pubkey); - return errno; - } - dh_free(&pubkey); - - z = sizeof(skey); - if ((errno = hash_memory(hash, dh_shared, x, skey, &z)) != CRYPT_OK) { - return errno; - } - - /* make up IV */ - if (prng_descriptor[wprng].read(IV, cipher_descriptor[cipher].block_length, prng) != - cipher_descriptor[cipher].block_length) { - return CRYPT_ERROR_READPRNG; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, IV, skey, keysize, 0, &ctr)) != CRYPT_OK) { - return errno; - } - - /* output header */ - y = PACKET_SIZE; - - /* size of cipher name and the name itself */ - out[y++] = cipher_descriptor[cipher].ID; - - /* size of hash name and the name itself */ - out[y++] = hash_descriptor[hash].ID; - - /* length of DH pubkey and the key itself */ - STORE32L(pubkeysize, out+y); - y += 4; - for (x = 0; x < pubkeysize; x++, y++) { - out[y] = pub_expt[x]; - } - - /* cipher IV */ - for (x = 0; x < blocksize; x++, y++) { - out[y] = IV[x]; - } - - /* length of ciphertext */ - STORE32L(len, out+y); - y += 4; - - /* encrypt the message */ - if ((errno = ctr_encrypt(in, out+y, len, &ctr)) != CRYPT_OK) { - return errno; - } - y += len; - - /* store header */ - packet_store_header(out, PACKET_SECT_DH, PACKET_SUB_ENCRYPTED, y); - -#ifdef CLEAN_STACK - /* clean up */ - zeromem(pub_expt, sizeof(pub_expt)); - zeromem(dh_shared, sizeof(dh_shared)); - zeromem(skey, sizeof(skey)); - zeromem(IV, sizeof(IV)); - zeromem(&ctr, sizeof(ctr)); -#endif - *outlen = y; - return CRYPT_OK; -} - -int dh_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - dh_key *key) -{ - unsigned char shared_secret[1536], skey[MAXBLOCKSIZE]; - unsigned long x, y, z, res, hashsize, blocksize; - int hash, cipher, keysize, errno; - dh_key pubkey; - symmetric_CTR ctr; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* right key type? */ - if (key->type != PK_PRIVATE) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* is header correct? */ - if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_DH, PACKET_SUB_ENCRYPTED)) != CRYPT_OK) { - return errno; - } - - /* now lets get the cipher name */ - y = PACKET_SIZE; - cipher = find_cipher_id(in[y++]); - if (cipher == -1) { - return CRYPT_INVALID_CIPHER; - } - - /* now lets get the hash name */ - hash = find_hash_id(in[y++]); - if (hash == -1) { - return CRYPT_INVALID_HASH; - } - - /* common values */ - blocksize = cipher_descriptor[cipher].block_length; - hashsize = hash_descriptor[hash].hashsize; - keysize = hashsize; - if ((errno = cipher_descriptor[cipher].keysize(&keysize)) != CRYPT_OK) { - return errno; - } - - /* get public key */ - LOAD32L(x, in+y); - y += 4; - if ((errno = dh_import(in+y, &pubkey)) != CRYPT_OK) { - return errno; - } - y += x; - - /* make shared key */ - x = sizeof(shared_secret); - if ((errno = dh_shared_secret(key, &pubkey, shared_secret, &x)) != CRYPT_OK) { - dh_free(&pubkey); - return errno; - } - dh_free(&pubkey); - - z = sizeof(skey); - if ((errno = hash_memory(hash, shared_secret, x, skey, &z)) != CRYPT_OK) { - return errno; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, in+y, skey, keysize, 0, &ctr)) != CRYPT_OK) { - res = errno; - goto done; - } - - /* skip over the IV */ - y += blocksize; - - /* get length */ - LOAD32L(len,in+y); - y += 4; - - /* buffer overflow? */ - if (len > *outlen) { - res = CRYPT_BUFFER_OVERFLOW; - goto done; - } - - /* decrypt message */ - if ((errno = ctr_decrypt(in+y, out, len, &ctr)) != CRYPT_OK) { - res = errno; - goto done; - } - *outlen = len; - - res = CRYPT_OK; -done: -#ifdef CLEAN_STACK - zeromem(shared_secret, sizeof(shared_secret)); - zeromem(skey, sizeof(skey)); - zeromem(&ctr, sizeof(ctr)); -#endif - return res; -} - -int dh_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, - int hash, prng_state *prng, int wprng, - dh_key *key) -{ - mp_int a, b, k, m, g, p, p1, tmp; - unsigned char buf[1536], md[MAXBLOCKSIZE]; - unsigned long x, y, z; - int res, errno; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* check parameters */ - if (key->type != PK_PRIVATE) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* is the IDX valid ? */ - if (!is_valid_idx(key->idx)) { - return CRYPT_PK_INVALID_TYPE; - } - - if ((errno = prng_is_valid(wprng)) != CRYPT_OK) { - return errno; - } - - if ((errno = hash_is_valid(hash)) != CRYPT_OK) { - return errno; - } - - /* hash the message */ - z = sizeof(md) - 1; - md[0] = 0; - if ((errno = hash_memory(hash, in, inlen, md+1, &z)) != CRYPT_OK) { - return errno; - } - - /* make up a random value k, - * since the order of the group is prime - * we need not check if gcd(k, r) is 1 - */ - buf[0] = 0; - if (prng_descriptor[wprng].read(buf+1, sets[key->idx].size-1, prng) != (unsigned long)(sets[key->idx].size-1)) { - return CRYPT_ERROR_READPRNG; - } - - /* init bignums */ - if (mp_init_multi(&a, &b, &k, &m, &p, &g, &p1, &tmp, NULL) != MP_OKAY) { - return CRYPT_MEM; - } - - /* load k and m */ - if (mp_read_raw(&m, md, 1+hash_descriptor[hash].hashsize) != MP_OKAY) { goto error; } - if (mp_read_raw(&k, buf, sets[key->idx].size) != MP_OKAY) { goto error; } - - /* load g, p and p1 */ - if (mp_read_radix(&g, sets[key->idx].base, 10) != MP_OKAY) { goto error; } - if (mp_read_radix(&p, sets[key->idx].prime, 10) != MP_OKAY) { goto error; } - if (mp_sub_d(&p, 1, &p1) != MP_OKAY) { goto error; } /* p1 = p-1 */ - if (mp_div_2(&p1, &p1) != MP_OKAY) { goto error; } /* p1 = (p-1)/2 */ - - /* now get a = g^k mod p */ - if (mp_exptmod(&g, &k, &p, &a) != MP_OKAY) { goto error; } /* a = g^k mod p */ - - /* now find M = xa + kb mod p1 or just b = (M - xa)/k mod p1 */ - if (mp_invmod(&k, &p1, &k) != MP_OKAY) { goto error; } /* k = 1/k mod p1 */ - if (mp_mulmod(&a, &key->x, &p1, &tmp) != MP_OKAY) { goto error; } /* tmp = xa */ - if (mp_submod(&m, &tmp, &p1, &tmp) != MP_OKAY) { goto error; } /* tmp = M - xa */ - if (mp_mulmod(&k, &tmp, &p1, &b) != MP_OKAY) { goto error; } /* b = (M - xa)/k */ - - /* store header */ - y = PACKET_SIZE; - - /* store length and name of hash */ - buf[y++] = hash_descriptor[hash].ID; /* store hash ID */ - - /* now store them both (a,b) */ - x = mp_raw_size(&a); /* get raw size of a */ - STORE32L(x, buf+y); y += 4; /* store size of a */ - mp_toraw(&a, buf+y); y += x; /* store a itself */ - - x = mp_raw_size(&b); /* get raw size of b */ - STORE32L(x, buf+y); y += 4; /* store size of b */ - mp_toraw(&b, buf+y); y += x; /* store b itself */ - - /* check if size too big */ - if (*outlen < y) { goto error; } - - /* store header */ - packet_store_header(buf, PACKET_SECT_DH, PACKET_SUB_SIGNED, y); - - /* store it */ - memcpy(out, buf, y); - *outlen = y; - -#ifdef CLEAN_STACK - zeromem(md, sizeof(md)); - zeromem(buf, sizeof(buf)); -#endif - - res = CRYPT_OK; - goto done; -error: - res = CRYPT_MEM; -done: - mp_clear_multi(&tmp, &p1, &g, &p, &m, &k, &b, &a, NULL); - return res; -} - -int dh_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - dh_key *key) -{ - mp_int a, b, p, g, m, tmp; - unsigned char md[MAXBLOCKSIZE]; - unsigned long x, y, z; - int hash, res, errno; - - _ARGCHK(sig != NULL); - _ARGCHK(msg != NULL); - _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); - - /* default to invalid */ - *stat = 0; - - /* header ok? */ - if ((errno = packet_valid_header((unsigned char *)sig, PACKET_SECT_DH, PACKET_SUB_SIGNED)) != CRYPT_OK) { - return errno; - } - - /* get hash out of packet */ - y = PACKET_SIZE; - hash = find_hash_id(sig[y++]); - - if (hash == -1) { - return CRYPT_INVALID_HASH; - } - - /* hash the message */ - md[0] = 0; - z = sizeof(md) - 1; - if ((errno = hash_memory(hash, msg, inlen, md+1, &z)) != CRYPT_OK) { - return errno; - } - - /* init all bignums */ - if (mp_init_multi(&a, &p, &b, &g, &m, &tmp, NULL) != MP_OKAY) { - return CRYPT_MEM; - } - - /* load a and b */ - LOAD32L(x, sig+y); - y += 4; - if (mp_read_raw(&a, (unsigned char *)sig+y, x) != MP_OKAY) { goto error; } - y += x; - - LOAD32L(x, sig+y); - y += 4; - if (mp_read_raw(&b, (unsigned char *)sig+y, x) != MP_OKAY) { goto error; } - y += x; - - /* load p and g */ - if (mp_read_radix(&p, sets[key->idx].prime, 10) != MP_OKAY) { goto error; } - if (mp_read_radix(&g, sets[key->idx].base, 10) != MP_OKAY) { goto error; } - - /* load m */ - if (mp_read_raw(&m, md, hash_descriptor[hash].hashsize + 1) != MP_OKAY) { goto error; } - - /* find g^m mod p */ - if (mp_exptmod(&g, &m, &p, &m) != MP_OKAY) { goto error; } /* m = g^m mod p */ - - /* find y^a * a^b */ - if (mp_exptmod(&key->y, &a, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = y^a mod p */ - if (mp_exptmod(&a, &b, &p, &a) != MP_OKAY) { goto error; } /* a = a^b mod p */ - if (mp_mulmod(&a, &tmp, &p, &a) != MP_OKAY) { goto error; } /* a = y^a * a^b mod p */ - - /* y^a * a^b == g^m ??? */ - if (mp_cmp(&a, &m) == 0) { - *stat = 1; - } - - /* clean up */ - res = CRYPT_OK; - goto done; -error: - res = CRYPT_MEM; -done: - mp_clear_multi(&tmp, &m, &g, &p, &b, &a, NULL); -#ifdef CLEAN_STACK - zeromem(md, sizeof(md)); -#endif - return res; -} - -#endif - int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, prng_state *prng, int wprng, int hash, @@ -558,7 +129,7 @@ int dh_decrypt_key(const unsigned char *in, unsigned char *outkey, /* get public key */ LOAD32L(x, in+y); y += 4; - if ((errno = dh_import(in+y, &pubkey)) != CRYPT_OK) { + if ((errno = dh_import(in+y, x, &pubkey)) != CRYPT_OK) { return errno; } y += x; diff --git a/ecc.c b/ecc.c index 479e4e8..2cde908 100644 --- a/ecc.c +++ b/ecc.c @@ -636,16 +636,22 @@ done: #define INPUT_BIGNUM(num, in, x, y) \ { \ /* load value */ \ + if (y+4 > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ + goto error; \ + } \ LOAD32L(x, in+y); \ y += 4; \ \ /* sanity check... */ \ - if (x > 1024) { \ + if (y+x > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ goto error; \ } \ \ /* load it */ \ if (mp_read_raw(num, (unsigned char *)in+y, x) != MP_OKAY) {\ + errno = CRYPT_MEM; \ goto error; \ } \ y += x; \ @@ -701,10 +707,10 @@ int ecc_export(unsigned char *out, unsigned long *outlen, int type, ecc_key *key return CRYPT_OK; } -int ecc_import(const unsigned char *in, ecc_key *key) +int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key) { unsigned long x, y, s; - int res, errno; + int errno; _ARGCHK(in != NULL); _ARGCHK(key != NULL); @@ -713,6 +719,10 @@ int ecc_import(const unsigned char *in, ecc_key *key) if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_ECC, PACKET_SUB_KEY)) != CRYPT_OK) { return errno; } + + if (2+PACKET_SIZE > inlen) { + return CRYPT_INVALID_PACKET; + } /* init key */ if (mp_init_multi(&key->pubkey.x, &key->pubkey.y, &key->k, NULL) != MP_OKAY) { @@ -725,21 +735,21 @@ int ecc_import(const unsigned char *in, ecc_key *key) for (x = 0; (s > (unsigned long)sets[x].size) && (sets[x].size); x++); if (sets[x].size == 0) { - res = CRYPT_INVALID_KEYSIZE; - goto error2; + errno = CRYPT_INVALID_KEYSIZE; + goto error; } key->idx = x; /* type check both values */ if ((key->type != PK_PUBLIC) && (key->type != PK_PRIVATE)) { - res = CRYPT_INVALID_PACKET; - goto error2; + errno = CRYPT_INVALID_PACKET; + goto error; } /* is the key idx valid? */ if (!is_valid_idx(key->idx)) { - res = CRYPT_INVALID_PACKET; - goto error2; + errno = CRYPT_INVALID_PACKET; + goto error; } /* load x coordinate */ @@ -747,20 +757,19 @@ int ecc_import(const unsigned char *in, ecc_key *key) /* load y */ x = in[y++]; - if ((errno = expand_y_point(&key->pubkey, key->idx, x)) != CRYPT_OK) { res = errno; goto error2; } + if ((errno = expand_y_point(&key->pubkey, key->idx, x)) != CRYPT_OK) { + goto error; + } if (key->type == PK_PRIVATE) { /* load private key */ INPUT_BIGNUM(&key->k, in, x, y); } - res = CRYPT_OK; - goto done; + return CRYPT_OK; error: - res = CRYPT_MEM; -error2: mp_clear_multi(&key->pubkey.x, &key->pubkey.y, &key->k, NULL); done: - return res; + return errno; } int ecc_shared_secret(ecc_key *private_key, ecc_key *public_key, diff --git a/ecc_sys.c b/ecc_sys.c index 9ec5418..adcecdc 100644 --- a/ecc_sys.c +++ b/ecc_sys.c @@ -1,490 +1,3 @@ -#ifdef PK_PACKET - -int ecc_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, int hash, - ecc_key *key) -{ - unsigned char pub_expt[512], ecc_shared[256], IV[MAXBLOCKSIZE], skey[MAXBLOCKSIZE]; - ecc_key pubkey; - unsigned long x, y, z, pubkeysize; - int keysize, blocksize, hashsize, errno; - symmetric_CTR ctr; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* check that wprng/cipher/hash are not invalid */ - if ((errno = prng_is_valid(wprng)) != CRYPT_OK) { - return errno; - } - - if ((errno = cipher_is_valid(cipher)) != CRYPT_OK) { - return errno; - } - - if ((errno = hash_is_valid(hash)) != CRYPT_OK) { - return errno; - } - - /* make a random key and export the public copy */ - if ((errno = ecc_make_key(prng, wprng, ecc_get_size(key), &pubkey)) != CRYPT_OK) { - return errno; - } - - pubkeysize = sizeof(pub_expt); - if ((errno = ecc_export(pub_expt, &pubkeysize, PK_PUBLIC, &pubkey)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - - /* now check if the out buffer is big enough */ - if (*outlen < (10 + PACKET_SIZE + pubkeysize + - cipher_descriptor[cipher].block_length + len)) { - ecc_free(&pubkey); - return CRYPT_BUFFER_OVERFLOW; - } - - /* make random key */ - blocksize = cipher_descriptor[cipher].block_length; - hashsize = hash_descriptor[hash].hashsize; - keysize = hashsize; - if ((errno = cipher_descriptor[cipher].keysize(&keysize)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - x = sizeof(ecc_shared); - if ((errno = ecc_shared_secret(&pubkey, key, ecc_shared, &x)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - ecc_free(&pubkey); - - z = sizeof(skey); - if ((errno = hash_memory(hash, ecc_shared, x, skey, &z)) != CRYPT_OK) { - return errno; - } - - /* make up IV */ - if (prng_descriptor[wprng].read(IV, cipher_descriptor[cipher].block_length, prng) != - (unsigned long)cipher_descriptor[cipher].block_length) { - return CRYPT_ERROR_READPRNG; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, IV, skey, keysize, 0, &ctr)) != CRYPT_OK) { - return errno; - } - - /* output header */ - y = PACKET_SIZE; - - /* size of cipher name and the name itself */ - out[y++] = cipher_descriptor[cipher].ID; - - /* size of hash name and the name itself */ - out[y++] = hash_descriptor[hash].ID; - - /* length of ECC pubkey and the key itself */ - STORE32L(pubkeysize, out+y); - y += 4; - for (x = 0; x < (unsigned)pubkeysize; x++, y++) { - out[y] = pub_expt[x]; - } - - /* cipher IV */ - for (x = 0; x < (unsigned)blocksize; x++, y++) { - out[y] = IV[x]; - } - - /* length of ciphertext */ - STORE32L(len, out+y); - y += 4; - - /* encrypt the message */ - if ((errno = ctr_encrypt(in, out+y, len, &ctr)) != CRYPT_OK) { - return errno; - } - y += len; - - /* store header */ - packet_store_header(out, PACKET_SECT_ECC, PACKET_SUB_ENCRYPTED, y); - -#ifdef CLEAN_STACK - /* clean up */ - zeromem(pub_expt, sizeof(pub_expt)); - zeromem(ecc_shared, sizeof(ecc_shared)); - zeromem(skey, sizeof(skey)); - zeromem(IV, sizeof(IV)); - zeromem(&ctr, sizeof(ctr)); -#endif - - *outlen = y; - return CRYPT_OK; -} - -int ecc_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - ecc_key *key) -{ - unsigned char shared_secret[256], skey[MAXBLOCKSIZE]; - unsigned long x, y, z, res, hashsize, blocksize; - int cipher, hash, keysize, errno; - ecc_key pubkey; - symmetric_CTR ctr; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* right key type? */ - if (key->type != PK_PRIVATE) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* is header correct? */ - if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_ECC, PACKET_SUB_ENCRYPTED)) != CRYPT_OK) { - return errno; - } - - /* now lets get the cipher name */ - y = PACKET_SIZE; - cipher = find_cipher_id(in[y++]); - if (cipher == -1) { - return CRYPT_INVALID_CIPHER; - } - - /* now lets get the hash name */ - hash = find_hash_id(in[y++]); - if (hash == -1) { - return CRYPT_INVALID_HASH; - } - - /* common values */ - blocksize = cipher_descriptor[cipher].block_length; - hashsize = hash_descriptor[hash].hashsize; - keysize = hashsize; - if ((errno = cipher_descriptor[cipher].keysize(&keysize)) != CRYPT_OK) { - return errno; - } - - /* get public key */ - LOAD32L(x, in+y); - y += 4; - if ((errno = ecc_import(in+y, &pubkey)) != CRYPT_OK) { - return errno; - } - y += x; - - /* make shared key */ - x = sizeof(shared_secret); - if ((errno = ecc_shared_secret(key, &pubkey, shared_secret, &x)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - ecc_free(&pubkey); - - z = sizeof(skey); - if ((errno = hash_memory(hash, shared_secret, x, skey, &z)) != CRYPT_OK) { - res = errno; - goto done; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, in+y, skey, keysize, 0, &ctr)) != CRYPT_OK) { - res = errno; - goto done; - } - y += blocksize; - - /* get length */ - LOAD32L(len,in+y); - y += 4; - - /* buffer overflow? */ - if (len > *outlen) { - res = CRYPT_BUFFER_OVERFLOW; - goto done; - } - - /* decrypt message */ - if ((errno = ctr_decrypt(in+y, out, len, &ctr)) != CRYPT_OK) { - res = errno; - goto done; - } - *outlen = len; - - res = CRYPT_OK; -done: -#ifdef CLEAN_STACK - zeromem(shared_secret, sizeof(shared_secret)); - zeromem(skey, sizeof(skey)); - zeromem(&ctr, sizeof(ctr)); -#endif - return res; -} - -/* Signatures - * - * Signatures are performed using a slightly modified ElGamal protocol. - * In these notes uppercase letters are points and lowercase letters are - * scalars. The users private key is 'x' and public key is Y = xG. - * The order of the curve is 'r'. - * - * - * To sign a message 'm' the user does this - -1. Makes up a random 'k' and finds kG [basically makes up a ecc_key], we will let A = kG -2. Finds b such that b = (m - x)/k mod r -3. Outputs (A, b) as the signature - -To verify a user computes mG and compares that to (bA + Y). Note that (bA + Y) is equal to - -= ((m - x)/k)(kG) + xG -= (m - x)G + xG -= mG - -In theory, assuming the ECC Discrete Log is a hard problem an attacker -cannot find 'x' from (A, b). 'b' is perfectly decorrelated and reveals no -information. A reveals what kG is but not 'k' directly. Therefore, -assuming finding 'k' given kG is hard, finding 'x' from b is hard too. - -*/ - -int ecc_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, - int hash, prng_state *prng, int wprng, - ecc_key *key) -{ - ecc_key pubkey; - mp_int b, p; - unsigned char epubkey[256], er[256], md[MAXBLOCKSIZE]; - unsigned long x, y, z, pubkeysize, rsize; - int res, errno; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* is this a private key? */ - if (key->type != PK_PRIVATE) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* is the IDX valid ? */ - if (!is_valid_idx(key->idx)) { - return CRYPT_PK_INVALID_TYPE; - } - - if ((errno = prng_is_valid(wprng)) != CRYPT_OK) { - return errno; - } - - if ((errno = hash_is_valid(hash)) != CRYPT_OK) { - return errno; - } - - /* make up a key and export the public copy */ - if ((errno = ecc_make_key(prng, wprng, ecc_get_size(key), &pubkey)) != CRYPT_OK) { - return errno; - } - - pubkeysize = sizeof(epubkey); - if ((errno = ecc_export(epubkey, &pubkeysize, PK_PUBLIC, &pubkey)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - - /* get the hash and load it as a bignum into 'b' */ - md[0] = 0; - z = sizeof(md)-1; - if ((errno = hash_memory(hash, in, inlen, md+1, &z)) != CRYPT_OK) { - ecc_free(&pubkey); - return errno; - } - - /* init the bignums */ - if (mp_init_multi(&b, &p, NULL) != MP_OKAY) { - ecc_free(&pubkey); - return CRYPT_MEM; - } - if (mp_read_radix(&p, sets[key->idx].order, 10) != MP_OKAY) { goto error; } - if (mp_read_raw(&b, md, 1+hash_descriptor[hash].hashsize) != MP_OKAY) { goto error; } - - /* find b = (m - x)/k */ - if (mp_invmod(&pubkey.k, &p, &pubkey.k) != MP_OKAY) { goto error; } /* k = 1/k */ - if (mp_submod(&b, &key->k, &p, &b) != MP_OKAY) { goto error; } /* b = m - x */ - if (mp_mulmod(&b, &pubkey.k, &p, &b) != MP_OKAY) { goto error; } /* b = (m - x)/k */ - - /* export it */ - rsize = mp_raw_size(&b); - if (rsize > sizeof(er)) { - goto error; - } - mp_toraw(&b, er); - - /* now lets check the outlen before we write */ - if (*outlen < (9 + PACKET_SIZE + rsize + pubkeysize)) { - res = CRYPT_BUFFER_OVERFLOW; - goto done1; - } - - /* lets output */ - y = PACKET_SIZE; - - /* length of hash name plus NULL */ - out[y++] = hash_descriptor[hash].ID; - - /* size of public key */ - STORE32L(pubkeysize, out+y); - y += 4; - - /* copy the public key */ - for (x = 0; x < pubkeysize; x++, y++) { - out[y] = epubkey[x]; - } - - /* size of 'r' */ - STORE32L(rsize, out+y); - y += 4; - - /* copy r */ - for (x = 0; x < rsize; x++, y++) { - out[y] = er[x]; - } - - /* store header */ - packet_store_header(out, PACKET_SECT_ECC, PACKET_SUB_SIGNED, y); - - /* clear memory */ - *outlen = y; - res = CRYPT_OK; - goto done1; -error: - res = CRYPT_MEM; -done1: - mp_clear_multi(&b, &p, NULL); - ecc_free(&pubkey); -#ifdef CLEAN_STACK - zeromem(er, sizeof(er)); - zeromem(epubkey, sizeof(epubkey)); - zeromem(md, sizeof(md)); -#endif - return res; -} - -/* verify that mG = (bA + Y) */ -int ecc_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - ecc_key *key) -{ - ecc_point *mG; - ecc_key pubkey; - mp_int b, p, m; - unsigned long x, y, z; - int hash, res, errno; - unsigned char md[MAXBLOCKSIZE]; - - _ARGCHK(sig != NULL); - _ARGCHK(msg != NULL); - _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); - - /* default to invalid signature */ - *stat = 0; - - /* is the message format correct? */ - if ((errno = packet_valid_header((unsigned char *)sig, PACKET_SECT_ECC, PACKET_SUB_SIGNED)) != CRYPT_OK) { - return errno; - } - - /* get hash name */ - y = PACKET_SIZE; - hash = find_hash_id(sig[y++]); - if (hash == -1) { - return CRYPT_INVALID_HASH; - } - - /* get size of public key */ - LOAD32L(x, sig+y); - y += 4; - - /* load the public key */ - if ((errno = ecc_import((unsigned char*)sig+y, &pubkey)) != CRYPT_OK) { - return errno; - } - y += x; - - /* load size of 'b' */ - LOAD32L(x, sig+y); - y += 4; - - /* init values */ - if (mp_init_multi(&b, &m, &p, NULL) != MP_OKAY) { - ecc_free(&pubkey); - return CRYPT_MEM; - } - - mG = new_point(); - if (mG == NULL) { - mp_clear_multi(&b, &m, &p, NULL); - ecc_free(&pubkey); - return CRYPT_MEM; - } - - /* load b */ - if (mp_read_raw(&b, (unsigned char *)sig+y, x) != MP_OKAY) { goto error; } - y += x; - - /* get m in binary a bignum */ - md[0] = 0; - z = sizeof(md)-1; - if ((errno = hash_memory(hash, msg, inlen, md+1, &z)) != CRYPT_OK) { - res = errno; - goto done1; - } - if (mp_read_raw(&m, md, hash_descriptor[hash].hashsize + 1) != MP_OKAY) { goto error; } - - /* load prime */ - if (mp_read_radix(&p, sets[key->idx].prime, 10) != MP_OKAY) { goto error; } - - /* get bA */ - if (ecc_mulmod(&b, &pubkey.pubkey, &pubkey.pubkey, &p, key->idx) != CRYPT_OK) { goto error; } - - /* get bA + Y */ - if (add_point(&pubkey.pubkey, &key->pubkey, &pubkey.pubkey, &p) != CRYPT_OK) { goto error; } - - /* get mG */ - if (mp_read_radix(&mG->x, sets[key->idx].Gx, 16) != MP_OKAY) { goto error; } - if (mp_read_radix(&mG->y, sets[key->idx].Gy, 16) != MP_OKAY) { goto error; } - if (ecc_mulmod(&m, mG, mG, &p, key->idx) != CRYPT_OK) { goto error; } - - /* compare mG to bA + Y */ - if (!mp_cmp(&mG->x, &pubkey.pubkey.x) && !mp_cmp(&mG->y, &pubkey.pubkey.y)) { - *stat = 1; - } - - /* clear up and return */ - res = CRYPT_OK; - goto done1; -error: - res = CRYPT_MEM; -done1: - del_point(mG); - ecc_free(&pubkey); - mp_clear_multi(&p, &m, &b, NULL); -#ifdef CLEAN_STACK - zeromem(md, sizeof(md)); -#endif - return CRYPT_OK; -} - -#endif - int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, prng_state *prng, int wprng, int hash, @@ -619,7 +132,7 @@ int ecc_decrypt_key(const unsigned char *in, unsigned char *outkey, /* get public key */ LOAD32L(x, in+y); y += 4; - if ((errno = ecc_import(in+y, &pubkey)) != CRYPT_OK) { + if ((errno = ecc_import(in+y, x, &pubkey)) != CRYPT_OK) { return errno; } y += x; @@ -805,7 +318,7 @@ int ecc_verify_hash(const unsigned char *sig, const unsigned char *hash, y += 4; /* load the public key */ - if ((errno = ecc_import((unsigned char*)sig+y, &pubkey)) != CRYPT_OK) { + if ((errno = ecc_import((unsigned char*)sig+y, x, &pubkey)) != CRYPT_OK) { return errno; } y += x; diff --git a/keyring.c b/keyring.c index 4536d9b..d50c27f 100644 --- a/keyring.c +++ b/keyring.c @@ -361,7 +361,7 @@ int kr_export(pk_key *pk, unsigned long ID, int key_type, unsigned char *out, un } } -int kr_import(pk_key *pk, const unsigned char *in) +int kr_import(pk_key *pk, const unsigned char *in, unsigned long inlen) { _pk_key key; int system, key_type, errno; @@ -370,6 +370,10 @@ int kr_import(pk_key *pk, const unsigned char *in) _ARGCHK(pk != NULL); _ARGCHK(in != NULL); + if (inlen < 10) { + return CRYPT_INVALID_PACKET; + } + if (memcmp(in, key_magic, 4)) { return CRYPT_INVALID_PACKET; } @@ -382,19 +386,23 @@ int kr_import(pk_key *pk, const unsigned char *in) } zeromem(&key, sizeof(key)); + + /* size of remaining packet */ + inlen -= 10 + 3*MAXLEN; + switch (system) { case RSA_KEY: - if ((errno = rsa_import(in+10+3*MAXLEN, &(key.rsa))) != CRYPT_OK) { + if ((errno = rsa_import(in+10+3*MAXLEN, inlen, &(key.rsa))) != CRYPT_OK) { return errno; } break; case DH_KEY: - if ((errno = dh_import(in+10+3*MAXLEN, &(key.dh))) != CRYPT_OK) { + if ((errno = dh_import(in+10+3*MAXLEN, inlen, &(key.dh))) != CRYPT_OK) { return errno; } break; case ECC_KEY: - if ((errno = ecc_import(in+10+3*MAXLEN, &(key.ecc))) != CRYPT_OK) { + if ((errno = ecc_import(in+10+3*MAXLEN, inlen, &(key.ecc))) != CRYPT_OK) { return errno; } break; @@ -443,7 +451,7 @@ int kr_load(pk_key **pk, FILE *in, symmetric_CTR *ctr) } if (_read(buf, len, in, ctr) != len) { goto done2; } - if ((errno = kr_import(*pk, buf)) != CRYPT_OK) { + if ((errno = kr_import(*pk, buf, len)) != CRYPT_OK) { return errno; } } diff --git a/makefile b/makefile index e37456d..ec3a503 100644 --- a/makefile +++ b/makefile @@ -9,7 +9,7 @@ # a build. This is easy to remedy though, for those that have problems. # The version -VERSION=0.77 +VERSION=0.78 #Compiler and Linker Names CC=gcc @@ -39,6 +39,9 @@ CFLAGS += -c -I./ -Wall -Wsign-compare -W -Wno-unused -Werror \ #optimize for SIZE (comment out SPEED/DEBUG line as well) CFLAGS += -Os +#Use small code variants of functions when possible? (Slows it down!) +CFLAGS += -DSMALL_CODE + #compile for DEBUGGING #CFLAGS += -g3 @@ -74,6 +77,7 @@ CFLAGS += -DXTEA CFLAGS += -DTWOFISH CFLAGS += -DDES CFLAGS += -DCAST5 +CFLAGS += -DNOEKEON #You can also customize the Twofish code. All four combinations #of the flags are possible but only three of them make sense. @@ -98,14 +102,6 @@ CFLAGS += -DCAST5 # This speeds up the cipher somewhat. #CFLAGS += -DTWOFISH_TABLES -#Small code variant of the SAFER+ cipher, uses same RAM but less code space -#With this defined the cipher is slower. On my x86 with GCC 3.2 it required 50KB less space -CFLAGS += -DSAFERP_SMALL - -#Small Rijndael [saves 13KB on an x86] -#With this defined the cipher is slower (by 50Mbit/sec on an Athon XP) -CFLAGS += -DRIJNDAEL_SMALL - #Use fast PK routines. Basically this limits the size of the private key in the #DH system to 256 bits. The group order remains unchanged so the best #attacks are still GNFS (for DH upto 2560-bits) @@ -114,10 +110,6 @@ CFLAGS += -DRIJNDAEL_SMALL #security so its by default not turned on. USE AT YOUR RISK! #CFLAGS += -DFAST_PK -#Include the PK Packet functions (e.g. dh_encrypt) -#Does not affect the key/hash routines (e.g. ecc_sign_hash) -#CFLAGS += -DPK_PACKET - # Chaining modes CFLAGS += -DCFB CFLAGS += -DOFB @@ -174,7 +166,7 @@ INCPATH=/usr/include OBJECTS=keyring.o gf.o mem.o sprng.o ecc.o base64.o dh.o rsa.o \ bits.o yarrow.o cfb.o ofb.o ecb.o ctr.o cbc.o hash.o tiger.o sha1.o \ md5.o md4.o md2.o sha256.o sha512.o xtea.o aes.o serpent.o des.o \ -safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o blowfish.o crypt.o \ +safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ ampi.o mpi.o prime.o twofish.o packet.o hmac.o strings.o TESTOBJECTS=demos/test.o diff --git a/makefile.ps2 b/makefile.ps2 index a7cc405..f09da3e 100644 --- a/makefile.ps2 +++ b/makefile.ps2 @@ -43,15 +43,18 @@ CFLAGS += -c -I./ -Wall -Wsign-compare -W -Wno-unused -Werror \ -DXMALLOC=$(XMALLOC) -DXCALLOC=$(XCALLOC) -DXFREE=$(XFREE) -DXCLOCK=$(XCLOCK) \ -DXCLOCKS_PER_SEC=$(XCLOCKS_PER_SEC) -#no file support, when defined the library will not have any functions that can read/write files -#(comment out to have file support) -CFLAGS += -DNO_FILE - #optimize for SPEED (comment out SIZE line as well) #CFLAGS += -O3 -fomit-frame-pointer -funroll-loops #optimize for SIZE (comment out SPEED line as well) -CFLAGS += -Os +CFLAGS += -Os + +#Use small code variants of functions when possible? (Slows it down!) +CFLAGS += -DSMALL_CODE + +#no file support, when defined the library will not have any functions that can read/write files +#(comment out to have file support) +CFLAGS += -DNO_FILE #These flags control how the library gets built. @@ -75,6 +78,7 @@ CFLAGS += -DXTEA CFLAGS += -DTWOFISH CFLAGS += -DDES CFLAGS += -DCAST5 +CFLAGS += -DNOEKEON #You can also customize the Twofish code. All four combinations #of the flags are possible but only three of them make sense. @@ -115,10 +119,6 @@ CFLAGS += -DRIJNDAEL_SMALL #security so its by default not turned on. USE AT YOUR RISK! #CFLAGS += -DFAST_PK -#Include the PK Packet functions (e.g. dh_encrypt) -#Does not affect the key/hash routines (e.g. ecc_sign_hash) -#CFLAGS += -DPK_PACKET - # Chaining modes CFLAGS += -DCFB CFLAGS += -DOFB @@ -156,11 +156,6 @@ CFLAGS += -DKR # include large integer math routines? (required by the PK code) CFLAGS += -DMPI -# Use a small prime table? It greatly reduces the size of prime.c at a little impact -# in speed. -# -CFLAGS += -DSMALL_PRIME_TAB - # include HMAC support CFLAGS += -DHMAC @@ -183,7 +178,7 @@ INCPATH=/usr/include OBJECTS=keyring.o gf.o mem.o sprng.o ecc.o base64.o dh.o rsa.o \ bits.o yarrow.o cfb.o ofb.o ecb.o ctr.o cbc.o hash.o tiger.o sha1.o \ md5.o md4.o md2.o sha256.o sha512.o xtea.o aes.o serpent.o des.o \ -safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o blowfish.o crypt.o \ +safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ ampi.o mpi.o prime.o twofish.o packet.o hmac.o strings.o # PlayStation(tm) 2 C run-time startup module diff --git a/makefile.vc b/makefile.vc index 37d99af..e8deeb5 100644 --- a/makefile.vc +++ b/makefile.vc @@ -16,6 +16,9 @@ XCLOCKS_PER_SEC=CLOCKS_PER_SEC CFLAGS = /c /Ogisy1 /Gs /I. /W3 /DWIN32 /DXMALLOC=$(XMALLOC) /DXCALLOC=$(XCALLOC) /DXFREE=$(XFREE) /DXCLOCK=$(XCLOCK) /DXCLOCKS_PER_SEC=$(XCLOCKS_PER_SEC) +#Small code (smaller variants of some block ciphers) +CFLAGS += /DSMALL_CODE + #These flags control how the library gets built. #no file support, when defined the library will not have any functions that can read/write files @@ -48,6 +51,7 @@ CFLAGS += /DXTEA CFLAGS += /DTWOFISH CFLAGS += /DDES CFLAGS += /DCAST5 +CFLAGS += /DNOEKEON #You can also customize the Twofish code. All four combinations #of the flags are possible but only three of them make sense. @@ -72,14 +76,6 @@ CFLAGS += /DCAST5 # This speeds up the cipher somewhat. # CFLAGS += /DTWOFISH_TABLES -#Small code variant of the SAFER+ cipher, uses same RAM but less code space -#With this defined the cipher is slower. On my x86 with GCC 3.2 it required 50KB less space -CFLAGS += /DSAFERP_SMALL - -#Small Rijndael [saves 13KB on an x86] -#With this defined the cipher is slower (by 50Mbit/sec on an Athon XP) -CFLAGS += /DRIJNDAEL_SMALL - #Use fast PK routines. Basically this limits the size of the private key in the #DH system to 256 bits. The group order remains unchanged so the best #attacks are still GNFS (for DH upto 2560-bits) @@ -88,10 +84,6 @@ CFLAGS += /DRIJNDAEL_SMALL #security so its by default not turned on. USE AT YOUR RISK! #CFLAGS += /DFAST_PK -#Include the PK Packet functions (e.g. dh_encrypt) -#Does not affect the key/hash routines (e.g. ecc_sign_hash) -#CFLAGS += /DPK_PACKET - # Chaining modes CFLAGS += /DCFB CFLAGS += /DOFB @@ -129,11 +121,6 @@ CFLAGS += /DKR # include large integer math routines? (required by the PK code) CFLAGS += /DMPI -# Use a small prime table? It greatly reduces the size of prime.c at a little impact -# in speed. -# -CFLAGS += /DSMALL_PRIME_TAB - # include HMAC support CFLAGS += /DHMAC @@ -227,6 +214,8 @@ md2.obj: md2.c $(CC) $(CFLAGS) md2.c cast5.obj: cast5.c $(CC) $(CFLAGS) cast5.c +noekeon.obj: noekeon.c + $(CC) $(CFLAGS) noekeon.c demos/test.obj: demos/test.c $(CC) $(CFLAGS) demos/test.c @@ -236,11 +225,11 @@ demos/hashsum.obj: demos/hashsum.c tomcrypt.lib: keyring.obj gf.obj mem.obj sprng.obj ecc.obj base64.obj dh.obj rsa.obj bits.obj hmac.obj \ yarrow.obj cfb.obj ofb.obj ecb.obj ctr.obj cbc.obj hash.obj tiger.obj sha1.obj md2.obj md5.obj md4.obj sha256.obj sha512.obj xtea.obj \ -aes.obj serpent.obj safer_tab.obj safer.obj safer+.obj cast5.obj rc2.obj rc6.obj rc5.obj des.obj blowfish.obj crypt.obj ampi.obj \ +aes.obj serpent.obj safer_tab.obj safer.obj safer+.obj cast5.obj noekeon.obj rc2.obj rc6.obj rc5.obj des.obj blowfish.obj crypt.obj ampi.obj \ strings.obj mpi.obj prime.obj twofish.obj packet.obj $(AR) /out:tomcrypt.lib keyring.obj gf.obj mem.obj sprng.obj ecc.obj base64.obj dh.obj rsa.obj hmac.obj \ bits.obj yarrow.obj cfb.obj ofb.obj ecb.obj ctr.obj cbc.obj hash.obj tiger.obj sha1.obj md2.obj md5.obj md4.obj sha256.obj \ -strings.obj sha512.obj xtea.obj aes.obj serpent.obj safer_tab.obj safer.obj safer+.obj cast5.obj rc2.obj rc6.obj rc5.obj des.obj \ +strings.obj sha512.obj xtea.obj aes.obj serpent.obj safer_tab.obj safer.obj safer+.obj cast5.obj noekeon.obj rc2.obj rc6.obj rc5.obj des.obj \ blowfish.obj crypt.obj ampi.obj mpi.obj prime.obj twofish.obj packet.obj diff --git a/mycrypt.h b/mycrypt.h index 8216c00..02d6ee0 100644 --- a/mycrypt.h +++ b/mycrypt.h @@ -13,8 +13,8 @@ extern "C" { #endif /* version */ -#define CRYPT 0x0077 -#define SCRYPT "0.77" +#define CRYPT 0x0078 +#define SCRYPT "0.78" /* max size of either a cipher/hash block or symmetric key [largest of the two] */ #define MAXBLOCKSIZE 128 diff --git a/mycrypt_argchk.h b/mycrypt_argchk.h index 4ce83c8..9369a8e 100644 --- a/mycrypt_argchk.h +++ b/mycrypt_argchk.h @@ -10,23 +10,17 @@ * On embedded platforms you can change the fprintf() to be a routine that would display a message * somehow */ -#ifndef SONY_PS2 - -#define _ARGCHK(x) \ - if (!(x)) { \ - fprintf(stderr, "_ARGCHK '%s' failure on line %d of file %s\n", #x, __LINE__, __FILE__); \ - raise(SIGABRT); \ - } - + +#ifdef SMALL_CODE + extern void crypt_argchk(char *v, char *s, int d); + #define _ARGCHK(x) if (!(x)) { crypt_argchk(#x, __FILE__, __LINE__); } #else - -#define _ARGCHK(x) \ - if (!(x)) { \ - printf("_ARGCHK '%s' failure on line %d of file %s\n", #x, __LINE__, __FILE__); \ - raise(SIGABRT); \ - } - -#endif /* SONY_PS2 */ + #ifdef SONY_PS2 + #define _ARGCHK(x) if (!(x)) { printf("_ARGCHK '%s' failure on line %d of file %s\n", #x, __LINE__, __FILE__); raise(SIGABRT); } + #else + #define _ARGCHK(x) if (!(x)) { fprintf(stderr, "_ARGCHK '%s' failure on line %d of file %s\n", #x, __LINE__, __FILE__); raise(SIGABRT); } + #endif +#endif #elif ARGTYPE == 1 diff --git a/mycrypt_cipher.h b/mycrypt_cipher.h index e36d2a7..81ce762 100644 --- a/mycrypt_cipher.h +++ b/mycrypt_cipher.h @@ -94,6 +94,12 @@ struct cast5_key { }; #endif +#ifdef NOEKEON +struct noekeon_key { + unsigned long K[4], dK[4]; +}; +#endif + typedef union Symmetric_key { #ifdef DES struct des_key des; @@ -132,6 +138,9 @@ typedef union Symmetric_key { #ifdef CAST5 struct cast5_key cast5; #endif +#ifdef NOEKEON + struct noekeon_key noekeon; +#endif } symmetric_key; /* A block cipher ECB structure */ @@ -252,12 +261,20 @@ extern const struct _cipher_descriptor serpent_desc; #endif #ifdef RIJNDAEL + +/* make aes an alias */ +#define aes_setup rijndael_setup +#define aes_ecb_encrypt rijndael_ecb_encrypt +#define aes_ecb_decrypt rijndael_ecb_decrypt +#define aes_test rijndael_test +#define aes_keysize rijndael_keysize + extern int rijndael_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); extern void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); extern void rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); extern int rijndael_test(void); extern int rijndael_keysize(int *desired_keysize); -extern const struct _cipher_descriptor rijndael_desc; +extern const struct _cipher_descriptor rijndael_desc, aes_desc; #endif #ifdef XTEA @@ -303,6 +320,15 @@ extern int cast5_keysize(int *desired_keysize); extern const struct _cipher_descriptor cast5_desc; #endif +#ifdef NOEKEON +extern int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey); +extern void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key); +extern void noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key); +extern int noekeon_test(void); +extern int noekeon_keysize(int *desired_keysize); +extern const struct _cipher_descriptor noekeon_desc; +#endif + #ifdef ECB extern int ecb_start(int cipher, const unsigned char *key, int keylen, int num_rounds, symmetric_ECB *ecb); diff --git a/mycrypt_kr.h b/mycrypt_kr.h index e097a64..3edf7db 100644 --- a/mycrypt_kr.h +++ b/mycrypt_kr.h @@ -1,5 +1,9 @@ #ifdef KR +#if !defined(MRSA) || !defined(MDH) || !defined(MECC) + #error "Keyring code requires all three public key algorithms." +#endif + #define MAXLEN 256 enum { @@ -48,7 +52,7 @@ extern int kr_make_key(pk_key *pk, prng_state *prng, int wprng, const unsigned char *email, const unsigned char *description); extern int kr_export(pk_key *pk, unsigned long ID, int key_type, unsigned char *out, unsigned long *outlen); -extern int kr_import(pk_key *pk, const unsigned char *in); +extern int kr_import(pk_key *pk, const unsigned char *in, unsigned long inlen); extern int kr_load(pk_key **pk, FILE *in, symmetric_CTR *ctr); extern int kr_save(pk_key *pk, FILE *out, symmetric_CTR *ctr); diff --git a/mycrypt_pk.h b/mycrypt_pk.h index 941c8bf..b86bb7f 100644 --- a/mycrypt_pk.h +++ b/mycrypt_pk.h @@ -52,27 +52,6 @@ extern int rsa_signdepad(const unsigned char *in, unsigned long inlen, extern void rsa_free(rsa_key *key); -#ifdef PK_PACKET - -extern int rsa_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, - rsa_key *key); - -extern int rsa_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - rsa_key *key); - -extern int rsa_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, - int hash, rsa_key *key); - -extern int rsa_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - rsa_key *key); - -#endif - extern int rsa_encrypt_key(const unsigned char *inkey, unsigned long inlen, unsigned char *outkey, unsigned long *outlen, prng_state *prng, int wprng, rsa_key *key); @@ -88,7 +67,7 @@ extern int rsa_verify_hash(const unsigned char *sig, const unsigned char *hash, int *stat, rsa_key *key); extern int rsa_export(unsigned char *out, unsigned long *outlen, int type, rsa_key *key); -extern int rsa_import(const unsigned char *in, rsa_key *key); +extern int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key); #endif /* ---- DH Routines ---- */ @@ -107,33 +86,11 @@ extern int dh_make_key(prng_state *prng, int wprng, int keysize, dh_key *key); extern void dh_free(dh_key *key); extern int dh_export(unsigned char *out, unsigned long *outlen, int type, dh_key *key); -extern int dh_import(const unsigned char *in, dh_key *key); +extern int dh_import(const unsigned char *in, unsigned long inlen, dh_key *key); extern int dh_shared_secret(dh_key *private_key, dh_key *public_key, unsigned char *out, unsigned long *outlen); -#ifdef PK_PACKET - -extern int dh_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, int hash, - dh_key *key); - -extern int dh_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - dh_key *key); - -extern int dh_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, int hash, - prng_state *prng, int wprng, - dh_key *key); - -extern int dh_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - dh_key *key); - -#endif - extern int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, prng_state *prng, int wprng, int hash, @@ -173,33 +130,11 @@ extern int ecc_make_key(prng_state *prng, int wprng, int keysize, ecc_key *key); extern void ecc_free(ecc_key *key); extern int ecc_export(unsigned char *out, unsigned long *outlen, int type, ecc_key *key); -extern int ecc_import(const unsigned char *in, ecc_key *key); +extern int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key); extern int ecc_shared_secret(ecc_key *private_key, ecc_key *public_key, unsigned char *out, unsigned long *outlen); -#ifdef PK_PACKET - -extern int ecc_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, int hash, - ecc_key *key); - -extern int ecc_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - ecc_key *key); - -extern int ecc_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, int hash, - prng_state *prng, int wprng, - ecc_key *key); - -extern int ecc_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - ecc_key *key); - -#endif - extern int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, unsigned char *out, unsigned long *len, prng_state *prng, int wprng, int hash, diff --git a/noekeon.c b/noekeon.c new file mode 100644 index 0000000..ac44e6f --- /dev/null +++ b/noekeon.c @@ -0,0 +1,210 @@ +/* Implementation of the Noekeon block cipher by Tom St Denis */ +#include "mycrypt.h" + +#ifdef NOEKEON + +const struct _cipher_descriptor noekeon_desc = +{ + "noekeon", + 16, + 16, 16, 16, 16, + &noekeon_setup, + &noekeon_ecb_encrypt, + &noekeon_ecb_decrypt, + &noekeon_test, + &noekeon_keysize +}; + +static const unsigned long RC[] = { + 0x00000080, 0x0000001b, 0x00000036, 0x0000006c, + 0x000000d8, 0x000000ab, 0x0000004d, 0x0000009a, + 0x0000002f, 0x0000005e, 0x000000bc, 0x00000063, + 0x000000c6, 0x00000097, 0x00000035, 0x0000006a, + 0x000000d4 +}; + +static const unsigned long zero[] = { 0, 0, 0, 0 }; + +#define THETA(k, a, b, c, d) \ + temp = a^c; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \ + b ^= temp; d ^= temp; \ + a ^= k[0]; b ^= k[1]; \ + c ^= k[2]; d ^= k[3]; \ + temp = b^d; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \ + a ^= temp; c ^= temp; + +#define GAMMA(a, b, c, d) \ + b ^= ~(d|c); \ + a ^= c&b; \ + temp = d; d = a; a = temp;\ + c ^= a ^ b ^ d; \ + b ^= ~(d|c); \ + a ^= c&b; + +#define PI1(a, b, c, d) \ + a = ROL(a, 1); c = ROL(c, 5); d = ROL(d, 2); + +#define PI2(a, b, c, d) \ + a = ROR(a, 1); c = ROR(c, 5); d = ROR(d, 2); + +int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey) +{ + unsigned long temp; + + _ARGCHK(key != NULL); + _ARGCHK(skey != NULL); + + if (keylen != 16) { + return CRYPT_INVALID_KEYSIZE; + } + + if (num_rounds != 16 && num_rounds != 0) { + return CRYPT_INVALID_ROUNDS; + } + + LOAD32L(skey->noekeon.K[0],&key[0]); + LOAD32L(skey->noekeon.K[1],&key[4]); + LOAD32L(skey->noekeon.K[2],&key[8]); + LOAD32L(skey->noekeon.K[3],&key[12]); + + LOAD32L(skey->noekeon.dK[0],&key[0]); + LOAD32L(skey->noekeon.dK[1],&key[4]); + LOAD32L(skey->noekeon.dK[2],&key[8]); + LOAD32L(skey->noekeon.dK[3],&key[12]); + + THETA(zero, skey->noekeon.dK[0], skey->noekeon.dK[1], skey->noekeon.dK[2], skey->noekeon.dK[3]); + + return CRYPT_OK; +} + +#ifdef CLEAN_STACK +static void _noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key) +#else +void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key) +#endif +{ + unsigned long a,b,c,d,temp; + int r; + + _ARGCHK(key != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + + LOAD32L(a,&pt[0]); LOAD32L(b,&pt[4]); + LOAD32L(c,&pt[8]); LOAD32L(d,&pt[12]); + +#define ROUND(i) \ + a ^= RC[r+i]; \ + THETA(key->noekeon.K, a,b,c,d); \ + PI1(a,b,c,d); \ + GAMMA(a,b,c,d); \ + PI2(a,b,c,d); + + for (r = 0; r < 16; r += 2) { + ROUND(0); + ROUND(1); + } + +#undef ROUND + + a ^= RC[16]; + THETA(key->noekeon.K, a, b, c, d); + + STORE32L(a,&ct[0]); STORE32L(b,&ct[4]); + STORE32L(c,&ct[8]); STORE32L(d,&ct[12]); +} + +#ifdef CLEAN_STACK +void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key) +{ + _noekeon_ecb_encrypt(pt, ct, key); + burn_stack(sizeof(unsigned long) * 5 + sizeof(int)); +} +#endif + +#ifdef CLEAN_STACK +static void _noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key) +#else +void noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key) +#endif +{ + unsigned long a,b,c,d, temp; + int r; + + _ARGCHK(key != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + + LOAD32L(a,&ct[0]); LOAD32L(b,&ct[4]); + LOAD32L(c,&ct[8]); LOAD32L(d,&ct[12]); + +#define ROUND(i) \ + THETA(key->noekeon.dK, a,b,c,d); \ + a ^= RC[r-i]; \ + PI1(a,b,c,d); \ + GAMMA(a,b,c,d); \ + PI2(a,b,c,d); + + + for (r = 16; r > 0; r -= 2) { + ROUND(0); + ROUND(1); + } + +#undef ROUND + + THETA(key->noekeon.dK, a,b,c,d); + a ^= RC[0]; + STORE32L(a,&pt[0]); STORE32L(b, &pt[4]); + STORE32L(c,&pt[8]); STORE32L(d, &pt[12]); +} + +#ifdef CLEAN_STACK +void noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key) +{ + _noekeon_ecb_decrypt(ct, pt, key); + burn_stack(sizeof(unsigned long) * 5 + sizeof(int)); +} +#endif + +int noekeon_test(void) +{ + static const unsigned char + key[] = + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + pt[] = + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + ct[] = + { 0x57, 0x9a, 0x6c, 0xe8, 0x91, 0x16, 0x52, 0x53, + 0x32, 0x00, 0xca, 0x0a, 0x17, 0x5d, 0x28, 0x0e }; + unsigned char tmp[2][16]; + int x, errno; + symmetric_key skey; + + if ((errno = noekeon_setup(key, 16, 0, &skey)) != CRYPT_OK) { + return errno; + } + + noekeon_ecb_encrypt(pt, tmp[0], &skey); + noekeon_ecb_decrypt(tmp[0], tmp[1], &skey); + + if (memcmp(tmp[0], ct, 16) || memcmp(tmp[1], pt, 16)) { + return CRYPT_FAIL_TESTVECTOR; + } + + return CRYPT_OK; +} + +int noekeon_keysize(int *desired_keysize) +{ + _ARGCHK(desired_keysize != NULL); + if (*desired_keysize < 16) { + return CRYPT_INVALID_KEYSIZE; + } else { + *desired_keysize = 16; + return CRYPT_OK; + } +} + +#endif + diff --git a/notes/tech0003.txt b/notes/tech0003.txt index cbe8751..5df3b15 100644 --- a/notes/tech0003.txt +++ b/notes/tech0003.txt @@ -33,14 +33,14 @@ RC2 | 256 | DES | 256 | 3DES | 768 | CAST5 | 132 | +Noekeon | 32 | ------------+-------------------------------/ Memory used per cipher on a 32-bit platform. [*] For Twofish with TWOFISH_SMALL defined [#] For all 64-bit SAFER ciphers. -Following this chart its ideal that in extremely low memory platforms that all of the ciphers are disabled and CAST5 is -left. CAST5 is a fairly fast cipher on all platforms which makes it ideally suited. It should be noted that the -SAFER and SAFER+ keys are formed of arrays of unsigned char. So in effect on platforms where "unsigned long" is -8 bytes SAFER would have the smallest key (CAST5 would come out to 264 bytes). In this case I would recommend -SAFER-SK128. \ No newline at end of file +Noekeon is a fairly fast cipher and uses very little memory. Ideally in low-ram platforms all other ciphers should be +left undefined and Noekeon should remain. While Noekeon is generally considered a secure block cipher (it is insecure +as a hash) CAST5 is perhaps a "runner-up" choice. CAST5 has been around longer (it is also known as CAST-128) and is +fairly fast as well. \ No newline at end of file diff --git a/rsa.c b/rsa.c index a4ea31c..ea4f86a 100644 --- a/rsa.c +++ b/rsa.c @@ -304,16 +304,22 @@ int rsa_depad(const unsigned char *in, unsigned long inlen, #define INPUT_BIGNUM(num, in, x, y) \ { \ /* load value */ \ + if (y + 4 > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ + goto error2; \ + } \ LOAD32L(x, in+y); \ y += 4; \ \ /* sanity check... */ \ - if (x > 1024) { \ + if (y+x > inlen) { \ + errno = CRYPT_INVALID_PACKET; \ goto error2; \ } \ \ /* load it */ \ if (mp_read_raw(num, (unsigned char *)in+y, x) != MP_OKAY) {\ + errno = CRYPT_MEM; \ goto error2; \ } \ y += x; \ @@ -378,7 +384,7 @@ int rsa_export(unsigned char *out, unsigned long *outlen, int type, rsa_key *key return CRYPT_OK; } -int rsa_import(const unsigned char *in, rsa_key *key) +int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key) { unsigned long x, y; int errno; @@ -390,6 +396,10 @@ int rsa_import(const unsigned char *in, rsa_key *key) if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_RSA, PACKET_SUB_KEY)) != CRYPT_OK) { return errno; } + + if (inlen < 1+PACKET_SIZE) { + return CRYPT_INVALID_PACKET; + } /* init key */ if (mp_init_multi(&key->e, &key->d, &key->N, &key->dQ, &key->dP, &key->qP, @@ -426,7 +436,7 @@ int rsa_import(const unsigned char *in, rsa_key *key) error2: mp_clear_multi(&key->d, &key->e, &key->N, &key->dQ, &key->dP, &key->pQ, &key->qP, &key->p, &key->q, NULL); - return CRYPT_MEM; + return errno; } #include "rsa_sys.c" diff --git a/rsa_sys.c b/rsa_sys.c index 915e677..187deb2 100644 --- a/rsa_sys.c +++ b/rsa_sys.c @@ -1,350 +1,3 @@ -#ifdef PK_PACKET - -int rsa_encrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - prng_state *prng, int wprng, int cipher, - rsa_key *key) -{ - unsigned char sym_IV[MAXBLOCKSIZE], sym_key[MAXBLOCKSIZE], rsa_in[4096], rsa_out[4096]; - symmetric_CTR ctr; - unsigned long x, y, blklen, rsa_size; - int keylen, errno;; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* are the parameters valid? */ - if ((errno = prng_is_valid(wprng)) != CRYPT_OK) { - return errno; - } - - if ((errno = cipher_is_valid(cipher)) != CRYPT_OK) { - return errno; - } - - /* setup the CTR key */ - keylen = 32; /* default to 256-bit keys */ - if ((errno = cipher_descriptor[cipher].keysize(&keylen)) != CRYPT_OK) { - return errno; - } - - blklen = cipher_descriptor[cipher].block_length; - if (prng_descriptor[wprng].read(sym_key, keylen, prng) != (unsigned long)keylen) { - return CRYPT_ERROR_READPRNG; - } - - if (prng_descriptor[wprng].read(sym_IV, blklen, prng) != blklen) { - return CRYPT_ERROR_READPRNG; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, sym_IV, sym_key, keylen, 0, &ctr)) != CRYPT_OK) { - return errno; - } - - /* rsa_pad the symmetric key */ - y = sizeof(rsa_in); - if ((errno = rsa_pad(sym_key, keylen, rsa_in, &y, wprng, prng)) != CRYPT_OK) { - return errno; - } - - /* rsa encrypt it */ - rsa_size = sizeof(rsa_out); - if ((errno = rsa_exptmod(rsa_in, y, rsa_out, &rsa_size, PK_PUBLIC, key)) != CRYPT_OK) { - return errno; - } - - /* check size */ - if (*outlen < (PACKET_SIZE+9+rsa_size+blklen+len)) { - return CRYPT_BUFFER_OVERFLOW; - } - - /* now lets make the header */ - y = PACKET_SIZE; - out[y++] = cipher_descriptor[cipher].ID; - - /* store the size of the RSA value */ - STORE32L(rsa_size, (out+y)); - y += 4; - - /* store the rsa value */ - for (x = 0; x < rsa_size; x++, y++) { - out[y] = rsa_out[x]; - } - - /* store the IV used */ - for (x = 0; x < blklen; x++, y++) { - out[y] = sym_IV[x]; - } - - /* store the length */ - STORE32L(len, (out+y)); - y += 4; - - /* encrypt the message */ - if ((errno = ctr_encrypt(in, out+y, len, &ctr)) != CRYPT_OK) { - return errno; - } - - y += len; - - /* store the header */ - packet_store_header(out, PACKET_SECT_RSA, PACKET_SUB_ENCRYPTED, y); - -#ifdef CLEAN_STACK - /* clean up */ - zeromem(sym_key, sizeof(sym_key)); - zeromem(sym_IV, sizeof(sym_IV)); - zeromem(&ctr, sizeof(ctr)); - zeromem(rsa_in, sizeof(rsa_in)); - zeromem(rsa_out, sizeof(rsa_out)); -#endif - - *outlen = y; - return CRYPT_OK; -} - -int rsa_decrypt(const unsigned char *in, unsigned long len, - unsigned char *out, unsigned long *outlen, - rsa_key *key) -{ - unsigned char sym_IV[MAXBLOCKSIZE], sym_key[MAXBLOCKSIZE], rsa_in[4096], rsa_out[4096]; - symmetric_CTR ctr; - unsigned long x, y, z, keylen, blklen, rsa_size; - int cipher, errno; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* right key type? */ - if (key->type != PK_PRIVATE && key->type != PK_PRIVATE_OPTIMIZED) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* check the header */ - if ((errno = packet_valid_header((unsigned char *)in, PACKET_SECT_RSA, PACKET_SUB_ENCRYPTED)) != CRYPT_OK) { - return errno; - } - - /* grab cipher name */ - y = PACKET_SIZE; - cipher = find_cipher_id(in[y++]); - if (cipher == -1) { - return CRYPT_INVALID_CIPHER; - } - keylen = MIN(cipher_descriptor[cipher].max_key_length, 32); - blklen = cipher_descriptor[cipher].block_length; - - /* grab length of the rsa key */ - LOAD32L(rsa_size, (in+y)) - y += 4; - - /* read it in */ - for (x = 0; x < rsa_size; x++, y++) { - rsa_in[x] = in[y]; - } - - /* decrypt it */ - x = sizeof(rsa_out); - if ((errno = rsa_exptmod(rsa_in, rsa_size, rsa_out, &x, PK_PRIVATE, key)) != CRYPT_OK) { - return errno; - } - - /* depad it */ - z = sizeof(sym_key); - if ((errno = rsa_depad(rsa_out, x, sym_key, &z)) != CRYPT_OK) { - return errno; - } - - /* read the IV in */ - for (x = 0; x < blklen; x++, y++) { - sym_IV[x] = in[y]; - } - - /* setup CTR mode */ - if ((errno = ctr_start(cipher, sym_IV, sym_key, keylen, 0, &ctr)) != CRYPT_OK) { - return errno; - } - - /* get len */ - LOAD32L(len, (in+y)); - y += 4; - - /* check size */ - if (*outlen < len) { - return CRYPT_BUFFER_OVERFLOW; - } - - /* decrypt the message */ - if ((errno = ctr_decrypt(in+y, out, len, &ctr)) != CRYPT_OK) { - return errno; - } - -#ifdef CLEAN_STACK - /* clean up */ - zeromem(sym_key, sizeof(sym_key)); - zeromem(sym_IV, sizeof(sym_IV)); - zeromem(&ctr, sizeof(ctr)); - zeromem(rsa_in, sizeof(rsa_in)); - zeromem(rsa_out, sizeof(rsa_out)); -#endif - *outlen = len; - return CRYPT_OK; -} - -/* Signature Message Format -offset | length | Contents ----------------------------------------------------------------------- -0 | 1 | hash ID -1 | 4 | length of rsa_pad'ed signature -5 | p | the rsa_pad'ed signature -*/ - -int rsa_sign(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen, - int hash, rsa_key *key) -{ - unsigned long hashlen, rsa_size, x, y, z; - unsigned char rsa_in[4096], rsa_out[4096]; - int errno; - - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); - - /* type of key? */ - if (key->type != PK_PRIVATE && key->type != PK_PRIVATE_OPTIMIZED) { - return CRYPT_PK_NOT_PRIVATE; - } - - /* are the parameters valid? */ - if ((errno = hash_is_valid(hash)) != CRYPT_OK) { - return errno; - } - - /* hash it */ - hashlen = hash_descriptor[hash].hashsize; - z = sizeof(rsa_in); - if ((errno = hash_memory(hash, in, inlen, rsa_in, &z)) != CRYPT_OK) { - return errno; - } - - /* pad it */ - x = sizeof(rsa_in); - if ((errno = rsa_signpad(rsa_in, hashlen, rsa_out, &x)) != CRYPT_OK) { - return errno; - } - - /* sign it */ - rsa_size = sizeof(rsa_in); - if ((errno = rsa_exptmod(rsa_out, x, rsa_in, &rsa_size, PK_PRIVATE, key)) != CRYPT_OK) { - return errno; - } - - /* check size */ - if (*outlen < (PACKET_SIZE+4+rsa_size)) { - return CRYPT_BUFFER_OVERFLOW; - } - - /* now lets output the message */ - y = PACKET_SIZE; - out[y++] = hash_descriptor[hash].ID; - - /* output the len */ - STORE32L(rsa_size, (out+y)); - y += 4; - - /* store the signature */ - for (x = 0; x < rsa_size; x++, y++) { - out[y] = rsa_in[x]; - } - - /* store header */ - packet_store_header(out, PACKET_SECT_RSA, PACKET_SUB_SIGNED, y); - -#ifdef CLEAN_STACK - /* clean up */ - zeromem(rsa_in, sizeof(rsa_in)); - zeromem(rsa_out, sizeof(rsa_out)); -#endif - *outlen = y; - return CRYPT_OK; -} - -int rsa_verify(const unsigned char *sig, const unsigned char *msg, - unsigned long inlen, int *stat, - rsa_key *key) -{ - unsigned long hashlen, rsa_size, x, y, z, w; - int hash, errno; - unsigned char rsa_in[4096], rsa_out[4096]; - - _ARGCHK(sig != NULL); - _ARGCHK(msg != NULL); - _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); - - /* always be incorrect by default */ - *stat = 0; - - /* verify header */ - if ((errno = packet_valid_header((unsigned char *)sig, PACKET_SECT_RSA, PACKET_SUB_SIGNED)) != CRYPT_OK) { - return errno; - } - - /* grab hash name */ - y = PACKET_SIZE; - hash = find_hash_id(sig[y++]); - if (hash == -1) { - return CRYPT_INVALID_HASH; - } - hashlen = hash_descriptor[hash].hashsize; - - /* get the len */ - LOAD32L(rsa_size, (sig+y)); - y += 4; - - /* load the signature */ - for (x = 0; x < rsa_size; x++, y++) { - rsa_in[x] = sig[y]; - } - - /* exptmod it */ - x = sizeof(rsa_in); - if ((errno = rsa_exptmod(rsa_in, rsa_size, rsa_out, &x, PK_PUBLIC, key)) != CRYPT_OK) { - return errno; - } - - /* depad it */ - z = sizeof(rsa_in); - if ((errno = rsa_signdepad(rsa_out, x, rsa_in, &z)) != CRYPT_OK) { - return errno; - } - - /* check? */ - w = sizeof(rsa_out); - if ((errno = hash_memory(hash, msg, inlen, rsa_out, &w)) != CRYPT_OK) { - return errno; - } - - if ((z == hashlen) && (!memcmp(rsa_in, rsa_out, hashlen))) { - *stat = 1; - } - -#ifdef CLEAN_STACK - zeromem(rsa_in, sizeof(rsa_in)); - zeromem(rsa_out, sizeof(rsa_out)); -#endif - return CRYPT_OK; -} - -#endif - /* these are smaller routines written by Clay Culver. They do the same function as the rsa_encrypt/decrypt * except that they are used to RSA encrypt/decrypt a single value and not a packet. */ diff --git a/safer+.c b/safer+.c index 6c1086a..f2846a5 100644 --- a/safer+.c +++ b/safer+.c @@ -117,7 +117,7 @@ extern const unsigned char safer_ebox[], safer_lbox[]; iSHUF(b2, b); iPHT(b); \ iSHUF(b, b2); iPHT(b2); -#ifdef SAFERP_SMALL +#ifdef SMALL_CODE static void _round(unsigned char *b, int i, symmetric_key *skey) { diff --git a/xtea.c b/xtea.c index 38cb15c..969b650 100644 --- a/xtea.c +++ b/xtea.c @@ -133,7 +133,7 @@ int xtea_test(void) int xtea_keysize(int *desired_keysize) { - _ARGCHK(desired_keysize); + _ARGCHK(desired_keysize != NULL); if (*desired_keysize < 16) { return CRYPT_INVALID_KEYSIZE; } diff --git a/yarrow.c b/yarrow.c index 7ceab90..91db606 100644 --- a/yarrow.c +++ b/yarrow.c @@ -20,6 +20,8 @@ int yarrow_start(prng_state *prng) /* these are the default hash/cipher combo used */ #ifdef RIJNDAEL prng->yarrow.cipher = register_cipher(&rijndael_desc); +#elif defined(NOEKEON) + prng->yarrow.cipher = register_cipher(&noekeon_desc); #elif defined(BLOWFISH) prng->yarrow.cipher = register_cipher(&blowfish_desc); #elif defined(TWOFISH)