From 1f8b8bda6f1aeaedede5150ae76ee731ecee5f28 Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Fri, 20 Feb 2004 20:03:32 +0000 Subject: [PATCH] added libtomcrypt-0.94 --- LICENSE | 7 + base64.c | 32 ++- changes | 23 ++ config.pl | 6 +- crypt.c | 3 + crypt.out | 98 +++---- crypt.pdf | Bin 471391 -> 430814 bytes crypt.tex | 194 +++++++++---- demos/hashsum.c | 48 +++- demos/test.c | 10 +- demos/tv_gen.c | 79 +++++ demos/x86_prof.c | 7 +- dh.c | 116 ++++---- dh_sys.c | 96 +++---- dsa.c | 34 ++- eax.c | 62 ++++ ecc.c | 370 ++++++++++++------------ ecc_sys.c | 102 ++++--- hash.c | 12 +- hmac.c | 20 +- makefile | 11 +- makefile.cygwin_dll | 5 +- makefile.msvc | 4 +- makefile.out | 2 +- mycrypt.h | 4 +- mycrypt_custom.h | 3 +- mycrypt_hash.h | 58 +++- mycrypt_macros.h | 16 +- mycrypt_pk.h | 32 +-- notes/base64_tv.txt | 35 +++ notes/cipher_tv.txt | 216 -------------- notes/eax_tv.txt | 76 ----- notes/etc/whirlgen.c | 91 ++++++ notes/etc/whirltest.c | 15 + notes/hash_tv.txt | 131 +++++++++ notes/hmac_tv.txt | 131 +++++++++ notes/ocb_tv.txt | 652 +++++++++++++++++++----------------------- notes/omac_tv.txt | 76 ----- notes/pmac_tv.txt | 331 +++++++++++++++++++++ ocb.c | 211 +++++++++----- omac.c | 24 +- pmac.c | 437 ++++++++++++++++++++++++++++ rsa.c | 202 ++++++------- rsa_sys.c | 39 +-- safer+.c => saferp.c | 10 +- sha224.c | 2 +- skipjack.c | 34 +-- twofish.c | 6 +- whirl.c | 275 ++++++++++++++++++ whirltab.c | 550 +++++++++++++++++++++++++++++++++++ 50 files changed, 3494 insertions(+), 1504 deletions(-) create mode 100644 LICENSE create mode 100644 notes/base64_tv.txt create mode 100644 notes/etc/whirlgen.c create mode 100644 notes/etc/whirltest.c create mode 100644 notes/pmac_tv.txt create mode 100644 pmac.c rename safer+.c => saferp.c (99%) create mode 100644 whirl.c create mode 100644 whirltab.c diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2796620 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +LibTomCrypt is public domain. As should all quality software be. + +All of the software was either written by or donated to Tom St Denis for the purposes +of this project. The only exception is the SAFER.C source which has no known +license status (assumed copyrighted) which is why SAFER,C is shipped as disabled. + +Tom St Denis \ No newline at end of file diff --git a/base64.c b/base64.c index f613ac2..37796f8 100644 --- a/base64.c +++ b/base64.c @@ -46,8 +46,8 @@ int base64_encode(const unsigned char *in, unsigned long len, unsigned long i, len2, leven; unsigned char *p; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); /* valid output size ? */ @@ -58,21 +58,20 @@ int base64_encode(const unsigned char *in, unsigned long len, p = out; leven = 3*(len / 3); for (i = 0; i < leven; i += 3) { - *p++ = codes[in[0] >> 2]; - *p++ = codes[((in[0] & 3) << 4) + (in[1] >> 4)]; - *p++ = codes[((in[1] & 0xf) << 2) + (in[2] >> 6)]; - *p++ = codes[in[2] & 0x3f]; + *p++ = codes[(in[0] >> 2) & 0x3F]; + *p++ = codes[(((in[0] & 3) << 4) + (in[1] >> 4)) & 0x3F]; + *p++ = codes[(((in[1] & 0xf) << 2) + (in[2] >> 6)) & 0x3F]; + *p++ = codes[in[2] & 0x3F]; in += 3; } /* Pad it if necessary... */ if (i < len) { unsigned a = in[0]; unsigned b = (i+1 < len) ? in[1] : 0; - unsigned c = 0; - *p++ = codes[a >> 2]; - *p++ = codes[((a & 3) << 4) + (b >> 4)]; - *p++ = (i+1 < len) ? codes[((b & 0xf) << 2) + (c >> 6)] : '='; + *p++ = codes[(a >> 2) & 0x3F]; + *p++ = codes[(((a & 3) << 4) + (b >> 4)) & 0x3F]; + *p++ = (i+1 < len) ? codes[(((b & 0xf) << 2)) & 0x3F] : '='; *p++ = '='; } @@ -89,19 +88,22 @@ int base64_decode(const unsigned char *in, unsigned long len, { unsigned long t, x, y, z; unsigned char c; - int g = 3; + int g; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); + g = 3; for (x = y = z = t = 0; x < len; x++) { - c = map[in[x]]; + c = map[in[x]&0xFF]; if (c == 255) continue; if (c == 254) { c = 0; g--; } t = (t<<6)|c; if (++y == 4) { - if (z + g > *outlen) { return CRYPT_BUFFER_OVERFLOW; } + if (z + g > *outlen) { + return CRYPT_BUFFER_OVERFLOW; + } out[z++] = (unsigned char)((t>>16)&255); if (g > 1) out[z++] = (unsigned char)((t>>8)&255); if (g > 2) out[z++] = (unsigned char)(t&255); diff --git a/changes b/changes index 6260e99..d47c475 100644 --- a/changes +++ b/changes @@ -1,3 +1,26 @@ +Feb 20th, 2004 +v0.94 -- removed unused variables from ocb.c and fixed it to match known test vectors. + -- Added PMAC support, minor changes to OMAC/EAX code [I think....] + -- Teamed up with Brian Gladman. His code verifies against my vectors and my code + verifies against his test vectors. Hazaa for co-operation! + -- Various small changes (added missing ARGCHKs and cleaned up indentation) + -- Optimization to base64, removed unused variable "c" + -- Added base64 gen to demos/tv_gen.c + -- Fix to demos/x86_prof.c to correctly identify the i386 architecture... weird... + -- Fixed up all of the PK code by adding missing error checking, removed "res" variables, + shrunk some stack variables, removed non-required stack variables and added proper + error conversion from MPI to LTC codes. I also spotted a few "off by one" error + checking which could have been used to force the code to read past the end of + the buffer (in theory, haven't checked if it would work) by a few bytes. + -- Added checks to OUTPUT_BIGNUM so the *_export() functions cannot overflow the output and I + also modded it so it stores in the output provided to the function (that is not on + the local stack) which saves memory and time. + -- Made SAFER default to disabled for now (plans are to cleanhouse write an implementation later) + -- Added the 512-bit one-way hash WHIRLPOOL which clocks in at 138 cycles per byte on my + Athlon XP [for comparison, SHA-512 clocks in at 77 cycles per byte]. This code uses the + teams new sbox design (not the original NESSIE one). + + Jan 25th, 2004 v0.93 -- [note: deleted v0.93 changes by accident... recreating from memory...] -- Fix to RC2 to not deference pointer before ARGCHK diff --git a/config.pl b/config.pl index ba59670..ef873ad 100644 --- a/config.pl +++ b/config.pl @@ -31,7 +31,7 @@ "RC5,Include RC5 block cipher,y", "RC6,Include RC6 block cipher,y", "SAFERP,Include Safer+ block cipher,y", - "SAFER,Include Safer-64 block ciphers,y", + "SAFER,Include Safer-64 block ciphers,n", "RIJNDAEL,Include Rijndael (AES) block cipher,y", "XTEA,Include XTEA block cipher,y", "TWOFISH,Include Twofish block cipher (default: fast),y", @@ -49,6 +49,7 @@ "CBC,Include CBC block mode of operation,y", "CTR,Include CTR block mode of operation,y", + "WHIRLPOOL,Include WHIRLPOOL 512-bit one-way hash,y", "SHA512,Include SHA512 one-way hash,y", "SHA384,Include SHA384 one-way hash (requires SHA512),y", "SHA256,Include SHA256 one-way hash,y", @@ -62,6 +63,7 @@ "RIPEMD160,Include RIPEMD-160 one-way hash,y", "HMAC,Include Hash based Message Authentication Support,y", "OMAC,Include OMAC1 Message Authentication Support,y", + "PMAC,Include PMAC Message Authentication Support,y", "EAX_MODE,Include EAX Encrypt-and-Authenticate Support,y", "OCB_MODE,Include OCB Encrypt-and-Authenticate Support,y", @@ -153,7 +155,7 @@ for (@settings) { # output objects print OUT "\ndefault: library\n\n"; -print OUT "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 des.o safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o mpi.o prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o \n\n"; +print OUT "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 des.o safer_tab.o safer.o saferp.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o mpi.o prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o pmac.o whirl.o\n\n"; # some depends print OUT "rsa.o: rsa_sys.c\ndh.o: dh_sys.c\necc.o: ecc_sys.c\naes.o: aes.c aes_tab.c\ntwofish.o: twofish.c twofish_tab.c\nsha512.o: sha384.c sha512.c\nsha256.o: sha256.c sha224.c\n\n"; diff --git a/crypt.c b/crypt.c index 4440336..99d771d 100644 --- a/crypt.c +++ b/crypt.c @@ -566,6 +566,9 @@ const char *crypt_build_settings = #if defined(OMAC) " OMAC " #endif +#if defined(PMAC) + " PMAC " +#endif #if defined(EAX_MODE) " EAX_MODE " #endif diff --git a/crypt.out b/crypt.out index 5a788ec..0b8ba59 100644 --- a/crypt.out +++ b/crypt.out @@ -31,56 +31,58 @@ \BOOKMARK [1][-]{section.4.1}{Core Functions}{chapter.4} \BOOKMARK [1][-]{section.4.2}{Hash Descriptors}{chapter.4} \BOOKMARK [2][-]{subsection.4.2.1}{Notice}{section.4.2} -\BOOKMARK [1][-]{section.4.3}{Hash based Message Authenication Codes}{chapter.4} -\BOOKMARK [1][-]{section.4.4}{OMAC Support}{chapter.4} -\BOOKMARK [0][-]{chapter.5}{Pseudo-Random Number Generators}{} -\BOOKMARK [1][-]{section.5.1}{Core Functions}{chapter.5} -\BOOKMARK [2][-]{subsection.5.1.1}{Remarks}{section.5.1} -\BOOKMARK [2][-]{subsection.5.1.2}{Example}{section.5.1} -\BOOKMARK [1][-]{section.5.2}{PRNG Descriptors}{chapter.5} -\BOOKMARK [1][-]{section.5.3}{The Secure RNG}{chapter.5} -\BOOKMARK [2][-]{subsection.5.3.1}{The Secure PRNG Interface}{section.5.3} -\BOOKMARK [0][-]{chapter.6}{RSA Routines}{} -\BOOKMARK [1][-]{section.6.1}{Background}{chapter.6} -\BOOKMARK [1][-]{section.6.2}{Core Functions}{chapter.6} -\BOOKMARK [1][-]{section.6.3}{Packet Routines}{chapter.6} -\BOOKMARK [1][-]{section.6.4}{Remarks}{chapter.6} -\BOOKMARK [0][-]{chapter.7}{Diffie-Hellman Key Exchange}{} +\BOOKMARK [0][-]{chapter.5}{Message Authentication Codes}{} +\BOOKMARK [1][-]{section.5.1}{HMAC Protocol}{chapter.5} +\BOOKMARK [1][-]{section.5.2}{OMAC Support}{chapter.5} +\BOOKMARK [1][-]{section.5.3}{PMAC Support}{chapter.5} +\BOOKMARK [0][-]{chapter.6}{Pseudo-Random Number Generators}{} +\BOOKMARK [1][-]{section.6.1}{Core Functions}{chapter.6} +\BOOKMARK [2][-]{subsection.6.1.1}{Remarks}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.2}{Example}{section.6.1} +\BOOKMARK [1][-]{section.6.2}{PRNG Descriptors}{chapter.6} +\BOOKMARK [1][-]{section.6.3}{The Secure RNG}{chapter.6} +\BOOKMARK [2][-]{subsection.6.3.1}{The Secure PRNG Interface}{section.6.3} +\BOOKMARK [0][-]{chapter.7}{RSA Routines}{} \BOOKMARK [1][-]{section.7.1}{Background}{chapter.7} \BOOKMARK [1][-]{section.7.2}{Core Functions}{chapter.7} -\BOOKMARK [2][-]{subsection.7.2.1}{Remarks on Usage}{section.7.2} -\BOOKMARK [2][-]{subsection.7.2.2}{Remarks on The Snippet}{section.7.2} -\BOOKMARK [1][-]{section.7.3}{Other Diffie-Hellman Functions}{chapter.7} -\BOOKMARK [1][-]{section.7.4}{DH Packet}{chapter.7} -\BOOKMARK [0][-]{chapter.8}{Elliptic Curve Cryptography}{} +\BOOKMARK [1][-]{section.7.3}{Packet Routines}{chapter.7} +\BOOKMARK [1][-]{section.7.4}{Remarks}{chapter.7} +\BOOKMARK [0][-]{chapter.8}{Diffie-Hellman Key Exchange}{} \BOOKMARK [1][-]{section.8.1}{Background}{chapter.8} \BOOKMARK [1][-]{section.8.2}{Core Functions}{chapter.8} -\BOOKMARK [1][-]{section.8.3}{ECC Packet}{chapter.8} -\BOOKMARK [1][-]{section.8.4}{ECC Keysizes}{chapter.8} -\BOOKMARK [0][-]{chapter.9}{Digital Signature Algorithm}{} -\BOOKMARK [1][-]{section.9.1}{Introduction}{chapter.9} -\BOOKMARK [1][-]{section.9.2}{Key Generation}{chapter.9} -\BOOKMARK [1][-]{section.9.3}{Key Verification}{chapter.9} -\BOOKMARK [1][-]{section.9.4}{Signatures}{chapter.9} -\BOOKMARK [1][-]{section.9.5}{Import and Export}{chapter.9} -\BOOKMARK [0][-]{chapter.10}{Public Keyrings}{} +\BOOKMARK [2][-]{subsection.8.2.1}{Remarks on Usage}{section.8.2} +\BOOKMARK [2][-]{subsection.8.2.2}{Remarks on The Snippet}{section.8.2} +\BOOKMARK [1][-]{section.8.3}{Other Diffie-Hellman Functions}{chapter.8} +\BOOKMARK [1][-]{section.8.4}{DH Packet}{chapter.8} +\BOOKMARK [0][-]{chapter.9}{Elliptic Curve Cryptography}{} +\BOOKMARK [1][-]{section.9.1}{Background}{chapter.9} +\BOOKMARK [1][-]{section.9.2}{Core Functions}{chapter.9} +\BOOKMARK [1][-]{section.9.3}{ECC Packet}{chapter.9} +\BOOKMARK [1][-]{section.9.4}{ECC Keysizes}{chapter.9} +\BOOKMARK [0][-]{chapter.10}{Digital Signature Algorithm}{} \BOOKMARK [1][-]{section.10.1}{Introduction}{chapter.10} -\BOOKMARK [1][-]{section.10.2}{The Keyring API}{chapter.10} -\BOOKMARK [0][-]{chapter.11}{GF\(2w\) Math Routines}{} -\BOOKMARK [0][-]{chapter.12}{Miscellaneous}{} -\BOOKMARK [1][-]{section.12.1}{Base64 Encoding and Decoding}{chapter.12} -\BOOKMARK [1][-]{section.12.2}{The Multiple Precision Integer Library \(MPI\)}{chapter.12} -\BOOKMARK [2][-]{subsection.12.2.1}{Binary Forms of ``mp\137int'' Variables}{section.12.2} -\BOOKMARK [2][-]{subsection.12.2.2}{Primality Testing}{section.12.2} -\BOOKMARK [0][-]{chapter.13}{Programming Guidelines}{} -\BOOKMARK [1][-]{section.13.1}{Secure Pseudo Random Number Generators}{chapter.13} -\BOOKMARK [1][-]{section.13.2}{Preventing Trivial Errors}{chapter.13} -\BOOKMARK [1][-]{section.13.3}{Registering Your Algorithms}{chapter.13} -\BOOKMARK [1][-]{section.13.4}{Key Sizes}{chapter.13} -\BOOKMARK [2][-]{subsection.13.4.1}{Symmetric Ciphers}{section.13.4} -\BOOKMARK [2][-]{subsection.13.4.2}{Assymetric Ciphers}{section.13.4} -\BOOKMARK [1][-]{section.13.5}{Thread Safety}{chapter.13} -\BOOKMARK [0][-]{chapter.14}{Configuring the Library}{} -\BOOKMARK [1][-]{section.14.1}{Introduction}{chapter.14} -\BOOKMARK [1][-]{section.14.2}{mycrypt\137cfg.h}{chapter.14} -\BOOKMARK [1][-]{section.14.3}{The Configure Script}{chapter.14} +\BOOKMARK [1][-]{section.10.2}{Key Generation}{chapter.10} +\BOOKMARK [1][-]{section.10.3}{Key Verification}{chapter.10} +\BOOKMARK [1][-]{section.10.4}{Signatures}{chapter.10} +\BOOKMARK [1][-]{section.10.5}{Import and Export}{chapter.10} +\BOOKMARK [0][-]{chapter.11}{Public Keyrings}{} +\BOOKMARK [1][-]{section.11.1}{Introduction}{chapter.11} +\BOOKMARK [1][-]{section.11.2}{The Keyring API}{chapter.11} +\BOOKMARK [0][-]{chapter.12}{GF\(2w\) Math Routines}{} +\BOOKMARK [0][-]{chapter.13}{Miscellaneous}{} +\BOOKMARK [1][-]{section.13.1}{Base64 Encoding and Decoding}{chapter.13} +\BOOKMARK [1][-]{section.13.2}{The Multiple Precision Integer Library \(MPI\)}{chapter.13} +\BOOKMARK [2][-]{subsection.13.2.1}{Binary Forms of ``mp\137int'' Variables}{section.13.2} +\BOOKMARK [2][-]{subsection.13.2.2}{Primality Testing}{section.13.2} +\BOOKMARK [0][-]{chapter.14}{Programming Guidelines}{} +\BOOKMARK [1][-]{section.14.1}{Secure Pseudo Random Number Generators}{chapter.14} +\BOOKMARK [1][-]{section.14.2}{Preventing Trivial Errors}{chapter.14} +\BOOKMARK [1][-]{section.14.3}{Registering Your Algorithms}{chapter.14} +\BOOKMARK [1][-]{section.14.4}{Key Sizes}{chapter.14} +\BOOKMARK [2][-]{subsection.14.4.1}{Symmetric Ciphers}{section.14.4} +\BOOKMARK [2][-]{subsection.14.4.2}{Assymetric Ciphers}{section.14.4} +\BOOKMARK [1][-]{section.14.5}{Thread Safety}{chapter.14} +\BOOKMARK [0][-]{chapter.15}{Configuring the Library}{} +\BOOKMARK [1][-]{section.15.1}{Introduction}{chapter.15} +\BOOKMARK [1][-]{section.15.2}{mycrypt\137cfg.h}{chapter.15} +\BOOKMARK [1][-]{section.15.3}{The Configure Script}{chapter.15} diff --git a/crypt.pdf b/crypt.pdf index 173331000e55772283b4b8268c0045602bf49839..a459ff2c2c62bd9dd57357ba171ef5000242f956 100644 GIT binary patch literal 430814 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ⅅ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�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 Qd&LfJlO|%bG{hjPEu%s`3G9N(kIw6!Uz*<5_ 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 literal 471391 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]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

mYEO>*IO- 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 u;JVZ-^n23nU(Lf_e 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

F;wjhKh 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 L3s int main(void) { - int idx, errno; + int idx, err; omac_state omac; unsigned char key[16], dst[MAXBLOCKSIZE]; unsigned long dstlen; @@ -1370,21 +1385,21 @@ int main(void) /* we would make up our symmetric key in "key[]" here */ /* start the OMAC */ - if ((errno = omac_init(&omac, idx, key, 16)) != CRYPT_OK) { - printf("Error setting up omac: %s\n", error_to_string(errno)); + if ((err = omac_init(&omac, idx, key, 16)) != CRYPT_OK) { + printf("Error setting up omac: %s\n", error_to_string(err)); return -1; } /* process a few octets */ - if((errno = omac_process(&omac, "hello", 5) != CRYPT_OK) { - printf("Error processing omac: %s\n", error_to_string(errno)); + if((err = omac_process(&omac, "hello", 5) != CRYPT_OK) { + printf("Error processing omac: %s\n", error_to_string(err)); return -1; } /* get result (presumably to use it somehow...) */ dstlen = sizeof(dst); - if ((errno = omac_done(&omac, dst, &dstlen)) != CRYPT_OK) { - printf("Error finishing omac: %s\n", error_to_string(errno)); + if ((err = omac_done(&omac, dst, &dstlen)) != CRYPT_OK) { + printf("Error finishing omac: %s\n", error_to_string(err)); return -1; } printf("The omac is %lu bytes long\n", dstlen); @@ -1395,6 +1410,81 @@ int main(void) \end{verbatim} \end{small} +\section{PMAC Support} +The PMAC\footnote{J.Black, P.Rogaway, ``A Block--Cipher Mode of Operation for Parallelizable Message Authentication''} +protocol is another MAC algorithm that relies solely on a symmetric-key block cipher. It uses essentially the same +API as the provided OMAC code. + +A PMAC state is initialized with the following. + +\begin{verbatim} +int pmac_init(pmac_state *pmac, int cipher, + const unsigned char *key, unsigned long keylen); +\end{verbatim} +Which initializes the ``pmac'' state with the given ``cipher'' and ``key'' of length ``keylen'' bytes. The chosen cipher +must have a 64 or 128 bit block size (e.x. AES). + +To MAC data simply send it through the process function. + +\begin{verbatim} +int pmac_process(pmac_state *state, + const unsigned char *buf, unsigned long len); +\end{verbatim} +This will process ``len'' bytes of ``buf'' in the given ``state''. The function is not sensitive to the granularity of the +data. For example, + +\begin{verbatim} +pmac_process(&mystate, "hello", 5); +pmac_process(&mystate, " world", 6); +\end{verbatim} + +Would produce the same result as, + +\begin{verbatim} +pmac_process(&mystate, "hello world", 11); +\end{verbatim} + +When a complete message has been processed the following function can be called to compute the message tag. + +\begin{verbatim} +int pmac_done(pmac_state *state, + unsigned char *out, unsigned long *outlen); +\end{verbatim} +This will store upto ``outlen'' bytes of the tag for the given ``state'' into ``out''. Note that if ``outlen'' is larger +than the size of the tag it is set to the amount of bytes stored in ``out''. + +Similar to the PMAC code the file and memory functions are also provided. To PMAC a buffer of memory in one shot use the +following function. + +\begin{verbatim} +int pmac_memory(int cipher, + const unsigned char *key, unsigned long keylen, + const unsigned char *msg, unsigned long msglen, + unsigned char *out, unsigned long *outlen); +\end{verbatim} +This will compute the PMAC of ``msglen'' bytes of ``msg'' using the key ``key'' of length ``keylen'' bytes and the cipher +specified by the ``cipher'''th entry in the cipher\_descriptor table. It will store the MAC in ``out'' with the same +rules as omac\_done. + +To PMAC a file use +\begin{verbatim} +int pmac_file(int cipher, + const unsigned char *key, unsigned long keylen, + const char *filename, + unsigned char *out, unsigned long *outlen); +\end{verbatim} + +Which will PMAC the entire contents of the file specified by ``filename'' using the key ``key'' of length ``keylen'' bytes +and the cipher specified by the ``cipher'''th entry in the cipher\_descriptor table. It will store the MAC in ``out'' with +the same rules as omac\_done. + +To test if the PMAC code is working there is the following function: +\begin{verbatim} +int pmac_test(void); +\end{verbatim} +Which returns {\bf CRYPT\_OK} if the code passes otherwise it returns an error code. + + \chapter{Pseudo-Random Number Generators} \section{Core Functions} @@ -1445,19 +1535,19 @@ int main(void) { prng_state prng; unsigned char buf[10]; - int errno; + int err; /* start it */ - if ((errno = yarrow_start(&prng)) != CRYPT_OK) { - printf("Start error: %s\n", error_to_string(errno)); + if ((err = yarrow_start(&prng)) != CRYPT_OK) { + printf("Start error: %s\n", error_to_string(err)); } /* add entropy */ - if ((errno = yarrow_add_entropy("hello world", 11, &prng)) != CRYPT_OK) { - printf("Add_entropy error: %s\n", error_to_string(errno)); + if ((err = yarrow_add_entropy("hello world", 11, &prng)) != CRYPT_OK) { + printf("Add_entropy error: %s\n", error_to_string(err)); } /* ready and read */ - if ((errno = yarrow_ready(&prng)) != CRYPT_OK) { - printf("Ready error: %s\n", error_to_string(errno)); + if ((err = yarrow_ready(&prng)) != CRYPT_OK) { + printf("Ready error: %s\n", error_to_string(err)); } printf("Read %lu bytes from yarrow\n", yarrow_read(buf, 10, &prng)); return 0; @@ -1504,22 +1594,22 @@ int main(void) { prng_state prng; unsigned char buf[32]; - int errno; + int err; - if ((errno = rc4_start(&prng)) != CRYPT_OK) { - printf("RC4 init error: %s\n", error_to_string(errno)); + if ((err = rc4_start(&prng)) != CRYPT_OK) { + printf("RC4 init error: %s\n", error_to_string(err)); exit(-1); } /* use ``key'' as the key */ - if ((errno = rc4_add_entropy("key", 3, &prng)) != CRYPT_OK) { - printf("RC4 add entropy error: %s\n", error_to_string(errno)); + if ((err = rc4_add_entropy("key", 3, &prng)) != CRYPT_OK) { + printf("RC4 add entropy error: %s\n", error_to_string(err)); exit(-1); } /* setup RC4 for use */ - if ((errno = rc4_ready(&prng)) != CRYPT_OK) { - printf("RC4 ready error: %s\n", error_to_string(errno)); + if ((err = rc4_ready(&prng)) != CRYPT_OK) { + printf("RC4 ready error: %s\n", error_to_string(err)); exit(-1); } @@ -1572,7 +1662,7 @@ int main(void) { ecc_key mykey; prng_state prng; - int errno; + int err; /* register yarrow */ if (register_prng(&yarrow_desc) == -1) { @@ -1581,14 +1671,14 @@ int main(void) } /* setup the PRNG */ - if ((errno = rng_make_prng(128, find_prng("yarrow"), &prng, NULL)) != CRYPT_OK) { - printf("Error setting up PRNG, %s\n", error_to_string(errno)); + if ((err = rng_make_prng(128, find_prng("yarrow"), &prng, NULL)) != CRYPT_OK) { + printf("Error setting up PRNG, %s\n", error_to_string(err)); return -1; } /* make a 192-bit ECC key */ - if ((errno = ecc_make_key(&prng, find_prng("yarrow"), 24, &mykey)) != CRYPT_OK) { - printf("Error making key: %s\n", error_to_string(errno)); + if ((err = ecc_make_key(&prng, find_prng("yarrow"), 24, &mykey)) != CRYPT_OK) { + printf("Error making key: %s\n", error_to_string(err)); return -1; } return 0; @@ -1608,7 +1698,7 @@ the previous example using this PRNG. int main(void) { ecc_key mykey; - int errno; + int err; /* register SPRNG */ if (register_prng(&sprng_desc) == -1) { @@ -1617,8 +1707,8 @@ int main(void) } /* make a 192-bit ECC key */ - if ((errno = ecc_make_key(NULL, find_prng("sprng"), 24, &mykey)) != CRYPT_OK) { - printf("Error making key: %s\n", error_to_string(errno)); + if ((err = ecc_make_key(NULL, find_prng("sprng"), 24, &mykey)) != CRYPT_OK) { + printf("Error making key: %s\n", error_to_string(err)); return -1; } return 0; @@ -1873,18 +1963,18 @@ int establish_secure_socket(int sock, int mode, unsigned char *key, { unsigned char buf[4096], buf2[4096]; unsigned long x, len; - int res, errno, inlen; + int res, err, inlen; dh_key mykey, theirkey; /* make up our private key */ - if ((errno = dh_make_key(prng, wprng, 128, &mykey)) != CRYPT_OK) { - return errno; + if ((err = dh_make_key(prng, wprng, 128, &mykey)) != CRYPT_OK) { + return err; } /* export our key as public */ x = sizeof(buf); - if ((errno = dh_export(buf, &x, PK_PUBLIC, &mykey)) != CRYPT_OK) { - res = errno; + if ((err = dh_export(buf, &x, PK_PUBLIC, &mykey)) != CRYPT_OK) { + res = err; goto done2; } @@ -1913,22 +2003,22 @@ int establish_secure_socket(int sock, int mode, unsigned char *key, } } - if ((errno = dh_import(buf2, inlen, &theirkey)) != CRYPT_OK) { - res = errno; + if ((err = dh_import(buf2, inlen, &theirkey)) != CRYPT_OK) { + res = err; goto done2; } /* make shared secret */ x = sizeof(buf); - if ((errno = dh_shared_secret(&mykey, &theirkey, buf, &x)) != CRYPT_OK) { - res = errno; + if ((err = dh_shared_secret(&mykey, &theirkey, buf, &x)) != CRYPT_OK) { + res = err; goto done; } /* hash it */ len = 16; /* default is MD5 so "key" must be at least 16 bytes long */ - if ((errno = hash_memory(find_hash("md5"), buf, x, key, &len)) != CRYPT_OK) { - res = errno; + if ((err = hash_memory(find_hash("md5"), buf, x, key, &len)) != CRYPT_OK) { + res = err; goto done; } @@ -2382,26 +2472,26 @@ int main(void) pk_key *kr; unsigned char buf[4096], buf2[4096]; unsigned long len; - int errno; + int err; /* make a new list */ - if ((errno = kr_init(&kr)) != CRYPT_OK) { - printf("kr_init: %s\n", error_to_string(errno)); + if ((err = kr_init(&kr)) != CRYPT_OK) { + printf("kr_init: %s\n", error_to_string(err)); exit(-1); } /* add a key to it */ register_prng(&sprng_desc); - if ((errno = kr_make_key(kr, NULL, find_prng("sprng"), RSA_KEY, 128, + if ((err = kr_make_key(kr, NULL, find_prng("sprng"), RSA_KEY, 128, "TomBot", "tomstdenis@yahoo.com", "test key")) == CRYPT_OK) { - printf("kr_make_key: %s\n", error_to_string(errno)); + printf("kr_make_key: %s\n", error_to_string(err)); exit(-1); } /* export the first key */ len = sizeof(buf); - if ((errno = kr_export(kr, kr->ID, PK_PRIVATE, buf, &len)) != CRYPT_OK) { - printf("kr_export: %s\n", error_to_string(errno)); + if ((err = kr_export(kr, kr->ID, PK_PRIVATE, buf, &len)) != CRYPT_OK) { + printf("kr_export: %s\n", error_to_string(err)); exit(-1); } diff --git a/demos/hashsum.c b/demos/hashsum.c index 27117ae..e0269b3 100644 --- a/demos/hashsum.c +++ b/demos/hashsum.c @@ -66,15 +66,41 @@ int main(int argc, char **argv) void register_algs(void) { - register_hash(&sha512_desc); - register_hash(&sha384_desc); - register_hash(&sha256_desc); - register_hash(&sha1_desc); - register_hash(&md5_desc); - register_hash(&md4_desc); - register_hash(&tiger_desc); - register_hash(&md2_desc); - register_hash(&rmd128_desc); - register_hash(&rmd160_desc); - register_hash(&sha224_desc); +#ifdef TIGER + register_hash (&tiger_desc); +#endif +#ifdef MD2 + register_hash (&md2_desc); +#endif +#ifdef MD4 + register_hash (&md4_desc); +#endif +#ifdef MD5 + register_hash (&md5_desc); +#endif +#ifdef SHA1 + register_hash (&sha1_desc); +#endif +#ifdef SHA224 + register_hash (&sha224_desc); +#endif +#ifdef SHA256 + register_hash (&sha256_desc); +#endif +#ifdef SHA384 + register_hash (&sha384_desc); +#endif +#ifdef SHA512 + register_hash (&sha512_desc); +#endif +#ifdef RIPEMD128 + register_hash (&rmd128_desc); +#endif +#ifdef RIPEMD160 + register_hash (&rmd160_desc); +#endif +#ifdef WHIRLPOOL + register_hash (&whirlpool_desc); +#endif + } diff --git a/demos/test.c b/demos/test.c index f3698ca..126e640 100644 --- a/demos/test.c +++ b/demos/test.c @@ -509,7 +509,7 @@ pad_test (void) void rsa_test (void) { - unsigned char in[4096], out[4096]; + unsigned char in[520], out[520]; unsigned long x, y, z, limit; int stat; rsa_key key; @@ -1375,6 +1375,9 @@ register_all_algs (void) #ifdef RIPEMD160 register_hash (&rmd160_desc); #endif +#ifdef WHIRLPOOL + register_hash (&whirlpool_desc); +#endif #ifdef YARROW register_prng (&yarrow_desc); @@ -1842,6 +1845,11 @@ main (void) if (omac_test() != CRYPT_OK) exit(EXIT_FAILURE); #endif +#ifdef PMAC + printf ("PMAC: %s\n", pmac_test () == CRYPT_OK ? "passed" : "failed"); + if (pmac_test() != CRYPT_OK) exit(EXIT_FAILURE); +#endif + #ifdef EAX_MODE printf ("EAX : %s\n", eax_test () == CRYPT_OK ? "passed" : "failed"); if (eax_test() != CRYPT_OK) exit(EXIT_FAILURE); diff --git a/demos/tv_gen.c b/demos/tv_gen.c index 4f2102b..cf75d3b 100644 --- a/demos/tv_gen.c +++ b/demos/tv_gen.c @@ -79,6 +79,9 @@ void reg_algs(void) #ifdef RIPEMD160 register_hash (&rmd160_desc); #endif +#ifdef WHIRLPOOL + register_hash (&whirlpool_desc); +#endif } void hash_gen(void) @@ -269,6 +272,61 @@ void omac_gen(void) fclose(out); } +void pmac_gen(void) +{ + unsigned char key[MAXBLOCKSIZE], output[MAXBLOCKSIZE], input[MAXBLOCKSIZE*2+2]; + int err, x, y, z, kl; + FILE *out; + unsigned long len; + + out = fopen("pmac_tv.txt", "w"); + + fprintf(out, +"PMAC Tests. In these tests messages of N bytes long (00,01,02,...,NN-1) are OMAC'ed. The initial key is\n" +"of the same format (length specified per cipher). The OMAC key in step N+1 is the OMAC output of\n" +"step N (repeated as required to fill the array).\n\n"); + + for (x = 0; cipher_descriptor[x].name != NULL; x++) { + kl = cipher_descriptor[x].block_length; + + /* skip ciphers which do not have 64 or 128 bit block sizes */ + if (kl != 8 && kl != 16) continue; + + if (cipher_descriptor[x].keysize(&kl) != CRYPT_OK) { + kl = cipher_descriptor[x].max_key_length; + } + fprintf(out, "PMAC-%s (%d byte key)\n", cipher_descriptor[x].name, kl); + + /* initial key/block */ + for (y = 0; y < kl; y++) { + key[y] = (y & 255); + } + + for (y = 0; y <= (int)(cipher_descriptor[x].block_length*2); y++) { + for (z = 0; z < y; z++) { + input[z] = (unsigned char)(z & 255); + } + len = sizeof(output); + if ((err = pmac_memory(x, key, kl, input, y, output, &len)) != CRYPT_OK) { + printf("Error omacing: %s\n", error_to_string(err)); + exit(EXIT_FAILURE); + } + fprintf(out, "%3d: ", y); + for (z = 0; z <(int)len; z++) { + fprintf(out, "%02X", output[z]); + } + fprintf(out, "\n"); + + /* forward the key */ + for (z = 0; z < kl; z++) { + key[z] = output[z % len]; + } + } + fprintf(out, "\n"); + } + fclose(out); +} + void eax_gen(void) { int err, kl, x, y1, z; @@ -392,6 +450,25 @@ void ocb_gen(void) fclose(out); } +void base64_gen(void) +{ + FILE *out; + unsigned char dst[256], src[32]; + unsigned long x, y, len; + + out = fopen("base64_tv.txt", "w"); + fprintf(out, "Base64 vectors. These are the base64 encodings of the strings 00,01,02...NN-1\n\n"); + for (x = 0; x <= 32; x++) { + for (y = 0; y < x; y++) { + src[y] = y; + } + len = sizeof(dst); + base64_encode(src, x, dst, &len); + fprintf(out, "%2lu: %s\n", x, dst); + } + fclose(out); +} + int main(void) { reg_algs(); @@ -399,8 +476,10 @@ int main(void) printf("Generating cipher vectors..."); fflush(stdout); cipher_gen(); printf("done\n"); printf("Generating HMAC vectors..."); fflush(stdout); hmac_gen(); printf("done\n"); printf("Generating OMAC vectors..."); fflush(stdout); omac_gen(); printf("done\n"); + printf("Generating PMAC vectors..."); fflush(stdout); pmac_gen(); printf("done\n"); printf("Generating EAX vectors..."); fflush(stdout); eax_gen(); printf("done\n"); printf("Generating OCB vectors..."); fflush(stdout); ocb_gen(); printf("done\n"); + printf("Generating BASE64 vectors..."); fflush(stdout); base64_gen(); printf("done\n"); return 0; } diff --git a/demos/x86_prof.c b/demos/x86_prof.c index bfb9426..e968554 100644 --- a/demos/x86_prof.c +++ b/demos/x86_prof.c @@ -52,9 +52,9 @@ void tally_results(int type) static ulong64 rdtsc (void) { #if defined __GNUC__ - #ifdef i386 + #ifdef __i386__ ulong64 a; - asm volatile("rdtsc ":"=A" (a)); + __asm__ __volatile__ ("rdtsc ":"=A" (a)); return a; #else /* gcc-IA64 version */ unsigned long result; @@ -190,6 +190,9 @@ void reg_algs(void) #ifdef RIPEMD160 register_hash (&rmd160_desc); #endif +#ifdef WHIRLPOOL + register_hash (&whirlpool_desc); +#endif register_prng(&yarrow_desc); rng_make_prng(128, find_prng("yarrow"), &prng, NULL); diff --git a/dh.c b/dh.c index df45416..89bf7e6 100644 --- a/dh.c +++ b/dh.c @@ -157,48 +157,48 @@ static int is_valid_idx(int n) int dh_test(void) { mp_int p, g, tmp; - int x, res, primality; + int x, err, primality; - if ((res = mp_init_multi(&p, &g, &tmp, NULL)) != MP_OKAY) { goto error; } + if ((err = mp_init_multi(&p, &g, &tmp, NULL)) != MP_OKAY) { goto error; } for (x = 0; sets[x].size != 0; x++) { #if 0 printf("dh_test():testing size %d-bits\n", sets[x].size * 8); #endif - if ((res = mp_read_radix(&g,(char *)sets[x].base, 64)) != MP_OKAY) { goto error; } - if ((res = mp_read_radix(&p,(char *)sets[x].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&g,(char *)sets[x].base, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p,(char *)sets[x].prime, 64)) != MP_OKAY) { goto error; } /* ensure p is prime */ - if ((res = is_prime(&p, &primality)) != CRYPT_OK) { goto done; } + if ((err = is_prime(&p, &primality)) != CRYPT_OK) { goto done; } if (primality == 0) { - res = CRYPT_FAIL_TESTVECTOR; + err = CRYPT_FAIL_TESTVECTOR; goto done; } - if ((res = mp_sub_d(&p, 1, &tmp)) != MP_OKAY) { goto error; } - if ((res = mp_div_2(&tmp, &tmp)) != MP_OKAY) { goto error; } + if ((err = mp_sub_d(&p, 1, &tmp)) != MP_OKAY) { goto error; } + if ((err = mp_div_2(&tmp, &tmp)) != MP_OKAY) { goto error; } /* ensure (p-1)/2 is prime */ - if ((res = is_prime(&tmp, &primality)) != CRYPT_OK) { goto done; } + if ((err = is_prime(&tmp, &primality)) != CRYPT_OK) { goto done; } if (primality == 0) { - res = CRYPT_FAIL_TESTVECTOR; + err = CRYPT_FAIL_TESTVECTOR; goto done; } /* now see if g^((p-1)/2) mod p is in fact 1 */ - if ((res = mp_exptmod(&g, &tmp, &p, &tmp)) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&g, &tmp, &p, &tmp)) != MP_OKAY) { goto error; } if (mp_cmp_d(&tmp, 1)) { - res = CRYPT_FAIL_TESTVECTOR; + err = CRYPT_FAIL_TESTVECTOR; goto done; } } - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = mpi_to_ltc_error(res); + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmp, &g, &p, NULL); - return res; + return err; } void dh_sizes(int *low, int *high) @@ -229,7 +229,7 @@ int dh_make_key(prng_state *prng, int wprng, int keysize, dh_key *key) unsigned char buf[512]; unsigned long x; mp_int p, g; - int res, err; + int err; _ARGCHK(key != NULL); @@ -257,30 +257,30 @@ int dh_make_key(prng_state *prng, int wprng, int keysize, dh_key *key) } /* init parameters */ - if ((res = mp_init_multi(&g, &p, &key->x, &key->y, NULL)) != MP_OKAY) { - return mpi_to_ltc_error(res); + if ((err = mp_init_multi(&g, &p, &key->x, &key->y, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } - if ((res = mp_read_radix(&g, sets[key->idx].base, 64)) != MP_OKAY) { goto error; } - if ((res = mp_read_radix(&p, sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&g, sets[key->idx].base, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p, sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } /* load the x value */ - if ((res = mp_read_unsigned_bin(&key->x, buf, keysize)) != MP_OKAY) { goto error; } - if ((res = mp_exptmod(&g, &key->x, &p, &key->y)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&key->x, buf, keysize)) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&g, &key->x, &p, &key->y)) != MP_OKAY) { goto error; } key->type = PK_PRIVATE; - if ((res = mp_shrink(&key->x)) != MP_OKAY) { goto error; } - if ((res = mp_shrink(&key->y)) != MP_OKAY) { goto error; } + if ((err = mp_shrink(&key->x)) != MP_OKAY) { goto error; } + if ((err = mp_shrink(&key->y)) != MP_OKAY) { goto error; } /* free up ram */ - res = CRYPT_OK; - goto done2; + err = CRYPT_OK; + goto done; error: - res = mpi_to_ltc_error(res); + err = mpi_to_ltc_error(err); mp_clear_multi(&key->x, &key->y, NULL); -done2: +done: mp_clear_multi(&p, &g, NULL); zeromem(buf, sizeof(buf)); - return res; + return err; } void dh_free(dh_key *key) @@ -291,7 +291,6 @@ void dh_free(dh_key *key) int dh_export(unsigned char *out, unsigned long *outlen, int type, dh_key *key) { - unsigned char buf2[1536]; unsigned long y, z; int err; @@ -299,6 +298,11 @@ int dh_export(unsigned char *out, unsigned long *outlen, int type, dh_key *key) _ARGCHK(outlen != NULL); _ARGCHK(key != NULL); + /* can we store the static header? */ + if (*outlen < (PACKET_SIZE + 2)) { + return CRYPT_BUFFER_OVERFLOW; + } + if (type == PK_PRIVATE && key->type != PK_PRIVATE) { return CRYPT_PK_NOT_PRIVATE; } @@ -307,36 +311,22 @@ int dh_export(unsigned char *out, unsigned long *outlen, int type, dh_key *key) y = PACKET_SIZE; /* header */ - buf2[y++] = type; - buf2[y++] = (unsigned char)(sets[key->idx].size / 8); + out[y++] = type; + out[y++] = (unsigned char)(sets[key->idx].size / 8); /* export y */ - OUTPUT_BIGNUM(&key->y, buf2, y, z); + OUTPUT_BIGNUM(&key->y, out, y, z); if (type == PK_PRIVATE) { /* export x */ - OUTPUT_BIGNUM(&key->x, buf2, y, z); - } - - /* check for overflow */ - if (*outlen < y) { - #ifdef CLEAN_STACK - zeromem(buf2, sizeof(buf2)); - #endif - return CRYPT_BUFFER_OVERFLOW; + OUTPUT_BIGNUM(&key->x, out, y, z); } /* store header */ - packet_store_header(buf2, PACKET_SECT_DH, PACKET_SUB_KEY); + packet_store_header(out, PACKET_SECT_DH, PACKET_SUB_KEY); - /* output it */ + /* store len */ *outlen = y; - memcpy(out, buf2, (size_t)y); - - /* clear mem */ -#ifdef CLEAN_STACK - zeromem(buf2, sizeof(buf2)); -#endif return CRYPT_OK; } @@ -349,7 +339,7 @@ int dh_import(const unsigned char *in, unsigned long inlen, dh_key *key) _ARGCHK(key != NULL); /* make sure valid length */ - if (2+PACKET_SIZE > inlen) { + if ((2+PACKET_SIZE) > inlen) { return CRYPT_INVALID_PACKET; } @@ -414,12 +404,12 @@ int dh_shared_secret(dh_key *private_key, dh_key *public_key, { mp_int tmp, p; unsigned long x; - int res; + int err; _ARGCHK(private_key != NULL); _ARGCHK(public_key != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); /* types valid? */ if (private_key->type != PK_PRIVATE) { @@ -432,28 +422,28 @@ int dh_shared_secret(dh_key *private_key, dh_key *public_key, } /* compute y^x mod p */ - if (mp_init_multi(&tmp, &p, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&tmp, &p, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } - if (mp_read_radix(&p, (char *)sets[private_key->idx].prime, 64) != MP_OKAY) { goto error; } - if (mp_exptmod(&public_key->y, &private_key->x, &p, &tmp) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p, (char *)sets[private_key->idx].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&public_key->y, &private_key->x, &p, &tmp)) != MP_OKAY) { goto error; } /* enough space for output? */ x = (unsigned long)mp_unsigned_bin_size(&tmp); if (*outlen < x) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done; } - if (mp_to_unsigned_bin(&tmp, out) != MP_OKAY) { goto error; } + if ((err = mp_to_unsigned_bin(&tmp, out)) != MP_OKAY) { goto error; } *outlen = x; - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: mp_clear_multi(&p, &tmp, NULL); - return res; + return err; } #include "dh_sys.c" diff --git a/dh_sys.c b/dh_sys.c index 9e73026..e400047 100644 --- a/dh_sys.c +++ b/dh_sys.c @@ -19,9 +19,9 @@ int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, int err; _ARGCHK(inkey != NULL); - _ARGCHK(out != NULL); - _ARGCHK(len != NULL); - _ARGCHK(key != NULL); + _ARGCHK(out != NULL); + _ARGCHK(len != NULL); + _ARGCHK(key != NULL); /* check that wprng/hash are not invalid */ if ((err = prng_is_valid(wprng)) != CRYPT_OK) { @@ -68,6 +68,9 @@ int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, return err; } + /* store header */ + packet_store_header(out, PACKET_SECT_DH, PACKET_SUB_ENC_KEY); + /* output header */ y = PACKET_SIZE; @@ -88,9 +91,7 @@ int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, for (x = 0; x < keylen; x++, y++) { out[y] = skey[x] ^ inkey[x]; } - - /* store header */ - packet_store_header(out, PACKET_SECT_DH, PACKET_SUB_ENC_KEY); + *len = y; #ifdef CLEAN_STACK /* clean up */ @@ -99,7 +100,6 @@ int dh_encrypt_key(const unsigned char *inkey, unsigned long keylen, zeromem(skey, sizeof(skey)); #endif - *len = y; return CRYPT_OK; } @@ -109,13 +109,13 @@ int dh_decrypt_key(const unsigned char *in, unsigned long inlen, { unsigned char shared_secret[768], skey[MAXBLOCKSIZE]; unsigned long x, y, z,hashsize, keysize; - int res, hash, err; + int hash, err; dh_key pubkey; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(outkey != NULL); _ARGCHK(keylen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* right key type? */ if (key->type != PK_PRIVATE) { @@ -184,7 +184,7 @@ int dh_decrypt_key(const unsigned char *in, unsigned long inlen, } if (keysize > *keylen) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done; } y += 4; @@ -195,13 +195,13 @@ int dh_decrypt_key(const unsigned char *in, unsigned long inlen, outkey[x] = skey[x] ^ in[y]; } - res = CRYPT_OK; + err = CRYPT_OK; done: #ifdef CLEAN_STACK zeromem(shared_secret, sizeof(shared_secret)); zeromem(skey, sizeof(skey)); #endif - return res; + return err; } /* perform an ElGamal Signature of a hash @@ -227,14 +227,14 @@ int dh_sign_hash(const unsigned char *in, unsigned long inlen, prng_state *prng, int wprng, dh_key *key) { mp_int a, b, k, m, g, p, p1, tmp; - unsigned char buf[1536]; + unsigned char buf[520]; unsigned long x, y; - int res, err; + int err; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* check parameters */ if (key->type != PK_PRIVATE) { @@ -286,44 +286,44 @@ int dh_sign_hash(const unsigned char *in, unsigned long inlen, if ((err = mp_mulmod(&a, &key->x, &p1, &tmp)) != MP_OKAY) { goto error; } /* tmp = xa */ if ((err = mp_submod(&m, &tmp, &p1, &tmp)) != MP_OKAY) { goto error; } /* tmp = M - xa */ if ((err = mp_mulmod(&k, &tmp, &p1, &b)) != MP_OKAY) { goto error; } /* b = (M - xa)/k */ - + + /* check for overflow */ + if ((unsigned long)(PACKET_SIZE + 4 + 4 + mp_unsigned_bin_size(&a) + mp_unsigned_bin_size(&b)) > *outlen) { + err = CRYPT_BUFFER_OVERFLOW; + goto done; + } + /* store header */ y = PACKET_SIZE; /* now store them both (a,b) */ x = (unsigned long)mp_unsigned_bin_size(&a); - STORE32L(x, buf+y); y += 4; - if ((err = mp_to_unsigned_bin(&a, buf+y)) != MP_OKAY) { goto error; } + STORE32L(x, out+y); y += 4; + if ((err = mp_to_unsigned_bin(&a, out+y)) != MP_OKAY) { goto error; } y += x; x = (unsigned long)mp_unsigned_bin_size(&b); - STORE32L(x, buf+y); y += 4; - if ((err = mp_to_unsigned_bin(&b, buf+y)) != MP_OKAY) { goto error; } + STORE32L(x, out+y); y += 4; + if ((err = mp_to_unsigned_bin(&b, out+y)) != MP_OKAY) { goto error; } y += x; /* check if size too big */ if (*outlen < y) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done; } /* store header */ - packet_store_header(buf, PACKET_SECT_DH, PACKET_SUB_SIGNED); - - /* store it */ - memcpy(out, buf, (size_t)y); + packet_store_header(out, PACKET_SECT_DH, PACKET_SUB_SIGNED); *outlen = y; -#ifdef CLEAN_STACK - zeromem(buf, sizeof(buf)); -#endif - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = mpi_to_ltc_error(err); + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmp, &p1, &g, &p, &m, &k, &b, &a, NULL); - return res; + return err; } int dh_verify_hash(const unsigned char *sig, unsigned long siglen, @@ -332,12 +332,12 @@ int dh_verify_hash(const unsigned char *sig, unsigned long siglen, { mp_int a, b, p, g, m, tmp; unsigned long x, y; - int res, err; + int err; - _ARGCHK(sig != NULL); + _ARGCHK(sig != NULL); _ARGCHK(hash != NULL); _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* default to invalid */ *stat = 0; @@ -371,7 +371,7 @@ int dh_verify_hash(const unsigned char *sig, unsigned long siglen, } y += 4; - if ((err = mp_read_unsigned_bin(&a, (unsigned char *)sig+y, x)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&a, (unsigned char *)sig+y, x)) != MP_OKAY) { goto error; } y += x; LOAD32L(x, sig+y); @@ -381,23 +381,23 @@ int dh_verify_hash(const unsigned char *sig, unsigned long siglen, siglen -= x; } y += 4; - if ((err = mp_read_unsigned_bin(&b, (unsigned char *)sig+y, x)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&b, (unsigned char *)sig+y, x)) != MP_OKAY) { goto error; } y += x; /* load p and g */ - if ((err = mp_read_radix(&p, sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } - if ((err = mp_read_radix(&g, sets[key->idx].base, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p, sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&g, sets[key->idx].base, 64)) != MP_OKAY) { goto error; } /* load m */ if ((err = mp_read_unsigned_bin(&m, (unsigned char *)hash, hashlen)) != MP_OKAY) { goto error; } /* find g^m mod p */ - if ((err = mp_exptmod(&g, &m, &p, &m)) != MP_OKAY) { goto error; } /* m = g^m mod p */ + if ((err = mp_exptmod(&g, &m, &p, &m)) != MP_OKAY) { goto error; } /* m = g^m mod p */ /* find y^a * a^b */ - if ((err = mp_exptmod(&key->y, &a, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = y^a mod p */ - if ((err = mp_exptmod(&a, &b, &p, &a)) != MP_OKAY) { goto error; } /* a = a^b mod p */ - if ((err = mp_mulmod(&a, &tmp, &p, &a)) != MP_OKAY) { goto error; } /* a = y^a * a^b mod p */ + if ((err = mp_exptmod(&key->y, &a, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = y^a mod p */ + if ((err = mp_exptmod(&a, &b, &p, &a)) != MP_OKAY) { goto error; } /* a = a^b mod p */ + if ((err = 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) { @@ -405,12 +405,12 @@ int dh_verify_hash(const unsigned char *sig, unsigned long siglen, } /* clean up */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = mpi_to_ltc_error(err); + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmp, &m, &g, &p, &b, &a, NULL); - return res; + return err; } diff --git a/dsa.c b/dsa.c index 63038f4..1d08ff7 100644 --- a/dsa.c +++ b/dsa.c @@ -18,7 +18,6 @@ int dsa_make_key(prng_state *prng, int wprng, int group_size, int modulus_size, int err, res; unsigned char buf[512]; - _ARGCHK(prng != NULL); _ARGCHK(key != NULL); /* check prng */ @@ -132,11 +131,10 @@ int dsa_sign_hash(const unsigned char *in, unsigned long inlen, unsigned long len; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); - _ARGCHK(prng != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); if ((err = prng_is_valid(wprng)) != CRYPT_OK) { return err; @@ -204,7 +202,7 @@ retry: /* store length of r */ len = mp_unsigned_bin_size(&r); out[y++] = (len>>8)&255; - out[y++] = (len & 255); + out[y++] = len&255; /* store r */ if ((err = mp_to_unsigned_bin(&r, out+y)) != MP_OKAY) { goto error; } @@ -213,7 +211,7 @@ retry: /* store length of s */ len = mp_unsigned_bin_size(&s); out[y++] = (len>>8)&255; - out[y++] = (len & 255); + out[y++] = len&255; /* store s */ if ((err = mp_to_unsigned_bin(&s, out+y)) != MP_OKAY) { goto error; } @@ -241,10 +239,10 @@ int dsa_verify_hash(const unsigned char *sig, unsigned long siglen, unsigned long x, y; int err; - _ARGCHK(sig != NULL); + _ARGCHK(sig != NULL); _ARGCHK(hash != NULL); _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* default to invalid signature */ *stat = 0; @@ -320,10 +318,15 @@ int dsa_export(unsigned char *out, unsigned long *outlen, int type, dsa_key *key unsigned long y, z; int err; - _ARGCHK(out != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); + /* can we store the static header? */ + if (*outlen < (PACKET_SIZE + 1 + 2)) { + return CRYPT_BUFFER_OVERFLOW; + } + if (type == PK_PRIVATE && key->type != PK_PRIVATE) { return CRYPT_PK_TYPE_MISMATCH; } @@ -332,11 +335,6 @@ int dsa_export(unsigned char *out, unsigned long *outlen, int type, dsa_key *key return CRYPT_INVALID_ARG; } - /* can we store the static header? */ - if (*outlen < (PACKET_SIZE + 1 + 2)) { - return CRYPT_BUFFER_OVERFLOW; - } - /* store header */ packet_store_header(out, PACKET_SECT_DSA, PACKET_SUB_KEY); y = PACKET_SIZE; @@ -366,7 +364,7 @@ int dsa_import(const unsigned char *in, unsigned long inlen, dsa_key *key) unsigned long x, y; int err; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(key != NULL); /* check length */ @@ -410,7 +408,7 @@ int dsa_verify_key(dsa_key *key, int *stat) mp_int tmp, tmp2; int res, err; - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); _ARGCHK(stat != NULL); *stat = 0; diff --git a/eax.c b/eax.c index 64def97..4326521 100644 --- a/eax.c +++ b/eax.c @@ -8,6 +8,8 @@ * * Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org */ + +/* EAX Implementation by Tom St Denis */ #include "mycrypt.h" #ifdef EAX_MODE @@ -385,6 +387,66 @@ int eax_test(void) { 0x0d, 0x1a, 0x14, 0xe5, 0x22, 0x24, 0xff, 0xd2, 0x3a, 0x05, 0xfa, 0x02, 0xcd, 0xef, 0x52, 0xda } }, + +/* Vectors from Brian Gladman */ + +{ + 16, 16, 8, 0, + /* key */ + { 0x23, 0x39, 0x52, 0xde, 0xe4, 0xd5, 0xed, 0x5f, + 0x9b, 0x9c, 0x6d, 0x6f, 0xf8, 0x0f, 0xf4, 0x78 }, + /* nonce */ + { 0x62, 0xec, 0x67, 0xf9, 0xc3, 0xa4, 0xa4, 0x07, + 0xfc, 0xb2, 0xa8, 0xc4, 0x90, 0x31, 0xa8, 0xb3 }, + /* header */ + { 0x6b, 0xfb, 0x91, 0x4f, 0xd0, 0x7e, 0xae, 0x6b }, + /* PT */ + { 0x00 }, + /* CT */ + { 0x00 }, + /* tag */ + { 0xe0, 0x37, 0x83, 0x0e, 0x83, 0x89, 0xf2, 0x7b, + 0x02, 0x5a, 0x2d, 0x65, 0x27, 0xe7, 0x9d, 0x01 } +}, + +{ + 16, 16, 8, 2, + /* key */ + { 0x91, 0x94, 0x5d, 0x3f, 0x4d, 0xcb, 0xee, 0x0b, + 0xf4, 0x5e, 0xf5, 0x22, 0x55, 0xf0, 0x95, 0xa4 }, + /* nonce */ + { 0xbe, 0xca, 0xf0, 0x43, 0xb0, 0xa2, 0x3d, 0x84, + 0x31, 0x94, 0xba, 0x97, 0x2c, 0x66, 0xde, 0xbd }, + /* header */ + { 0xfa, 0x3b, 0xfd, 0x48, 0x06, 0xeb, 0x53, 0xfa }, + /* PT */ + { 0xf7, 0xfb }, + /* CT */ + { 0x19, 0xdd }, + /* tag */ + { 0x5c, 0x4c, 0x93, 0x31, 0x04, 0x9d, 0x0b, 0xda, + 0xb0, 0x27, 0x74, 0x08, 0xf6, 0x79, 0x67, 0xe5 } +}, + +{ + 16, 16, 8, 5, + /* key */ + { 0x01, 0xf7, 0x4a, 0xd6, 0x40, 0x77, 0xf2, 0xe7, + 0x04, 0xc0, 0xf6, 0x0a, 0xda, 0x3d, 0xd5, 0x23 }, + /* nonce */ + { 0x70, 0xc3, 0xdb, 0x4f, 0x0d, 0x26, 0x36, 0x84, + 0x00, 0xa1, 0x0e, 0xd0, 0x5d, 0x2b, 0xff, 0x5e }, + /* header */ + { 0x23, 0x4a, 0x34, 0x63, 0xc1, 0x26, 0x4a, 0xc6 }, + /* PT */ + { 0x1a, 0x47, 0xcb, 0x49, 0x33 }, + /* CT */ + { 0xd8, 0x51, 0xd5, 0xba, 0xe0 }, + /* Tag */ + { 0x3a, 0x59, 0xf2, 0x38, 0xa2, 0x3e, 0x39, 0x19, + 0x9d, 0xc9, 0x26, 0x66, 0x26, 0xc4, 0x0f, 0x80 } +} + }; int err, x, idx, res; unsigned long len; diff --git a/ecc.c b/ecc.c index fad0928..9e67a1f 100644 --- a/ecc.c +++ b/ecc.c @@ -247,9 +247,7 @@ static ecc_point *new_point(void) static void del_point(ecc_point *p) { /* prevents free'ing null arguments */ - if (p == NULL) { - return; - } else { + if (p != NULL) { mp_clear_multi(&p->x, &p->y, NULL); XFREE(p); } @@ -259,60 +257,60 @@ static void del_point(ecc_point *p) static int dbl_point(ecc_point *P, ecc_point *R, mp_int *modulus, mp_int *mu) { mp_int s, tmp, tmpx; - int res; + int err; - if ((res = mp_init_multi(&s, &tmp, &tmpx, NULL)) != MP_OKAY) { - return mpi_to_ltc_error(res); + if ((err = mp_init_multi(&s, &tmp, &tmpx, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } /* s = (3Xp^2 + a) / (2Yp) */ - if ((res = mp_mul_2(&P->y, &tmp)) != MP_OKAY) { goto error; } /* tmp = 2*y */ - if ((res = mp_invmod(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } /* tmp = 1/tmp mod modulus */ - if ((res = mp_sqr(&P->x, &s)) != MP_OKAY) { goto error; } /* s = x^2 */ - if ((res = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } - if ((res = mp_mul_d(&s,(mp_digit)3, &s)) != MP_OKAY) { goto error; } /* s = 3*(x^2) */ - if ((res = mp_sub_d(&s,(mp_digit)3, &s)) != MP_OKAY) { goto error; } /* s = 3*(x^2) - 3 */ + if ((err = mp_mul_2(&P->y, &tmp)) != MP_OKAY) { goto error; } /* tmp = 2*y */ + if ((err = mp_invmod(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } /* tmp = 1/tmp mod modulus */ + if ((err = mp_sqr(&P->x, &s)) != MP_OKAY) { goto error; } /* s = x^2 */ + if ((err = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } + if ((err = mp_mul_d(&s,(mp_digit)3, &s)) != MP_OKAY) { goto error; } /* s = 3*(x^2) */ + if ((err = mp_sub_d(&s,(mp_digit)3, &s)) != MP_OKAY) { goto error; } /* s = 3*(x^2) - 3 */ if (mp_cmp_d(&s, 0) == MP_LT) { /* if s < 0 add modulus */ - if ((res = mp_add(&s, modulus, &s)) != MP_OKAY) { goto error; } + if ((err = mp_add(&s, modulus, &s)) != MP_OKAY) { goto error; } } - if ((res = mp_mul(&s, &tmp, &s)) != MP_OKAY) { goto error; } /* s = tmp * s mod modulus */ - if ((res = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } + if ((err = mp_mul(&s, &tmp, &s)) != MP_OKAY) { goto error; } /* s = tmp * s mod modulus */ + if ((err = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } /* Xr = s^2 - 2Xp */ - if ((res = mp_sqr(&s, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = s^2 */ - if ((res = mp_reduce(&tmpx, modulus, mu)) != MP_OKAY) { goto error; } /* tmpx = tmpx mod modulus */ - if ((res = mp_sub(&tmpx, &P->x, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmpx - x */ - if ((res = mp_submod(&tmpx, &P->x, modulus, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmpx - x mod modulus */ + if ((err = mp_sqr(&s, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = s^2 */ + if ((err = mp_reduce(&tmpx, modulus, mu)) != MP_OKAY) { goto error; } /* tmpx = tmpx mod modulus */ + if ((err = mp_sub(&tmpx, &P->x, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmpx - x */ + if ((err = mp_submod(&tmpx, &P->x, modulus, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmpx - x mod modulus */ /* Yr = -Yp + s(Xp - Xr) */ - if ((res = mp_sub(&P->x, &tmpx, &tmp)) != MP_OKAY) { goto error; } /* tmp = x - tmpx */ - if ((res = mp_mul(&tmp, &s, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp * s */ - if ((res = mp_submod(&tmp, &P->y, modulus, &R->y)) != MP_OKAY) { goto error; } /* y = tmp - y mod modulus */ - if ((res = mp_copy(&tmpx, &R->x)) != MP_OKAY) { goto error; } /* x = tmpx */ + if ((err = mp_sub(&P->x, &tmpx, &tmp)) != MP_OKAY) { goto error; } /* tmp = x - tmpx */ + if ((err = mp_mul(&tmp, &s, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp * s */ + if ((err = mp_submod(&tmp, &P->y, modulus, &R->y)) != MP_OKAY) { goto error; } /* y = tmp - y mod modulus */ + if ((err = mp_copy(&tmpx, &R->x)) != MP_OKAY) { goto error; } /* x = tmpx */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = mpi_to_ltc_error(res); + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmpx, &tmp, &s, NULL); - return res; + return err; } /* add two different points over Z/pZ, R = P + Q, note R can equal either P or Q */ static int add_point(ecc_point *P, ecc_point *Q, ecc_point *R, mp_int *modulus, mp_int *mu) { mp_int s, tmp, tmpx; - int res; + int err; - if ((res = mp_init(&tmp)) != MP_OKAY) { - return mpi_to_ltc_error(res); + if ((err = mp_init(&tmp)) != MP_OKAY) { + return mpi_to_ltc_error(err); } /* is P==Q or P==-Q? */ - if (((res = mp_neg(&Q->y, &tmp)) != MP_OKAY) || ((res = mp_mod(&tmp, modulus, &tmp)) != MP_OKAY)) { + if (((err = mp_neg(&Q->y, &tmp)) != MP_OKAY) || ((err = mp_mod(&tmp, modulus, &tmp)) != MP_OKAY)) { mp_clear(&tmp); - return mpi_to_ltc_error(res); + return mpi_to_ltc_error(err); } if (mp_cmp(&P->x, &Q->x) == MP_EQ) @@ -321,43 +319,43 @@ static int add_point(ecc_point *P, ecc_point *Q, ecc_point *R, mp_int *modulus, return dbl_point(P, R, modulus, mu); } - if ((res = mp_init_multi(&tmpx, &s, NULL)) != MP_OKAY) { + if ((err = mp_init_multi(&tmpx, &s, NULL)) != MP_OKAY) { mp_clear(&tmp); - return mpi_to_ltc_error(res); + return mpi_to_ltc_error(err); } /* get s = (Yp - Yq)/(Xp-Xq) mod p */ - if ((res = mp_sub(&P->x, &Q->x, &tmp)) != MP_OKAY) { goto error; } /* tmp = Px - Qx mod modulus */ + if ((err = mp_sub(&P->x, &Q->x, &tmp)) != MP_OKAY) { goto error; } /* tmp = Px - Qx mod modulus */ if (mp_cmp_d(&tmp, 0) == MP_LT) { /* if tmp<0 add modulus */ - if ((res = mp_add(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } + if ((err = mp_add(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } } - if ((res = mp_invmod(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } /* tmp = 1/tmp mod modulus */ - if ((res = mp_sub(&P->y, &Q->y, &s)) != MP_OKAY) { goto error; } /* s = Py - Qy mod modulus */ + if ((err = mp_invmod(&tmp, modulus, &tmp)) != MP_OKAY) { goto error; } /* tmp = 1/tmp mod modulus */ + if ((err = mp_sub(&P->y, &Q->y, &s)) != MP_OKAY) { goto error; } /* s = Py - Qy mod modulus */ if (mp_cmp_d(&s, 0) == MP_LT) { /* if s<0 add modulus */ - if ((res = mp_add(&s, modulus, &s)) != MP_OKAY) { goto error; } + if ((err = mp_add(&s, modulus, &s)) != MP_OKAY) { goto error; } } - if ((res = mp_mul(&s, &tmp, &s)) != MP_OKAY) { goto error; } /* s = s * tmp mod modulus */ - if ((res = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } + if ((err = mp_mul(&s, &tmp, &s)) != MP_OKAY) { goto error; } /* s = s * tmp mod modulus */ + if ((err = mp_reduce(&s, modulus, mu)) != MP_OKAY) { goto error; } /* Xr = s^2 - Xp - Xq */ - if ((res = mp_sqr(&s, &tmp)) != MP_OKAY) { goto error; } /* tmp = s^2 mod modulus */ - if ((res = mp_reduce(&tmp, modulus, mu)) != MP_OKAY) { goto error; } - if ((res = mp_sub(&tmp, &P->x, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp - Px */ - if ((res = mp_sub(&tmp, &Q->x, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmp - Qx */ + if ((err = mp_sqr(&s, &tmp)) != MP_OKAY) { goto error; } /* tmp = s^2 mod modulus */ + if ((err = mp_reduce(&tmp, modulus, mu)) != MP_OKAY) { goto error; } + if ((err = mp_sub(&tmp, &P->x, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp - Px */ + if ((err = mp_sub(&tmp, &Q->x, &tmpx)) != MP_OKAY) { goto error; } /* tmpx = tmp - Qx */ /* Yr = -Yp + s(Xp - Xr) */ - if ((res = mp_sub(&P->x, &tmpx, &tmp)) != MP_OKAY) { goto error; } /* tmp = Px - tmpx */ - if ((res = mp_mul(&tmp, &s, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp * s */ - if ((res = mp_submod(&tmp, &P->y, modulus, &R->y)) != MP_OKAY) { goto error; } /* Ry = tmp - Py mod modulus */ - if ((res = mp_mod(&tmpx, modulus, &R->x)) != MP_OKAY) { goto error; } /* Rx = tmpx mod modulus */ + if ((err = mp_sub(&P->x, &tmpx, &tmp)) != MP_OKAY) { goto error; } /* tmp = Px - tmpx */ + if ((err = mp_mul(&tmp, &s, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp * s */ + if ((err = mp_submod(&tmp, &P->y, modulus, &R->y)) != MP_OKAY) { goto error; } /* Ry = tmp - Py mod modulus */ + if ((err = mp_mod(&tmpx, modulus, &R->x)) != MP_OKAY) { goto error; } /* Rx = tmpx mod modulus */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = mpi_to_ltc_error(res); + err = mpi_to_ltc_error(err); done: mp_clear_multi(&s, &tmpx, &tmp, NULL); - return res; + return err; } /* size of sliding window, don't change this! */ @@ -367,18 +365,18 @@ done: static int ecc_mulmod(mp_int *k, ecc_point *G, ecc_point *R, mp_int *modulus) { ecc_point *tG, *M[8]; - int i, j, res; + int i, j, err; mp_int mu; mp_digit buf; int first, bitbuf, bitcpy, bitcnt, mode, digidx; /* init barrett reduction */ - if ((res = mp_init(&mu)) != MP_OKAY) { - return mpi_to_ltc_error(res); + if ((err = mp_init(&mu)) != MP_OKAY) { + return mpi_to_ltc_error(err); } - if ((res = mp_reduce_setup(&mu, modulus)) != MP_OKAY) { + if ((err = mp_reduce_setup(&mu, modulus)) != MP_OKAY) { mp_clear(&mu); - return mpi_to_ltc_error(res); + return mpi_to_ltc_error(err); } /* alloc ram for window temps */ @@ -395,23 +393,23 @@ static int ecc_mulmod(mp_int *k, ecc_point *G, ecc_point *R, mp_int *modulus) /* make a copy of G incase R==G */ tG = new_point(); - if (tG == NULL) { goto error; } + if (tG == NULL) { err = CRYPT_MEM; goto done; } + /* tG = G */ + if ((err = mp_copy(&G->x, &tG->x)) != MP_OKAY) { goto error; } + if ((err = mp_copy(&G->y, &tG->y)) != MP_OKAY) { goto error; } + /* calc the M tab, which holds kG for k==8..15 */ /* M[0] == 8G */ - if (dbl_point(G, M[0], modulus, &mu) != CRYPT_OK) { goto error; } - if (dbl_point(M[0], M[0], modulus, &mu) != CRYPT_OK) { goto error; } - if (dbl_point(M[0], M[0], modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = dbl_point(G, M[0], modulus, &mu)) != CRYPT_OK) { goto done; } + if ((err = dbl_point(M[0], M[0], modulus, &mu)) != CRYPT_OK) { goto done; } + if ((err = dbl_point(M[0], M[0], modulus, &mu)) != CRYPT_OK) { goto done; } /* now find (8+k)G for k=1..7 */ for (j = 9; j < 16; j++) { - if (add_point(M[j-9], G, M[j-8], modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = add_point(M[j-9], G, M[j-8], modulus, &mu)) != CRYPT_OK) { goto done; } } - /* tG = G */ - if (mp_copy(&G->x, &tG->x) != MP_OKAY) { goto error; } - if (mp_copy(&G->y, &tG->y) != MP_OKAY) { goto error; } - /* setup sliding window */ mode = 0; bitcnt = 1; @@ -442,7 +440,7 @@ static int ecc_mulmod(mp_int *k, ecc_point *G, ecc_point *R, mp_int *modulus) /* if the bit is zero and mode == 1 then we double */ if (mode == 1 && i == 0) { - if (dbl_point(R, R, modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = dbl_point(R, R, modulus, &mu)) != CRYPT_OK) { goto done; } continue; } @@ -454,19 +452,19 @@ static int ecc_mulmod(mp_int *k, ecc_point *G, ecc_point *R, mp_int *modulus) /* if this is the first window we do a simple copy */ if (first == 1) { /* R = kG [k = first window] */ - if (mp_copy(&M[bitbuf-8]->x, &R->x) != MP_OKAY) { goto error; } - if (mp_copy(&M[bitbuf-8]->y, &R->y) != MP_OKAY) { goto error; } + if ((err = mp_copy(&M[bitbuf-8]->x, &R->x)) != MP_OKAY) { goto error; } + if ((err = mp_copy(&M[bitbuf-8]->y, &R->y)) != MP_OKAY) { goto error; } first = 0; } else { /* normal window */ /* ok window is filled so double as required and add */ /* double first */ for (j = 0; j < WINSIZE; j++) { - if (dbl_point(R, R, modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = dbl_point(R, R, modulus, &mu)) != CRYPT_OK) { goto done; } } /* then add, bitbuf will be 8..15 [8..2^WINSIZE] guaranteed */ - if (add_point(R, M[bitbuf-8], R, modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = add_point(R, M[bitbuf-8], R, modulus, &mu)) != CRYPT_OK) { goto done; } } /* empty window and reset */ bitcpy = bitbuf = 0; @@ -480,34 +478,34 @@ static int ecc_mulmod(mp_int *k, ecc_point *G, ecc_point *R, mp_int *modulus) for (j = 0; j < bitcpy; j++) { /* only double if we have had at least one add first */ if (first == 0) { - if (dbl_point(R, R, modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = dbl_point(R, R, modulus, &mu)) != CRYPT_OK) { goto done; } } bitbuf <<= 1; if ((bitbuf & (1 << WINSIZE)) != 0) { if (first == 1){ /* first add, so copy */ - if (mp_copy(&tG->x, &R->x) != MP_OKAY) { goto error; } - if (mp_copy(&tG->y, &R->y) != MP_OKAY) { goto error; } + if ((err = mp_copy(&tG->x, &R->x)) != MP_OKAY) { goto error; } + if ((err = mp_copy(&tG->y, &R->y)) != MP_OKAY) { goto error; } first = 0; } else { /* then add */ - if (add_point(R, tG, R, modulus, &mu) != CRYPT_OK) { goto error; } + if ((err = add_point(R, tG, R, modulus, &mu)) != CRYPT_OK) { goto done; } } } } } - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: del_point(tG); for (i = 0; i < 8; i++) { del_point(M[i]); } mp_clear(&mu); - return res; + return err; } #undef WINSIZE @@ -516,22 +514,18 @@ int ecc_test(void) { mp_int modulus, order; ecc_point *G, *GG; - int i, res, primality; + int i, err, primality; - if (mp_init_multi(&modulus, &order, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&modulus, &order, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } G = new_point(); - if (G == NULL) { - mp_clear_multi(&modulus, &order, NULL); - return CRYPT_MEM; - } - GG = new_point(); - if (GG == NULL) { + if (G == NULL || GG == NULL) { mp_clear_multi(&modulus, &order, NULL); del_point(G); + del_point(GG); return CRYPT_MEM; } @@ -539,43 +533,43 @@ int ecc_test(void) #if 0 printf("Testing %d\n", sets[i].size); #endif - if (mp_read_radix(&modulus, (char *)sets[i].prime, 64) != MP_OKAY) { goto error; } - if (mp_read_radix(&order, (char *)sets[i].order, 64) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&modulus, (char *)sets[i].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&order, (char *)sets[i].order, 64)) != MP_OKAY) { goto error; } /* is prime actually prime? */ - if (is_prime(&modulus, &primality) != CRYPT_OK) { goto error; } + if ((err = is_prime(&modulus, &primality)) != CRYPT_OK) { goto done; } if (primality == 0) { - res = CRYPT_FAIL_TESTVECTOR; - goto done1; + err = CRYPT_FAIL_TESTVECTOR; + goto done; } /* is order prime ? */ - if (is_prime(&order, &primality) != CRYPT_OK) { goto error; } + if ((err = is_prime(&order, &primality)) != CRYPT_OK) { goto done; } if (primality == 0) { - res = CRYPT_FAIL_TESTVECTOR; - goto done1; + err = CRYPT_FAIL_TESTVECTOR; + goto done; } - if (mp_read_radix(&G->x, (char *)sets[i].Gx, 64) != MP_OKAY) { goto error; } - if (mp_read_radix(&G->y, (char *)sets[i].Gy, 64) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&G->x, (char *)sets[i].Gx, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&G->y, (char *)sets[i].Gy, 64)) != MP_OKAY) { goto error; } /* then we should have G == (order + 1)G */ - if (mp_add_d(&order, 1, &order) != MP_OKAY) { goto error; } - if (ecc_mulmod(&order, G, GG, &modulus) != CRYPT_OK) { goto error; } + if ((err = mp_add_d(&order, 1, &order)) != MP_OKAY) { goto error; } + if ((err = ecc_mulmod(&order, G, GG, &modulus)) != CRYPT_OK) { goto done; } if (mp_cmp(&G->x, &GG->x) != 0 || mp_cmp(&G->y, &GG->y) != 0) { - res = CRYPT_FAIL_TESTVECTOR; - goto done1; + err = CRYPT_FAIL_TESTVECTOR; + goto done; } } - res = CRYPT_OK; - goto done1; + err = CRYPT_OK; + goto done; error: - res = CRYPT_MEM; -done1: + err = mpi_to_ltc_error(err); +done: del_point(GG); del_point(G); mp_clear_multi(&order, &modulus, NULL); - return res; + return err; } void ecc_sizes(int *low, int *high) @@ -598,7 +592,7 @@ void ecc_sizes(int *low, int *high) int ecc_make_key(prng_state *prng, int wprng, int keysize, ecc_key *key) { - int x, res, err; + int x, err; ecc_point *base; mp_int prime; unsigned char buf[128]; @@ -625,8 +619,8 @@ int ecc_make_key(prng_state *prng, int wprng, int keysize, ecc_key *key) } /* setup the key variables */ - if (mp_init_multi(&key->pubkey.x, &key->pubkey.y, &key->k, &prime, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&key->pubkey.x, &key->pubkey.y, &key->k, &prime, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } base = new_point(); if (base == NULL) { @@ -635,32 +629,32 @@ int ecc_make_key(prng_state *prng, int wprng, int keysize, ecc_key *key) } /* read in the specs for this key */ - if (mp_read_radix(&prime, (char *)sets[key->idx].prime, 64) != MP_OKAY) { goto error; } - if (mp_read_radix(&base->x, (char *)sets[key->idx].Gx, 64) != MP_OKAY) { goto error; } - if (mp_read_radix(&base->y, (char *)sets[key->idx].Gy, 64) != MP_OKAY) { goto error; } - if (mp_read_unsigned_bin(&key->k, (unsigned char *)buf, keysize) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&prime, (char *)sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&base->x, (char *)sets[key->idx].Gx, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&base->y, (char *)sets[key->idx].Gy, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&key->k, (unsigned char *)buf, keysize)) != MP_OKAY) { goto error; } /* make the public key */ - if (ecc_mulmod(&key->k, base, &key->pubkey, &prime) != CRYPT_OK) { goto error; } + if ((err = ecc_mulmod(&key->k, base, &key->pubkey, &prime)) != CRYPT_OK) { goto done; } key->type = PK_PRIVATE; /* shrink key */ - if (mp_shrink(&key->k) != MP_OKAY) { goto error; } - if (mp_shrink(&key->pubkey.x) != MP_OKAY) { goto error; } - if (mp_shrink(&key->pubkey.y) != MP_OKAY) { goto error; } + if ((err = mp_shrink(&key->k)) != MP_OKAY) { goto error; } + if ((err = mp_shrink(&key->pubkey.x)) != MP_OKAY) { goto error; } + if ((err = mp_shrink(&key->pubkey.y)) != MP_OKAY) { goto error; } /* free up ram */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: del_point(base); mp_clear(&prime); #ifdef CLEAN_STACK zeromem(buf, sizeof(buf)); #endif - return res; + return err; } void ecc_free(ecc_key *key) @@ -672,29 +666,28 @@ void ecc_free(ecc_key *key) static int compress_y_point(ecc_point *pt, int idx, int *result) { mp_int tmp, tmp2, p; - int res; + int err; - _ARGCHK(pt != NULL); + _ARGCHK(pt != NULL); _ARGCHK(result != NULL); - if (mp_init_multi(&tmp, &tmp2, &p, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&tmp, &tmp2, &p, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } /* get x^3 - 3x + b */ - if (mp_read_radix(&p, (char *)sets[idx].B, 64) != MP_OKAY) { goto error; } /* p = B */ - if (mp_expt_d(&pt->x, 3, &tmp) != MP_OKAY) { goto error; } /* tmp = pX^3 */ - if (mp_mul_d(&pt->x, 3, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = 3*pX^3 */ - if (mp_sub(&tmp, &tmp2, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp - tmp2 */ - if (mp_add(&tmp, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp + p */ - if (mp_read_radix(&p, (char *)sets[idx].prime, 64) != MP_OKAY) { goto error; } /* p = prime */ - if (mp_mod(&tmp, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp mod p */ + if ((err = mp_read_radix(&p, (char *)sets[idx].B, 64)) != MP_OKAY) { goto error; } /* p = B */ + if ((err = mp_expt_d(&pt->x, 3, &tmp)) != MP_OKAY) { goto error; } /* tmp = pX^3 */ + if ((err = mp_mul_d(&pt->x, 3, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = 3*pX^3 */ + if ((err = mp_sub(&tmp, &tmp2, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp - tmp2 */ + if ((err = mp_add(&tmp, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp + p */ + if ((err = mp_read_radix(&p, (char *)sets[idx].prime, 64)) != MP_OKAY) { goto error; } /* p = prime */ + if ((err = mp_mod(&tmp, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp mod p */ /* now find square root */ - if (mp_add_d(&p, 1, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = p + 1 */ - if (mp_div_2(&tmp2, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = tmp2/2 */ - if (mp_div_2(&tmp2, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = (p+1)/4 */ - if (mp_exptmod(&tmp, &tmp2, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = (x^3 - 3x + b)^((p+1)/4) mod p */ + if ((err = mp_add_d(&p, 1, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = p + 1 */ + if ((err = mp_div_2d(&tmp2, 2, &tmp2, NULL)) != MP_OKAY) { goto error; } /* tmp2 = (p+1)/4 */ + if ((err = mp_exptmod(&tmp, &tmp2, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = (x^3 - 3x + b)^((p+1)/4) mod p */ /* if tmp equals the y point give a 0, otherwise 1 */ if (mp_cmp(&tmp, &pt->y) == 0) { @@ -703,66 +696,69 @@ static int compress_y_point(ecc_point *pt, int idx, int *result) *result = 1; } - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: mp_clear_multi(&p, &tmp, &tmp2, NULL); - return res; + return err; } static int expand_y_point(ecc_point *pt, int idx, int result) { mp_int tmp, tmp2, p; - int res; + int err; _ARGCHK(pt != NULL); - if (mp_init_multi(&tmp, &tmp2, &p, NULL) != MP_OKAY) { + if ((err = mp_init_multi(&tmp, &tmp2, &p, NULL)) != MP_OKAY) { return CRYPT_MEM; } /* get x^3 - 3x + b */ - if (mp_read_radix(&p, (char *)sets[idx].B, 64) != MP_OKAY) { goto error; } /* p = B */ - if (mp_expt_d(&pt->x, 3, &tmp) != MP_OKAY) { goto error; } /* tmp = pX^3 */ - if (mp_mul_d(&pt->x, 3, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = 3*pX^3 */ - if (mp_sub(&tmp, &tmp2, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp - tmp2 */ - if (mp_add(&tmp, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp + p */ - if (mp_read_radix(&p, (char *)sets[idx].prime, 64) != MP_OKAY) { goto error; } /* p = prime */ - if (mp_mod(&tmp, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = tmp mod p */ + if ((err = mp_read_radix(&p, (char *)sets[idx].B, 64)) != MP_OKAY) { goto error; } /* p = B */ + if ((err = mp_expt_d(&pt->x, 3, &tmp)) != MP_OKAY) { goto error; } /* tmp = pX^3 */ + if ((err = mp_mul_d(&pt->x, 3, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = 3*pX^3 */ + if ((err = mp_sub(&tmp, &tmp2, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp - tmp2 */ + if ((err = mp_add(&tmp, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp + p */ + if ((err = mp_read_radix(&p, (char *)sets[idx].prime, 64)) != MP_OKAY) { goto error; } /* p = prime */ + if ((err = mp_mod(&tmp, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = tmp mod p */ /* now find square root */ - if (mp_add_d(&p, 1, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = p + 1 */ - if (mp_div_2(&tmp2, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = tmp2/2 */ - if (mp_div_2(&tmp2, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = (p+1)/4 */ - if (mp_exptmod(&tmp, &tmp2, &p, &tmp) != MP_OKAY) { goto error; } /* tmp = (x^3 - 3x + b)^((p+1)/4) mod p */ + if ((err = mp_add_d(&p, 1, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = p + 1 */ + if ((err = mp_div_2d(&tmp2, 2, &tmp2, NULL)) != MP_OKAY) { goto error; } /* tmp2 = (p+1)/4 */ + if ((err = mp_exptmod(&tmp, &tmp2, &p, &tmp)) != MP_OKAY) { goto error; } /* tmp = (x^3 - 3x + b)^((p+1)/4) mod p */ /* if result==0, then y==tmp, otherwise y==p-tmp */ if (result == 0) { - if (mp_copy(&tmp, &pt->y) != MP_OKAY) { goto error; } + if ((err = mp_copy(&tmp, &pt->y) != MP_OKAY)) { goto error; } } else { - if (mp_sub(&p, &tmp, &pt->y) != MP_OKAY) { goto error; } + if ((err = mp_sub(&p, &tmp, &pt->y) != MP_OKAY)) { goto error; } } - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: mp_clear_multi(&p, &tmp, &tmp2, NULL); - return res; + return err; } int ecc_export(unsigned char *out, unsigned long *outlen, int type, ecc_key *key) { unsigned long y, z; - int res, err; - unsigned char buf2[512]; + int cp, err; - _ARGCHK(out != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); + + /* can we store the static header? */ + if (*outlen < (PACKET_SIZE + 3)) { + return CRYPT_BUFFER_OVERFLOW; + } /* type valid? */ if (key->type != PK_PRIVATE && type == PK_PRIVATE) { @@ -771,36 +767,26 @@ int ecc_export(unsigned char *out, unsigned long *outlen, int type, ecc_key *key /* output type and magic byte */ y = PACKET_SIZE; - buf2[y++] = (unsigned char)type; - buf2[y++] = (unsigned char)sets[key->idx].size; + out[y++] = (unsigned char)type; + out[y++] = (unsigned char)sets[key->idx].size; /* output x coordinate */ - OUTPUT_BIGNUM(&(key->pubkey.x), buf2, y, z); + OUTPUT_BIGNUM(&(key->pubkey.x), out, y, z); /* compress y and output it */ - if ((err = compress_y_point(&key->pubkey, key->idx, &res)) != CRYPT_OK) { + if ((err = compress_y_point(&key->pubkey, key->idx, &cp)) != CRYPT_OK) { return err; } - buf2[y++] = (unsigned char)res; + out[y++] = (unsigned char)cp; if (type == PK_PRIVATE) { - OUTPUT_BIGNUM(&key->k, buf2, y, z); - } - - /* check size */ - if (*outlen < y) { - return CRYPT_BUFFER_OVERFLOW; + OUTPUT_BIGNUM(&key->k, out, y, z); } /* store header */ - packet_store_header(buf2, PACKET_SECT_ECC, PACKET_SUB_KEY); - - memcpy(out, buf2, (size_t)y); + packet_store_header(out, PACKET_SECT_ECC, PACKET_SUB_KEY); *outlen = y; - #ifdef CLEAN_STACK - zeromem(buf2, sizeof(buf2)); - #endif return CRYPT_OK; } @@ -809,11 +795,11 @@ int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key) unsigned long x, y, s; int err; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(key != NULL); /* check length */ - if (2+PACKET_SIZE > inlen) { + if ((3+PACKET_SIZE) > inlen) { return CRYPT_INVALID_PACKET; } @@ -881,12 +867,12 @@ int ecc_shared_secret(ecc_key *private_key, ecc_key *public_key, unsigned long x, y; ecc_point *result; mp_int prime; - int res; + int err; _ARGCHK(private_key != NULL); - _ARGCHK(public_key != NULL); - _ARGCHK(out != NULL); - _ARGCHK(outlen != NULL); + _ARGCHK(public_key != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); /* type valid? */ if (private_key->type != PK_PRIVATE) { @@ -903,33 +889,33 @@ int ecc_shared_secret(ecc_key *private_key, ecc_key *public_key, return CRYPT_MEM; } - if (mp_init(&prime) != MP_OKAY) { + if ((err = mp_init(&prime)) != MP_OKAY) { del_point(result); - return CRYPT_MEM; + return mpi_to_ltc_error(err); } - if (mp_read_radix(&prime, (char *)sets[private_key->idx].prime, 64) != MP_OKAY) { goto error; } - if ((res = ecc_mulmod(&private_key->k, &public_key->pubkey, result, &prime)) != CRYPT_OK) { goto done1; } + if ((err = mp_read_radix(&prime, (char *)sets[private_key->idx].prime, 64)) != MP_OKAY) { goto error; } + if ((err = ecc_mulmod(&private_key->k, &public_key->pubkey, result, &prime)) != CRYPT_OK) { goto done1; } x = (unsigned long)mp_unsigned_bin_size(&result->x); y = (unsigned long)mp_unsigned_bin_size(&result->y); if (*outlen < (x+y)) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done1; } *outlen = x+y; - if (mp_to_unsigned_bin(&result->x, out) != MP_OKAY) { goto error; } - if (mp_to_unsigned_bin(&result->y, out+x) != MP_OKAY) { goto error; } + if ((err = mp_to_unsigned_bin(&result->x, out)) != MP_OKAY) { goto error; } + if ((err = mp_to_unsigned_bin(&result->y, out+x)) != MP_OKAY) { goto error; } - res = CRYPT_OK; + err = CRYPT_OK; goto done1; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done1: mp_clear(&prime); del_point(result); - return res; + return err; } int ecc_get_size(ecc_key *key) diff --git a/ecc_sys.c b/ecc_sys.c index 5452d65..34cd8d7 100644 --- a/ecc_sys.c +++ b/ecc_sys.c @@ -19,9 +19,9 @@ int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, int err; _ARGCHK(inkey != NULL); - _ARGCHK(out != NULL); - _ARGCHK(len != NULL); - _ARGCHK(key != NULL); + _ARGCHK(out != NULL); + _ARGCHK(len != NULL); + _ARGCHK(key != NULL); /* check that wprng/cipher/hash are not invalid */ if ((err = prng_is_valid(wprng)) != CRYPT_OK) { @@ -65,6 +65,9 @@ int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, if ((err = hash_memory(hash, ecc_shared, x, skey, &z)) != CRYPT_OK) { return err; } + + /* store header */ + packet_store_header(out, PACKET_SECT_ECC, PACKET_SUB_ENC_KEY); /* output header */ y = PACKET_SIZE; @@ -87,9 +90,7 @@ int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, for (x = 0; x < keylen; x++, y++) { out[y] = skey[x] ^ inkey[x]; } - - /* store header */ - packet_store_header(out, PACKET_SECT_ECC, PACKET_SUB_ENC_KEY); + *len = y; #ifdef CLEAN_STACK /* clean up */ @@ -97,7 +98,6 @@ int ecc_encrypt_key(const unsigned char *inkey, unsigned long keylen, zeromem(ecc_shared, sizeof(ecc_shared)); zeromem(skey, sizeof(skey)); #endif - *len = y; return CRYPT_OK; } @@ -107,13 +107,13 @@ int ecc_decrypt_key(const unsigned char *in, unsigned long inlen, { unsigned char shared_secret[256], skey[MAXBLOCKSIZE]; unsigned long x, y, z, hashsize, keysize; - int hash, res, err; + int hash, err; ecc_key pubkey; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(outkey != NULL); _ARGCHK(keylen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* right key type? */ if (key->type != PK_PRIVATE) { @@ -177,7 +177,7 @@ int ecc_decrypt_key(const unsigned char *in, unsigned long inlen, y += 4; if (*keylen < keysize) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done; } @@ -188,13 +188,13 @@ int ecc_decrypt_key(const unsigned char *in, unsigned long inlen, *keylen = keysize; - res = CRYPT_OK; + err = CRYPT_OK; done: #ifdef CLEAN_STACK zeromem(shared_secret, sizeof(shared_secret)); zeromem(skey, sizeof(skey)); #endif - return res; + return err; } int ecc_sign_hash(const unsigned char *in, unsigned long inlen, @@ -205,12 +205,12 @@ int ecc_sign_hash(const unsigned char *in, unsigned long inlen, mp_int b, p; unsigned char epubkey[256], er[256]; unsigned long x, y, pubkeysize, rsize; - int res, err; + int err; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* is this a private key? */ if (key->type != PK_PRIVATE) { @@ -239,29 +239,30 @@ int ecc_sign_hash(const unsigned char *in, unsigned long inlen, /* get the hash and load it as a bignum into 'b' */ /* init the bignums */ - if (mp_init_multi(&b, &p, NULL) != MP_OKAY) { + if ((err = mp_init_multi(&b, &p, NULL)) != MP_OKAY) { ecc_free(&pubkey); - return CRYPT_MEM; + return mpi_to_ltc_error(err); } - if (mp_read_radix(&p, (char *)sets[key->idx].order, 64) != MP_OKAY) { goto error; } - if (mp_read_unsigned_bin(&b, (unsigned char *)in, (int)inlen) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p, (char *)sets[key->idx].order, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&b, (unsigned char *)in, (int)inlen)) != 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 */ + if ((err = mp_invmod(&pubkey.k, &p, &pubkey.k)) != MP_OKAY) { goto error; } /* k = 1/k */ + if ((err = mp_submod(&b, &key->k, &p, &b)) != MP_OKAY) { goto error; } /* b = m - x */ + if ((err = mp_mulmod(&b, &pubkey.k, &p, &b)) != MP_OKAY) { goto error; } /* b = (m - x)/k */ /* export it */ rsize = (unsigned long)mp_unsigned_bin_size(&b); if (rsize > (unsigned long)sizeof(er)) { + err = CRYPT_BUFFER_OVERFLOW; goto error; } - (void)mp_to_unsigned_bin(&b, er); + if ((err = mp_to_unsigned_bin(&b, er)) != MP_OKAY) { goto error; } /* now lets check the outlen before we write */ if (*outlen < (12 + rsize + pubkeysize)) { - res = CRYPT_BUFFER_OVERFLOW; - goto done1; + err = CRYPT_BUFFER_OVERFLOW; + goto done; } /* lets output */ @@ -290,18 +291,18 @@ int ecc_sign_hash(const unsigned char *in, unsigned long inlen, /* clear memory */ *outlen = y; - res = CRYPT_OK; - goto done1; + err = CRYPT_OK; + goto done; error: - res = CRYPT_MEM; -done1: + err = mpi_to_ltc_error(err); +done: mp_clear_multi(&b, &p, NULL); ecc_free(&pubkey); #ifdef CLEAN_STACK zeromem(er, sizeof(er)); zeromem(epubkey, sizeof(epubkey)); #endif - return res; + return err; } /* verify that mG = (bA + Y) @@ -325,12 +326,12 @@ int ecc_verify_hash(const unsigned char *sig, unsigned long siglen, ecc_key pubkey; mp_int b, p, m, mu; unsigned long x, y; - int res, err; + int err; - _ARGCHK(sig != NULL); + _ARGCHK(sig != NULL); _ARGCHK(hash != NULL); _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* default to invalid signature */ *stat = 0; @@ -374,9 +375,9 @@ int ecc_verify_hash(const unsigned char *sig, unsigned long siglen, y += 4; /* init values */ - if (mp_init_multi(&b, &m, &p, &mu, NULL) != MP_OKAY) { + if ((err = mp_init_multi(&b, &m, &p, &mu, NULL)) != MP_OKAY) { ecc_free(&pubkey); - return CRYPT_MEM; + return mpi_to_ltc_error(err); } mG = new_point(); @@ -387,33 +388,30 @@ int ecc_verify_hash(const unsigned char *sig, unsigned long siglen, } /* load b */ - if (mp_read_unsigned_bin(&b, (unsigned char *)sig+y, (int)x) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&b, (unsigned char *)sig+y, (int)x)) != MP_OKAY) { goto error; } y += x; /* get m in binary a bignum */ - if (mp_read_unsigned_bin(&m, (unsigned char *)hash, (int)inlen) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&m, (unsigned char *)hash, (int)inlen)) != MP_OKAY) { goto error; } /* load prime */ - if (mp_read_radix(&p, (char *)sets[key->idx].prime, 64) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&p, (char *)sets[key->idx].prime, 64)) != MP_OKAY) { goto error; } /* calculate barrett stuff */ mp_set(&mu, 1); mp_lshd(&mu, 2 * USED(&p)); - if (mp_div(&mu, &p, &mu, NULL) != MP_OKAY) { - res = CRYPT_MEM; - goto done; - } + if ((err = mp_div(&mu, &p, &mu, NULL)) != MP_OKAY) { goto error; } /* get bA */ - if (ecc_mulmod(&b, &pubkey.pubkey, &pubkey.pubkey, &p) != CRYPT_OK) { goto error; } + if ((err = ecc_mulmod(&b, &pubkey.pubkey, &pubkey.pubkey, &p)) != CRYPT_OK) { goto done; } /* get bA + Y */ - if (add_point(&pubkey.pubkey, &key->pubkey, &pubkey.pubkey, &p, &mu) != CRYPT_OK) { goto error; } + if ((err = add_point(&pubkey.pubkey, &key->pubkey, &pubkey.pubkey, &p, &mu)) != CRYPT_OK) { goto done; } /* get mG */ - if (mp_read_radix(&mG->x, (char *)sets[key->idx].Gx, 64) != MP_OKAY) { goto error; } - if (mp_read_radix(&mG->y, (char *)sets[key->idx].Gy, 64) != MP_OKAY) { goto error; } - if (ecc_mulmod(&m, mG, mG, &p) != CRYPT_OK) { goto error; } + if ((err = mp_read_radix(&mG->x, (char *)sets[key->idx].Gx, 64)) != MP_OKAY) { goto error; } + if ((err = mp_read_radix(&mG->y, (char *)sets[key->idx].Gy, 64)) != MP_OKAY) { goto error; } + if ((err = ecc_mulmod(&m, mG, mG, &p)) != CRYPT_OK) { goto done; } /* compare mG to bA + Y */ if (mp_cmp(&mG->x, &pubkey.pubkey.x) == MP_EQ && mp_cmp(&mG->y, &pubkey.pubkey.y) == MP_EQ) { @@ -421,14 +419,14 @@ int ecc_verify_hash(const unsigned char *sig, unsigned long siglen, } /* clear up and return */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_ERROR; + err = mpi_to_ltc_error(err); done: del_point(mG); ecc_free(&pubkey); mp_clear_multi(&p, &m, &b, &mu, NULL); - return res; + return err; } diff --git a/hash.c b/hash.c index 9d0b681..5f21f58 100644 --- a/hash.c +++ b/hash.c @@ -15,8 +15,8 @@ int hash_memory(int hash, const unsigned char *data, unsigned long len, unsigned hash_state md; int err; - _ARGCHK(data != NULL); - _ARGCHK(dst != NULL); + _ARGCHK(data != NULL); + _ARGCHK(dst != NULL); _ARGCHK(outlen != NULL); if ((err = hash_is_valid(hash)) != CRYPT_OK) { @@ -44,9 +44,9 @@ int hash_filehandle(int hash, FILE *in, unsigned char *dst, unsigned long *outle size_t x; int err; - _ARGCHK(dst != NULL); + _ARGCHK(dst != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); if ((err = hash_is_valid(hash)) != CRYPT_OK) { return err; @@ -78,8 +78,8 @@ int hash_file(int hash, const char *fname, unsigned char *dst, unsigned long *ou #else FILE *in; int err; - _ARGCHK(fname != NULL); - _ARGCHK(dst != NULL); + _ARGCHK(fname != NULL); + _ARGCHK(dst != NULL); _ARGCHK(outlen != NULL); if ((err = hash_is_valid(hash)) != CRYPT_OK) { diff --git a/hmac.c b/hmac.c index 7003ab0..7685448 100644 --- a/hmac.c +++ b/hmac.c @@ -150,9 +150,10 @@ int hmac_memory(int hash, const unsigned char *key, unsigned long keylen, hmac_state hmac; int err; - _ARGCHK(key != NULL); - _ARGCHK(data != NULL); - _ARGCHK(dst != NULL); + _ARGCHK(key != NULL); + _ARGCHK(data != NULL); + _ARGCHK(dst != NULL); + _ARGCHK(dstlen != NULL); if((err = hash_is_valid(hash)) != CRYPT_OK) { return err; @@ -173,9 +174,9 @@ int hmac_memory(int hash, const unsigned char *key, unsigned long keylen, } /* hmac_file added by Tom St Denis */ -int hmac_file(int hash, const char *fname, const unsigned char *key, - unsigned long keylen, - unsigned char *dst, unsigned long *dstlen) +int hmac_file(int hash, const char *fname, + const unsigned char *key, unsigned long keylen, + unsigned char *dst, unsigned long *dstlen) { #ifdef NO_FILE return CRYPT_NOP; @@ -186,9 +187,10 @@ int hmac_file(int hash, const char *fname, const unsigned char *key, size_t x; int err; - _ARGCHK(fname != NULL); - _ARGCHK(key != NULL); - _ARGCHK(dst != NULL); + _ARGCHK(fname != NULL); + _ARGCHK(key != NULL); + _ARGCHK(dst != NULL); + _ARGCHK(dstlen != NULL); if((err = hash_is_valid(hash)) != CRYPT_OK) { return err; diff --git a/makefile b/makefile index 3ddeec6..ecaa741 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.93 +VERSION=0.94 #ch1-01-1 # Compiler and Linker Names @@ -65,8 +65,9 @@ MPIOBJECT=mpi.o 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 des.o \ -safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ -prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o $(MPIOBJECT) +safer_tab.o safer.o saferp.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ +prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o \ +eax.o ocb.o pmac.o whirl.o $(MPIOBJECT) TESTOBJECTS=demos/test.o HASHOBJECTS=demos/hashsum.o @@ -152,7 +153,9 @@ docs: crypt.tex rm -f crypt.pdf $(LEFTOVERS) latex crypt > /dev/null makeindex crypt > /dev/null - pdflatex crypt > /dev/null + latex crypt > /dev/null + latex crypt > /dev/null + dvipdf crypt rm -f $(LEFTOVERS) #beta diff --git a/makefile.cygwin_dll b/makefile.cygwin_dll index 01b50e6..1231e9d 100644 --- a/makefile.cygwin_dll +++ b/makefile.cygwin_dll @@ -21,8 +21,9 @@ MPIOBJECT=mpi.o 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 des.o \ -safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ -prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o $(MPIOBJECT) +safer_tab.o safer.o saferp.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o \ +prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o \ +ocb.o pmac.o whirl.o $(MPIOBJECT) ltc_dll: $(OBJECTS) $(MPIOBJECT) gcc -mno-cygwin -mdll -o libtomcrypt.dll -Wl,--out-implib=libtomcrypt.dll.a -Wl,--export-all-symbols *.o -ladvapi32 diff --git a/makefile.msvc b/makefile.msvc index 5233b2d..a587495 100644 --- a/makefile.msvc +++ b/makefile.msvc @@ -9,9 +9,9 @@ default: library OBJECTS=keyring.obj gf.obj mem.obj sprng.obj ecc.obj base64.obj dh.obj rsa.obj \ bits.obj yarrow.obj cfb.obj ofb.obj ecb.obj ctr.obj cbc.obj hash.obj tiger.obj sha1.obj \ md5.obj md4.obj md2.obj sha256.obj sha512.obj xtea.obj aes.obj des.obj \ -safer_tab.obj safer.obj safer+.obj rc4.obj rc2.obj rc6.obj rc5.obj cast5.obj noekeon.obj \ +safer_tab.obj safer.obj saferp.obj rc4.obj rc2.obj rc6.obj rc5.obj cast5.obj noekeon.obj \ blowfish.obj crypt.obj mpi.obj prime.obj twofish.obj packet.obj hmac.obj strings.obj rmd128.obj rmd160.obj \ -skipjack.obj omac.obj dsa.obj eax.obj ocb.obj +skipjack.obj omac.obj dsa.obj eax.obj ocb.obj pmac.obj whirl.obj library: $(OBJECTS) lib /out:tomcrypt.lib $(OBJECTS) diff --git a/makefile.out b/makefile.out index 7eaca41..235ba18 100644 --- a/makefile.out +++ b/makefile.out @@ -9,7 +9,7 @@ CFLAGS += -Os -Wall -Wsign-compare -W -Wno-unused -Werror -I./ default: library -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 des.o safer_tab.o safer.o safer+.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o mpi.o prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o +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 des.o safer_tab.o safer.o saferp.o rc4.o rc2.o rc6.o rc5.o cast5.o noekeon.o blowfish.o crypt.o mpi.o prime.o twofish.o packet.o hmac.o strings.o rmd128.o rmd160.o skipjack.o omac.o dsa.o eax.o ocb.o pmac.o whirl.o rsa.o: rsa_sys.c dh.o: dh_sys.c diff --git a/mycrypt.h b/mycrypt.h index 59b380a..ca93b84 100644 --- a/mycrypt.h +++ b/mycrypt.h @@ -16,8 +16,8 @@ extern "C" { #endif /* version */ -#define CRYPT 0x0093 -#define SCRYPT "0.93" +#define CRYPT 0x0094 +#define SCRYPT "0.94" /* max size of either a cipher/hash block or symmetric key [largest of the two] */ #define MAXBLOCKSIZE 128 diff --git a/mycrypt_custom.h b/mycrypt_custom.h index 91e4a68..c0eb590 100644 --- a/mycrypt_custom.h +++ b/mycrypt_custom.h @@ -22,7 +22,6 @@ #define RC5 #define RC6 #define SAFERP -#define SAFER #define RIJNDAEL #define XTEA #define TWOFISH @@ -36,6 +35,7 @@ #define ECB #define CBC #define CTR +#define WHIRLPOOL #define SHA512 #define SHA384 #define SHA256 @@ -49,6 +49,7 @@ #define RIPEMD160 #define HMAC #define OMAC +#define PMAC #define EAX_MODE #define OCB_MODE #define BASE64 diff --git a/mycrypt_hash.h b/mycrypt_hash.h index 435567a..3174595 100644 --- a/mycrypt_hash.h +++ b/mycrypt_hash.h @@ -70,7 +70,18 @@ struct rmd160_state { }; #endif +#ifdef WHIRLPOOL +struct whirlpool_state { + ulong64 length, state[8]; + unsigned char buf[64]; + ulong32 curlen; +}; +#endif + typedef union Hash_state { +#ifdef WHIRLPOOL + struct whirlpool_state whirlpool; +#endif #ifdef SHA512 struct sha512_state sha512; #endif @@ -111,6 +122,15 @@ extern struct _hash_descriptor { int (*test)(void); } hash_descriptor[]; + +#ifdef WHIRLPOOL +extern void whirlpool_init(hash_state * md); +extern int whirlpool_process(hash_state * md, const unsigned char *buf, unsigned long len); +extern int whirlpool_done(hash_state * md, unsigned char *hash); +extern int whirlpool_test(void); +extern const struct _hash_descriptor whirlpool_desc; +#endif + #ifdef SHA512 extern void sha512_init(hash_state * md); extern int sha512_process(hash_state * md, const unsigned char *buf, unsigned long len); @@ -290,7 +310,38 @@ extern int omac_memory(int cipher, const unsigned char *key, unsigned long keyle extern int omac_file(int cipher, const unsigned char *key, unsigned long keylen, const char *filename, unsigned char *out, unsigned long *outlen); extern int omac_test(void); -#endif +#endif /* OMAC */ + +#ifdef PMAC + +typedef struct { + unsigned char Ls[32][MAXBLOCKSIZE], /* L shifted by i bits to the left */ + Li[MAXBLOCKSIZE], /* value of Li [current value, we calc from previous recall] */ + Lr[MAXBLOCKSIZE], /* L * x^-1 */ + block[MAXBLOCKSIZE], /* currently accumulated block */ + checksum[MAXBLOCKSIZE]; /* current checksum */ + + symmetric_key key; /* scheduled key for cipher */ + unsigned long block_index; /* index # for current block */ + int cipher_idx, /* cipher idx */ + block_len, /* length of block */ + buflen; /* number of bytes in the buffer */ +} pmac_state; + +extern int pmac_init(pmac_state *pmac, int cipher, const unsigned char *key, unsigned long keylen); +extern int pmac_process(pmac_state *state, const unsigned char *buf, unsigned long len); +extern int pmac_done(pmac_state *state, unsigned char *out, unsigned long *outlen); + +extern int pmac_memory(int cipher, const unsigned char *key, unsigned long keylen, + const unsigned char *msg, unsigned long msglen, + unsigned char *out, unsigned long *outlen); + +extern int pmac_file(int cipher, const unsigned char *key, unsigned long keylen, + const char *filename, unsigned char *out, unsigned long *outlen); + +extern int pmac_test(void); + +#endif /* PMAC */ #ifdef EAX_MODE @@ -345,8 +396,7 @@ typedef struct { symmetric_key key; /* scheduled key for cipher */ unsigned long block_index; /* index # for current block */ int cipher, /* cipher idx */ - block_len, /* length of block */ - poly; /* which set of polys to use */ + block_len; /* length of block */ } ocb_state; extern int ocb_init(ocb_state *ocb, int cipher, @@ -383,3 +433,5 @@ extern int ocb_decrypt_verify_memory(int cipher, extern int ocb_test(void); #endif /* OCB_MODE */ + + diff --git a/mycrypt_macros.h b/mycrypt_macros.h index 0d5f636..bfbddad 100644 --- a/mycrypt_macros.h +++ b/mycrypt_macros.h @@ -198,18 +198,18 @@ typedef unsigned long ulong32; static inline unsigned long ROL(unsigned long word, int i) { - __asm__("roll %%cl,%0" - :"=r" (word) - :"0" (word),"c" (i)); - return word; + __asm__("roll %%cl,%0" + :"=r" (word) + :"0" (word),"c" (i)); + return word; } static inline unsigned long ROR(unsigned long word, int i) { - __asm__("rorl %%cl,%0" - :"=r" (word) - :"0" (word),"c" (i)); - return word; + __asm__("rorl %%cl,%0" + :"=r" (word) + :"0" (word),"c" (i)); + return word; } #else diff --git a/mycrypt_pk.h b/mycrypt_pk.h index aaec8d1..5a1c3dd 100644 --- a/mycrypt_pk.h +++ b/mycrypt_pk.h @@ -3,43 +3,43 @@ #include "tommath.h" - /* in/out macros */ - -#define OUTPUT_BIGNUM(num, buf2, y, z) \ -{ \ - z = (unsigned long)mp_unsigned_bin_size(num); \ - STORE32L(z, buf2+y); \ - y += 4; \ - if ((err = mp_to_unsigned_bin(num, buf2+y)) != MP_OKAY) { return mpi_to_ltc_error(err); } \ - y += z; \ +#define OUTPUT_BIGNUM(num, out, y, z) \ +{ \ + if ((y + 4) > *outlen) { return CRYPT_BUFFER_OVERFLOW; } \ + z = (unsigned long)mp_unsigned_bin_size(num); \ + STORE32L(z, out+y); \ + y += 4; \ + if ((y + z) > *outlen) { return CRYPT_BUFFER_OVERFLOW; } \ + if ((err = mp_to_unsigned_bin(num, out+y)) != MP_OKAY) { return mpi_to_ltc_error(err); } \ + y += z; \ } #define INPUT_BIGNUM(num, in, x, y) \ { \ /* load value */ \ - if (y + 4 > inlen) { \ - err = CRYPT_INVALID_PACKET; \ + if ((y + 4) > inlen) { \ + err = CRYPT_INVALID_PACKET; \ goto error; \ } \ LOAD32L(x, in+y); \ y += 4; \ \ /* sanity check... */ \ - if (x+y > inlen) { \ - err = CRYPT_INVALID_PACKET; \ + if ((x+y) > inlen) { \ + err = CRYPT_INVALID_PACKET; \ goto error; \ } \ \ /* load it */ \ if ((err = mp_read_unsigned_bin(num, (unsigned char *)in+y, (int)x)) != MP_OKAY) {\ - err = mpi_to_ltc_error(err); \ + err = mpi_to_ltc_error(err); \ goto error; \ } \ y += x; \ - if ((err = mp_shrink(num)) != MP_OKAY) { \ - err = mpi_to_ltc_error(err); \ + if ((err = mp_shrink(num)) != MP_OKAY) { \ + err = mpi_to_ltc_error(err); \ goto error; \ } \ } diff --git a/notes/base64_tv.txt b/notes/base64_tv.txt new file mode 100644 index 0000000..01c8a4e --- /dev/null +++ b/notes/base64_tv.txt @@ -0,0 +1,35 @@ +Base64 vectors. These are the base64 encodings of the strings 00,01,02...NN-1 + + 0: + 1: AA== + 2: AAE= + 3: AAEC + 4: AAECAw== + 5: AAECAwQ= + 6: AAECAwQF + 7: AAECAwQFBg== + 8: AAECAwQFBgc= + 9: AAECAwQFBgcI +10: AAECAwQFBgcICQ== +11: AAECAwQFBgcICQo= +12: AAECAwQFBgcICQoL +13: AAECAwQFBgcICQoLDA== +14: AAECAwQFBgcICQoLDA0= +15: AAECAwQFBgcICQoLDA0O +16: AAECAwQFBgcICQoLDA0ODw== +17: AAECAwQFBgcICQoLDA0ODxA= +18: AAECAwQFBgcICQoLDA0ODxAR +19: AAECAwQFBgcICQoLDA0ODxAREg== +20: AAECAwQFBgcICQoLDA0ODxAREhM= +21: AAECAwQFBgcICQoLDA0ODxAREhMU +22: AAECAwQFBgcICQoLDA0ODxAREhMUFQ== +23: AAECAwQFBgcICQoLDA0ODxAREhMUFRY= +24: AAECAwQFBgcICQoLDA0ODxAREhMUFRYX +25: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGA== +26: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBk= +27: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBka +28: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGw== +29: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxw= +30: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd +31: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHg== +32: AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8= diff --git a/notes/cipher_tv.txt b/notes/cipher_tv.txt index 6dafa6c..f144fae 100644 --- a/notes/cipher_tv.txt +++ b/notes/cipher_tv.txt @@ -1005,222 +1005,6 @@ Key Size: 32 bytes 49: F8B974A4BC134F39BE9B27BD8B2F1129 -Cipher: safer-k64 -Key Size: 8 bytes - 0: 533F0CD7CCC6DDF6 - 1: C3CD66BB1E5E5C17 - 2: 079DFD68F6AF9A79 - 3: 84EB4922264A1204 - 4: 31F3A7D739C7E42C - 5: 381F88FB46E1DCA2 - 6: CAF4AC443E50EF47 - 7: 2914E255DA9BDDBB - 8: A160A24120E4FECC - 9: F748C6009FFBC465 -10: 8B3CB5784846D2B0 -11: 4F98C1621473399B -12: B486B0BC365ABEE9 -13: 314EAB2B4E9F7840 -14: 613FE3637968A8FE -15: 28935352361E1239 -16: 0DCB090233B8EB3C -17: CF0BC7F307586C8B -18: 64DF354F96CB0781 -19: D2B73C6BAACA7FB1 -20: 638FCEEF49A29743 -21: 204C4E0E0C0A8B63 -22: F041EF6BE046D8AA -23: 76954D822F5E2C32 -24: 6700C60971A73C9E -25: 80019293AA929DF2 -26: 8EF4DE13F054ED98 -27: 41DDF9845ABA2B7A -28: B91834079643850C -29: 8F44EC823D5D70DC -30: EC2FF8DE726C84CE -31: 25DF59DC2EA22CB5 -32: FC1130B511794ABB -33: ED3259359D2E68D4 -34: D7773C04804033F6 -35: C1A32C114589251C -36: 51647E61EE32542E -37: B95A8037457C8425 -38: 4F84B3D483F239EE -39: 458401C3787BCA5E -40: F59B5A93FD066F8A -41: 1450E10189CC4000 -42: 0F758B71804B3AB3 -43: 51B744B271554626 -44: B55ADA1ED1B29F0D -45: 585DF794461FEBDA -46: 3790CC4DCA437505 -47: 7F7D46616FF05DFA -48: 6AE981921DFCFB13 -49: FE89299D55465BC6 - - -Cipher: safer-sk64 -Key Size: 8 bytes - 0: 14A391FCE1DECD95 - 1: 16A5418C990D77F4 - 2: EE33161465F7E2DD - 3: AB85A34464D58EC4 - 4: 3D247C84C1B98737 - 5: D88D275545132F17 - 6: 00B45A81780E3441 - 7: 6830FAE6C4A6D0D3 - 8: 93DF6918E1975723 - 9: 15AB9036D02AA290 -10: 0933666F0BA4486E -11: 93F42DEE726D949C -12: 756E7BA3A6D4DE2E -13: 4922DCE8EED38CFD -14: 8EC07AFBD42DF21C -15: E82BEBCFB1D7C6B4 -16: B3EDB4CB62B8A9BA -17: 5521307CA52DD2F3 -18: 54B5D75512E1F8F3 -19: 1A736293F2D460A8 -20: 778C71384545F710 -21: CBC041D3BF742253 -22: 9C47FC0FDA1FE8D9 -23: B84E290D4BF6EE66 -24: FC3E514CE66BB9E3 -25: E8742C92E3640AA8 -26: 4DA275A571BDE1F0 -27: C5698E3F6AC5ED9D -28: AC3E758DBC7425EA -29: B1D316FC0C5A59FD -30: 2861C78CA59069B9 -31: E742B9B6525201CF -32: 2072746EDF9B32A6 -33: 41EF55A26D66FEBC -34: EC57905E4EED5AC9 -35: 5854E6D1C2FB2B88 -36: 492D7E4A699EA6D6 -37: D3E6B9298813982C -38: 65071A860261288B -39: 401EEF4839AC3C2E -40: 1025CA9BD9109F1D -41: 0C28B570A1AE84EA -42: BFBE239720E4B3C5 -43: 09FB0339ACCEC228 -44: DFF2E0E2631B556D -45: ECE375020575B084 -46: 1C4C14890D44EB42 -47: EA9062A14D4E1F7F -48: 82773D9EEFCAB1AB -49: 516C78FF770B6A2F - - -Cipher: safer-k128 -Key Size: 16 bytes - 0: 4D791DB28D724E55 - 1: 53788205114E1200 - 2: 4472BCCAF3DDEF59 - 3: FE9B3640ED11589C - 4: 4DDD7859819857D7 - 5: 6BF901C4B46CC9DB - 6: 930DBFC0DE0F5007 - 7: E89F702158A00D82 - 8: BEB661953BF46D50 - 9: 6F0DA64C0FD101F9 -10: 4EBBCE4E5A37BED8 -11: 996EAA0AF92A09AC -12: AED6BB9522E0B00F -13: DF9C643624A271B4 -14: 2E5C789DD44EF0CF -15: 86A5BA1060177330 -16: 2385DBA4DEBEB4A3 -17: 82E2FC765722094D -18: B3CA2161757695EF -19: F8A4C6081F3ABC06 -20: 6422316E1BEFFAC8 -21: C178511BFBFF380E -22: 049B8CBEDE5942A9 -23: 0E181292C1B1DEFC -24: C347BA0632A49E55 -25: 32FDA46669714F99 -26: 0523743E30C16788 -27: 782BE96A93769ED0 -28: 9F99C9E8BD4A69D8 -29: 104C094F120C926D -30: 1F7EA3C4654D59E6 -31: 90C263629BC81D53 -32: 1803469BE59FED9E -33: 1478C7C176B86336 -34: 362FE111601411FF -35: 6428417432ECC3C8 -36: D74C42FCC6946FC5 -37: 1A8F3A82C78C2BE6 -38: EE22C641DC096375 -39: 59D34A0187C5C021 -40: F68CC96F09686A30 -41: CF8C608BDCC4A7FC -42: D2896AB16C284A85 -43: 8375C5B139D93189 -44: 0F0462F9D8EBAED0 -45: C3359B7CF78B3963 -46: E4F7233D6F05DCC9 -47: 8533D1062397119B -48: 4B300915F320DFCE -49: A050956A4F705DB9 - - -Cipher: safer-sk128 -Key Size: 16 bytes - 0: 511E4D5D8D70B37E - 1: 3C688F629490B796 - 2: 41CB15571FE700C6 - 3: F1CBFE79F0AD23C8 - 4: 0A0DC4AA14C2E8AA - 5: 05740CF7CD1CA039 - 6: 24E886AD6E0C0A67 - 7: EEF14D7B967066BC - 8: 6ABDF6D8AF85EAA0 - 9: 0EB947521357ED27 -10: BDD2C15957F9EC95 -11: 0989B87A74A2D454 -12: 04C793BA2FAB7462 -13: 3DAD2FACDDFA3C45 -14: D1194935CC4E1BD7 -15: BAC0A2C8248FF782 -16: 7DD5894A82298C64 -17: A59F552A4377C08B -18: 8DDDE41AB4586151 -19: 7CC4261B38FFA833 -20: E99204D6584158EC -21: AACC8ED0803CB5C4 -22: C105CA72A7688E79 -23: 3D662FDC35B88C09 -24: A4BCEDC0AE99E30E -25: EAECF9B6024D353C -26: 214651A3D34AFF40 -27: 807099325F9D73C2 -28: 45EC21AEB6B90A24 -29: DCED39526687F219 -30: 2CC248E301D3101D -31: C7F37AB8570BA13C -32: BB9B31A34A39641B -33: 5314570844948CAC -34: 4581F837C02CD4F4 -35: 4E036B1B62303BF3 -36: 7B3B88DE1F5492A4 -37: CEF2865C14875035 -38: 14DE8BEE09A155DE -39: 3AA284C74867161B -40: 3616B4607369D597 -41: 07512F57E75EDEF7 -42: 710D1641FCE64DC2 -43: DB2A089E87C867A2 -44: A192D7B392AA2E2F -45: 8D797A62FBFE6C81 -46: E52CE898E19BF110 -47: 72695C25158CB870 -48: 29F945B733FB498F -49: 27057037E976F3FB - - Cipher: rc2 Key Size: 8 bytes 0: 83B189DE87161805 diff --git a/notes/eax_tv.txt b/notes/eax_tv.txt index 07b07d2..bf4a52a 100644 --- a/notes/eax_tv.txt +++ b/notes/eax_tv.txt @@ -199,82 +199,6 @@ EAX-twofish (16 byte key) 31: 2DC26D449379997D110309B2A0DC2760FCE8CADB4B14ED580F86C70F69C9BA, EFCB60EB2B25737E256BC76700B198EF 32: 2B1890EB9FC0B8293E45D42D2126F4072754AA54E220C853C5F20FBA86BE0795, 1A1B15BBC287372FB9AF035FB124B6A1 -EAX-safer-k64 (8 byte key) - 0: , 9065118C8F6F7842 - 1: A1, 1926B3F5112C33BA - 2: 2E9A, 5FA6078A0AA7B7C8 - 3: 56FCE2, 984E385F9441FEC8 - 4: C33ACE8A, 24AC1CBBCCD0D00A - 5: 24307E196B, DD2D52EFCA571B68 - 6: 31471EAA5155, EB41C2B36FAAA774 - 7: 03D397F6CFFF62, 7DFBC8485C8B169B - 8: 8FA39E282C21B5B2, 2C7EC769966B36D7 - 9: FEA5402D9A8BE34946, A058E165B5FFB556 - 10: 6CDEF76554CA845193F0, FED516001FFE039A - 11: DC50D19E98463543D94820, 8F9CCF32394498A1 - 12: 42D8DC34F1974FB4EB2535D7, 77F648526BCBB5AF - 13: B75F1299EF6211A6318F6A8EAA, C5086AEA1BE7640B - 14: 1E28D68373330829DD1FFC5D083E, 33EDA06A7B5929A2 - 15: 85529CF87C4706751B0D47CC89CEA6, D031905D6141CBED - 16: FE5CB61BAF93B30ED3C296EE85F51864, CC484888F0ABD922 - -EAX-safer-sk64 (8 byte key) - 0: , 5254AB3079CDCB78 - 1: 75, 798DCF14FEF8F4D1 - 2: 0300, D5FCA75DAC97849C - 3: 520F98, 10E357957CE20898 - 4: 80E2764D, 5C7F46656C6A46EA - 5: C48960CDAA, 3CCF44BD41F01CA8 - 6: E0E60BD9AA2C, EBB493983FCEE79D - 7: D13D8804906A1B, 6EDDCA919978F0B6 - 8: B7AE14C37A343BFB, 2369E38A9B686747 - 9: 5DE326BBCC7D0D35E9, 041E5EE8568E941C - 10: 13494F5B0635BA3D6E53, EAEEA8AFA55141DD - 11: A9BB35B14C831FDA0D83F7, 4002A696F1363987 - 12: E242043A1C355409819FABFC, 63A085B8886C5FDC - 13: 204598B889272C6FE694BDBB4D, 194A1530138EFECE - 14: EE3F39E0823A82615679C664DEBF, 1EFF8134C8BEFB3A - 15: 8579D87FD3B5E2780BC229665F1D1B, A832CD3E1C1C2289 - 16: 74D7290D72DA67C4A9EAD434AE3A0A85, 96BAA615A5253CB5 - -EAX-safer-k128 (16 byte key) - 0: , 7E32E3F943777EE7 - 1: D1, BA00336F561731A7 - 2: F6D7, 8E3862846CD1F482 - 3: 5323B5, BD1B8C27B061969B - 4: A3EC3416, 170BBB9CE17D1D62 - 5: 0C74D66716, 7BD024B890C5CE01 - 6: 6158A630EB37, B5C5BD0652ACB712 - 7: 17F2D0E019947D, F9FF81E2638EC21C - 8: 68E135CC154509C8, AA9EAEF8426886AA - 9: EDB1ABE0B486749C21, 355C99E4651C0400 - 10: DB0C30E9367A72E8F5B2, 631B5671B8A1DB9A - 11: D4E5453D9A4C9DB5170FCE, 75A2DF0042E14D82 - 12: 3F429CC9A550CBDA44107AA7, 2C2977EA13FEBD45 - 13: A7CA22A97C2361171B415E7083, BFE81185F31727A8 - 14: 170F79D8B0E3F77299C44208C5B1, D5ED9F9459DF9C22 - 15: 2E24312D2AE5D5F09D5410900A4BBA, 2FC865CA96EA5A7E - 16: 8F3C49A316BA27067FF2C6D99EC8C846, 9D840F40CDB62E4B - -EAX-safer-sk128 (16 byte key) - 0: , 22D90A75BBA5F298 - 1: 3F, 98C31AB2DE61DE82 - 2: 584D, F4701D4A1A09928C - 3: B9DEAD, 6E221A98505153DA - 4: 06D4A6EB, 0E57C51B96BA13B6 - 5: 7B58B441CA, E28CCF271F5D0A29 - 6: 7950E0D1EC24, 2ACDDE6E38180C07 - 7: 65A4F4E098D7C6, 7DC1C9E9602BACF2 - 8: FEBE4E72BAA0848F, C4607EA3F138BAD9 - 9: 9B7BD6D6D655985AA3, 8B2C58A9530EA6AC - 10: 60C92F925D1478470203, 51E6F5F6DC996F84 - 11: 7B40769370E651F64AA654, 74F1F8A8D3F4B9AF - 12: 7215832C2FB9C54DF7A9C686, 9BF9AEF14F9151D1 - 13: AD0F9C79008572AB8AE2466EFF, F375D0583D921B69 - 14: C05076E2C330A0D25D7CEC80597F, 843C12F84B00A8E0 - 15: D18F0563AB0278140B0CD9A9B07B34, 262B1688E16A171E - 16: 650747091F5C532EE37D2D78EE1EC605, 1BAC36144F9A0E8D - EAX-rc2 (8 byte key) 0: , D6CC8632EEE0F46B 1: 4C, EA19572CB8970CB4 diff --git a/notes/etc/whirlgen.c b/notes/etc/whirlgen.c new file mode 100644 index 0000000..d24d4bd --- /dev/null +++ b/notes/etc/whirlgen.c @@ -0,0 +1,91 @@ +#include + +unsigned E[16] = { 1, 0xb, 9, 0xc, 0xd, 6, 0xf, 3, 0xe, 8, 7, 4, 0xa, 2, 5, 0 }; +unsigned Ei[16]; +unsigned R[16] = { 7, 0xc, 0xb, 0xd, 0xe, 4, 9, 0xf, 6, 3, 8, 0xa, 2, 5, 1, 0 }; +unsigned cir[8][8] = { + {1, 1, 4, 1, 8, 5, 2, 9 }, +}; + + +unsigned gf_mul(unsigned a, unsigned b) +{ + unsigned r; + + r = 0; + while (a) { + if (a & 1) r ^= b; + a >>= 1; + b = (b << 1) ^ (b & 0x80 ? 0x11d : 0x00); + } + return r; +} + +unsigned sbox(unsigned x) +{ + unsigned a, b, w; + + a = x >> 4; + b = x & 15; + + a = E[a]; b = Ei[b]; + w = a ^ b; w = R[w]; + a = E[a ^ w]; b = Ei[b ^ w]; + + + return (a << 4) | b; +} + +int main(void) +{ + unsigned x, y; + + for (x = 0; x < 16; x++) Ei[E[x]] = x; + +// for (x = 0; x < 16; x++) printf("%2x ", sbox(x)); + for (y = 1; y < 8; y++) { + for (x = 0; x < 8; x++) { + cir[y][x] = cir[y-1][(x-1)&7]; + } + } + +/* + printf("\n"); + for (y = 0; y < 8; y++) { + for (x = 0; x < 8; x++) printf("%2d ", cir[y][x]); + printf("\n"); + } +*/ + + for (y = 0; y < 8; y++) { + printf("static const ulong64 sbox%d[] = {\n", y); + for (x = 0; x < 256; ) { + printf("CONST64(0x%02x%02x%02x%02x%02x%02x%02x%02x)", + gf_mul(sbox(x), cir[y][0]), + gf_mul(sbox(x), cir[y][1]), + gf_mul(sbox(x), cir[y][2]), + gf_mul(sbox(x), cir[y][3]), + gf_mul(sbox(x), cir[y][4]), + gf_mul(sbox(x), cir[y][5]), + gf_mul(sbox(x), cir[y][6]), + gf_mul(sbox(x), cir[y][7])); + if (x < 255) printf(", "); + if (!(++x & 3)) printf("\n"); + } + printf("};\n\n"); + } + + printf("static const ulong64 cont[] = {\n"); + for (y = 0; y <= 10; y++) { + printf("CONST64(0x"); + for (x = 0; x < 8; x++) { + printf("%02x", sbox((8*y + x)&255)); + } + printf("),\n"); + } + printf("};\n\n"); + return 0; + +} + + diff --git a/notes/etc/whirltest.c b/notes/etc/whirltest.c new file mode 100644 index 0000000..8dccf8f --- /dev/null +++ b/notes/etc/whirltest.c @@ -0,0 +1,15 @@ +#include + +int main(void) +{ + char buf[4096]; + int x; + + while (fgets(buf, sizeof(buf)-2, stdin) != NULL) { + for (x = 0; x < 128; ) { + printf("0x%c%c, ", buf[x], buf[x+1]); + if (!((x += 2) & 31)) printf("\n"); + } + } +} + diff --git a/notes/hash_tv.txt b/notes/hash_tv.txt index a7f074f..7fd9062 100644 --- a/notes/hash_tv.txt +++ b/notes/hash_tv.txt @@ -1603,3 +1603,134 @@ Hash: rmd160 127: 2BE8E565E24A87171F0700ECAFA3C2942C97023E 128: 7C4D36070C1E1176B2960A1B0DD2319D547CF8EB +Hash: whirlpool + 0: 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3 + 1: 4D9444C212955963D425A410176FCCFB74161E6839692B4C11FDE2ED6EB559EFE0560C39A7B61D5A8BCABD6817A3135AF80F342A4942CCAAE745ABDDFB6AFED0 + 2: 2661D03372ED5C961EE23F42ED9498B451030EED2FD01F29178955529B2F8A758F0444087C82AED85540C8217E959EB8CB43EBBBB77A7E0D2980D6406AA2190B + 3: 7314E8035788304E57E68AC9EA89544ACE6D2379035697D91B98B64B105130DC814B67A4B46B4DF6C103016B8F7C7403E0B943F0291ED6909E2219B6E18E89D8 + 4: A6C01D8CB93A5CEC17A9BDD270B24C8EE78686CAFFC454F253D9B8DAD5398E52304CD57F30F2111BE78FD98338DD3A41FD8A45124C940C4A59F270100DD6CB6F + 5: DB22986F9FECA154CCF0E7DAD914AE8C0851E170D116E9B550C39B373F109FD073395C0711745E40233226F96B5FBF6C8EF1D7F8E2E4AF5375821C897EB18514 + 6: 793498B98970BB3CF187B0A28D353AB2EEC8F6CDA12E6D484CBCCDB96B2BFE6B5278CDB38C9BEDAEB59A8404645DBEDFBE1FE54227947E226EDFD36114067F34 + 7: 052A7C4EC5AD200B6B8131F30E97A9A5DA44899E1C6C31BBE078058630D5E208FD6F2F51A796F814F8AD048D759F8DCE442C405D96D6E1B1A197AD908B366E98 + 8: 219B01987262C597603DBC495792F2423E24A4BCD38825A74CEE8ED91D55935296D80E73DB43A78FDD6119233A31DA5940C6E335EB22600729478A20F61A56DD + 9: 4BBB8746D1D754CE91C27F3A6262ACBBFD4A38D100A65ADADD3174ED6EF8F6AD343F0ED2DF28309A6E979E02B12E732A3E70371EF1E0935E8A30B7C55146D9AC + 10: 81BE2AD26A90BF502C9514F46681276F927E916A630FAC442D823FE4D8EDE0FAE2E8384F3C267B56126F0C009BF8689D475C53425322BF8CD7F6C80CD2C725C6 + 11: FCDEAB03C0FAC7939E8478FD152EEC2408D4A6C0D829B55AFCC5184C50706C253676CF68DA3ABC1C1AEEB5822898C5194AC801881B8CBCC8DB15930EAAEE9373 + 12: F943E5CD2DF74699913B25EEF0B08FCA6BAE9E66BC073DF0BD950CA02FF17276F4A28393BCCCF6E567024CBC6C05C94EA912F1B07034AA375009F594B25D9542 + 13: 1260728E085D172EE82065B3F878FE21F550748598E72A40F4FAC3F54B72A99E6B3CFDA7141C7E5BE123757AE4332C8320786408523DFC8655D7E1F7010792B2 + 14: 67EB4E93961EF18A82152DE2882CC5AF4DD1254732A8FC1959147268441A80EAF0E0B68041F7CF013313ACAD044BD440F1E06D3E449D206433F3B52BE2C9E7B9 + 15: 9AB90A3384DA32A03B31DDA21732B398358DD40D7586E836CFA047961360CEA2F1E3DD0CF2D90CBB57F68C4334110694A6C1BA17B1E9E533E6CF3A3ACCEFF84E + 16: 112C2ED4CE732E21334D7248A30E683246BA602AD3681BAE365E857AA840F1F80FCEF1B9ADA33AC1F9BF6FB75045F9E61449B26F9201E482E7F2ADC8ED9A1D80 + 17: EF574EE7B498AA64F3ACBE1972E42B873C6FADE053A1459AB52D5E5B49C0AFA0C62FE901ADC3FF07A7D0ACC459C3DDB3F6D499C70B63F68B60B02E2784BB9AC4 + 18: C6185B5836DD3B160695E5E27058AB266EDE91A5417DC086988EA5181DF5BA0C51DEB11F6BA14AF2847540BE368B6C561CD976809E2D9982F4D49F96E0AF4F7C + 19: 8510D305A5E1AB3A0832B242ED402BEC2D70C24B41BD840B8D2DE436A6B4DBB7CB5F7F9F1432E694F0CB1239EAB0DDD92E6D0C7E96FDAD5F8E465E286D7588EC + 20: 926800FF566CAFAEABACA9990772EFEC8AC956C3C572A360194F95AAAAE477F98AB7750B2710E262D039D8584BE79D93E9E6405BA25DFF6DCF29C54D748DD655 + 21: 0F0B98CE94E2CC67D36086D153A2DF48F20283413407C3CD0570B619871DAC188AA37BA30BD706AFEF475BDA7AEFAB63055ADE8B792F025D088B51A08E941B01 + 22: E6538F3479D33979F046FBC88D4BA785B072EF58877BFC9D1214FA8374B78DA6895D5A4F4E50E6AC6A237E48A73EB18E4452E7C8AD50C82238FA9B323C96935C + 23: 378E83B88847F234A6A2FF7304ABA759A422E6823334ECF71E9C3C1F8B21B016D9A8A100B6B160772FFF12482A50613BD832EF534DBD1D4D055F3227C7513F11 + 24: ECFC0F6C168962197E181C27FC9AA1975FED01E655B3D4A7857872451D6AF810783184534C401709A63BF6BE6CDB1D1455C382CBAA6F68E8180CBA9E0CDDB9EE + 25: 8523B737250579A3787BD83E5DCC57F7038B393F003223A7BAB98EE4D040441190622290B164F32FB96682730DF62CC366FC33126DE2F7DDE3A38C818C48F680 + 26: C6BE341A28878B733C30F50D67F6933D3A15A0950CAAB96B9F3D7D78C95C61874A400CAB65A100302D9E2DCEADC4A0C043834EB0433D5D684C187AED93B5EC6A + 27: 4AE827A36DA140D2271F74DF1AF4303DF4B1C319428F8BA94EA28BD3765BE4535275053DA49B630E6B754097ADCD7F17DC7C16158F43E2C1851951EC3016CD8B + 28: 6D3F01856A8A28E28EADF60401E84253C3F7CD13F3A9FB8F94D8B07B74F7416817F274903C135BA0DA4509A78D004388CBCCA75B06132C7CFC0156C03803E85B + 29: 07CDC2BDD9CDC49853384FB647736B50D788AB80A0A54A0969B86603B683C22A1C5FD32D3AC92E73D378F379C4BA30A48E7D38FBB867E981271FB3962C745659 + 30: 9DC875BF987C55CE646A709E89CA89E226B0F15666D5174771368FAD768BF3318B8BC7D8CA80AFB5E6BB7FC0090B5559F11DA165DE51B940C9DFE911D4790477 + 31: 58BEE92BE003CCC34F9CE8C0B323C6BAF1297460BAAB4998CB3B52D2BBAA24D1B06CB597EB2E609A008572FF93710E3A7F42AC53E3FF09D4733757EACA41E20C + 32: 888AEB1BE2BECB28598556A128AFEA037D0689C8D13D9894F1416B2C48B2551CB2FDA321A26CC4D7E1C87332D7A3C18FFB455C92C0E7AAF829FA40B8A28BB656 + 33: 19099B4E8ABF225DC7BD1C1DC6D52F54E8FB7E4EAE0AB19293C686E6FD2828221A1153BBA4C143795D1A718585D9255B6DC911C0EDA5E0042A10565AA5D6D8E7 + 34: 22B3ED65F64C8E51257A922FF90DC09447224B9A8C7B5A6A94D68601F3D4C7C1557BB90B91DF318EF9F8BB367E838D36A3CA82FDCB85721AEA20A8A2268D90AF + 35: 0D2B24C6FD5D772704BC17D2FC8C011F1511F92491104F3C22470864882656AA40DD07C0C329C8BAFD90ADEA7F473349038CE475D352DA41E24FF64723070566 + 36: FEB43F7DCDE56A2EE963236C234E5800C011FC54D14396288DE5A7AC7DB2A72D1E8F63F04D1DDB3C55CF3BF19F4E0FBA4B79405A6B45ECB31254C9F1951C632B + 37: B8AE2C8427A750F34647C3529A05D44691B8DE0C79525D9145665BDA5C0C396C00E936BF2493F12945899B6FDAA9F61E6E7B22846023D140F873EE7D48D76BC8 + 38: E80C49D1E29F6FAF0BB5C7B47F5A85B3A0EDDED84418890748724792CC83B53AB044B051722F1ADAAB713E5069E883C1D172CE0EFF6EE6AEBE05B1FD77DB652B + 39: 1FED03FA70436EF45286648ABF39057C33815E6A80A19E22009B89C809DD6F0099C944B882FF9DF3DF08DD51295F3F02FBAB40F606C045BD4395969E27647D24 + 40: 2E3630EB519F6DD115B3E4818DB4429CDDF1C6CC2C8548F8CCA226A24F87A949A27DCBF141803B87B2A2C0F8AF830031DB1FE084E3996D8834F8E7D29EEA4AFB + 41: D54509526805DFC0871CBD6E41ACE395C64373E8F57146A657C28BB3ADBF7E57A152D27BE24B8F30F08329C2E040359B119690D9A1118BC14A3B1883D093466E + 42: 0AB062968EE4D71DCE807EFAF835EE11588854ACA0959B5341DDFD10E70BA9AD427D92168B31B8E6EF81F58615AF9215A8708CE1F144EE29901D1FC282C3F78F + 43: 45862B0D0F0AC5CC1C5769C29D786FD3AC788CFBCDD6CAECFB120D05D71F2575F4174CAD5E5A00D2D740D0714E92822427085F044A72D66631755BC55E5BCC8E + 44: D3A9EFFA759181346D8FE53130F05B2C65F96E1D5908A61DA8FA3A9BC551A7781ED7B1A6CFFCB2F742DDAE8D22B0EC99D82B14EB85719253693FF920FD5071D8 + 45: DB53395A78DDE62A406211955EC56C6F7BEB9EC2275501C35CA955268C3E2D71BA246B4286C76FAFDE012F9E2CAAC8601A74699B466023FE9F8B1BA26F65042B + 46: 9426FFB7B70DEDF1CFBCE6610583CDCD91AB421FE39DDC31F4215CF7604B9050C84A3BA29C4B236F1CC3B09F53D29229132FDDDD9B468CBB6338BBBA6193F84B + 47: 3D74F17DC6FE057703C72452BC7A078EC019424A89783F1FA40003657C323997DF30BBA38CB4B16BAD8FDC43260956090F765C26AB1FC88BF7F87EACA1821B52 + 48: C6EF119085EB17EC1B9F74791D95E366FE916F5397C20857A8966C52512F4EE16E63B53A28F7632A867EFC7FFD8080B173D5E2E33A2063FEC7D1181ACF8C7824 + 49: D878B30402FECA5EC93362105D5E183D658DD2FD38B8173FF609740CC84239C4F8F533AC3451D369001CCD4AC78814058DE0F7E1F93D167A46E85E3002F4F386 + 50: 948C4254AD2C5658A28D42DDC3CB4FE4CF731B4180B8A4A183C23C54CCEA045307422547600598CCFFD3C6229DAA6CDD006D3C782ED91AC61172059D016970DE + 51: B74FDFED0388D5164BEE25E37C6687FA8D5C069D4FB0D42A7F1A270A676F83F24FD1C9048EC0D49F7BE913D893E0015E0A3F724653B3F0AB0017683948712E46 + 52: 497EB803D053D5DF498369BADBF8AAD57ED1B072CF361D3DB2A528D3DB16DD962887916E9D21FFB439DC2C025CDD8C21ADCC98A23C8C5B0245F2D71CF728F10F + 53: 63F4098F650820EDCEA3E7C10B65D3B0F1949A28FEA323702F27C7D311C7E6BFC82D4C01F4FAD06FE0288E410EF325DE192F78B88E04075FA9581AE2B031A68B + 54: 337914B013B8056D7849E42ADB47FA761B5AB05696CB8FDA6B87FFF88B0477902991AD81664727164053E4E47ACDF880DCAD0E0E67F7141123DB494450CF0B61 + 55: A385FE66F8C852638F5BE44503B680298EBBF27DBD9F20B1A0447215C0E2C1078926002113A71C78148D5019FB22C8132DD05356C78A1A8D8E4EEC5A6442DBA9 + 56: 218336585A419E9877CB63387C5E759FC93F0FE1A7BA717B8BE9B2302393E0D14DEF2F749D138692D0A0296F1C792B567F40037DD2B8787F1F47FF363CF34F37 + 57: 7EB842771A61A9AF779C8794CA055518E7F38CD13F61638900EAAEA000B12816D52C593B62B9DAD79DB7397A463AB99A9D0035E7A1369B0556D593DB41EEEB6B + 58: E41D1492D3472FBD42F2460650F9DAF2ECCDEAEF5F4516B452D940DAD516F5168439154B4BA76610461B343BCF1E7DD7DD8C285EC0CC46C17CE3C7E14103042A + 59: 88057C0B8442BC5763283EA17FD1FE1AE011A988E1D7E0F914004CD3AD2E06FEEECDF59E309B9EBDABF19559954C37F71FA98C14BB19F7B91CE5F827C1DDE1B5 + 60: C5DE99AA273D1971272263C740E689739B39725A0B7C48B41577F05738A24F5EE2C0B673F93BD52A083798DDDC6E70A209213B58C95D49ABC5BCBABDD6AE7D22 + 61: 68296AC346BA3B14C038CDC629C5F5700CEB9F5DAFD94F948C6B991C0F91813BFD02660A2A05A02A61D8EB03BC93601F9F6A38196650047E1D7DD1071CC6974D + 62: 1CE0E6793B0ED59C4DB7D5F24FEF75A4ED2F28CE4AA7E5EB25919219C2C04935E4B15841821FA92FC7537DE2A538871E5A043A773CB1ED061333113223248C18 + 63: 37BF321F66ACE827B66ECAA651CCFCAD30AB627E717AA4FE441279C4FA48555CB7784B0AF25A73B86375BE71A1E3FDDEC661E0EB8115E0BB2B9A7FF81DC75DF9 + 64: 5C3C6F524C8AE1E7A4F76B84977B1560E78EB568E2FD8D72699AD79186481BD42B53AB39A0B741D9C098A4ECB01F3ECCF3844CF1B73A9355EE5D496A2A1FB5B3 + 65: 85A19923268414DE6A10A2CDEF7917D7AA01E68DF9D028CBAB5C5236FAEFCED836BDE9CF90D8A214013056202A1BAE5CB73606078C5572D8FE85C36002C92D70 + 66: C2FB9763A6F86225F6C66F55ACC8E7E17C1A2664416B2704D64AAC2CC5B04A626030B5243CA61D62076DDBDF3C6B3765C38D0CFA01D4D45C124EA28DA593F84F + 67: 5083280300FA5A1B172D7B5CCADA5CECE1EE5B7B5D382EB4A430179EB133970B0B89F6BB6DCBB1F38EC9F13F5B7D1559F114DE0EE26178EBC56CBE31BB26A91D + 68: B3571E8C1CBC0C58E23094B39352D554B43F9E7DD0FF981C12A01E0D8BBFF06A39875D90BEDA7F345550E6F67935A49E0183456B9967BB319D74AAD87CCA3695 + 69: D11537B780D458D37279D00621F646EBAD3244A22E4D45DF11AC5D084FDF70E7A32F897DF727E65EDD1019DABCC05DF0B5E015FC5CC1184129C5DDFB14F62154 + 70: C146458EF40E6F1944BFD863B2862A97145BA580D47C7ACA67E797EAC6790841C57D68A74930AEFCD49031819FBED806A0C033DD529A203B4E460F357BA1BBFB + 71: 660F3E1D5CD3B2AFD95DB0D8C258F6AD74DD40DB688A37AB4A24D720766541B1CB928001EF6D67CE5429039C9C1490613DDF90A27E6152BE7D42E1614C590056 + 72: DEC468EF73E98F44B60EB994935921F920DC0CEEB7498655F0FAB7607A77A7A3D9462DD8BAD46CB408EFA81FF08D7E9508BC565C1578C37C2B87D41A0A32A549 + 73: 070D4C36A0934C5C12E6B65FFF385404E49C3871DA8674D93D26E3166A7EF9693D946B419F0E10C9624964B37493DC8A46D26D8AB8942E60143036659CA4C91D + 74: BB8935CC84E08E6B4E7C6233E41D880D70CC018D1668EE64F19906A83730495D01AFCE1A4EA8129A98B7F9E074FD35C0BA6D5667625DB63A867BAA67BDEFC190 + 75: A0A7A0B619643115C582BB6953D2A3EAA942451F631FC56C0933B535313D668FA4CA7D6BEC4DC9FE2AD7528DD6F8DBE68478A040FBFDD2F3DC3AD7035DB67371 + 76: D6C57C3FB08D07A30A622B25985A52A6E552499345244725B1084E41691B11EB31D3B9776940A9A7E6115D2D1A93372D3A7388D87B01D13BCA726E8823E89729 + 77: 413CB26BE2B1BA8ABE930ED1B9978BA4874CF32B38C825CB6DFE9C21A87C0BD115D3357198FDA0A5B7CDEB4235A354E9C2F37D11B33AC6A257DEC67326830E23 + 78: 748E4648FBD009E4848E44A284D0CB2088300F50CD5215A285826E968B9DA59B6322E1987F78447150AF72CE37E516BE9E83B05A9817AB7A924ED8B09557CB5F + 79: 0A8111FEA824D43E0991C22FC3B1368A191D0C73308283494309D0762AB1EE5AF0CE2DB8F0562DECAC636128688540E845D72BEA3852A19CA2ED22D6C1E82CF1 + 80: DB1067879F014EF676471D950A81DA073D676DE52E85F67890C8471FE6144078DAF940CB6F9F097BEDB8FAC94C737C5B8A3B4217CFF4A56DC349B2AE845AB25B + 81: 6165F19F569BAAA3A3ABE6D6108D07E1ECB22092F66227DC27173DAC097118C2D927F2E5F7D20C8CEF0F99C6FE6C7AA46BF18FBC452F6FDD733728030CD0A4A6 + 82: 1D4AA14617A4BB9E48DCC1A7EE5DF65298AE45FB193F077FDB6D1C2B3252E1633AF86A527C29861661CE155A47E5BAC91D9B07715E0FF7E08B39A3128891EC42 + 83: C2C22B53D6BA460954C2D826FD3DEEE60E33AF2EFC87A61CBF2AA021166AFB90967ADE2C564D037518E4141BE9C0D0BC0B4F95498D5AD920BF28CAD4F5FE700C + 84: BB5E9CFE19C6A2D14EA4C1F6BDE51855DF61D650B23330BAC30A5072EAACF86CA02AD31FE4C146176DEC75C56A56C2B868177E0E365414508D2E7606AB9E8921 + 85: 6B40A13C5486396864608BE7285BD4D1205180BC41E10E537042A1CC6CD12FA7737B5E73D768BBC5D687FCCE41880A8D9773C26316ACEA2D78DA26FECCC11E90 + 86: DAD0DC8A7D78E29B12182D36F47B93CAB562C44FD6C5B1718651022CDEEC30133437431D13C43EC1C02DCE776F459A57C29355B3FA0D67C6BF84AD26194A8854 + 87: 8118AEE5DFBD7FD9F94403FFD3C6BEA08706D4C4DC78CDE72F751A6C4027ABEC7786A62732819ADC036B787E25E151AC51B60BD2381A64F05A326800D7514B15 + 88: C64737334A61872EC00C8A3F1B1EA931FEE8D80203CE6DB9F1ABEFEE2CD3E652971615AE4F9A23400B9E31D861BE6B7E0F6DED28ED74B45D6AE90E70AD49508B + 89: F927B571B03B892B46C0A16148F13A2E6B80630CE41BA7DBE311F9ADBB5E8F23923CF0CA527DDD20BB3FE42BBE805066BEAD569F6FED12A2722A8629427ED841 + 90: 2576A445CCD8977F24F50EE30EA7A51F0F3F49D41BAA663BD1C1734E02367A382E3D0E8C07EAED0C6A47CF662FE573BAE5593D9C4BA8FFDB4AF024F6064F7A89 + 91: E85C73AEB638F35565BDD2523AE2A86B573C339B4D5FF8498ADF71BA587CBF146AE63B8C920B2F0A166F802167A04CD0D7F7A842D7D058165894CF9188289032 + 92: E74E2ABDD6AFFF851EF78F8A866DDE9B9F86D906B298DD1E3630E1D4A30B6FCD7FF91943A57367A00E2658A84346F53ABC896EDAA395167E5EBD12C954E0B820 + 93: 6827226985276BA731A9AE2E4DBF2D0187C05D566F06D098E05E3F425DC058958B50F09B4CE0741F1375E9B522F94A61F1ED8A43A8D03A036D2ABFCEDD4F0C1F + 94: 19A71A12DCABA1BA185BA38BCC0D915584A801EA49F975393B25AFBC456571CBF1A6F9121CBAE89A9B438092C65532489A95A0864320102EAD9A2EBD30D41F6F + 95: C70F19BAEA7420A7482C9C54CBB689A9AB93E4F8538EDC2371A1EDB3A103DFB7176E04DF170FF71EF46DFDAC1E8F9CD6FF96115BE1EFC271A56BDCFB67D29E67 + 96: 8BBCCFC8815786ADD9F108F4381A2B084179002AE940ADD4C42AA2550C353CD0351C2F7F1BD544D8F268FA332B0E803838318A39079E9D93269A01EAF9CAC967 + 97: 5266FA966A04B8A2450ECF3826C9E1516FEDC33EE81D4911A601351564D27C8BD4A11BF00E0DE237E50D75421CBE475E38967F28E6A1C5D311A2C95B84898D1E + 98: DF87823E1E02AF34532C5F3A08CF03CB9B2017B835525B3E3C448B1ED15569935D9A1DA19A6B1E8D056FBC868447ABE6226B97F256F6B638B052B4BAB3BD4808 + 99: A1317CAC2364B10EABBD3540B6139D337C0EB3F7A740C050988FF9B3584213DF5833AAD81D36C30CE6CE76962A9E1D45F08667A314036A299454F25F73EB067F +100: B752B6EEB497A8BEBFC1BE1649CA41D57FD1973BFFC2261CA196B5474E0F353762F354C1D743581F61C51F4D86921360BC2E8AD35E830578B68B12E884A50894 +101: B0BB23AED2CFC9C58C8BAB019CD10DBE75717EE8F04AA45FD8D84748E3F05C523FD2F70DCC460F7A18DF7D28A224BCB86CFA4C8164D081D51F3487A7BD0C8109 +102: 0FA46C6A759DA9A3649679780A28FDD51EDFD3F99A4B801C5824247B270A137CF40006609E149C919CDA0A6C856A9A8E855A670A2BB2CD5211FAD42E84F6E365 +103: C4E350267BD335848D00151AF2C380E49A323E63AA264D534EA1BF7A860B764A78993F7FFF34ED93ACB1F5A5AB66758C462B4D2F2F4E14225D29FEC0C102E772 +104: AFA0F1DB8A321FC6C4EF7C65ED2ADC4B094E928E230D27295699DE68FB5C1657FE0E5C4E66C5852ACFC45DA94BEFDAC89CF0D4174B262E6FD51CDC3E7FFFA5CE +105: 9A86A440FF8A33DCD38C69D7564EF827F614629CB699B7F45E7FFF1CFF4AD5E27EFFDD32EF1D0845987A6A273EA34C19374E9FB606BB2E3B909157CC6666D29A +106: 1FAF8C564575D654133B0A452EC43959C9F9E20C044724B74EFC90D2CECE4C49A0512C9F4DA2E999552E3ACC04CE0F0E2FDA9826C2A1FBBACEC4330081D5CA43 +107: 8B35FFFCD91E617C8A49B13CD0FFA2199FA1F20E5633AE6E95881BBCA02B1E047392DC9A4C0F0A4C39D3984E78ECC4DCC1B5C94A26ACDC1F69C7ABABFFB45175 +108: 6C8AB69E946FE86DEF6F14B955B8F1977686EAFF8E384CA45F245CCC0EB1C80AF8E62B0E7387C0DA52BBA31B1A01EBB00CA26CBFDA9D8069A773C3B62F989A2C +109: C3A243B45B7C3C2002CB197BADBD84C4900D504FCD277D2DC6C06D34B1317B41EF098BB980800FA9D011C0363D074308835AEBCF3393B1C925045E97E14831C0 +110: 803E065AFEFC6C48EF9F701233AF512465729E81B0DBFF99A2E7FEFFB542831E1D3B30230BFA2F30343695C060AC8140C37CC8D1E25E95E6A1139C5522F4ED28 +111: 86618429B8720ADCBC8B9FEAED8BD44E0848572CB6137213273563EBFDA859240E17DFDAFF68B09953F1853C9E7EF217875E7BD6959E76DC3A1CE5F548B76CEB +112: 96439A93295B5C479F0310B28377FC10DF81B593AC233556B15897F1FA3886C940639AFF2ECEB29894DA884626B4811254FE2622EC7B4577087D9046C96AA556 +113: 9F7BAE13DB80C72A434BC4704998A73D7E546CC2590E0D0EE511CAFC63C622A8B2A296426E42754606D02B6EA060892E325EA1AC13EF0B523A3551F4D25BE241 +114: E999A862E5C479B7BB21EB52E4BD301571A8A39B712EBFEFAC720F28C515025E98CCC74B950D57CF3C3B34D788D62CDA0339AE0DA02C8A107BCDD797C4751FF1 +115: CD00EC5142CBBCA87BC15D69EBE96B5222F25BE1576B318208178679B13A9A8BA4BBABE9A488BB38C4EEF327C9A4DEA4225DD30C0F70B97C18C5C2FB19FC2134 +116: 1289951D2B62112BA590D8C0CF9EFA38AB77737F994060596738612E6BDC41EC8672F50A027A2C049299FD39E1776BC3EEBFE3E66CCF4009615D63F0A4C43ABE +117: 451A46FBDC954FB76E744AF3DA8429C881197F6BC12D22412438729288AA4540843B9FD4CD1BDBA5E864FEAEF0CD6CFF045A37510B3759FADFEF4697E9BF9240 +118: A267FCDF72D9160DA2A01E781E07701478F95A38C262ADEBFA194EA6D5A50A9CF3E04D32AA4B492580C6E8D8FAE1F813F3C17F82B7F47D8CE0C900F0F3052F98 +119: 3D910AB6579455653EFC939BE1B22D993537408086361008EBB166724FAFE3C8578EF4BE0378BC28ED883FC0FF3DE5A9310CEDE65FAF3AD9590A13B3CA4F81C5 +120: 47386DF4D41775737BC4E52D7CB2EFC11BA335A5D59597B5DEB3DD0A35032461F5DB4779D48BD6F3A10C5503AC563C790235E6F54EA79CEADB6A56AFCCE890DF +121: BA59044EF3A242974F074337CBB6840FA0506C2227A429498F546B2CEBE0644DFF1D442190C48CB54BEE72F960670F71AF1F8402AD5ABE8C1482DEFA881FA903 +122: 89B4F35E5C8C19AD61CF1600BA80C1A1BBCFDC86AD9F8066C967BA10F62827FCEFA1EBD07C90C82B48082A5B7D6A72E0AAFD230DE05955C7E8C081286B0CA96D +123: 0C7F94250F4EA7647F91E7EA8B8612AE8E7BFE4F5BCDD90CDCE564BC9842F6987AFB4C3661D8431440FEE18EB2EC70BCCD34A6B61D209CB72BE782A0808C08E2 +124: 2C8B8B17820085795BC6A2720B5D0BDF5407D9DEE1CAA4270FFAD010AE9555DFD2B74A742512BAFFAA1D5B4F14ECDB2BD4BF37838D5981A317C7287805974019 +125: B464C5A9D040F11DA45D98C4BCA9295D0F589DB11EE5603410C62BDACCC329B9AC14567C3A6F3BBA4B92CD3B95BE58AD4DA435199CE62D8BD61269F8BEA38FE4 +126: 2F64554FD54AA4A04ADE3793AFCC5C968B1C3603F4F71E1BB5342BA4E951D79A4580BF57736E7FC13A43604A057E9C360C099AC5B3403DA8AAFDBBF417FF6ADC +127: 3C9A7F387B7104DF19CF264B0B5821B2E46E44ADC79262546E98FFA113EB3D45799EAC78CCA4643C937FCC3C1D249A212FACB34C63D45EEC81069095D7CDCE7B +128: 803A3B37C89E84FBBEC75BEE3D00DD728FFC4246B5A5E989DC8DC2CD0F7937966AB78C79E1D4648EE6EB40F3D70491CB46B8AB42E155672E2AB8374FCF70DD79 + diff --git a/notes/hmac_tv.txt b/notes/hmac_tv.txt index a68148d..3003490 100644 --- a/notes/hmac_tv.txt +++ b/notes/hmac_tv.txt @@ -1603,3 +1603,134 @@ HMAC-rmd160 127: B107A8B0C7B68581969A0F6DB95DB2F790098F1D 128: AD090CC9A6B381C0B3D87035274FBC056012A4E6 +HMAC-whirlpool + 0: 5C36BE24B458FD3713761955F28353E433B1B818C8EF90F5B7582E249ED0F8C7C518ECF713410885E3FA2B1987B5DEE0FBAC210A007DA0FE995717F8FEA98995 + 1: 30C66EA7CE95764F4CFCFBBE4C166E80A1F23E8C88D2DB7FAC118BCA9EE28299778610D94CD545C18C114A2A144F9E933CD80238E9F1AC737F7149BA232FB846 + 2: A61FAC4DAAADF3DB746DCDC24CACDD8C2B74429CA812D86091B5E7F8186753B34532047B3263D2E231074CCDFB18188747B657E0B685693901CBBEC524949244 + 3: AC3BBA8D998C234F9BCE9A96643E8EFC342F4772DF5606A812C1C6CFD644E8F2B8F9BD724CBC8D769B74C52669705BD3AD390CA61DBC7EBE4438726A91FB2455 + 4: 59AD4171B4C33E09312A01B97B3BC2B7DA43F8791561E32A9186C9B0C418BBC31DF54D6A9ACA00910C0F3DF5D7C2DD7CF5634B76506646B7D4EE5C60AA7C7950 + 5: EDFD9FB5B7BCB39811D87A890171096AD2237B78862C4921191F8B0B137DE5178BE8DA898B6A895FA6C4F401714D2AAC743F512F8989E39081F02A2A0F9F6137 + 6: 6BBE26824C7582213F89F773C520710AE400F01B99BCE126C5F3ABDE79C8B304139352427A3E25A313A5F753A94B55F1EE9D3A0300E8E987E98004F58707F73F + 7: EB89DDACA2BA68940C4616B3B1BDFC25D94A78B8C3A533F1231A259BAF6A6706E1B90CBC2F21A76210C0322C7E4286E393B167A2455DB24C6B52B0CEF3EB78A5 + 8: E8AF385440589959D67746FCD40E295026E942E44259169780B3954D20CBFE2586D2A8BBE408AC2D707B0FE539DB43B3E9B29A8D26D09A41FA6F191999A45186 + 9: F6B9CF6E0A337906517DB09EFA31E91D57D6B908ED5116C13B49B8F1F3C3A872EF42DED53F939CC4EA4122FD8580D528AD2DA72BE063251CC89FB52741E2AEB2 + 10: 274FEF3E5EF7AD7AFB1161A29492F0DF44BA9E1C30E1E88CD708A5D27F2B35C45085A200E9F42F340B0D9B3A1A354B1F5F6D0D1A754D51DFC39CB2EE213112DF + 11: E2EF7A0A64A3F384F95823201823BC95060707F273E395F46F3C0627E1CD2BCE97DB2984C0EE7A11B22E617F0CF64A3F44BE9FD6B38C3A07A504DDC1D33C73B4 + 12: 681D72B9BCA446200BA7578E038A8FC418225BE5F02D8DA3CF085182628B7BE587DCAD4851863CE1CE8653E4916047F8E92E91A6B0D7FFB065F316DA93C4F44A + 13: 2CC82F237ECC1B9B0B9FB76E6B9651C56AE57CAA072A0C20B968F2A74FCA6A9749FA264331F4F2612AE0DF32810B0CAE95E5861473F4675766459B7380F7B9A7 + 14: 1F3818CFB04AA3882442FDF1F5CB0DB2FA9604228D3CCA1F14DA16B35D9B2071B372996A176AF0592F00175EEA4C16A6E0162DE62DE30E8A80FA669FAE9A33CD + 15: BFE4BF868A8AFED289DED5F6E7B21E6856107EBEFAEAB5CD644FB5634181D52D8DEAA203C468ABD279E9BE73507A690C0B715869F6E722C4512E815FA4EF641C + 16: CCBA3834AC7BF06B16675376ECCD96A0F91E3E3C588C5BEE1711A00C107B35D603B20DA8E5CC5FBA6937A24DA53D8F55C907F3E53F0F255E080396426E7ADF9B + 17: B09F6898640E5CF77B6DD3D5A8A4452F4F1D25C90F7AA55A205EFF2C319EC0BE245CEB4190F11D85C2F7234BEB899BDA465C95A1C59568987C4C020B9A7AFC00 + 18: AA7FEEC56E16AD79990B003AD51626C87C9CCB90EBFD748DC268C0C8C1DEE1BDCA1C8064FE7570A5C624AA0CB6BEC163E63680377A16AD49D1AE166090DC0D80 + 19: F755304A4694DBBEB0E59B978943F3D4E429F8123B3D6CE27AB400D3C4BD81A13A8C3C0BA0FA7E5F13BCB0B48290933A05DCB49A5907C074039427F0EC9004FC + 20: CB8B5804EF0478645400B1655DC6E194C8DC26112EF76C57823A02F39C8ADB42F1225B130FF0D40F580DA8CA95D82C0441E3A82C206D9D8D6DBD63B4BB1BCCE2 + 21: 4EEA4AF294C458BDBA7F49AC0826BC295BAF5B16D16F40D379F6B7C3456EF4145B5EC7F7CFB85638F641CF4D07FE3904DA891E68288FC11C0C72F54430915024 + 22: EC52FC8CC0F849E633E3F7339031DCBCEAB69B6634D3E54E7C153CC63DF7D3D3F93B13C8E751E79290ED4845FAA3D5A79A7DE6B100F538E0FFF470A51CD630E4 + 23: D44419C0A36FBFD0FB441B596E8821D3F543D80FC7EB5A3389037BE0139921027571502B5C53BA30D31D4A053E830E610A394842229E08485A2376CB9766313D + 24: 3F4BDBC8A4C86B3F646CC445E2CD54B4C786BAEDEE9FD91A879640B4085D46FEBEECECC95E819ECF6AA9085C2309E79DE1A988C6B68930ABCB9BBAB90F1C2F85 + 25: E5EBC015269E0E61BBD1717618C15D44953AB6F854D962A04FE88865626DCDDEC5F094AAEDCB708D947A9547A985F0B287CA0FBBE3FF2ECCC4C0C4FEE4FE74CB + 26: 010C622DF84E677805108A2C5FB1E8BF5922D35CFAC2408F2AE174D353AF169A40169709C39BFE90E51B095C8C0D2886B4F10B37BEFF805D384E29CECE89C4C8 + 27: 3E9C7BE96E03C48DEA773204E1EC3721EE817ED2403E3C8F950A4C447949438037E2AF0A030CDB983D3FBE5B82226F510FD91CF8830F59212F8CF26C2B5E4DFE + 28: 8797C9C14CD2DE3CB1D29808DA9F23A5502A7BA579586DE9513B980FC06990DE0E29837ED06E24B15DD0000697666B8D3DDC556D818E87F84D125697D5E2F8FE + 29: 93DFA3DEB3258FC7C4F5362D36C2AE21AC0471AF8B895B5AD1C407E8D50DDCD0111AF76EC500D7BE035E6F9CE932190712A3F52FBA4BB0DFCE74400C82D1BD8F + 30: 5587EF7A31353C0E9C346C837EA645770BC5F5C541B72886844B4B0789FF1D95134F558B29385B35960AFDFEA7E3AA40562C12683CB7DD9A410873565CA10880 + 31: 052CB0FAABB263A49516E39525023E2A02DCDB2D5FC78948E042E59F89363FAAF1869D42EC9D7AFB0DADB7D4E99544BEDA92E3270544900A5641F059571B6238 + 32: 2FAEBF049CC4C9C2770E859739B1774EB6E6AC2EAF1AF7D3EB55774C03ADC4C865A65C82E795959CBC4BF00A64AFD2AE0CCA16D58AEB874E253FB9FB9A266790 + 33: 82FBFD2A46F2102AC27089B6889024FA9172FA691C1E3BA9B44A394D52EBF5A7A8BB2321708ED9AF2776D8BAEA13A5F2E9EA4AAF420A24B6F59E2F583D54A797 + 34: B306D18161C766DBDC734FCEB08D14248EBCC63FCBB5B9CC0AE9D690E20E7152D771B3D623D7ECA1CBD305A31EE10C220FCDDC2CE76B578E2F15DE4741E9C9AE + 35: F527D57F0A5F13D7FC6A30A84BF414712044B56FB8F6C1E1375A09783968A851DBD495D51C693590E7A8BB570A7F1C0C9ADAADB74EF8EC71A0093D8D1A4285EE + 36: 0D9F9DB43A0FB4BDF70487002943A6CD3BF200518500B6934BA518B3B0958095930EF59BAC48C84C1E1ADB815A6569FBBE7E61F039BFD8C2F727EF4636542A5D + 37: 614CFB257400128FBBB7B56550E86198155A5647FC11111FB4D36073BB57AE4D9C0A54BCF0DCDB8B54ADE4FF8AE5645821CF9C83F7FA9468FC2CCB552E30BEDF + 38: 7032724503FA5B0765D610D3FA4609F4537F6EAB75D7CC4E2A15D2B1421293D9411C9E8F38999F7D64D607EFE95224331E47FAD4F9BDB6AC19CD3ADE47C17E7D + 39: A8E4316126475B429E72432073CBF26E94DA450DB553D46667D597F0AACB99325C9EDDB94F8CE33551857827AF3935F2DFFE1EE69A20884D58E095390C04B925 + 40: E7E90B19E76017EE80E4979FE56A488AAEEA011DE9DC068DBE53AF06ED44DA4CA3BF662358F191FE2842B083BC5DF2D4183668F4E7FA9E2750869DECA7302202 + 41: 818D734A02A0AE76A0012D7BFE983B17CACE37D4890214C7C53A81CA9F42EF0A472101D609BE5D3DF4F0A55DAF154C20A1A97D53112E22D136C03004FE09149C + 42: 0B9F5B2D4BC3DF781F55ECEE149470F3BF68FC51D121D021DF0CB8D4A5EDA42EA6840DD735ADF8DED72B325662BCEECC6195AE831D169A891F6663F8D7C6E0D3 + 43: 7A5AE42C635B250598C536E531FDAA1746DE2EC7984DC1BE488DE4766D0CD544AB51AB1E62A8A170D120999A61CC6920DB96935F295817851A4CE285D2755112 + 44: 95093085CFE52D746C54DDF8D2FBE33EC00D71C39BE0865B896C331C7E5682FBC0DD84ED15B3F790166D537A9A68EEE5FEEC63FC761EB854018CEB68245CCB90 + 45: 8BA177C495E9832CA8EB55E67E5D7F34C59C4C59D56D50BF6982B36AC341CBFDFBF5A98BBEBC26A9509FBDFB239312DF3B3D5BCE70386EF0E593E17A621F41F5 + 46: 6DD39D94235D012C89FD030341392AE42BE7702C4D8E725C4229940BC273EBB8EDA7A6893B4FF86D1EF84DFA119058BC6C8CA47675492A0D37C859E6D9BD5471 + 47: 13A2FBE3DBAEFCAC5AB8BBAF91BAFDEF5FE38B7F2EBA8BFF0F44B4BBB236613B8BB122BECAD9852BF7638E48F0FC656F9C432D9A66C1188DF3FD1D2A88161139 + 48: 33B9B7EF63B302C1C79E0A43D77487C55D38C53F29C800B4CC287A99A440435121C7ED78BE7406349E65AAF991EA0EF19D06C1AFBB814FE4E0BD68613AF0C760 + 49: 720E1005ACE28903D9C2B6EDE02A52F89860788AFB35208B4B7C147E43BAB3D06445DA138606F334624C606DFF288B0C70B487679685D1DDD26F1DA0A5F6839F + 50: 2A742F1E8CE6CDB501E8AD9BD256786A42E7F1888D9803AA8D5750817B3EA101331D7266298962FA28AF2232BF956FAC7C1C0B1C3DE4C5B3FDDF8E63BEB02185 + 51: 05CF6361A4A238091A1FD011336F7F53B9ACF78BA1B96997EE49B99FE36F0F1163E04B446EEFC117B377593EE078B85BB9588918C76612E2A6F9515E0CA244B2 + 52: F510C877546FD2D022051364A09F2051523F8E7FDCD3E9D2AC5158205FB36CF25A9E0FC394ED2FACA7CB4F0639B33B706FD4D072D62F6EB229E4D7879DFB45CD + 53: 2664476D94776DB52BAAF3B2DE05A36D3E35EF44ABB6F09670F37EEE00C2C54B38F70D06359B20F7E40E22B42901863864EF89EA473A1F3C834D22176E87E617 + 54: 62620CBDA92EC8241DD3A6A0EFB28254B0CEBF3E2351B10CF93029244A6A3D1DCE10D9A895EB6E8A33108DDBAA897DFF2703757DA3706209A7871F4274901E3F + 55: 51282A90B63998F7AE7ADE4787D957992A81D3009D6AC5BF824DD1507B53F6918E9AB6AA1F36373D5E5D3EF8D01AF9D05FBC224781C62C1DCB4A2089BFF5496F + 56: FE1C4394AE26E4B85752045DB14E0AD378726BC1C985C8805222B614C62721E40B2A0D21983FF40AACE8E5F9CD57BA62C37C8F0968EE12FAE14267D6AE906A7A + 57: E570E1183CC6AD7A2C73D7D0E96D3AE0605039603B6F6467FA5CA62E4C1424BC14B17E9614F0ACACCAFC2B1B39D8C081B05DFE2B9796F32C0C742FB09DC7B8DD + 58: E690D667A94344E267A6EA7F3F7A6A5385C961BB6139800CD5257BFD6C4A672DB576B52335D22160A372987D652741EC3AA9439B35D8975AEA49698F8D5528E8 + 59: 59FE977EC1D9927FB09389E3D31272E625F089AA75401D1B541DDCE8C6983A363622CA4F2AA9741F0D1484195CA31D6D315DF6B66E74888D111FEFD249FA0174 + 60: 2CAA990D06814CA73ACEFE0D9A815589958398999707BD52C3773F61B2DC2F20EE7AB7F66D643BD9686C4C460AF45D58BE9F8DFC1B5CFE3A5C2DC2C93D9491A3 + 61: F198E9238E9592A97DDFE1B0B56DE5DC05D358940672D84F15E1CE71ECFD3854CDD38762DF11E1871EE615EB6080E329495B37B23710DCA9F4179F5F95F3E2A3 + 62: 3D7C45603510C6916226B192C81B90EC213D30C11AA21C8520437CA5639D00EAB529A4C443C9A39C5E40DFEEA0F685B3D0E1277BEBDDBF80C3D5F9C8326765D9 + 63: BA081CA12FFBE3CA8F1E2703C96587634F8EB3BA140F93D997B6D0FAD1C1915ECF7D77CC0421E639B083451EDA605571D68DE81E7A4BFC183D7A53A07122168E + 64: CEFE2203F6428D267CD2E284C3B8C31E1946558A56A33291508093DCBF64FD5FA4D33FB723ED49CBA02D97743312138FA77AE960EDF5910E3ADBD02B1203FD97 + 65: DE0379336B1C7421AB4A7F5708BAA3D4E15CE75CEEB8C7349265E71942A963216559FD628C52F71356134AC328D0315ACB63A06382D4251A28127380CCEB08FA + 66: 95FD3399270415A80C2F295957C0BD8E33E35C679C31B2118DFABD542EF02F6E2E432559ED4066954AFBF90C982F60D73DA8BCC94DD48BEDBB00A8E458CCB6B8 + 67: DE49AD8262EACF733B567D8F7752711ECB5D0FF5CB18E5A99C6C35442E652643149A51C820E6D4481AFE63F5B6955105F8173DA57DEFA392E43F7285799A32B9 + 68: BED41AF0733EED85BB26E8A06949AFA1CBCA9BA87C085BDE29FD38F94709F4AC20360F7C7958457D2C49BC5A38FBA06D6A6AF77ACC883783B357032FBA9F93CD + 69: CE72D475D983EB5E528C4D71EEE48EF337E1723DEFDF142598E4CEB3B2978B1B4E36A69EAB6CEE8F3DB2EB353CBD27BF7D41F73FB184CC8785DDCE8EC22E9741 + 70: 24A8A7C759F59CD3DE2E3BA953EA975B60079D9B331AEC4D1F4586FFAD190EF53C2EC6BAB566660EB5D652D7D54265B8584C6BBF986537F54F9D8E4068C01F67 + 71: A7CBE72C99EEEACB387D4532BDB651EB46B8D30A9D5DB8095C9B3422D9D5C9480AA820CFAFE4047AA0546C03DBF07424FCF7B812274B3CDFDC76B9FBBBF08190 + 72: 16D536D1D673F74D9E298B16AE65C65E467131FDE5B4356FE16E3FC36624E19FA7B55727240C51C20491F3122A1AB073B98E095A24F4B3260EBE5211EA2DCB0F + 73: 692189C1FF6DA5862657623BC862F5041D63A2A1EC8986139CCBCAB114427B1A2500B152CC611C5D5599E9792F014A640FBF7C6D944EDA811CD92374326B2C52 + 74: 273E18F4B94E624988C47CC45820E4552DCC53BB40A9A24F744A14E56FB1DADD3EA4087A785AEDB5400A65971709DA1AAB9C18EF534087EA73A1FC8FDC865170 + 75: 8F048230B202743FF1DEBAFEF8CC93244687A58A8E5E3E6F7D85237ADBC724641431783E63FC8EF2FBEF9DE9CD50C9FB294341654706DBEFE6B05CA8588E1A3C + 76: 7AEF7701439F9DB556AD3B166B0B25A51795638A83E0EE25E5244BBE9D2E8CB6A8242D81E78E4906AC9CA0AD4FECD1006D89C5A8582D1BF51C278EE7A357232D + 77: 55CE718F7686A0692B3727BB5C24B16FCB87D8E8EC943A80236CF3E9B37A4A20194243E461B453CF03AD846A0B3287A2005D6603D5E080D700ED2FA25F0FCA87 + 78: 3378B07E0563CA7BCB91F29C8ECA876AD748760748AD07DE0208BAC227E0EED4A4834B8879F3DFE51FFA27B70AAD1F3E9FE1586B1D6B2B9757D545D9CC5DFBB2 + 79: 040E1EC767CDD85FEED2AC6767F0B3C17CE4579FD9525213A682A9B49ED03979144CCE2B94026AAF7D401355B90B25259954163E0C9739CB9E756177ABA053CE + 80: D1CAE0E4FB245C1AC27659C2EE86BADCE26228CF8EA24AA62B69995FF02F9A59B1ACC1C959EF91A7B6EC90EA9D57F49CD0E7621D09E4016676953A3F9B9D40E9 + 81: B41EAC0850797959C62DA2750F2BCAECCDFBAB843D56C034E4E0DC15C961FA611C50F22BBC135E5D99DC4E4B7634A8DF4B0262829593A8A86EF6C265DB9AE907 + 82: 66BE82FD1582736D0DE7861D9DF74715658CF3CD2BCED12868EC4D92F4B015B7BACBB331ACA8D58386AE6B0642C3740BF5F3CB26E76551541AD57E1C303D4527 + 83: C38BC2639AFEC1964C89CB92DE5ECB78E0B2994EF37F839D0A61EA688CCEB068B1A590D6CCC929EFF1145F5A5925A17BF2FC0AD352801CB92651F08352A992D5 + 84: B699ADFC29C54F178B3EFFBF8FE8BFBCD722F2997AC30754A8FC5CC6D51352AFFF7F31D7F71FD9D136E78D1C1E040B05E25CCB75C7AEEF714018F51663C7AD91 + 85: FDC4207E97D12B7A8D05F5073D47EF32BA32961568599ED34CA160F2EDC87726C53087711A63F6BB7E840F305477B931D1CBC1939A8B80205565D453675FCFD7 + 86: 07E1DDE64790A279B69873C6887FBFCA69B87C97BC25B969E2B16040CDD2051BCF43637F490EF1B051CD882B64E22DA55C253A5E796528526EC62A305FB05621 + 87: 3ABE353A4291A3A0ECF204994D49443C1FCC60C80BF6096026551048533E02C475B905046C7708F4852645168C88125221504E174A8B7E67AE424C0077163E0D + 88: 33793697140180A04DA72C0F74E1F845139937CD6F05AF74E3F3C5031D1D2DE571BD72916CBE67859FE501C0E56354C1360E3EBC36EBC11D11C1EE08D158247C + 89: 9E5A386AA9C4C5A2419B902D239E49ED84E542A6F949895C88129DFC2844FC77FB132592C7C1474E619C55FC2835F0810F227799984777CE99D586C158C8F9ED + 90: 6E0D9841C04BB47DEE30F6AB430E53FA1637421E460BBBD7BC8EA167B9A341DDC5E933B6983A025226B1FB3CC663EDC3477F8F0C8FA109A8B97B4B17AF3C2774 + 91: AA0218FD54533314F62390B8C02219D26801C249D394E33981E3B853C5735E331826FA02697DF54C9268B891592DBD876E25C8D985DE8752ADAA0CBE55AE7FFB + 92: 23905B9273CA17D80D9C877DD78150B5382744896B073DC636618C540876B9BA51EC60F5E45DD53BE210B6076554238A3B5EA95DCE3481F0FCF2825B852BDE3E + 93: 1815D1AA4018626EAFF051AFBB92E91F6D6D136F58E8DB160C9E85BEC027B6CC92F0F0760DFD722BE12A97F7D29EEC341BD309F230B55B81D146B409EAEEB7D0 + 94: A2358789A04795BB20D2EDBF95D5DA28A1FBAB329F99DFD0B103304F868CE5AA2DC1F52FE98CC84EB095B9C5ACBD6DC05FD03CFBB3F1D26675D0A8F652D38236 + 95: 2C4DEF028098A0680DF15DEBFE6A7FA42C7A7D75CF410340ADD5257037F0B2F98FB5A068361DF33010FD48A4B41E0E40A2730FF2148C45FA568FAA182589A543 + 96: 360F3B6819EAFD9B3D6BC469F4272F9458C0791759EC1136FAD500F3FCB4FA0598204669E865D7D5F8C289043A2A1CCB47F55CEEFAEAD98C7FDEF38FB22D3A29 + 97: 1CB2E98EE8795761EDB7579583EF86E7223A2109267E5234663BCAAF9FBF28EAE35FE362AE9AD075023C1D36672002E08CB36189A603C174D73BB9489E13355F + 98: 9B3F2D2B2E3D0401229F11E6DED451A1289C631122684BB32B8C0450043ED2267AAEA20E950F52B44EA5941C507F38D23CA76E212593B65BAB347841179BED1D + 99: 2E27C53324017626F7EE7EE26BB0C88450B3D882C2D8823647ECA7650CADDFF3E4201D7DFA2A07A51B9372FCB04C1A79A264DCD3D260DE135D08DBABD2C5869A +100: 0B3D7FFC5DC1CB18B867D995E3D02FB2FBA0DE27BCC85E49A3B01C5581EB3B14C19254C87D92D2EEF952C98E4E6F51C9662CDB982BC95B88C11CB2EECF032576 +101: 85C0B9C8AB8C670C01E179F495DE26F818EE772AAF6FCE4ECBDB4FFADEB1CFD8EA86E42020B47894301920B86082DE52A7E7CDC6DB4904F8F0D383D9CDA312E7 +102: 0C6637D399CFE2734AF7B63F81B7493158B7842E3C5B72E6CEA4388A5C6DB7222D46727B92FB82D88551A227703B8BB6A1AAF47247661E074CF6AE4277D586DB +103: DC54B4ABBB7942C502BF3275E37570947FF7162B6831AA430566E69AA80658C6E792B78EA081611256C64552A9E15A66000632116AC83769B7C58B809FD96021 +104: 532372848D0F525884E5ACED9A727E96A8D92B484DC2D4089206B001CF9EC52902E49E6FD9FDE634941BDF5AA2B45B0787D0B183B895470BF1E79B57DC976EE0 +105: 4B6CEB5AA2174E6486ECB185044629BE6C280807F102CE52D2CE2DCCCFE96E5586A6888DF7500614896C9FE70CF7BC83FE755E88170B3D39EF9B218BE809E495 +106: 6D506B4BD3F079EF4818FCFDA519E7E2AB6A03293525711142C3CDC5236A7CD82A880D9CEDCBC089F7A3D5D3E48BD75DCCA7ADC53B13A2FC9CAC80C037F2CE5D +107: B8ABE308840CC901C6C5FD908E2680886AAA0BDF7085C1A6ABC257186AFC52C522528BD7BF4E82553D9E64CBEE09B9318995E13715AB1F7809EF185E8473D70E +108: 9790A198DA7616F4D8ACDE68DE19635A555874EAE77AD4ECFEF7207DC305D475FD250F308F466B189425AB6A9722D744AEF14541FEB83698943E87E8A39DF838 +109: 816678F1D7484660F4701CE77F4C5E13E5DFADEE6622411BE86DBA4EB71A110DD1087AF7D3F37B8ECB1B9C44A3BD5EA73901C21AAB51E569E61EFF25B5E955F9 +110: 51881FF4B150EDC3542CA12CE6554A40415AFFAA1197FE7CA4B8B065A4FB1DC3B924A444CA31776CED52514C525261269895EBD8584C29747F8D527213534E49 +111: 6D8902F285029EE683CE1803B2D9C6BF6E4B7B59C0ADBFBCED3346782A35652DE3F304ABBDE9F22E4960DF6049431139EC6AA023EE2B013A426DB9A816D92699 +112: 06E5847A060BBC4FCE1375DCC15AEAFBF514EE1ADCDF42AFF932AA277DC09EF614651255E35C499D6BA1BB875EA3E80F80AABF8B7710AA5696B058BE91B99B01 +113: CB1859580DCA13556FAB791572E523C2E888115C18C043B0E33F2268DD0056F9A60EDBB65DD9C8B552CE2299E847ED4617BEF3A453ED2AC3B5366B4D9A651B61 +114: 39778F80D346E53D1B0E60FF7B36A92639D9E7F11548C9326A59D9311D57BF09F33BFD6AC5352F2F041BD07A6D26A181419F5FCD1D5FF8AD38E485DA7DBD5419 +115: E508C9A77F53E36F76F0E477DFF076DE810F9F1599A16A3EFF1840332B26D6C7CC40E03CA8CC212FDA776F4DF968FCF92CE492AEBAABD65F069D1AEBECD11B7B +116: 4659D0E1F9E5318D7B92FCF7700C467429B63F27188C0BA168F0D5696DC764FBFE2C5EFFCF6DF11EA77A17B0565CADC04F95FFB0485CE6900161B82608B1647B +117: B3DB7FF2F08F57F0CBF2195BB9600E9AE5D86A15921EB164A98D25D559BAF5FD740D68430653DE73F3277425DD77CC3FB0CB44ACC5FDE693D59D5FA6DED84597 +118: CA4559843946A7583F944D51E31FDF32BBDBBFC049724454C090A6DB9C356739F2B7E254CF9746521D965593FBBCFB26092069FBFB0D17A1593416D69681B687 +119: 27CB8A2143D1073AC17009C31B28DB95DC195E20AD7D245D8AD880789898F043F0565FE41485EDC239C7129E4B7FB693D9044B2C3D34C5648E4FD8447E85FD71 +120: 99811490C7FC83A10AAD197E95D3618ABF5018E9AF7EA0AA2CC0C771FC11FCEF9FD6070A0962A563D260E8CCFDB77B48745C8C27018F9140870F146F124FF14B +121: A1537FDAD7E18F732181CD9EC9BFD3993FAF5F994A8809A106B59D13BB70FD8D7D4E6A4BEDFA806A9D434AAB0368DE840FD64395B4A9A874DB39405707AE3AE3 +122: FB0D6D962055B47D3A72371BDAF77BE7BF965EA7D53018CAE086E3536804AC748E706E89772DB60896EB8FE2ED8F580866BAF3108CA0C97938B69830FFBC14E3 +123: 3C947F4136D9E780A7572CA4D5D7998DD82D3890CC3F1BCB59A7FE230E31DE322DBA7CF7C1DACB33A3EB1F7E75297C056570D2846EDF756D36C1AE92F8DF6954 +124: BC1BDEFFC6AB779A7ACFE53A3F9DD588CD3C77C740F944C69E331C38F162607E0D4A0CA874AC3D1D74965468843133AA9F961FBFCBF59B58818577132B863181 +125: 51143DA8F5D6E68EC97CE22A4961EF43B3AB658711280587D9ACEE701CA65CAE90D34B66DB52D779A8E2BB6204FFCBCA945C6B98B2C17C8375551FAAFE4C8A44 +126: 2550FCF54872616ED31C60FB3FD97B9AEC7A27B3CEC07D774FCE694ED9D60C43A968251C5F3C5B50E6214426B00C55D7DB1DB31CFC4BC07F6ACEA222052AB796 +127: 1D8B2525E519A3FF8BDAAF31E80EE695F5914B78E7DAB801729B5D84C3A7A2B36A33803F5E0723981CF8A9586EC1BEABC58154EFD919AFF08935FBD756327AAB +128: 4AABF1C3F24C20FFAA61D6106E32EF1BB7CDEB607354BD4B6251893941730054244E198EECD4943C77082CC9B406A2E12271BCA455DF15D3613336615C36B22E + diff --git a/notes/ocb_tv.txt b/notes/ocb_tv.txt index 6f2bed7..aefd8fd 100644 --- a/notes/ocb_tv.txt +++ b/notes/ocb_tv.txt @@ -4,404 +4,328 @@ step repeated sufficiently. The nonce is fixed throughout. OCB-aes (16 byte key) 0: , 04ADA45E947BC5B6E00F4C8B8053902D - 1: 40, 2FD20C96473DC80B70AF13AFA11D9B4E - 2: 133A, 2CCFC6DC16D5587FF3CB3F91C533622D - 3: 12E5E1, C93F3E09B9029E15185FEA44B3F6BF02 - 4: 3865E0A7, 7410F5F5886E2C5EF4A699A58C498C41 - 5: F0DAFA15D2, 44FE6EE9B2C980684FEDEC658802A63D - 6: 432E308C6BA1, F7174691EDCF8D7152AFF61F20AC6B8F - 7: B353379859776A, B087536DAD5C6E38E7C58C4A70074222 - 8: 0C78BEF929856517, 6499752674000993174D1D1B210FD727 - 9: A447088E4FDAA6FC94, B9C1AD71C969357FA2409D71AD334C26 - 10: 962F7E06CD4CBFE64D60, 41E9C22DAB0E6EFE5869D5C1CA016869 - 11: E420A8485EFF0BE6E59FA3, 8B555F3331ECBCFBCE60284DF0CE1D29 - 12: 60AF8E70FE864404C77323BB, 479C3E8E93EE0C20E9E4CA8455149F99 - 13: 6BE58932CBBA39ADDA999B35EC, 8DAC0E379861AA327DFA52DF712E771A - 14: 3404A18D1A5F40EC3EBF3701BB67, B915A619EC2B25453B8195806C538872 - 15: 2F527E106EB32D5EA6CC2071706FDE, 172559FC20A29D0E1BAF61750951BC66 - 16: A4F288797EF24DD1209E76322006405A, 0F91836E1769B6F329AF0A7FC69AB07D - 17: 8A3B6F2B48E2F6DE3E02D6A166E1E15595, 17BB024582DBEFAE6893BC8903418042 - 18: 5D7D954BFE815CE208AD04214F6AC62C0A54, 4CA6796851083AD43733E8E4D964FC23 - 19: A37B487B9D3B05287378108BEBD44B9A7B785D, A4402359F7E4F4BF70B3DF6600061C6E - 20: 39341E78E5BDF7BE950B00423E186B91314B7BEF, 49B7E1545C20B0E86D0CDA4F90CC6ABA - 21: 3D4E872C6103DB1064AD853D2978E8C5AB12FB69E1, 3551930A00FD2B663B094E6CBAD5BADC - 22: 62C36316C5C5BF07296D9210E12BBD9542ADD2384193, 72F4B05BE37D61D2F4EBE778426BD170 - 23: E3A1EEFB5A1EC7857E6E419C18C1BA3F08AE2DB82220CC, 19F59932FD089F936B56E26768A9F2D5 - 24: 7AB0FECF7E6DCC1A7328496873DA608C2F90F6F539F76CC6, 067252CA3D59354F70C6EE6C201679B9 - 25: E811F085FD5460D3AFA4A2A389CFDDE8ACCCB9B16D75D55860, 94403E24AEB19FCEF4A7D600E5B39199 - 26: 92F42E16B838E63E4A826029126D74782DD8FCB6C8443F355732, E7F3B2F1F537D8A7DFC9FB766EE90687 - 27: 21E99ED0E5550487CD1966F1845FF302ADB6AA97781875090538A3, 4C8299570BC6BA9AB83B9B14D39D0395 - 28: 9E8A5A8BFB43D79EDC027DA82C035CA9CABBC41DB66D6256D4A30456, 3D055A9F6D6F0DADEA447157A03B06A6 - 29: F46CDF2B8E55840F27BEFC0136826912BECD86AEF88CD9B97E597C69FA, 75AB6940C71DF2041F9B1B11F33EC1B5 - 30: ED8DB3940AFEC7F990736E58CBFFD703317E79022FE951B07717EED12653, AEBD2F849E019AE82162F8A2494C3715 - 31: CD44A4CE400373FFCBEE37A79A650F73FF767F9D1EBB13F9AC7DF90A013667, 3DBEB69ADFBC8B0547A823237EF4FA68 - 32: 1BFC4EF0E39A9624C74B72329F525296C75FE9B6371700F9430FAD11016FCE6F, 8C341B4333EEA104A2D813AF71E603E6 + 1: 07, 987354C062CD6251CAA6D93280EFE9BE + 2: 1CB7, B9F1620EA8374E1C2D05110878D93069 + 3: B98C59, 3793FB737C2DFB29E73DD1AD8B8F71C7 + 4: 8978F240, 5E25316ED13D3300F2EC12D718A0BA8E + 5: CB4D261594, EDA252A1A5C7D0A4AB4620F771446DD3 + 6: 30D6B6688D59, 684037DE07832C6FC38CA42BDF2A7D53 + 7: D0583F9741BFA4, 3DF53DFF73431C0245982F4EEEAD432F + 8: EE3B9596CBEFF520, D283D1B9D990739EA05F4BAE2E96BE4E + 9: 6570FC25E6103AC125, 90D3F1FA6595B775749FAE7B00A8E5B1 + 10: F56750C98C370DFDC4A0, 19389A6875FAB432B72D64BCDD6BD26C + 11: 3344AE6D9528603CC1E4E1, 87AB6FBC7F919125A7DB0D17D19056B8 + 12: F3D9D816A727D3E67330C779, 07AC0F3841DFCFEC58A5AAC22270538C + 13: 976651E63ABC3B276799BC1FE4, EE603A8C66099AD6FF8667B3F34ABF29 + 14: A48E3ABC31336C6B717A96170A9B, A9D1B973D84D3125F5F9D7923BA0A8FF + 15: F60E9B2A911FAFB0080FAA3ECDEE42, 4902F8AEB7685F7B255ECC45B5B7D3D4 + 16: 0855DE488940144AF18C65A9966DDB66, A66B3E7A75D394273AC196FFD062F9DD + 17: 172DC1740F75AB2A27B2B80895961A69AB, D6986BB95F7E4137430CAC67F773623B + 18: A414234DCCC61B65A79B7C618A6B91ACA410, 6CE32E55E158BC3E51E94116A615F3A2 + 19: 16A1B16BC0F63D63179901F1CBC772D612C102, 54007EF9822E0E4A4F953838577C76FA + 20: 539788EBF85C15B3A638017B4054D71315BFF25F, 9B2511322E16CECD53E3241F3D51EB97 + 21: 7E74595A3DCFE1EA2C91B67738765463D50A22924A, AC9C9B526251C16F112E769F9FBE74E4 + 22: A2B61792102B2E44F1DC0E48B40472CE883730504FEB, 76452A49C2524404C8A4B098D6390F98 + 23: F58174BC06A022AB7D81991E9346F5E4B0AEC535D93473, 47F96374BC094BB2C1A5D1D291806912 + 24: A3A7713895D178A85D9092EA6138323DC2FF9090D7F01AC5, 3814208FA7009A2934F9A172D029667D + 25: 385525DAF9949DCDEB22F7518AF96438E40F7D94933706A9F2, 1249F3DF50084A6D1A76AA350FD85B0B + 26: 6838E207D98A5BF8D8E41454CF51663D8F8B76FD26092D45D1D9, 301723D0F49BF8CF37828340B894689C + 27: 736413C025A549CB2550E93139DFD5DC3CE241C296C9FE641FF520, BE07259963F251743A85DF51EB1B47FB + 28: 7F2CD26367A885BD9E2B515D4E871272AC1BEA1C650B530E5616B2D3, EEB37E8451597E5A53CB49072EDA9346 + 29: 68F23DCDEF223B60B46E3D724A93BEEF8B110D4394C990AC3D0E34E1B6, 9A60344982F852EFE02CBE9CBBAB60F1 + 30: 66C5DE3EB27139983D48BED81D0E5FCE6BA1AB402C357062FE989D31C69C, BAFA0A7997A529039F0CE8528E670415 + 31: D3B9009C1A930EE288C61B0B15C7E92CB73484C345594DC5A3F377147981DB, 1EDAACF7F1F3AC7EA613F94DA4DEF930 + 32: F7818DF15FE6FBC42A28FDE1D55A2C07EC8D82AA0E7A680DBD3CF26C13448F9B, 67FEB344108008A88067E92B210766D5 OCB-blowfish (8 byte key) 0: , 07B7752047F9E0AE - 1: 72, DC5AEC862D059BF4 - 2: AA44, 3C9F6D8E6A88B5BC - 3: D58CDC, 5305AE3B67CA99D7 - 4: 40AAF438, 306EBBE817191E72 - 5: 83C6195BBC, 03EFAF8AB3F3A797 - 6: 4CA887041A55, 45685403FADBD62F - 7: AAEFC9AFC97E1B, 9658D436EBE2B562 - 8: 298ADEC7EE78361E, B90F2F68A2512CCF - 9: 12D0BF9A2091678026, DA2AA0CEAA665CCE - 10: 6E6FBED771FC0F458878, FB74D5C5E3801106 - 11: C7ED5B6E6306306E9492C7, 7B9EDE455D6FB117 - 12: A2E9E854EC2F47E367285401, 4E8610D388D8590A - 13: 358787DE6F716BDBDD1ABF35C5, 026140FE56B18F40 - 14: 927A4E1EAAD8F9A7A1976353840B, 3FFCB2659DCECCFA - 15: F02A0044174580B388CD92C92A640A, E4FAA7636675F470 - 16: FAC9731332BDF622E4070F35DA928DFF, B0FDD13E2BFF9971 + 1: CE, 7D69017C42B06204 + 2: 1D6F, 4DFD4BD58439062F + 3: 30A011, DB49D988798F8842 + 4: B71C8951, AA3261584B0C20FD + 5: 06F89957DA, 88BFA80D36427F64 + 6: 45BC4CE5FABD, 4CAF71136ED166A7 + 7: A7405F124D0296, 5D8993CE64FFF0E7 + 8: ECABEFD9E6574E4D, B69349673CF86E41 + 9: F7D26A7E82A34ACC71, AFFDEE843ABEA68A + 10: E225C5F0FA1D649F81A3, 03AC1D5DF1323EF8 + 11: 58722FBFB86C2697061217, CE731D80E6355710 + 12: E577EB8FA70225C5A18D31DC, 2F08B140F0D3A255 + 13: 92154A94CD7D42EBADB6CFEE14, DC949170E84D3CA2 + 14: 5A3C08744FD85CA262D51AC6CD25, E83CE45547403BAD + 15: 8B2E4980ABA10A20573A402D89AD12, E3D978611DD831D0 + 16: 3EDC4A0FA95BD8F944BCE4F252B6470C, 87B54BBEA86A5B5C OCB-xtea (16 byte key) 0: , 56722ECFE6ED1300 - 1: 42, 1B8DC606F46D0C70 - 2: 5AFE, C37DA08565D490AF - 3: 2210D8, C1F685A65A5D96C2 - 4: 3760B566, A3820E4369714716 - 5: DE9A8858D3, ED81EB4158EB9D32 - 6: 4822F1279F1A, 152823C615E44F93 - 7: B83B447A71F943, F9D4243069C2D675 - 8: 968ABEA6B6C65A78, 012DED12CE8E6898 - 9: B1A37D0FFB6A6FC8A2, F749AB7C40152D6E - 10: 4D48A2868E751C5CBE21, F8CB1C58475FAFA7 - 11: 0C81558633A9130A6CC9AE, B5D2075CD13D9AFD - 12: C76717CB2F62C3AEC139906C, B9518A5031D84B19 - 13: 11F7EA02488D7BB84209CDB03C, B4009DC8D6EF5C4F - 14: 4E621DDE6BD1B7944285A1CBD396, 95C178682BBB014F - 15: 98C771287305A8DD1F0EA001AB3FB0, DBBF192B778BB9AD - 16: 13AE423AB94556C3594C15F745BB6887, 4785C52B73DE0864 + 1: CA, DF53479333DB86AA + 2: 9529, D0B5A859106FCC9B + 3: DDBAB2, 3B31FFDA57CF51C8 + 4: 22EB7DD4, 2BB34D04FFF810CB + 5: 108693761A, 7AFF6F52574A019A + 6: 391FB7C61E76, 616C5E66297F2CCE + 7: 3E22E4A4A0BD13, E84C385ABE25C8D8 + 8: 94FA11D5243EE34F, 8F017DE96049D0F9 + 9: DADB6B5D27049240A7, CA69E14047C6BBA7 + 10: F79C8EA83C69DE914DAC, 1EF042DA68106C64 + 11: C5B6E04AB8B9491E6A99F8, 143515779A55C972 + 12: 33F493AB7AE62DADA38C5B24, 531BF7799A778620 + 13: 6DAA66BF02E66DF8C0B6C1CC24, 6CDF72786C5EC761 + 14: 4940E22F083A0F3EC01B3D468928, 185EE9CD2D7521AB + 15: 5D100BF55708147A9537C7DB6E42A6, 78984C682124E904 + 16: 744033532DDB372BA4AFADEA1959251E, 438EB9F6B939844C OCB-rc5 (8 byte key) 0: , E7462C3C0C95A73E - 1: 7B, 4A2E2F035C687741 - 2: 5D18, 67AFF1894807B8CD - 3: 2D22D8, 0C5FF43CA669E036 - 4: 341397B9, 96B16C84B8507879 - 5: 78DD453CE9, AE90A02A9A427B82 - 6: 607F75BEB5AF, E11F4897573F6672 - 7: 09A273F40C1F2E, 47038024E2F82A75 - 8: 0519985EF3CE9A54, BA78310DB98100D4 - 9: 66F8D6AF3B453E175A, 8E8A6032D7BA4D8E - 10: 8EA2CCD6592C9AA13B1F, 8E169657A578DA1D - 11: 6046093C8B4C5668182A86, 1E263CA9C35E06C0 - 12: 7D41AAD34685C2E6A050B860, 96AE4FDBF038AAAB - 13: F5E6D3B7773BADDEAABA140123, 7FEE0722FCC229A1 - 14: 44FA523DD21E9A57685B154113A3, 5F4F727124C9A45F - 15: 373B75BADE72A31B61D7FAAA2DFF1A, 526D5C55FBB13C70 - 16: B245D9B51E69EFF0D0F33463886B22F0, 5A575D73F0E1DD6C + 1: C5, 83CB00E780937259 + 2: 1533, 022FF70566E0BA87 + 3: 57543B, AC4EF15FC83BDF2D + 4: 01E4474B, BD817C06AC2141E0 + 5: 4CD7E850EE, 7BB6B3BDA5373422 + 6: 489C0CD1502A, 23DD4406F87EB164 + 7: 0CBAAE08E07EFF, 92569C958B722413 + 8: 073612F283F8A6E4, 1DD978D01CE8D1DF + 9: CDE676B1A3AC98B00E, C033F099E2620668 + 10: AD3BC88EEEDA40A83685, 36DA44E13C0C8A4D + 11: CA60E8B918F73E99986021, 45634CA0E43E4B13 + 12: 3B3CF82157ECEACAD8658EF5, E681F57616146CC7 + 13: EBC1A7068346EC1B7EB815A7DC, 2C806D2A909CCAF1 + 14: 97CDB3EF8276F1E7D6B6677DA2DB, 53F00B9A2E43DE08 + 15: 44169B3EDAD9506C51A6DA055EF9C2, 5BB6DD996130896B + 16: 35EC29065B1FC640015B0F779E7A358A, 867EBD0E86823F09 OCB-rc6 (16 byte key) 0: , 27B9E3F544B8F567EEBF98ED5FD55C76 - 1: 50, 19639C6FB84C516252045735CBFEB2B1 - 2: F537, 645D0FC41CCD140DB055F7E0C63F58E8 - 3: 2F980F, 317F9D3CD0DAB3C309D17432FD7A802E - 4: D868693F, E48D64588DFB9AE80C5F0B471A133B96 - 5: C171238B7D, E9027C03EA694306AE9AF3AE4C4E418B - 6: 2BBB09C1C87D, 6491FB907923B31B3904DAF44E155DB8 - 7: 344E1A1B4CF7AE, A13A7BDB91291914B33A814FF5D3FB3E - 8: F21AF3A1D17299FD, 367371D31EF18B597348AEC1F2415111 - 9: CEBDDD6DC10BF92082, 8C9EB873E39EEC6D123DC69350178DDB - 10: 7932B646E83EB855C568, B147A3F6D63EBA4B79300B1BAFE72F6B - 11: 1100687B3E8BAAEA85A8C7, 6AA2C7009E9BCC19D51E18F472260C65 - 12: 2C7BECF92891FC7B95FE6142, A83FE40AB2A5E176AC7835005E43CDD5 - 13: 29467982D6361D53357F314332, 93EF8D80A786EAFF9F59CD3365AE62B7 - 14: CDC2FB60BB5AAB6E6028032DD04F, 6FBD59FFAAF6DB2E0A0CC08AD16FD36A - 15: 8BA02FAB113254ED8EC51337605315, DB4C8651CA878CC6FAE2FDC361C1E2AA - 16: F36A825E7903BA24D8EF48E49DC2EE12, FF9BCF7D6904CF072FBAAE5EA7637DCB - 17: F22042261E247A450CCFDB90D54D42EF36, B3E2972C2B6EB9F80B9E9D5BF395B771 - 18: B1F0C3216D75C7D5F5C6834F352FEBAE4E26, 5BDDDEB129C08A9D918238B74A436AE7 - 19: 308F653B63C08990E34655FD0E556AD14ADBD2, 7132EF067DFEC0B16F2E4EE6FD7111DF - 20: 65CFEFB0F8258FA5F77AF744A97398CA768169C1, 18EA953A7C3A764DEA9A0A67A12FCA32 - 21: DA01CBB6F33C91A50B49C6A6FEB95BDDEF0905F7F9, 8F29E4BA14C1707C32F3EAD642D6020F - 22: BC35EE861788C672AE10348080346442955D6AD9CA23, D11F8A6E94E663FBFAB79FC124781A2A - 23: 02B52941575D7EDE96D336EC26290EC32D2558CC1EB2EE, 84656D07A6502A48E99E760E911531BF - 24: 0CB126C57FD06737F728090D945D7A3154316BE109A26D82, 7B242FDC18DD934F9A3486CB5B242F1D - 25: D80B8743F79DAAAA6D531E90C72EEE91721B0DBF7D7C3A7BB8, ABDDED12108723E86D4B72E2E88DAF1F - 26: 7C94C0174515FC33D8E9265AC8288E8019F6975626F7FF92AAE0, 113140E6C100BF737B5BA7411B35E3C5 - 27: 0B26D5C8F433E566096D7659ABDEE87183E3AF942859B1FA92CC86, 0BE6A8E265B619D83058C90B758D963E - 28: 61FBC6C671AC58DD515024C9E9ABB774DE2F013EAB00226F00E944B9, 0D095AB152C2FE6ACFF2527E89938A82 - 29: 0D8116EB2BA5C1DA6EB9070B00F819C3CE817085AE3D8BE8028B9F28F0, AA0A1670057C9F7A291BDD45730AF3D1 - 30: D40E8399579309A395093DD35889A558D8602D2A7C5C4CADC4E5C0195232, E534C6F04E12D2E6D97ACCFAD57C22E2 - 31: 25037C853CFF6296747B5310F1959ED0628847D8996E10414B1979E340F43F, 8DFB20AFE1B20A702AAACE1C3B9A3E3F - 32: E1C2DA2341C0DF0515F11C7AA2EFC88BECEC0228BE220615A5A26F0D9CE164DC, 5AAC9903CB8E340D031688ACDF5D203B + 1: 92, 219FD2D74D7E3F21AA6C2A507C0A546B + 2: BECF, 96A656A16FB3C4579E6955D592AECAE1 + 3: 4DDE09, 7D1882879B5D6FD8C151502BD8AB220A + 4: 0D6B4FCC, E01FBD1ECA2A6A8DC6697A06AB12BDB0 + 5: E5E19C973B, E5A86AADF2F333D5DEDCE410688CC6A4 + 6: 90BA7D2A6965, 80523A2CAB2A7BB2E90B121DE80F46A9 + 7: 6FE258148EC8D0, B7254B11276A77C5F99FE5EC91D81F57 + 8: D887080095DF8817, F3FB938068A01EF89DE0F1226C544362 + 9: D9823313289D597614, A547764EF20BD4B4B303882B64FAF2C5 + 10: FF68942112CF01701E86, 94F3860D4438428EE296CEACB3EB67F5 + 11: FFD390D3E0B64F64D3192F, 99D2E424C67EBACCD4E2EB9A0CDB8CDD + 12: 3162235748BDDECC84FC8C94, BDD400A58AF59100A731DD5B4386444E + 13: D2A0EC8B1F20672289F7236C56, B245CF42644BDAC5F077143AF2A57BA7 + 14: 830929B2850E22F6C1BA2027248C, B6B522F7D6BA3CFFA92D093B383542FE + 15: 2A5FCCCCF43F845AA77750D3BC6B1E, 53A0A0882C7844636900509921661FCA + 16: 8480234796F9EAC313140CE014B0265C, 0656CA8D851B53FD5C1AAC303B264E43 + 17: F011A67C22F16A42CEA5E493CB766964AA, 830B8158B7A96224A53FB7F3A08CD128 + 18: F76274A730A608C2AB37497A049C3699882E, 4DC4DD4DF39D0E68D6169F9DC7F4A6D5 + 19: 7B38DD237DE552A72E4369A81C30AFEA5E5063, 01A62CBD30153702A5B29FB2A1683899 + 20: 58EB866F1FCB060ACC821D776AAC4AD9E87C326A, 25AFB8FC48605E1396EA8471F55C1294 + 21: A25F2C0FAD66B3580627498EC66C994B49C5445911, 0182A951D9A3DA53675612DE8EED1FB9 + 22: 8813977F092F07F251A1497C898967F3F98F5CB878CB, 80BC353E310880A83DD4DE4FE96AB6F0 + 23: 52DC8B76F5A6F78D51FB7DB51048E2663563335EC876A5, DC3689AA079C04C19D83646B272F9DEC + 24: 965437D3FDF91784B63C73C8CD001BD9372167963DF36B89, 9FF84E2845E3C1E3E6711D1646B18F21 + 25: ADD40F674BD56FFC8F9B4047FAAD2471F0A48F4544C894F806, 9D684F74F9734F1C497E33D96A27E00C + 26: 7B049B688839BC62785082397DEC7AA94B837D094AECA4B14571, EE711DF1C15B5C9E36B6E38B6F7152D2 + 27: DD4681F9C498A3CF69A9AC876E02BD9CDC4FB1F6798F772013B62D, C5A50676EFAA2A56CBDBE55CFED3050D + 28: 471B5E89A1337E75E88AFBAACA1C011790F1657425483229E55C34EE, 20F73F2AC452FFEA423BE2EBDF33CFA1 + 29: 71812C83DE34DB329C8DCD98890AFB1F7719E890DAE5CEB7AC9668CAD0, 6FAA03E10C6FB67D425C683C6D85FD76 + 30: 4BC2DB33786CFD29B5CA5B804454169906138E90E29E7BE9197971027AF7, 75053C433EF5572A70C58EEC96F56C53 + 31: 5E3A0AB41264AB65365458ED3B7E6A25827E50075A9E347F1622ED0723E229, C8F1ECD19AD5FC970CF0D31BF46B0F2B + 32: 2E48DEE4B379CD59F5367D17DC397C1BFD53B8C4CE46A8202518614076174EB6, EFCE758ECCB6BE875D16B7E03A498D31 OCB-safer+ (16 byte key) 0: , 88618DEF98FE588E23107E9A5D89C26B - 1: 68, 78C82478DC13012FBC3F600C7A27A208 - 2: 49E0, 6C2823D624ECAD05081E558DBA873883 - 3: 0DACDA, D977DA0446DB3FE2E31EF6423C84D3D1 - 4: 9C81B7EC, 96ED39E22316D48B0652851F3F2EF14C - 5: BCE204E7C7, 2F2A2556CF50BC372E8D5EB0B196E072 - 6: 51D55B2149F9, 29E5DC8856E0ADD3FF50FD3611C336B5 - 7: 92C82E4C3DCFE1, AD9091779ED4426389E4FD148CECBC36 - 8: 6B7A7E80C71CFEC8, DE0EB38592298B6C98D79DBAF4388062 - 9: 8578B7FF0338C7261A, 8F5B1C5055E789E0D062403099F5B736 - 10: 31D3E598CF921C73AAD5, 0AC8BC98F0C0822FF677F1873BA246EF - 11: 350F10E54E34F1E132B51F, 2F22E4D9FE1E9D5B6FA2DB02CD2112D6 - 12: A41B0CEEA3B156043A9B3289, 78B8DBBE1259DA24797A65A0A6F21813 - 13: 97AA05B4EFDA98212538D90826, C49EB0F9110C6A8F64D68CA1AA05D317 - 14: E7CC0F8CEB35EB63BB5CE067302B, 2318A68066C4692BB7DAD31269E80EB0 - 15: 9530B10F9D82F2F01220E507C45DBF, F66FC64518F87E40141E273968644EA0 - 16: 8FA4B27A1F279E426403D0A4960666F3, E297DDC3038C6754B09972C9A81FA346 - 17: F2DA0B5E70287E504F1606AAE4A60DCD43, DBB1D3FCED2731757271C451FA89BAC2 - 18: 9F39E37F53A7EB41B471CD9B09C89E2640E9, 5B7139A288009BF029D8BC11610BE58A - 19: E07FD02F121F0D497339A3F604CBCCE91AD43F, 7970D40B8C4A728A351F6055B87E451C - 20: 344D288DE671675A2539720EC6C36A7C75627F76, 8C14F47BBE0F60117FEC9B3055F122CB - 21: 4E8FAA2AC06045F7FCCC386E7BD258F6796256E901, 6C02374CCB50A0E50A39DBC648E70DFB - 22: 8FC9ED1351E05EA5E04799A518CF52F21CF689B18EB8, 97A2732C6149FC54C21E5AB8B69C2A94 - 23: 9B0809249A4D0C8F095AD270FEF3DF72232FE807A92243, FA55F25502F7FEBDFB4638FF27AC7E0A - 24: 2B2E0239FC8C1A78011D73890A1169A117B7CC1E8B5B7B77, 02E373B8D36E675D47AD9BB0AC661BD9 - 25: 28D5A76CE1064E266FCADE5CB7A908E29B60B19482B1C40B3C, 689E34472FE29EACBFBB9BB059DBC90D - 26: 6A1C1885DC27697AE22D8AAE9850A8752B4F9D75A7AFF65E4182, 28B6A0DADDB7783929D7C774820CA679 - 27: 8A414CEBE09F7397D1C997645FA3AF71D19F5BD6227EA0CB47034B, 3C1441F1A4054A37C98DB6EA0268E417 - 28: 7CEB9392C3E73183567D7876F86E5373B64F01A0D1C0AC0AA0A01413, DD9BA754BA874DDBC6FB531ED46D9CC0 - 29: 59D7302D064F375940FA8C6D7ED4E4EB27025514576D4ED31037CFCD28, 4A7A7E25C56C0676F9471B0440856F86 - 30: C738EAD06D011F8F6D39076C660A8BBCE69F470D747E8BAACAB6624E59F9, 474664ED7DC02BE63C7165860464188B - 31: AE8386752CD19641133432F27A923AC03E790D6324E7D951866B30B930ECFC, 017375CF18EC2AB24D19E10459977233 - 32: DB277B162E172882DC35C0D13E8CDD2A51022F711A67491F9788F83C4953342F, F289BFE53BACA5D9818B118E5A236300 + 1: 39, 2B01B202E751F957E331ECD1CEDE3456 + 2: 13CB, 17071E5AFD5D8CE953A73F49412BE8C4 + 3: DC4428, 4B0B1881C2540FF92E7DE63C479A7750 + 4: 120382B0, 0BB11D57B5BD9D846CF31033CD4CCB92 + 5: 97F332F95B, 335E0424D0A820F60DBB968B8B5AA057 + 6: 3C7AAE72037B, C8034C2C76C1CCD7C1B3F36DD8907E1D + 7: 8A99E4A1B89B6D, 06A8165DFADF1EA5ABD89E574422DF7F + 8: 676587065F0342B8, 93ADE63994DF2189079234DC204BF92B + 9: 8EC394CBC6877B245A, 1A89F0AB0B44BC708EBD9DE489E2EEB8 + 10: 5FB5366E5CAE4DB72411, 5CA5881A5805D53ACA4904A5EEC01550 + 11: 72A1994028F09ED6A4E45C, 0FFC0052996CE45DF4A28F7A6E9CFEA6 + 12: 1D5EF20F52A9B72386D1A601, A697DF1179628DE1120D5E8D9F39DA6E + 13: 79BD002AA59D74F125AD9E32DE, 2F02CB6F70BF57BBA0DF100DE503F633 + 14: 442C6F9016DF4C090056258756A9, 58C6FD3180B9B74459D70B5684BE3F4C + 15: 4FC5543D9A892B44ED04EE8B25E232, B8B858B3D3EB4B26E867E429F88A56B4 + 16: F06E7503167C2210AB332259BAFD6AB4, 73CE2589D1DF34CA3DC2B14CC9FA6276 + 17: BCCC260BD4823B64090FB33E6816F9C330, 81ABBDC83B2544907840FEB5AF4479EC + 18: 450C1105B76F960D1A5F33D7F9D37DAE20C3, C41DDC8980E88E3986D9C84857BBE1E7 + 19: C9F36EF3A990E0554EDB59E6788F8E9BF1DBC7, 90DD543E148D9A0B79A8B376C5509E09 + 20: 3666FEEA98A4FC434EDB7517E7FCEE2320C69BCB, 99F11B360DDB3A15C42110831CCBF21C + 21: 126F39C19D1E0B87F1180F6589A75712B66209E2CE, B4D268FB8EF5C048CA9A35337D57828A + 22: C1B6D14EE8B6D0A653BFCC295D5F94E6BCA09E181D8A, 4B4883B614D5CC412B53ED4203EA93B7 + 23: D1F2A10F1A9DAB738C61CD0EF66FE5F6D1DA95DC671128, 3F1EFDA55EFEF1A0B24708E132BC4D25 + 24: 9D457216C584F43DBA1DD55C54822A8B6A86D22DBFFA14D4, 53402970B128E98A5F0D62476A38F959 + 25: 012828614B5D67C9A1EE24A1EBCD322FE9C8BE0C3F20A53714, 2BFF288D90DBDC638084F80F3F7AADF3 + 26: B1904AECF599F6C74557475E409E75E646271DEDEC7A830260DB, BF119BDBDA27773E038B7067D2B0EECD + 27: ED831771C4346FC19435354AE29F7A9436D6E8D4D42CFF26207DBD, C3F029FC8AE690E84FBD0EF806B801F3 + 28: E051B958601223FECEADF932A277BCF18C25025AE4DA791155B85035, EB75E56BE7856F1B5ED3D125C092D38A + 29: AB3449537C5E22125BC32D483F74C3A3DBDBD5232839A85D300F65B4FD, 851B0FBABD080F783BDE4F47ADCD6D76 + 30: 4E68550837130652795A8C9D68530717D2B0AA5A17F3AEF92FFB502E46AC, 10E222706527A64E757EDE4B9EFC09DD + 31: C2D7033DA7A1857D79497EA6C64779EB969046CCEE6C74E6592FEE6E7C94C4, 2015674ECA80AC9B67AE854E18A7D56E + 32: 2F3F0374DDC24AE21F02D4DA74D46C71F0CD2269A68F32F7FAA0BAB64AA8E9BC, 737C8BA1677A8CE97D42FBB07530EE99 OCB-twofish (16 byte key) 0: , 2CD8EF22E5457C7FE4016B0FB82FD204 - 1: 5E, 3E38069A9B48C86A6D5B30230AA8FB5D - 2: 16C5, 88018710A0DE759BB40F63D01D3BFEC5 - 3: 3BB919, 541D64B63CF6256A2B91641C4AD7881D - 4: 18BF1940, EEB4B67CC606C3BED042713A1C07E148 - 5: B83ECCDD6A, 99AD31F23F10784CC315534AD7DC3227 - 6: 2C6EB390D4CB, 239FD47E333C9E628F53A0AAFFABAB95 - 7: 77A6F443656C96, 6669B100ED5816E5E7EBC6E6FFE9FD28 - 8: 48ABD8C0E7880A3F, 2927A8138FF76C35644C1C260A470E61 - 9: 58618862492B904056, ADA18B1602AB662B1DADA3D17AFDA16F - 10: 421666490D83177D6662, 31A434A1AF320564DAC4AB41CB95CCBE - 11: E6C856656011B22865BB56, 8308CBA4CA2DFB3BBF50B406AF9787B4 - 12: C00BDBC3ED137D4DF4AE64A1, 3A6AAAD853FD891608E6E524CC71291D - 13: 51FC0197213EAE6C779B0D9591, 2E013655C557BF924C3377119D445A08 - 14: EFFA38E05FDC7E40A0F73CF9EE75, A20C214FEF00C5B836816D91784EA349 - 15: 5121A8E7DA2F34FCB27A211AC7B17F, FC16C8CC0F76AED1502E54E5578FA4FE - 16: C7B4BACC25D34E3235AF82EF4682BF71, 4A2D4172B5BE33532BDC16792840F807 - 17: 67C6376AA0C00FBAB7ECAE408F20004842, ED2BE2756636BEEF1EE5DA5CF727E89D - 18: 8E2262CDDF6A2523565B6B63BB86311EBA9D, 6E36E1B6ED9E116581B155B5B3CD3A4E - 19: A683E2D02AAA473F66FE1B88278C83D1E934DA, 216A3EA8AA533F47F668D8A0D2D7C59B - 20: AF5E282860165A89CE43987CD12D54E09F24F930, AAA981071FD86D7FD3D5E1A9B7B0F54E - 21: 8CC3AEA5C625B1BD7B7982E0933340C7C6F697A7F3, 211BC13BBB33CA9D9C09FF71E6C6FF0E - 22: E7A0BD9580F60EE6FB96830BC03B9DB1C714A5FB1E3A, E80D8AE804A1FC572719C9891728EB0C - 23: 8957615AC77DB6D23C5156709A8426D5D947B3BF83F80D, 839A17904B6EF3367F41D86641179E64 - 24: 89F7444059A006913EC23BC6FA07E2EDA6929F9425ED55B5, 94D3B35D083A99D7CAD703C730B7AC3F - 25: 166189030E95293421581FBC56598AC6ACF597FD07BCAB8BA7, B85DFECEB4953DCD16F1D294B77F5251 - 26: 9D1CBB72E273243A031E061FD1B7B21283C43C607ECEB5F604A3, 37A1370BAE41F2E1A538904B623591F4 - 27: D5C870356DA4B1A6B5B80958049A04F4B463453F5D54EDC3B90EFB, B1D6913246CCF26C063E282D7B9AECA2 - 28: FFF152D69AE294A239FB875C038688F0C2025F6B924EA69ED633D974, 8DA6C7D7A7535D33E92776BD51CE7732 - 29: B327AE2D692BDA7B4F0F46B8025B2D09EACA670F8E4B2D32CB538774C3, 721861B534B2C4DD83B9C3652BB78083 - 30: FED1AEDC7737586AE88324ADDE9C8396AAD39C1A24773185F47F83A4C9F2, 5987D5FE9CD91AC15C434DECBBE96F49 - 31: 3B8D6C999FA569F5BF275654ECDD27465420E4A4FD0B791B3082B6746E7494, 92CDADC59BAAB01CFEE801288F669BC6 - 32: 57A44D012A7D8EC832121B9DD374990C2236A5B5CDE525A105309A5DAB860B04, 13B2461EFBBF3E37C594C10BE45EB3FF - -OCB-safer-k64 (8 byte key) - 0: , 0EDD2A1AB692AA7A - 1: 20, D8E0A4AA7186D93B - 2: 3A72, D35ED39A0DE9BB7A - 3: 63E95A, 5DCC145AC083EBE1 - 4: 66CCE936, 43DC4736618962EE - 5: 81E790856A, 67FE11BBAC7F0CF4 - 6: 2FCC612AFA2D, D9A73706F6BF0562 - 7: 8D65EC96919C6A, 9859A2C2F467F271 - 8: B968DFF1928FFA70, D6379C99C09205E2 - 9: 1D5AEB22616196731D, 91F6EB57D46B3F4E - 10: 8712826B41AF01B45F95, 7482C4B662B4D51F - 11: C3DC292B6D37DC8299F005, D66EDF92D14E89ED - 12: 41E72489BC2089E3632C50BB, 1D058C13D261FF52 - 13: 257A6510FB990950D8CA3B6BB2, C7366DDB55647661 - 14: 74C037F38910E25D746D3A41C422, 6A89AD8D5763B669 - 15: 58610E575C2938BACF63E9612A5704, FC40C717D3962A95 - 16: C23657B24E3497C7C3A53C8D99866586, 8092D335D30512A8 - -OCB-safer-sk64 (8 byte key) - 0: , 76F16BDCE55B3E23 - 1: 6F, 9BB975FF089B072D - 2: D0DB, D469B44427B54009 - 3: 9124AE, 29DEEE037ED01B57 - 4: 3CB507B4, 3B2099163A662E8A - 5: 24916556E2, C645411E75A45A76 - 6: 3861F27498B1, 27CD404E5CBE2530 - 7: B9A4F0F215AD46, EC8ED0F8F5BFA762 - 8: 35F39C5CF8FC195F, D2EF40AB639C6841 - 9: EF387F42DFB145C157, 78A3687643B6A8BF - 10: 609B7AD698D6E75FC8A7, 19F2B4BA46C226A8 - 11: 9EB389D840B5575A431015, D6D5CD12B0A8D58C - 12: 773D76C86FC6548E9C3F7106, C84DA314B3D2A265 - 13: FA9F6A22A448EA8EBC4D5CA1D7, A1F9A8800DEE87F3 - 14: 8588A29BDA0F754902F45177D98E, FAE4F6A46C282C58 - 15: 3661A78146680EBD27E1B0A8411F6F, DBDA06B42AFE89E6 - 16: A7817AFDD86A73DBD088D726950885BC, 39EE24F1DDB14EFE - -OCB-safer-k128 (16 byte key) - 0: , 4919F68F6BC44ABC - 1: FE, 62E1BB4260A41E8B - 2: 29D3, 84F7E10309B5A9F6 - 3: 82CAE3, 21AD21271DEECC38 - 4: E8CFF492, 30A28F17566BD7B7 - 5: 42D790100D, 2712BB75C619F235 - 6: 1D7EF9DAD397, 29EA0096FE1B0F8E - 7: 2328AE9F5F8F23, 823FBB72027588FE - 8: F1EE17CE5D1D962A, 7E763B44190D412A - 9: 59995D24D2F343CAE5, D0442E8DA4B7A738 - 10: 89470C900512352C0AAD, A1B8267CEAC51DE7 - 11: FA01A56CF4043DC9016507, 3F04CA39354B7945 - 12: 234CE53F33CC18BC1D87581B, 26045CD92EEB0B7C - 13: 09F0F817F0A1C34CC1882349D9, D6690B0CD95E3B81 - 14: EE59B78A5EA7A7565519BD8394C5, BA02E6FBDAA3D9C0 - 15: BBE92ED57326C0B8BD718A161F93A2, 6F92501366610B24 - 16: E7FF3C9225C652EC6E89F4D514AB9529, FB797311AE38EEAC - -OCB-safer-sk128 (16 byte key) - 0: , E523C6DBB3CA178D - 1: CD, AA12FD56D9ADDB4B - 2: 0CC4, 98012452ED510588 - 3: 426651, 7FBDB6A5B8960251 - 4: 9EEBE085, 0697D2EB8824BC84 - 5: 346C825C29, 5BECAECCA943C6CB - 6: 12C8F7C7174F, D6F614EB7FF14058 - 7: 06494CBE89E31E, 51A7F4E7D1B85EB8 - 8: AB7DB8E035CD48D5, F18EDA93515A11D2 - 9: 5F66C9179485A4C178, 77B2EABD6B9D32E9 - 10: 44E2F4B20A7B5BC5321E, EB0D98A55F19267C - 11: 807F11C15D37266D9CAC24, A28A19BDF9967E04 - 12: 403E55B8744B21CE9EF5F67C, 5E4F91E64F5034CA - 13: C38DB3813C26D0DCDB4B3A78EE, C4C9A3A3B057511B - 14: 67FFA142996CE550C513F59F8277, DA59DD302D5B0BC7 - 15: A88F78F05F9AFF45F2625D1F450CB1, E4A32284D3D6EC35 - 16: 2EC309FC14CA2483FA63A5EA28070833, 3689A7737D796A82 + 1: 64, EB7BB60E4932C0E97A7A5906BD044ACF + 2: 3A59, E3D2024241666369BB542ED096F20C71 + 3: 67C038, 7E6F1EB3F2088F6416BB675DCAC0D484 + 4: BB36BF02, BDEEEF07EBB7A50A5201C8A2D72C0036 + 5: 6F06C0E293, C63557681D84ACCFFBFEE87D82EF1D3C + 6: 2015F94CC5AA, EF1DEAD4134D2A1A47A20F26FAA3554D + 7: A5F8CDD07964B0, 672B74D88C8AA7567C6AC4A896E0F6D1 + 8: 5EFC9D8C3B9E7F3F, DB9160C53AD429D4C22BC0E2E6C509C5 + 9: B62CB80F75594BC54F, 20020A798FF59F0472E750C796B5CC94 + 10: 970983B0F889760EEEF0, 360AE43CEBCC27755548D4984CEEA10C + 11: 75C3A8CCB30A94CD57D1F8, 79820F3B1625E216B5BC1D1A22B198F9 + 12: 033DA41CCBFE3C6897230FCE, CFE3EDD11627270CD63916508B058B7A + 13: 15358032F30043A66F49D3F76A, 98B8056A7991D5EF498E7C09DAC7B25D + 14: 71FBA7D6C2C8DC4A0E2773766F26, 22BA0ECEF19532554335D8F1A1C7DEFC + 15: BD761CD92C6F9FB651B38555CDFDC7, 8E3C7E1D8C4702B85C6FCD04184739E4 + 16: EB6D310E2B7F84C24872EC48BFAA6BD7, 12DE548D982A122716CEDF5B5D2176D9 + 17: 8DDF6CE25A67B409D3FB42A25C3AA7A842, 3E9FA2C6C65341A8E1101C15E1BBD936 + 18: 5563DFC29B750FBC647E427C5480B65846DB, 90881C6820901BD41F7B3C2DF529B8A9 + 19: 93343C1E9624321C2A0A155BA8B4E66FD92BE2, 71A641DDCD49825E10880D54BEF30E91 + 20: C256BCA0CF0ACCEEC1AA4B9372AF27D2C3C65AFC, 91D45C4DA49BBAD1809A11F4041C7D09 + 21: 3DE69FDB72C93518A3E317F7B26C425EE3DD42DA7E, 85E37B3E8EC3AF476DB7819D739D07D5 + 22: 676AC7885C7C8FBE9862242FCCC46C181440EE49AE59, BCDB42B53AC4FDDF9C3BF8849AB96EEC + 23: D71B98B88F46CC47D90BB931564CDF0157F0ABCB5E6954, 289CD5799D9E49F36D70F67726A59610 + 24: 669C16DB9DC175200C08476832155DAA52F1F8969DF3B79A, 835B210EBBE5C9D34C2E052E1843C1F8 + 25: 2F39346E14A34BBED0491929CD9F1FB3CEC412C25AB703372A, DC4B42E8BA676BA100B87BEE328C5229 + 26: 1FD0F8BD0AC95E91881635EB0CF0E4FB099CBB214CE556422E2D, 898CEB3CA8FCA565CE5B01EF932FD391 + 27: 7FBD32B3D88B7E002BA6055585B5D0E1CC648315A81CFECA363CC8, 804820B1E3813D244164F778B9C2A8C8 + 28: 877A5F336A1D33AB94751A33E285C21666F0D8F103AC1187FC205372, AF9F0AC165EAFCEE8C2A831608F166B4 + 29: ECCA297705B0395E71B9E4263343D486B29207DA188C2F1BA626EDBF46, A05DC873406B236E4DDBC038DC4D2627 + 30: FF3BD8D4E1108E98FBAE2E28BC12819CD7956BC491C0B3A291FBEE739599, 68DFE58473BA2818A23095D1D6EC065C + 31: F175230606040ADACEBAFE4D58BBD140B2D45E8BF7E5C904510B58E4B53D3F, DAF579E1A12481D39F4DCFB7C28794B1 + 32: 261388D491EF1CB92C261FD9B91CAD5B95440DE0A747144EB8697699F600801D, 749056EBEAF4F20CD8746AA8C8846C47 OCB-rc2 (8 byte key) 0: , 1A073F25FF5690BE - 1: E4, 6EC51CC8940B5924 - 2: 4468, 4C549CEC13F5744D - 3: D2CE47, 3B34AA5CACF700A0 - 4: 4D98182B, 43851C4905037752 - 5: 5784656E03, B1956D2F35E190D6 - 6: 612EC3D4BBBA, 0DA8B476C515C20F - 7: 88CA9BED760036, FA5C4349AB03192F - 8: 61219479ECCDC295, 024AFAC39AF5DE41 - 9: B2205D0B520ECD3C98, E8D7F09F54045A91 - 10: C4B8820AAF0CAFC7F16B, 32AC2DA632FFA7C8 - 11: 4EF4A33C630329020CA0B6, 00B94EC22CAA440F - 12: B26FFEC28419F7ED99B241FB, E484E08689C26430 - 13: 588D22959AB8D1582049EE0486, EE7E0E38A42BCE31 - 14: 86A1FD658FC2AC0E1ECE0D528AA7, CDEC84E55E0BE78C - 15: C00B073B48026E16562924BFC8EE5A, C65C71EBEA6016B6 - 16: D4E298B1E610FEBAC020BA0D0507F0F1, 68B094F6F2C46BA5 + 1: F4, 3D3221E92E40F634 + 2: 2C76, C22C20B7231A0DB9 + 3: C647CB, 3E6348D996399629 + 4: 2021891A, 8EF76B24E9D55FDA + 5: 1966CBCBBF, 310D24024D573E8D + 6: 42C15AC9AAF0, 217E83C0CDE4F077 + 7: AB70F3F73DF0B6, 16AB2679D96A591B + 8: B7C7DD845D7E76DD, F33065EA531545CA + 9: 468CC16A37CF63EA73, 88879733F70AE3D3 + 10: 4F769E25A7346E22A932, 26E1A92FEDEE0597 + 11: 304A8B53B1CD24C6C27C17, 48B46E9F091B0B2E + 12: 4E3DF867FEFF0B8E06D5FA70, 53BB48BFB8AB4750 + 13: 2BAB3F0A8C38A3BD3C49DBBA5A, 52303CADCBB6D312 + 14: 3D04A29924589AAEF93A29003EE7, 120EF9364B83748F + 15: 486127A80E4EC599C461451CF1D79B, 2245D51599CAD629 + 16: AF8FB3FD2DB343F1AFF564FCBEA58785, 805BF441E660B0B0 OCB-des (8 byte key) 0: , 8A65BD7DE54082AD - 1: 7E, 91C5CD7987CC46CC - 2: A275, B76B5A4ADB75D0B0 - 3: AB0C5D, 2C463609C9933886 - 4: C1ED86D4, E79AE10223890163 - 5: C4D04AEDEB, 509A81814B7873A9 - 6: E0FD095B644F, DE5139ADD9BE6250 - 7: CDD1164659654B, B0536BB2817725FC - 8: 759F0E801E5AD992, 71EEB01DFFD9D946 - 9: A1E8BCFC90324AA3F3, 5B61AE171ACD4721 - 10: 3D0BE9B40B8B7933976E, 1D33B66102AE70BF - 11: 338F0213A7C843CC335E20, 215F1AF51474E391 - 12: 9B05F57853F4319140533EBD, ED4425C38848550D - 13: 16CCD44B543C1B6939D9F7122C, 22B0577679223676 - 14: 092E7CE7DFE6C7B07A672680AF81, 761C1C267F62CFC4 - 15: ACE1AB7120D4092868143FC3E76179, 165DACD587304D1C - 16: 9D3764DCD797FDA981A440BFBFCB0F2C, 538254F6164119C4 + 1: A8, 3A83897CC8EC7CF6 + 2: 9256, DC66C39C7DD87D93 + 3: C145A0, 45967F3764F62F48 + 4: CD314BAB, EF38B0213259C3D4 + 5: 7074014741, 6748F4BAF06DD7BD + 6: 9A874CAE01F1, E382DB7235624104 + 7: DFA0D86DC4CA84, 627ABB432E50455E + 8: 685C2B2CBDD8D144, D166082E085063BA + 9: 53515DAAC7F7B8CE1D, 6680B6C26E1B0994 + 10: 2B3967812BF4155A8D36, AFED7F38AFEFC543 + 11: F4E5AC3CC5913B8A7F35FB, 6181DD3C46A6C24F + 12: F3EC89AD4235287D53715A81, 12CC354833FE5BD8 + 13: 66D554AC2CA85C079F051B8459, 097F31088CFBA239 + 14: 8746061C26D72771A7586949A3E4, 6CEF3565D0E45C6B + 15: FB3BCC650B29F418930A467EA4FB73, 64D12723E100F08B + 16: DE1C27E9B3C391AF5DF403291F2C084A, 6BADE4638AE46BE2 OCB-3des (24 byte key) 0: , 9CB7074F93CD37DD - 1: 90, DC4E7B29A434DAA3 - 2: 3139, 09BF34C4F770ADC7 - 3: 77161A, 9ACB27184F3BF196 - 4: 1F7666B5, C6578EB1CCE25553 - 5: 043240D354, 23D090F6DACE0B03 - 6: BA84DE76B081, BEBC521446F286C4 - 7: 3EF4272C6AF1BB, A99BD626436F2586 - 8: ECE6A8B0C4EF8D63, B675ACED7D2B28FA - 9: D4FCF97B677A2CDC2B, BC6B8BC16BFBFB20 - 10: DF899D92AD0FBB3CA443, 23D486A6B0DBD5D1 - 11: 1A95F4AF984ECAD4CA52EF, 34DEF497F95BF424 - 12: D32ADD65BA8604BFB0980BF6, 01C2758914C4D0DE - 13: 6D477BC51505C8FD9EDA926596, C5A338A6AF687597 - 14: 37AE388D897D22789CB79B17E1F1, 75E7372DD653DF15 - 15: F24F950FF2DD2054510E67EFCDC4DF, 705A27ECFAE74710 - 16: 1D8AD09B1124EFF0817871754FE6ED40, 3D143151197C59B4 + 1: 4D, 51541A838A154E0B + 2: 5C77, 60E86F2F1F4C6F96 + 3: B3D2F0, 7D74A9E6A061457D + 4: B3556075, EAF7A89A07453460 + 5: 1B61CE7230, F90D18620E1AB877 + 6: 3987FEC8D0D7, B5EF04DEE2E528F9 + 7: EBD0A7EBEEFF3B, A72CA24DD77A5DDA + 8: 429FB38DDABF76D4, D0578484C37227C8 + 9: F8DF28BF5C4CD28B1B, 5E7C4DC8E694E3B4 + 10: 2BF436BBE063F7E830C2, 8D919637C973C71B + 11: ED21656C8878319F1B7D29, 8813280C1277DF26 + 12: F45F90980D38EDF5D0FEC926, F9619341E273A31F + 13: 52F2D3CACC294B141B35D73BBF, 7BBC3F1A0D38F61F + 14: 2E6DA0FB55962F79B8E890E8DD8D, 8060799DCAB802E4 + 15: D6F9A6B2420174C499F9FE91178784, D3AAF969ED2F7215 + 16: 4F1CF285B8748C4F8F4D201C06B343CA, 203A2692C077F1B5 OCB-cast5 (8 byte key) 0: , 77E8002236021687 - 1: 98, 9D73A3403B345699 - 2: BF24, 80A7E8123CF54C9D - 3: 93369E, 01A967A92245F16E - 4: 5D917EED, FFFB66F53851ABFD - 5: CA6E2BAEFB, 53596129002C9B7C - 6: A66DE171E377, 25BC0AD3B0AC21AF - 7: 04A05EADA80780, 7703120B8DF8B98A - 8: DD040CCEA55C8830, E4B8ECEAADC292A1 - 9: FEEB112E469F4AB637, 92F0ABA0A554C9B6 - 10: 5BE2019137752075F35D, 0DC52AED0F2C3894 - 11: 75DEFFAF2C152E6745A97F, 7752A70A2D9D184C - 12: EF90E23366790D62DAE5BA66, 829A9C7684D03C5E - 13: 0A4689BD15E338056782F19B13, 5676FAE6E2745929 - 14: 2534CCD55A471E5840447B6BAE6A, 33D1B4876EFD5FE0 - 15: 6FC1B4FD3A202CB14D9ECCF88F0E55, 13D8EDBE1BE8F0A5 - 16: E8BACB11E0864011D72B599025DA2FDF, FE7397323F7DF138 + 1: 52, D57DF1037B6A799D + 2: 31C9, 7E781759B057D695 + 3: 5C8324, 56965D6CB2C97C0C + 4: 17D99099, 7C52B5D09475F5D3 + 5: 400082C475, 3CA5CDB9B4A0FAE9 + 6: 4DF0E4000C24, DCFEE2C3384F9731 + 7: 10004C3CE32255, 0A6832F985F61658 + 8: FFA6EA76B346893C, 6202693B153254D6 + 9: E96378C94D246AB51C, 5B259FEB715B9159 + 10: A9BED2D59A92D3D9418A, 1E7E066C098A023D + 11: 4EF144B7D4622BAD4DC840, 5DAB2C1D0DF56B08 + 12: 6DBCDF56E57CE47DD3D0CF44, 2A24F2A224368F55 + 13: 43241A0AD933635D7C8EAD47DC, 86B4B5AC22177F19 + 14: 920D6BDBE073F3C75052420C883D, 10943DBB23BD894D + 15: B2C75DF024269833B039CAB19EC865, 84B7DBB425E45855 + 16: 6A9424B6A873BB7155C01DC87E23EC52, 82C5047655952B01 OCB-noekeon (16 byte key) 0: , 72751E743D0B7A07EFB23444F1492DDC - 1: 65, 2BDF86A7C46460BDBB8252E176CB7105 - 2: 9BAE, DB8AFF53F1AEF4FC5A9BF3E1A5DE9430 - 3: 96C214, 25585611B7FE5EC176627DB0BADCBEA4 - 4: B6046645, 32F5FF1347797760C872D92FB3E48085 - 5: E5C89E89E7, 5B1868C4655FF6B28BEEDB0C8A37CBC6 - 6: CB6CC16CBAA8, 8A7C7213989BE3D89D8EBE31024DDDE1 - 7: D09EE74CF99850, 565DA08FB8F154FDBAB27E432324BF77 - 8: F389A90F999147CC, 618535B5685A9F76012B99B0C6FDFAD5 - 9: 32B110B50A8D6F67D9, 379DBCC0B20E3523935621A7C1506A28 - 10: CAF759FE91C8794D8D93, 50EA638B83E1C85F210989495A8724CC - 11: 332B07DA0F942C8F22C1E7, 504DCD9521A42C77C05CE9ABF8FB4FA0 - 12: D0C422738243A89E54B734A3, FD4FF9C337CF2785EBEC0C128482371B - 13: B899277B6557E5E685A5649E64, 868F039212C96E212E280A4DBA6555FE - 14: 15E617DAACB18D93428C3BA043B1, E072A199CFAA617CEA2A176B75682516 - 15: 58B04DDD83045E773811BD6C371978, 6EEA2DCB6DECFC0B542DECAAD37024B3 - 16: 8DE6C50DD08FD141E7FF20FE3262A340, 6F826FA2FCF34E4285975DE9FB0FC4D4 - 17: A14711565B0CBA6C88370737F97F803F7E, D84950FCD2C72536711A1503348975A7 - 18: 5AEE5927EF89D3A09CDA7CC7183EEB701471, FC8DB44F4D6188581A0567C3DF2C498D - 19: 12ECFBFF02C5A37DFE7772732659ADFD7DC349, 8ED7F4AB648339A174ADA3317BF82C64 - 20: F57930534156A623A05FA3A30B4CE5339E8209A7, C78081E80D95BE642DC4F194C902AC3B - 21: FF92DF299ADF1EBD22CEAE3876B5DED0AE5EEE2F9B, C491571613AA18C9C4305A9595575EE1 - 22: 2BBCC3079A01962F7B406662A20924C2AA5D65493FCE, 6AF63F2B8831F8CD41522D32A8BD1C1B - 23: 9F05A8AF6256ED46EED6BE3E5F9F5F13A3804AC0DFC110, E310472DB635D60B5BAD5F5B3E24E768 - 24: DCD82591D67AEEDA00ECAC67E91BC62CF42FE69D6B9A427A, 9758F103B57D3AE6533F736F17C95D48 - 25: B6388AD629A4A951F2CDE98C80A81C8C499ABFE073EE81FD6A, 70A8217A7652D8325EB717359C1D7830 - 26: 51D9F3341368BE00BE709F6F009BA53F852CA27ADEF439CB5A59, 6772C710B9D6159F1B0F4BC2BD5DC1A4 - 27: 4710196F162BFF2BD87945AE012CE9FFC7C6EB651C716DCFBB6706, A338043240EA22FB4B50A1D6BCA241FA - 28: 8120FAF7FC1FD6157519A296EC5513F2907ECB8792219CFBE0A3E17E, 45EA2ADF503BCDFD60EDFEA24168D539 - 29: 34FFD8289321EBD9029158A2C217DC867436CF5346B3B940B3B9339C0A, 3A7C1C2F5CFADF3F4C601C005333826D - 30: 8E97C51214057F523B915BE5EE84D72979254577077FD6D9FDA63215668A, BB5E2FC288DE613716BA3F3A69F6D17A - 31: F1A13BEC82D4FB33A5E5E6E1A5DD47DDC7F67AF5EBCAE980AB1B641A76FBDE, A2BBEA281BA38731F855EF8533B94C60 - 32: 77CC8CB5ECBD4CDFC9BA9414B6E6596D7ED01B24C46D9EBCFE150FEA2687EFC3, 5295D9ECAB6E2CC4C6C60D27F4A5E7F9 + 1: 61, 41BDE9478A47B2B612A23752B5A42915 + 2: F4EB, 90EF542D89F867CDFB1A0807F8AA3CC6 + 3: F5A59B, 1BED873B613096546D4C201347CC3858 + 4: F454610B, FB4035F28AA75221F599668ABBE21782 + 5: 382FC932F1, B40270E2084E8DCEB14C6603D080D7C2 + 6: 18F921441119, 47F1F889B307298150750E81E94AB360 + 7: EF01C70C9D1810, AE0439DBB3825F27CF846B43E4C3AA80 + 8: 89863EDCAD471C3A, F4E8AF73BFC4CB79AECBBB3774DAF8C2 + 9: A6F494092E066A70F6, F73D3B04752B7D913420C17E656C7F86 + 10: 342459682E0A8D53AF4F, 61E7CF14E9878E0726C64B1E8CA08BFF + 11: 65E520D5A99825DE2441D1, 7A2AA740D786EB7015C61B31959E55D9 + 12: 2F96D0BB72E37DA202410302, 1A313242527FB522289094B9AFDB5F7B + 13: 3E8F8A1FCEE3F866EC29128BA0, B8065DA2DABF04129E5AE28ECC11A15B + 14: C2C15976D3C2499ACB9454878131, 372CAD486E104098EB1AA78A2922A1BE + 15: 1F12CADABAEE80E448B7EDCB42F8FE, 86A38DE5363787F55B16462C684E08DC + 16: 3B9ABB3304E75BF5B63E7F5B5A3F3980, 1FBD6B93E457B9779E2D12D78301EFA9 + 17: DC0CD805E43675A4317452E378AD48AC4C, 40AE4AFA4B3E580EFDB4AD0AF5BC4E4A + 18: E9DD52EA7264C6C7BBA39B761B6E87B65687, 4061DD65D5E7FFFE8D3D4261494D4F8C + 19: 80A9735CA1175072823828123413CCE772D521, D3378A12E79C49A37378DF527A460AB2 + 20: 09AD495AFFBF7CB8841262E7E5E8952878D4391A, C25D7A98C6F260B5FBCA3B8B5F7F33C1 + 21: 3925615707CC40C351D4A49794778545BC1F683175, 97622437A7208383A4A8D276D5551876 + 22: 5BB0D41ECD7BD2CF0B12A933255D95A3FE35E4C896BB, 4B8AD84EEA3156765A46AC19C68B6F88 + 23: 1EE71FE23CBFD5683AB1B391FC12B4E5952E4E6AA3D189, B0FD75996F28E071EB6C86BD7102BAA5 + 24: 0AA3D8C98AADEEE1867B13B017DD263BD16E960DA64FD071, 5204780963A62C2F4F7B3555BFF73836 + 25: 3A88B6F2AE321B226DA90B98E04A6A1589411BEDBE994632D5, 5638AF04EACF1EB986AC0702B4373A22 + 26: C2731661AC634A4DC0345F040DA7AEE507A3B9D019B5958543BA, 4C67D3FE37ABEE928B3BB812E7346823 + 27: D3E7651AA6DA035D05D599EFB806E8FD45177224593B5974758419, 5814E84258E1B9BD56A188AAE6F25138 + 28: 17818E7102B8C123230C5D64F18BE94C3159B85C8F7B64A7D4712CDA, FAA905B587A93DCF600BA8589A985432 + 29: BCA4335C6C29D978032C216114D39C01C6F161BF69D5A1CE55FBA8C575, BE24424A162E43A19755E2EFD274DBED + 30: 24C33CEE022F8A633DE9DFD009F535B52BCF64F390D2375E5BED65B70D08, 138F21D54B6B7E34628397DCDE0D33BF + 31: 838FE950C8165ADBBD6B61E9732F9A727CA7AE74376981382F0C531C331915, 0742E769CCBA2D1CAC7CAD4E0F012810 + 32: 57CD778DAD477271794FBF763662D97F8A10B17D70A69FDCB974FFE67E558519, 942C7D1C200C3845748F8131DF71AE26 OCB-skipjack (10 byte key) 0: , 90EAAB5131AEB43B - 1: 01, D8C438498F94B782 - 2: 23BD, 6D650F6CB26C0BEE - 3: E5D16E, E4459817F4A898E6 - 4: 126212FE, D97B43C7BFB83262 - 5: A1580EA0A3, BC7C325FF295A404 - 6: 9374B704E26D, 97DBA225A0F0136E - 7: BC2E8E234CBE33, 4603D9A50B9915ED - 8: C7629762CF53A687, 5DAF80ABDD01CD74 - 9: 151D35020935EFB225, 0898987E5F710240 - 10: 934BF9846689A0DDC434, FF698391DE287C55 - 11: 8AF680448D95D32DE31B03, F60110D8968D1FB5 - 12: E03FDF4028EBB30164C297D7, A80E7FD7A5028E62 - 13: 614BF4A0A567314FA3990020FC, 6B1C9D495FED96C7 - 14: D8BFFD57B4BB8C100F3F026105C3, 2F99A8895B86B798 - 15: 81B2DD86C7252B4FD8D4FD385E65BB, 7788260BCABCCC8F - 16: 8AE9FEF234B5FC98AE95C1AFD6780C61, B332941A6EB467F7 + 1: 2F, 6274B82063314006 + 2: DAF6, 6A6BCCE84FD4EF02 + 3: 5C2A88, C83D54C562A62852 + 4: B6E8FB5E, C44459EF41C8F296 + 5: 6C0888C119, 269DD7657BD0225F + 6: 1FD9AD7ECCC3, 3CA090F46B107839 + 7: 1EDBFF8AE458A3, 440380BF9745132B + 8: 04DBECC1F31F9F96, 2653620A4877B0E6 + 9: 908AE5648AF988A896, 00180FF33C1DD249 + 10: 53E63E0C297C1FC7859B, 36616209504C4230 + 11: 407BE16144187B4BEBD3A3, 4754B7DD4DB2927B + 12: 9961D87CFEDDF9CC22F2C806, 5947FC41E6B9CEC9 + 13: 9F5254962E4D210ED8AC301252, 97A392BEAF9B3B04 + 14: 379FDA76ECCFDAAC10F67FBF624C, 1D895ABD932BD5EC + 15: 1D5A7AD556FF3078284BB21A536DAA, 01FAE2F4936ED9D2 + 16: 4B8B71396924880CB33EA6EC6593F969, A0F4B1BE3B9B4CCE diff --git a/notes/omac_tv.txt b/notes/omac_tv.txt index 2139358..e74f76f 100644 --- a/notes/omac_tv.txt +++ b/notes/omac_tv.txt @@ -199,82 +199,6 @@ OMAC-twofish (16 byte key) 31: C24FCA5DD4AE0DF2BFF17364D17D6743 32: DC6738080478AF9AF7CA833295031E06 -OMAC-safer-k64 (8 byte key) - 0: 726FE2DD40A43924 - 1: 2A138B65EB352621 - 2: 9588A1B53E29616C - 3: C025DEFDE1A59850 - 4: 73D062F1B6D8E003 - 5: 944598A2FC8A2D76 - 6: B176C25D8CAFFC98 - 7: 14F05014DE6A090A - 8: A7B9847B2CE22D0F - 9: FCD71310CBAA3A62 - 10: BFF00CE5D4A20331 - 11: BEE12A2171333ED5 - 12: 333FD849BEB4A64A - 13: D048EC7E93B90435 - 14: F04960356689CFEF - 15: 9E63D9744BF1B61A - 16: 7C744982F32F8889 - -OMAC-safer-sk64 (8 byte key) - 0: E96711BA37D53743 - 1: 7DCFF26A03509FE1 - 2: 0A20EF19C8EE9BF2 - 3: FE2883748A6963CF - 4: 557060195B820A18 - 5: 771A7931FBBE5C0F - 6: 6BDBCE5F96CF91D8 - 7: F3B924CCE8724595 - 8: EC7191286D83C2C3 - 9: 94F55B19BB7A8AC1 - 10: 2189F4F2B06A8CA4 - 11: 99853DAEBCA33A46 - 12: 66EAC37A033802D7 - 13: 845D7AA866F8A8AD - 14: 33A874DFECAC22AC - 15: 63DD9F7A7F3683DF - 16: EAC277D951676C44 - -OMAC-safer-k128 (16 byte key) - 0: 8037B89AF193F129 - 1: FF2314E87BA6AFE1 - 2: C3243DF896B61D85 - 3: 0F61C715CE821AB8 - 4: EBFDC6A9CFD2F5A4 - 5: AB6497D7AF2C7FFF - 6: C920CEEB7C1819C2 - 7: 3E186951B545A7E5 - 8: 5EA36A93C94AF4AC - 9: 6A2C59FAE33709BE - 10: BF1BAFAF9FC39C19 - 11: 69EB6EF046677B7C - 12: CDDCEE6B20453094 - 13: A3833BD3FED6895C - 14: B6C05E51F01E049B - 15: 90A2D0EAB739D39B - 16: 07BF607A161D0A66 - -OMAC-safer-sk128 (16 byte key) - 0: 5E8B137A3946A557 - 1: 0228FA66B13F3C7E - 2: A6F9BBAFF050DCDD - 3: F75880F684A796CE - 4: E0AEFB8E32040EBD - 5: 9F65D658B86D310F - 6: 3FA52804FB46CCAA - 7: 2F6D12D199FCD2FB - 8: CB56AF60AFB4D2BB - 9: 8E6F0FF6FDD262FD - 10: 490245BE3CCCEDE2 - 11: EFD319AE46C73005 - 12: 43E00E545C848995 - 13: 10444B41ECA15EBE - 14: 521775C389D5BE71 - 15: 9B683EF8B097FEBA - 16: 3C5D746EED09530A - OMAC-rc2 (8 byte key) 0: F001FE9BBC3A97B0 1: 8F8DC9C952897FBD diff --git a/notes/pmac_tv.txt b/notes/pmac_tv.txt new file mode 100644 index 0000000..6a920cb --- /dev/null +++ b/notes/pmac_tv.txt @@ -0,0 +1,331 @@ +PMAC Tests. In these tests messages of N bytes long (00,01,02,...,NN-1) are OMAC'ed. The initial key is +of the same format (length specified per cipher). The OMAC key in step N+1 is the OMAC output of +step N (repeated as required to fill the array). + +PMAC-aes (16 byte key) + 0: 4399572CD6EA5341B8D35876A7098AF7 + 1: 580F7AA4AA45857C79BA2FB892228893 + 2: 24D2D1DBABDB25F9F2D391BB61F4204A + 3: 083BF95E310B42A89751BC8E65ABA8B5 + 4: 69BEB9268CD7FD3D7AB820BD7E226955 + 5: FD71B0E647ADB4BB3F587E82B8B3401A + 6: 07EA46271081840737CEB1AC9E5E22E3 + 7: FFA12AD9A9FDB5EE126084F82B381B10 + 8: 8A11AF301AAFEAC8A75984ED16BB3292 + 9: 368BDC3F4220E89B54C5F9D09FFB8F34 + 10: 8B6DBFF776FD526147D1C4655626374F + 11: C538C09FC10DF38217CD8E799D8D1DC9 + 12: FC1264A2051DEF73339432EA39443CFD + 13: 8AF37ED2FB2E8E30E9C4B75C1F1363E1 + 14: 4295541FC62F6774068B8194CC9D9A46 + 15: CFAF4D8EA09BB342F07131344DB0AA52 + 16: B6CBD6E95959B2A8E22DE07E38B64D8D + 17: 3124E42DE3273B0F4806FB72A50F3E54 + 18: 252D49403509B618AB3A6A1D99F9E9FA + 19: 9CDA75594CB696EB19C022DDA7324C10 + 20: 33BB8AE43B7BC179E85F157FA19607D0 + 21: 12FE91BCF2F2875379DC671C6F1B403E + 22: 416A3E519D1E406C92F8BB0DDBBBB6BF + 23: 6F98DCCD5A8D60DEAF612ACCEDD7E465 + 24: FFCE7604609B2C3C050921854C638B7E + 25: DD2BB10AA07A5EC8D326BB7BF8D407F4 + 26: 468BFE669FCDF354E4F9768FE1EAF8F6 + 27: 01724D2F2C61EB4F380852218212E892 + 28: 2D90EC658F57138505598C659C539A3E + 29: 6301EAA0E1500FFEB86752744EFFF23D + 30: 3CCB177486377616056D835F6F857F7C + 31: BFB3C7755C1F4543B516EB8610CB219F + 32: D5C505847D7CFFD8CED848F6CB613105 + +PMAC-blowfish (8 byte key) + 0: 3B7E4EFE92FA46AF + 1: 746840017C38C892 + 2: 3B6A92C731465B64 + 3: D89D3B05143B6704 + 4: 43F70D54B808B7CE + 5: 84E4063AB32F046C + 6: A7E78CD5CCD23805 + 7: A78FB083475FEF10 + 8: D4F6C26B5386BA25 + 9: 184768A079853C90 + 10: 0702E6C8140C5D3B + 11: 786D94565AA0DF4B + 12: F6D36D3A2F4FB2C1 + 13: 7BB3A0592E02B391 + 14: 5B575C77A470946B + 15: 686DAD633B5A8CC3 + 16: BDFE0C7F0254BAD5 + +PMAC-xtea (16 byte key) + 0: A7EF6BB667216DDA + 1: B039E53812C4ABDC + 2: 87D2F8EA5FB6864D + 3: F85E3F4C1D9F5EFC + 4: 4EB749D982FB5FE2 + 5: 0BFA0F172027441A + 6: FF82D01F36A6EC91 + 7: 3BC2AA2028EBBD7A + 8: 15AA03A97A971E2A + 9: C974691F5D66B835 + 10: 4FC7AA8F399A79ED + 11: 2633DA9E94673BAE + 12: 82A9FD48C5B60902 + 13: 31BF6DA9EE0CE7E4 + 14: 26B2538601B7620E + 15: D103F3C0B4579BE5 + 16: 031346BA20CD87BC + +PMAC-rc5 (8 byte key) + 0: C6B48F8DEC631F7C + 1: F7AA62C39972C358 + 2: 0E26EC105D99F417 + 3: 7D3C942798F20B8C + 4: 415CDA53E1DE3888 + 5: A314BA5BCA9A67AC + 6: 02A5D00A3E371326 + 7: E210F0A597A639E5 + 8: D4A15EED872B78A2 + 9: AC5F99886123F7DC + 10: 69AEB2478B58FFDF + 11: 8AB167DFC9EF7854 + 12: 945786A136B98E07 + 13: F3822AB46627CAB5 + 14: 23833793C3A83DA9 + 15: 70E6AB9E6734E5A6 + 16: 0705C312A4BB6EDE + +PMAC-rc6 (16 byte key) + 0: C7715A17012401DE248DC944DEEBD551 + 1: 5B804C6CCDF97BB28811C9ED24FE6157 + 2: 7528378C052F4346253CB0DFA3D251C7 + 3: 6DA86EE0B28606861B1A954D7429A93C + 4: B4DFF84C25937FB50EE79D4037323160 + 5: A60FD9BE5E1FF67EC9734776C8781096 + 6: 81D3F8EDC0A197DD3739EAE648F38580 + 7: 8BAF47F02120E898916D678DBD0C1641 + 8: 7A9EEC96F10B7CF557B61EF35BB55B08 + 9: B88C11221014F8AE048E56C427DF4A46 + 10: 4BBA8EED89F357861A265006816D9B04 + 11: 8497C1D55010A65ED8C3688B75A7CABF + 12: 95E1720C06A373CAD1A22F432F26BCCA + 13: A175FB732692831E96AFB587BC49E18C + 14: 54EBC04FCFD90302907BF77C4D8AC77C + 15: EA9F13EE5548CDF771C354527CDDA09B + 16: 4EDBCFD0E2E6B321530EB31B3E8C2FE4 + 17: F412304C1A5B9005CC3B7900A597DFB5 + 18: 3B9247C12BB25DF048BF5541E91E1A78 + 19: 39626488635D0A6224CD23C13B25AE8E + 20: 40305F5C2FCEF34E764E33EF635A3DC5 + 21: F84499804086033E85633A1EF9908617 + 22: C4D263CDC7E0969B8AC6FA9AD9D65CB8 + 23: 6137DC840E61EA6A288D017EFB9646FC + 24: 8619960428EB29B1D5390F40173C152F + 25: F0464509D0FBDBECEC9DFC57A820016D + 26: 630EED23E87059051E564194831BAEF6 + 27: 4B792B412458DC9411F281D5DD3A8DF6 + 28: F2349FA4418BC89853706B35A9F887BA + 29: FEAC41D48AEAB0955745DC2BE1E024D5 + 30: A67A135B4E6043CB7C9CAFBFA25D1828 + 31: EC12C9574BDE5B0001EE3895B53716E2 + 32: 44903C5737EE6B08FD7D7A3937CC840D + +PMAC-safer+ (16 byte key) + 0: E8603C78F9324E9D294DA13C1C6E6E9B + 1: 3F1178DFC2A10567D4BCC817D35D1E16 + 2: 27FE01F90E09237B4B888746199908EE + 3: 4F5172E3D8A58CD775CD480D85E70835 + 4: 74BED75EFAAB3E8AA0027D6730318521 + 5: 54B003AB0BE29B7C69F7C7494E4E9623 + 6: 8A2DAD967747AEA24670141B52494E2F + 7: 69EB054A24EE814E1FB7E78395339781 + 8: E59C2D16B76B700DC62093F0A7F716CC + 9: AB227D6303007FD2001D0B6A9E2BFEB7 + 10: AE107117D9457A1166C6DFD27A819B44 + 11: F84DE551B480CED350458851BAE20541 + 12: B0EB5103E7559B967D06A081665421E0 + 13: CDB14F3AD1170CE8C6091947BE89DE7B + 14: 24FA2F476407094152D528FCF124E438 + 15: 440144B31EC09BD8791BFE02E24EA170 + 16: 697D268A46E8B33CEC0BAB8CAF43F52D + 17: 587CBDE7608449BD162184020FBFCC8D + 18: 3EA999C2169CC65735737F50FCD7956B + 19: C6D692698CD8BEEBF2387C6A35A261B0 + 20: 46DAB3AD3C4E2EF712FAC38F846C63E1 + 21: 7261E68B530D10DDC9AD4C9AB5D95693 + 22: 4D0BA5773E988C2B7B2302BBA0A9D368 + 23: 8617154626362736698613151D1FD03A + 24: 23CF25F68B281E21777DC409FE3B774A + 25: CA626956C97DC4207D968A8CC85940B8 + 26: 24C39BE160BDBB753513F949C238014E + 27: 83CD65C010FB69A77EEDEA022A650530 + 28: 1A72DC8438B927464125C0DFEACDE75D + 29: 546054936A2CB5BFBB5E25FFD07C9B51 + 30: 0EB81A268F1BB91997CB9809D7F9F2AD + 31: 7D08B4DE960CADC483D55745BB4B2C17 + 32: FD45061D378A31D0186598B088F6261B + +PMAC-twofish (16 byte key) + 0: D2D40F078CEDC1A330279CB71B0FF12B + 1: D1C1E80FD5F38212C3527DA3797DA71D + 2: 071118A5A87F637D627E27CB581AD58C + 3: C8CFA166A9B300F720590382CE503B94 + 4: 3965342C5A6AC5F7B0A40DC3B89ED4EB + 5: 6830AB8969796682C3705E368B2BDF74 + 6: FF4DCC4D16B71AFEEA405D0097AD6B89 + 7: ADB77760B079C010889F79AA02190D70 + 8: 5F2FCD6AA2A22CEECAA4671EE0403B88 + 9: 70DD6D396330904A0A03E19046F4C0BF + 10: 8A2C9D88FA0303123275C704445A7F47 + 11: BA0B2F6D029DCD72566821AB884A8427 + 12: C8DF45FF13D7A2E4CFE1546279172300 + 13: 512659AD40DC2B9D31D299A1B00B3DAD + 14: A8A0E99D2E231180949FC4DFB4B79ED4 + 15: CA161AFB2BC7D891AAE268D167897EF2 + 16: D6C19BBDFFC5822663B604B1F836D8BD + 17: 4BF115F409A41A26E89C8D758BBF5F68 + 18: 02E3196D888D5A8DE818DBCBAD6E6DC7 + 19: 995C9DD698EC711A73BD41CAAE8EB633 + 20: A031857FADC8C8AFEABF14EF663A712D + 21: 124695C9A8132618B10E9800A4EFACC5 + 22: 997E5E41798648B8CE0C398EF9135A2C + 23: 42C92154B71FB4E133F8F5B2A2007AB2 + 24: 945DC568188D036AC91051A11AC92BBF + 25: D5A860CC4C3087E9F4988B25D1F7FAAE + 26: 6CD6ABF8EDF3102659AFFBE476E2CBE8 + 27: 45ECD0C37091414E28153AA5AFA3E0B2 + 28: CBA6FE296DDE36FE689C65667F67A038 + 29: C4022281633F2FC438625540B2EE4EB8 + 30: 864E27045F9CC79B5377FDF80A6199CF + 31: 0D06F2FAEC5AA404A4087AAEBC4DBB36 + 32: 0F396FE9E3D9D74D17EB7A0BF603AB51 + +PMAC-rc2 (8 byte key) + 0: E5AF80FAC4580444 + 1: 6A15D6211EB4FF99 + 2: DDB95E9486C4B034 + 3: 9764761DC2AAD5C0 + 4: 1B1CD2E799D44B4F + 5: 4F80FE32256CF2EC + 6: 7B70CF31C81CD384 + 7: 9BC10DD9332CF3BB + 8: 628189801879FDD8 + 9: 5FC17C555E2AE28B + 10: E20E68327ABEAC32 + 11: 5D375CA59E7E2A7C + 12: A9F4CFC684113161 + 13: 3A0E069940DDD13C + 14: EAC25B6351941674 + 15: CB8B5CF885D838CF + 16: DCBCDDFC06D3DB9A + +PMAC-des (8 byte key) + 0: 086A2A7CFC08E28E + 1: F66A1FB75AF18EC9 + 2: B58561DE2BEB96DF + 3: 9C50856F571B3167 + 4: 6CC645BF3FB00754 + 5: 0E4BEE62B2972C5A + 6: D2215E451649F11F + 7: E83DDC61D12F3995 + 8: 155B20BDA899D2CF + 9: 2567071973052B1D + 10: DB9C20237A2D8575 + 11: DAF4041E5674A48C + 12: 552DB7A627E8ECC4 + 13: 1E8B7F823488DEC0 + 14: 84AA15713793B25D + 15: FCE22E6CAD528B49 + 16: 993884FB9B3FB620 + +PMAC-3des (24 byte key) + 0: E42CCBC9C9457DF6 + 1: FE766F7930557708 + 2: B9011E8AF7CD1E16 + 3: 5AE38B037BEA850B + 4: A6B2C586E1875116 + 5: BF8BA4F1D53A4473 + 6: 3EB4A079E4E39AD5 + 7: 80293018AC36EDBF + 8: CC3F5F62C2CEE93C + 9: EE6AA24CE39BE821 + 10: 487A6EAF915966EA + 11: D94AD6393DF44F00 + 12: F4BFCCC818B4E20D + 13: 2BE9BC57412591AA + 14: 7F7CC8D87F2CDAB7 + 15: B13BFD07E7A202CB + 16: 58A6931335B4B2C2 + +PMAC-cast5 (8 byte key) + 0: 0654F2F4BC1F7470 + 1: 3F725B162A1C8E6B + 2: BCFBDC680A20F379 + 3: 027922705BCACDEE + 4: 44E2F4BE59774BA4 + 5: 3ABD1AFC8EE291F7 + 6: D96347E717921E96 + 7: 96257299FCE55BC6 + 8: C2C1DA176EE98170 + 9: FD415C122E604589 + 10: DCBCA228D45AEDA4 + 11: 7801FBCFAAB9DF75 + 12: D38CB38574474B7F + 13: F5C5A23FF3E80F37 + 14: 83FA4DAD55D092F5 + 15: BDC0A27EE0CB1657 + 16: 87D907CACA80A138 + +PMAC-noekeon (16 byte key) + 0: A1E4C84B5958726557DF0855B37AA551 + 1: 5DE20299CA919D3365B493D3D4895F92 + 2: AF7E70C336571A857F62A18649EDB197 + 3: C5F55CFE1AA119C352B64252AD246CBD + 4: FEF68A0CE08E8BA315B73B62F861824F + 5: 8321C2958DE4903DC12C42A8845ECC20 + 6: 370466D1324AECF1F5B42E0E01381613 + 7: 5CB900190F5CACBACFE5EAB0CC289D87 + 8: A13C043E6CAAA1E34601A93C497446A4 + 9: 865E11622A4CC8A9E1408E00F56C4543 + 10: 9DC42C26868374649BD17D69D025CA1B + 11: 37D33C11B433C91DA09925CA9E86757A + 12: 1373D769C270E7137C953AC0F8F37941 + 13: 7E81DEC583348B1E2F6267ECF82CB994 + 14: 505B6329338556518FF364CAA730F5E8 + 15: 0C085AEEB315968B0BDE904E8BBC6FD0 + 16: 5FED63259364BE7E5133FF0507DD2D4C + 17: F7EE5C80A99AAEADB49E7CC69BFFF679 + 18: 4388FA5E763A641130940EB705BEFD08 + 19: 1BC31CA79EBE1674CEBE01BC9988267B + 20: BE88961637EFFE2D6905D104FEDD51A4 + 21: 9C341004FB22AFCC496094E3207CA761 + 22: B9DAA3620E38FFC7C5D5E7D2D8FE3DE4 + 23: A38D2E571F037061B4400F1131FDBDEA + 24: 61DB71AE77A6EB47F2E9E14E8CBF2F4B + 25: 9903A072274CC048EF2C51493266D9ED + 26: 1EBEA421DD08859C17DDF39B20A82102 + 27: F425858618E1A86F4912E4714EFB9E75 + 28: 3B3D4EA07F7FE6DDFDD02D624ACDFC9F + 29: CEEE256591D701514EB17DF73B08A970 + 30: 5CC56D5D46120C530A23B6C511C685FC + 31: 68E484CE18BE28EADD0BBF23291B8237 + 32: ABD58A9CDF8AA68168A1A402074CF520 + +PMAC-skipjack (10 byte key) + 0: 9CD94B75BC43B647 + 1: B069ACB82B12BC7B + 2: 6DD40E71EB03E311 + 3: 74CBED61D77DBA7D + 4: DD1B7E0D181537FE + 5: ACB5B96FA0AD1786 + 6: B34E01EB2567D381 + 7: 9623DAADE57B9549 + 8: 8BA384BABB798344 + 9: B147AA9D5C5C67CF + 10: 0033C520F4C67523 + 11: 42DAC184BEABC3E5 + 12: 428029311004AEBB + 13: AC2BB1C0F0ED649B + 14: F7CAA9A3BF749C1A + 15: 2C5BD475AAC44C77 + 16: FEB892DA66D31A84 + diff --git a/ocb.c b/ocb.c index 7b4290c..4ab4aec 100644 --- a/ocb.c +++ b/ocb.c @@ -8,6 +8,8 @@ * * Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org */ + +/* OCB Implementation by Tom St Denis */ #include "mycrypt.h" #define OCB_MODE @@ -34,11 +36,10 @@ static const struct { int ocb_init(ocb_state *ocb, int cipher, const unsigned char *key, unsigned long keylen, const unsigned char *nonce) { - int x, y, z, m, p, err; - unsigned char tmp[MAXBLOCKSIZE]; + int poly, x, y, m, err; - _ARGCHK(ocb != NULL); - _ARGCHK(key != NULL); + _ARGCHK(ocb != NULL); + _ARGCHK(key != NULL); _ARGCHK(nonce != NULL); /* valid cipher? */ @@ -48,12 +49,12 @@ int ocb_init(ocb_state *ocb, int cipher, /* determine which polys to use */ ocb->block_len = cipher_descriptor[cipher].block_length; - for (ocb->poly = 0; ocb->poly < (int)(sizeof(polys)/sizeof(polys[0])); ocb->poly++) { - if (polys[ocb->poly].len == ocb->block_len) { + for (poly = 0; poly < (int)(sizeof(polys)/sizeof(polys[0])); poly++) { + if (polys[poly].len == ocb->block_len) { break; } } - if (polys[ocb->poly].len != ocb->block_len) { + if (polys[poly].len != ocb->block_len) { return CRYPT_INVALID_ARG; } @@ -83,7 +84,7 @@ int ocb_init(ocb_state *ocb, int cipher, if (m == 1) { for (y = 0; y < ocb->block_len; y++) { - ocb->Ls[x][y] ^= polys[ocb->poly].poly_mul[y]; + ocb->Ls[x][y] ^= polys[poly].poly_mul[y]; } } } @@ -99,7 +100,7 @@ int ocb_init(ocb_state *ocb, int cipher, if (m == 1) { for (x = 0; x < ocb->block_len; x++) { - ocb->Lr[x] ^= polys[ocb->poly].poly_div[x]; + ocb->Lr[x] ^= polys[poly].poly_div[x]; } } @@ -139,7 +140,7 @@ static void shift_xor(ocb_state *ocb, unsigned char *Z) int ocb_encrypt(ocb_state *ocb, const unsigned char *pt, unsigned char *ct) { unsigned char Z[MAXBLOCKSIZE], tmp[MAXBLOCKSIZE]; - int err, x, y; + int err, x; _ARGCHK(ocb != NULL); _ARGCHK(pt != NULL); @@ -178,7 +179,7 @@ int ocb_encrypt(ocb_state *ocb, const unsigned char *pt, unsigned char *ct) int ocb_decrypt(ocb_state *ocb, const unsigned char *ct, unsigned char *pt) { unsigned char Z[MAXBLOCKSIZE], tmp[MAXBLOCKSIZE]; - int err, x, y; + int err, x; _ARGCHK(ocb != NULL); _ARGCHK(pt != NULL); @@ -228,12 +229,12 @@ static int _ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptle { unsigned char Z[MAXBLOCKSIZE], Y[MAXBLOCKSIZE], X[MAXBLOCKSIZE]; - int err, x, y; + int err, x; - _ARGCHK(ocb != NULL); - _ARGCHK(pt != NULL); - _ARGCHK(ct != NULL); - _ARGCHK(tag != NULL); + _ARGCHK(ocb != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + _ARGCHK(tag != NULL); _ARGCHK(taglen != NULL); if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) { return err; @@ -247,7 +248,8 @@ static int _ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptle shift_xor(ocb, X); memcpy(Z, X, ocb->block_len); - X[ocb->block_len-1] ^= ptlen&255; + X[ocb->block_len-1] ^= (ptlen*8)&255; + X[ocb->block_len-2] ^= ((ptlen*8)>>8)&255; for (x = 0; x < ocb->block_len; x++) { X[x] ^= ocb->Lr[x]; } @@ -294,6 +296,7 @@ static int _ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptle zeromem(X, sizeof(X)); zeromem(Y, sizeof(Y)); zeromem(Z, sizeof(Z)); + zeromem(ocb, sizeof(*ocb)); #endif return CRYPT_OK; } @@ -301,6 +304,11 @@ static int _ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptle int ocb_done_encrypt(ocb_state *ocb, const unsigned char *pt, unsigned long ptlen, unsigned char *ct, unsigned char *tag, unsigned long *taglen) { + _ARGCHK(ocb != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + _ARGCHK(tag != NULL); + _ARGCHK(taglen != NULL); return _ocb_done(ocb, pt, ptlen, ct, tag, taglen, 0); } @@ -314,7 +322,6 @@ int ocb_done_decrypt(ocb_state *ocb, unsigned char tagbuf[MAXBLOCKSIZE]; unsigned long tagbuflen; - _ARGCHK(ocb != NULL); _ARGCHK(pt != NULL); _ARGCHK(ct != NULL); @@ -346,9 +353,16 @@ int ocb_encrypt_authenticate_memory(int cipher, unsigned char *ct, unsigned char *tag, unsigned long *taglen) { - int err, n; + int err; ocb_state ocb; + _ARGCHK(key != NULL); + _ARGCHK(nonce != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + _ARGCHK(tag != NULL); + _ARGCHK(taglen != NULL); + if ((err = ocb_init(&ocb, cipher, key, keylen, nonce)) != CRYPT_OK) { return err; } @@ -378,9 +392,17 @@ int ocb_decrypt_verify_memory(int cipher, const unsigned char *tag, unsigned long taglen, int *res) { - int err, n; + int err; ocb_state ocb; + + _ARGCHK(key != NULL); + _ARGCHK(nonce != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); + _ARGCHK(tag != NULL); + _ARGCHK(res != NULL); + if ((err = ocb_init(&ocb, cipher, key, keylen, nonce)) != CRYPT_OK) { return err; } @@ -409,86 +431,139 @@ int ocb_test(void) #else static const struct { int ptlen; - unsigned char key[16], nonce[16], pt[32], ct[32], tag[16]; + unsigned char key[16], nonce[16], pt[34], ct[34], tag[16]; } tests[] = { - /* NULL message */ + /* OCB-AES-128-0B */ { 0, /* key */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* nonce */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, /* pt */ - { 0x00 }, + { 0 }, /* ct */ - { 0x00 }, + { 0 }, /* tag */ - { 0x04, 0xad, 0xa4, 0x5e, 0x94, 0x7b, 0xc5, 0xb6, - 0xe0, 0x0f, 0x4c, 0x8b, 0x80, 0x53, 0x90, 0x2d } -}, - - /* one byte message */ -{ - 1, - /* key */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, - /* nonce */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, - /* pt */ - { 0x11 }, - /* ct */ - { 0x6f }, - /* tag */ - { 0xe2, 0x61, 0x42, 0x3e, 0xbb, 0x0e, 0x7f, 0x3b, - 0xa6, 0xdd, 0xf1, 0x3e, 0xe8, 0x0b, 0x7b, 0x00} + { 0x15, 0xd3, 0x7d, 0xd7, 0xc8, 0x90, 0xd5, 0xd6, + 0xac, 0xab, 0x92, 0x7b, 0xc0, 0xdc, 0x60, 0xee }, }, - /* 16 byte message */ + + /* OCB-AES-128-3B */ { - 16, + 3, /* key */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* nonce */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, /* pt */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + { 0x00, 0x01, 0x02 }, /* ct */ - { 0x6a, 0xaf, 0xac, 0x40, 0x6d, 0xfa, 0x87, 0x40, - 0x57, 0xc7, 0xdb, 0xe9, 0x6f, 0x1b, 0x39, 0x53 }, + { 0xfc, 0xd3, 0x7d }, /* tag */ - { 0xff, 0xbf, 0x96, 0x87, 0x72, 0xfe, 0xee, 0x59, - 0x08, 0x1f, 0xc7, 0x8c, 0x8f, 0xd9, 0x16, 0xc2 } + { 0x02, 0x25, 0x47, 0x39, 0xa5, 0xe3, 0x56, 0x5a, + 0xe2, 0xdc, 0xd6, 0x2c, 0x65, 0x97, 0x46, 0xba }, }, - /* 17 byte message */ + /* OCB-AES-128-16B */ { - 17, + 16, /* key */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* nonce */ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, /* pt */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10 }, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, /* ct */ - { 0x8c, 0x94, 0xbd, 0xd4, 0x2d, 0xdd, 0x1c, 0x40, - 0xbe, 0xe0, 0x06, 0xb5, 0xab, 0x54, 0x3b, 0x00, - 0x20 }, + { 0x37, 0xdf, 0x8c, 0xe1, 0x5b, 0x48, 0x9b, 0xf3, + 0x1d, 0x0f, 0xc4, 0x4d, 0xa1, 0xfa, 0xf6, 0xd6 }, /* tag */ - { 0x0e, 0x72, 0x7c, 0x88, 0x73, 0xbb, 0x66, 0xd7, - 0x4a, 0x4f, 0xd4, 0x84, 0x83, 0xc7, 0x9a, 0x29 } -} + { 0xdf, 0xb7, 0x63, 0xeb, 0xdb, 0x5f, 0x0e, 0x71, + 0x9c, 0x7b, 0x41, 0x61, 0x80, 0x80, 0x04, 0xdf }, +}, + + /* OCB-AES-128-20B */ +{ + 20, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* nonce */ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, + /* pt */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13 }, + /* ct */ + { 0x01, 0xa0, 0x75, 0xf0, 0xd8, 0x15, 0xb1, 0xa4, + 0xe9, 0xc8, 0x81, 0xa1, 0xbc, 0xff, 0xc3, 0xeb, + 0x70, 0x03, 0xeb, 0x55}, + /* tag */ + { 0x75, 0x30, 0x84, 0x14, 0x4e, 0xb6, 0x3b, 0x77, + 0x0b, 0x06, 0x3c, 0x2e, 0x23, 0xcd, 0xa0, 0xbb }, +}, + + /* OCB-AES-128-32B */ +{ + 32, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* nonce */ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, + /* pt */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, + /* ct */ + { 0x01, 0xa0, 0x75, 0xf0, 0xd8, 0x15, 0xb1, 0xa4, + 0xe9, 0xc8, 0x81, 0xa1, 0xbc, 0xff, 0xc3, 0xeb, + 0x4a, 0xfc, 0xbb, 0x7f, 0xed, 0xc0, 0x8c, 0xa8, + 0x65, 0x4c, 0x6d, 0x30, 0x4d, 0x16, 0x12, 0xfa }, + + /* tag */ + { 0xc1, 0x4c, 0xbf, 0x2c, 0x1a, 0x1f, 0x1c, 0x3c, + 0x13, 0x7e, 0xad, 0xea, 0x1f, 0x2f, 0x2f, 0xcf }, +}, + + /* OCB-AES-128-34B */ +{ + 34, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* nonce */ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, + /* pt */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21 }, + /* ct */ + { 0x01, 0xa0, 0x75, 0xf0, 0xd8, 0x15, 0xb1, 0xa4, + 0xe9, 0xc8, 0x81, 0xa1, 0xbc, 0xff, 0xc3, 0xeb, + 0xd4, 0x90, 0x3d, 0xd0, 0x02, 0x5b, 0xa4, 0xaa, + 0x83, 0x7c, 0x74, 0xf1, 0x21, 0xb0, 0x26, 0x0f, + 0xa9, 0x5d }, + + /* tag */ + { 0xcf, 0x83, 0x41, 0xbb, 0x10, 0x82, 0x0c, 0xcf, + 0x14, 0xbd, 0xec, 0x56, 0xb8, 0xd7, 0xd6, 0xab }, +}, }; diff --git a/omac.c b/omac.c index 1fe3fb0..5688bb5 100644 --- a/omac.c +++ b/omac.c @@ -165,6 +165,11 @@ int omac_memory(int cipher, const unsigned char *key, unsigned long keylen, int err; omac_state omac; + _ARGCHK(key != NULL); + _ARGCHK(msg != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); + if ((err = omac_init(&omac, cipher, key, keylen)) != CRYPT_OK) { return err; } @@ -174,6 +179,11 @@ int omac_memory(int cipher, const unsigned char *key, unsigned long keylen, if ((err = omac_done(&omac, out, outlen)) != CRYPT_OK) { return err; } + +#ifdef CLEAN_STACK + zeromem(&omac, sizeof(omac)); +#endif + return CRYPT_OK; } @@ -188,6 +198,13 @@ int omac_file(int cipher, const unsigned char *key, unsigned long keylen, FILE *in; unsigned char buf[512]; + + _ARGCHK(key != NULL); + _ARGCHK(filename != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); + + in = fopen(filename, "rb"); if (in == NULL) { return CRYPT_FILE_NOTFOUND; @@ -210,6 +227,11 @@ int omac_file(int cipher, const unsigned char *key, unsigned long keylen, if ((err = omac_done(&omac, out, outlen)) != CRYPT_OK) { return err; } + +#ifdef CLEAN_STACK + zeromem(buf, sizeof(buf)); +#endif + return CRYPT_OK; #endif } @@ -221,7 +243,7 @@ int omac_test(void) #else static const struct { int keylen, msglen; - unsigned char key[32], msg[64], tag[16]; + unsigned char key[16], msg[64], tag[16]; } tests[] = { { 16, 0, { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, diff --git a/pmac.c b/pmac.c new file mode 100644 index 0000000..09d46ce --- /dev/null +++ b/pmac.c @@ -0,0 +1,437 @@ +/* LibTomCrypt, modular cryptographic library -- Tom St Denis + * + * LibTomCrypt is a library that provides various cryptographic + * algorithms in a highly modular and flexible manner. + * + * The library is free for all purposes without any express + * gurantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org + */ + +/* PMAC implementation by Tom St Denis */ +#include "mycrypt.h" + +#ifdef PMAC + +static const struct { + int len; + unsigned char poly_div[MAXBLOCKSIZE], + poly_mul[MAXBLOCKSIZE]; +} polys[] = { +{ + 8, + { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B } +}, { + 16, + { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43 }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87 } +} +}; + +int pmac_init(pmac_state *pmac, int cipher, const unsigned char *key, unsigned long keylen) +{ + int poly, x, y, m, err; + unsigned char L[MAXBLOCKSIZE]; + + _ARGCHK(pmac != NULL); + _ARGCHK(key != NULL); + + /* valid cipher? */ + if ((err = cipher_is_valid(cipher)) != CRYPT_OK) { + return err; + } + + /* determine which polys to use */ + pmac->block_len = cipher_descriptor[cipher].block_length; + for (poly = 0; poly < (int)(sizeof(polys)/sizeof(polys[0])); poly++) { + if (polys[poly].len == pmac->block_len) { + break; + } + } + if (polys[poly].len != pmac->block_len) { + return CRYPT_INVALID_ARG; + } + + /* schedule the key */ + if ((err = cipher_descriptor[cipher].setup(key, keylen, 0, &pmac->key)) != CRYPT_OK) { + return err; + } + + /* find L = E[0] */ + zeromem(L, pmac->block_len); + cipher_descriptor[cipher].ecb_encrypt(L, L, &pmac->key); + + /* find Ls[i] = L << i for i == 0..31 */ + memcpy(pmac->Ls[0], L, pmac->block_len); + for (x = 1; x < 32; x++) { + m = pmac->Ls[x-1][0] >> 7; + for (y = 0; y < pmac->block_len-1; y++) { + pmac->Ls[x][y] = ((pmac->Ls[x-1][y] << 1) | (pmac->Ls[x-1][y+1] >> 7)) & 255; + } + pmac->Ls[x][pmac->block_len-1] = (pmac->Ls[x-1][pmac->block_len-1] << 1) & 255; + + if (m == 1) { + for (y = 0; y < pmac->block_len; y++) { + pmac->Ls[x][y] ^= polys[poly].poly_mul[y]; + } + } + } + + /* find Lr = L / x */ + m = L[pmac->block_len-1] & 1; + + /* shift right */ + for (x = pmac->block_len - 1; x > 0; x--) { + pmac->Lr[x] = ((L[x] >> 1) | (L[x-1] << 7)) & 255; + } + pmac->Lr[0] = L[0] >> 1; + + if (m == 1) { + for (x = 0; x < pmac->block_len; x++) { + pmac->Lr[x] ^= polys[poly].poly_div[x]; + } + } + + /* zero buffer, counters, etc... */ + pmac->block_index = 1; + pmac->cipher_idx = cipher; + pmac->buflen = 0; + zeromem(pmac->block, sizeof(pmac->block)); + zeromem(pmac->Li, sizeof(pmac->Li)); + zeromem(pmac->checksum, sizeof(pmac->checksum)); + +#ifdef CLEAN_STACK + zeromem(L, sizeof(L)); +#endif + + return CRYPT_OK; +} + +static int ntz(unsigned long x) +{ + int c; + x &= 0xFFFFFFFFUL; + c = 0; + while ((x & 1) == 0) { + ++c; + x >>= 1; + } + return c; +} + +static void shift_xor(pmac_state *pmac) +{ + int x, y; + y = ntz(pmac->block_index++); + for (x = 0; x < pmac->block_len; x++) { + pmac->Li[x] ^= pmac->Ls[y][x]; + } +} + +int pmac_process(pmac_state *state, const unsigned char *buf, unsigned long len) +{ + int err, n, x; + unsigned char Z[MAXBLOCKSIZE]; + + _ARGCHK(state != NULL); + _ARGCHK(buf != NULL); + if ((err = cipher_is_valid(state->cipher_idx)) != CRYPT_OK) { + return err; + } + + if ((state->buflen > (int)sizeof(state->block)) || (state->buflen < 0) || + (state->block_len > (int)sizeof(state->block)) || (state->buflen > state->block_len)) { + return CRYPT_INVALID_ARG; + } + + while (len != 0) { + /* ok if the block is full we xor in prev, encrypt and replace prev */ + if (state->buflen == state->block_len) { + shift_xor(state); + for (x = 0; x < state->block_len; x++) { + Z[x] = state->Li[x] ^ state->block[x]; + } + cipher_descriptor[state->cipher_idx].ecb_encrypt(Z, Z, &state->key); + for (x = 0; x < state->block_len; x++) { + state->checksum[x] ^= Z[x]; + } + state->buflen = 0; + } + + /* add bytes */ + n = MIN(len, (unsigned long)(state->block_len - state->buflen)); + memcpy(state->block + state->buflen, buf, n); + state->buflen += n; + len -= n; + buf += n; + } + +#ifdef CLEAN_STACK + zeromem(Z, sizeof(Z)); +#endif + + return CRYPT_OK; +} + +int pmac_done(pmac_state *state, unsigned char *out, unsigned long *outlen) +{ + int err, x; + + _ARGCHK(state != NULL); + _ARGCHK(out != NULL); + if ((err = cipher_is_valid(state->cipher_idx)) != CRYPT_OK) { + return err; + } + + if ((state->buflen > (int)sizeof(state->block)) || (state->buflen < 0) || + (state->block_len > (int)sizeof(state->block)) || (state->buflen > state->block_len)) { + return CRYPT_INVALID_ARG; + } + + + /* handle padding. If multiple xor in L/x */ + + if (state->buflen == state->block_len) { + /* xor Lr against the checksum */ + for (x = 0; x < state->block_len; x++) { + state->checksum[x] ^= state->block[x] ^ state->Lr[x]; + } + } else { + /* otherwise xor message bytes then the 0x80 byte */ + for (x = 0; x < state->buflen; x++) { + state->checksum[x] ^= state->block[x]; + } + state->checksum[x] ^= 0x80; + } + + /* encrypt it */ + cipher_descriptor[state->cipher_idx].ecb_encrypt(state->checksum, state->checksum, &state->key); + + /* store it */ + for (x = 0; x < state->block_len && x <= (int)*outlen; x++) { + out[x] = state->checksum[x]; + } + *outlen = x; + +#ifdef CLEAN_STACK + zeromem(state, sizeof(*state)); +#endif + return CRYPT_OK; +} + +int pmac_memory(int cipher, const unsigned char *key, unsigned long keylen, + const unsigned char *msg, unsigned long msglen, + unsigned char *out, unsigned long *outlen) +{ + int err; + pmac_state pmac; + + _ARGCHK(key != NULL); + _ARGCHK(msg != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); + + + if ((err = pmac_init(&pmac, cipher, key, keylen)) != CRYPT_OK) { + return err; + } + if ((err = pmac_process(&pmac, msg, msglen)) != CRYPT_OK) { + return err; + } + if ((err = pmac_done(&pmac, out, outlen)) != CRYPT_OK) { + return err; + } + + return CRYPT_OK; +} + +int pmac_file(int cipher, const unsigned char *key, unsigned long keylen, + const char *filename, unsigned char *out, unsigned long *outlen) +{ +#ifdef NO_FILE + return CRYPT_NOP; +#else + int err, x; + pmac_state pmac; + FILE *in; + unsigned char buf[512]; + + + _ARGCHK(key != NULL); + _ARGCHK(filename != NULL); + _ARGCHK(out != NULL); + _ARGCHK(outlen != NULL); + + + in = fopen(filename, "rb"); + if (in == NULL) { + return CRYPT_FILE_NOTFOUND; + } + + if ((err = pmac_init(&pmac, cipher, key, keylen)) != CRYPT_OK) { + fclose(in); + return err; + } + + do { + x = fread(buf, 1, sizeof(buf), in); + if ((err = pmac_process(&pmac, buf, x)) != CRYPT_OK) { + fclose(in); + return err; + } + } while (x == sizeof(buf)); + fclose(in); + + if ((err = pmac_done(&pmac, out, outlen)) != CRYPT_OK) { + return err; + } + +#ifdef CLEAN_STACK + zeromem(buf, sizeof(buf)); +#endif + + return CRYPT_OK; +#endif +} + +int pmac_test(void) +{ +#if !defined(LTC_TEST) + return CRYPT_NOP; +#else + static const struct { + int msglen; + unsigned char key[16], msg[34], tag[16]; + } tests[] = { + + /* PMAC-AES-128-0B */ +{ + 0, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00 }, + /* tag */ + { 0x43, 0x99, 0x57, 0x2c, 0xd6, 0xea, 0x53, 0x41, + 0xb8, 0xd3, 0x58, 0x76, 0xa7, 0x09, 0x8a, 0xf7 } +}, + + /* PMAC-AES-128-3B */ +{ + 3, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00, 0x01, 0x02 }, + /* tag */ + { 0x25, 0x6b, 0xa5, 0x19, 0x3c, 0x1b, 0x99, 0x1b, + 0x4d, 0xf0, 0xc5, 0x1f, 0x38, 0x8a, 0x9e, 0x27 } +}, + + /* PMAC-AES-128-16B */ +{ + 16, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* tag */ + { 0xeb, 0xbd, 0x82, 0x2f, 0xa4, 0x58, 0xda, 0xf6, + 0xdf, 0xda, 0xd7, 0xc2, 0x7d, 0xa7, 0x63, 0x38 } +}, + + /* PMAC-AES-128-20B */ +{ + 20, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13 }, + /* tag */ + { 0x04, 0x12, 0xca, 0x15, 0x0b, 0xbf, 0x79, 0x05, + 0x8d, 0x8c, 0x75, 0xa5, 0x8c, 0x99, 0x3f, 0x55 } +}, + + /* PMAC-AES-128-32B */ +{ + 32, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, + /* tag */ + { 0xe9, 0x7a, 0xc0, 0x4e, 0x9e, 0x5e, 0x33, 0x99, + 0xce, 0x53, 0x55, 0xcd, 0x74, 0x07, 0xbc, 0x75 } +}, + + /* PMAC-AES-128-34B */ +{ + 34, + /* key */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + /* msg */ + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21 }, + /* tag */ + { 0x5c, 0xba, 0x7d, 0x5e, 0xb2, 0x4f, 0x7c, 0x86, + 0xcc, 0xc5, 0x46, 0x04, 0xe5, 0x3d, 0x55, 0x12 } +} + +}; + int err, x, idx; + unsigned long len; + unsigned char outtag[MAXBLOCKSIZE]; + + /* AES can be under rijndael or aes... try to find it */ + if ((idx = find_cipher("aes")) == -1) { + if ((idx = find_cipher("rijndael")) == -1) { + return CRYPT_NOP; + } + } + + for (x = 0; x < (int)(sizeof(tests)/sizeof(tests[0])); x++) { + len = sizeof(outtag); + if ((err = pmac_memory(idx, tests[x].key, 16, tests[x].msg, tests[x].msglen, outtag, &len)) != CRYPT_OK) { + return err; + } + + if (memcmp(outtag, tests[x].tag, len)) { +#if 0 + unsigned long y; + printf("\nTAG:\n"); + for (y = 0; y < len; ) { + printf("0x%02x", outtag[y]); + if (y < len-1) printf(", "); + if (!(++y % 8)) printf("\n"); + } +#endif + return CRYPT_FAIL_TESTVECTOR; + } + } + return CRYPT_OK; +#endif /* LTC_TEST */ +} + +#endif /* PMAC_MODE */ + + + diff --git a/rsa.c b/rsa.c index 8344e0b..6b97c7f 100644 --- a/rsa.c +++ b/rsa.c @@ -12,16 +12,23 @@ /* RSA Code by Tom St Denis */ #include "mycrypt.h" +/* Min and Max RSA key sizes (in bits) */ +#define MIN_RSA_SIZE 1024 +#define MAX_RSA_SIZE 4096 + +/* Stack required for temps (plus padding) */ +#define RSA_STACK (8 + (MAX_RSA_SIZE/8)) + #ifdef MRSA int rsa_make_key(prng_state *prng, int wprng, int size, long e, rsa_key *key) { mp_int p, q, tmp1, tmp2, tmp3; - int res, err; + int err; _ARGCHK(key != NULL); - if ((size < (1024/8)) || (size > (4096/8))) { + if ((size < (MIN_RSA_SIZE/8)) || (size > (MAX_RSA_SIZE/8))) { return CRYPT_INVALID_KEYSIZE; } @@ -33,81 +40,81 @@ int rsa_make_key(prng_state *prng, int wprng, int size, long e, rsa_key *key) return err; } - if (mp_init_multi(&p, &q, &tmp1, &tmp2, &tmp3, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&p, &q, &tmp1, &tmp2, &tmp3, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } /* make primes p and q (optimization provided by Wayne Scott) */ - if (mp_set_int(&tmp3, e) != MP_OKAY) { goto error; } /* tmp3 = e */ + if ((err = mp_set_int(&tmp3, e)) != MP_OKAY) { goto error; } /* tmp3 = e */ /* make prime "p" */ do { - if (rand_prime(&p, size/2, prng, wprng) != CRYPT_OK) { res = CRYPT_ERROR; goto done; } - if (mp_sub_d(&p, 1, &tmp1) != MP_OKAY) { goto error; } /* tmp1 = p-1 */ - if (mp_gcd(&tmp1, &tmp3, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = gcd(p-1, e) */ - } while (mp_cmp_d(&tmp2, 1) != 0); /* while e divides p-1 */ + if ((err = rand_prime(&p, size/2, prng, wprng)) != CRYPT_OK) { goto done; } + if ((err = mp_sub_d(&p, 1, &tmp1)) != MP_OKAY) { goto error; } /* tmp1 = p-1 */ + if ((err = mp_gcd(&tmp1, &tmp3, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = gcd(p-1, e) */ + } while (mp_cmp_d(&tmp2, 1) != 0); /* while e divides p-1 */ /* make prime "q" */ do { - if (rand_prime(&q, size/2, prng, wprng) != CRYPT_OK) { res = CRYPT_ERROR; goto done; } - if (mp_sub_d(&q, 1, &tmp1) != MP_OKAY) { goto error; } /* tmp1 = q-1 */ - if (mp_gcd(&tmp1, &tmp3, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = gcd(q-1, e) */ - } while (mp_cmp_d(&tmp2, 1) != 0); /* while e divides q-1 */ + if ((err = rand_prime(&q, size/2, prng, wprng)) != CRYPT_OK) { goto done; } + if ((err = mp_sub_d(&q, 1, &tmp1)) != MP_OKAY) { goto error; } /* tmp1 = q-1 */ + if ((err = mp_gcd(&tmp1, &tmp3, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = gcd(q-1, e) */ + } while (mp_cmp_d(&tmp2, 1) != 0); /* while e divides q-1 */ /* tmp1 = lcm(p-1, q-1) */ - if (mp_sub_d(&p, 1, &tmp2) != MP_OKAY) { goto error; } /* tmp2 = p-1 */ - /* tmp1 = q-1 (previous do/while loop) */ - if (mp_lcm(&tmp1, &tmp2, &tmp1) != MP_OKAY) { goto error; } /* tmp1 = lcm(p-1, q-1) */ + if ((err = mp_sub_d(&p, 1, &tmp2)) != MP_OKAY) { goto error; } /* tmp2 = p-1 */ + /* tmp1 = q-1 (previous do/while loop) */ + if ((err = mp_lcm(&tmp1, &tmp2, &tmp1)) != MP_OKAY) { goto error; } /* tmp1 = lcm(p-1, q-1) */ /* make key */ - if (mp_init_multi(&key->e, &key->d, &key->N, &key->dQ, &key->dP, - &key->qP, &key->pQ, &key->p, &key->q, NULL) != MP_OKAY) { + if ((err = mp_init_multi(&key->e, &key->d, &key->N, &key->dQ, &key->dP, + &key->qP, &key->pQ, &key->p, &key->q, NULL)) != MP_OKAY) { goto error; } - if (mp_set_int(&key->e, e) != MP_OKAY) { goto error2; } /* key->e = e */ - if (mp_invmod(&key->e, &tmp1, &key->d) != MP_OKAY) { goto error2; } /* key->d = 1/e mod lcm(p-1,q-1) */ - if (mp_mul(&p, &q, &key->N) != MP_OKAY) { goto error2; } /* key->N = pq */ + if ((err = mp_set_int(&key->e, e)) != MP_OKAY) { goto error2; } /* key->e = e */ + if ((err = mp_invmod(&key->e, &tmp1, &key->d)) != MP_OKAY) { goto error2; } /* key->d = 1/e mod lcm(p-1,q-1) */ + if ((err = mp_mul(&p, &q, &key->N)) != MP_OKAY) { goto error2; } /* key->N = pq */ /* optimize for CRT now */ /* find d mod q-1 and d mod p-1 */ - if (mp_sub_d(&p, 1, &tmp1) != MP_OKAY) { goto error2; } /* tmp1 = q-1 */ - if (mp_sub_d(&q, 1, &tmp2) != MP_OKAY) { goto error2; } /* tmp2 = p-1 */ + if ((err = mp_sub_d(&p, 1, &tmp1)) != MP_OKAY) { goto error2; } /* tmp1 = q-1 */ + if ((err = mp_sub_d(&q, 1, &tmp2)) != MP_OKAY) { goto error2; } /* tmp2 = p-1 */ - if (mp_mod(&key->d, &tmp1, &key->dP) != MP_OKAY) { goto error2; } /* dP = d mod p-1 */ - if (mp_mod(&key->d, &tmp2, &key->dQ) != MP_OKAY) { goto error2; } /* dQ = d mod q-1 */ + if ((err = mp_mod(&key->d, &tmp1, &key->dP)) != MP_OKAY) { goto error2; } /* dP = d mod p-1 */ + if ((err = mp_mod(&key->d, &tmp2, &key->dQ)) != MP_OKAY) { goto error2; } /* dQ = d mod q-1 */ - if (mp_invmod(&q, &p, &key->qP) != MP_OKAY) { goto error2; } /* qP = 1/q mod p */ - if (mp_mulmod(&key->qP, &q, &key->N, &key->qP)) { goto error2; } /* qP = q * (1/q mod p) mod N */ + if ((err = mp_invmod(&q, &p, &key->qP)) != MP_OKAY) { goto error2; } /* qP = 1/q mod p */ + if ((err = mp_mulmod(&key->qP, &q, &key->N, &key->qP)) != MP_OKAY) { goto error2; } /* qP = q * (1/q mod p) mod N */ - if (mp_invmod(&p, &q, &key->pQ) != MP_OKAY) { goto error2; } /* pQ = 1/p mod q */ - if (mp_mulmod(&key->pQ, &p, &key->N, &key->pQ)) { goto error2; } /* pQ = p * (1/p mod q) mod N */ + if ((err = mp_invmod(&p, &q, &key->pQ)) != MP_OKAY) { goto error2; } /* pQ = 1/p mod q */ + if ((err = mp_mulmod(&key->pQ, &p, &key->N, &key->pQ)) != MP_OKAY) { goto error2; } /* pQ = p * (1/p mod q) mod N */ - if (mp_copy(&p, &key->p) != MP_OKAY) { goto error2; } - if (mp_copy(&q, &key->q) != MP_OKAY) { goto error2; } + if ((err = mp_copy(&p, &key->p)) != MP_OKAY) { goto error2; } + if ((err = mp_copy(&q, &key->q)) != MP_OKAY) { goto error2; } /* shrink ram required */ - if (mp_shrink(&key->e) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->d) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->N) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->dQ) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->dP) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->qP) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->pQ) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->p) != MP_OKAY) { goto error2; } - if (mp_shrink(&key->q) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->e)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->d)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->N)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->dQ)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->dP)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->qP)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->pQ)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->p)) != MP_OKAY) { goto error2; } + if ((err = mp_shrink(&key->q)) != MP_OKAY) { goto error2; } - res = CRYPT_OK; + err = CRYPT_OK; key->type = PK_PRIVATE_OPTIMIZED; goto done; error2: mp_clear_multi(&key->d, &key->e, &key->N, &key->dQ, &key->dP, &key->qP, &key->pQ, &key->p, &key->q, NULL); error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmp3, &tmp2, &tmp1, &p, &q, NULL); - return res; + return err; } void rsa_free(rsa_key *key) @@ -123,12 +130,12 @@ int rsa_exptmod(const unsigned char *in, unsigned long inlen, { mp_int tmp, tmpa, tmpb; unsigned long x; - int res; + int err; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); if (which == PK_PRIVATE && (key->type != PK_PRIVATE && key->type != PK_PRIVATE_OPTIMIZED)) { return CRYPT_PK_NOT_PRIVATE; @@ -140,51 +147,51 @@ int rsa_exptmod(const unsigned char *in, unsigned long inlen, } /* init and copy into tmp */ - if (mp_init_multi(&tmp, &tmpa, &tmpb, NULL) != MP_OKAY) { goto error; } - if (mp_read_unsigned_bin(&tmp, (unsigned char *)in, (int)inlen) != MP_OKAY) { goto error; } + if ((err = mp_init_multi(&tmp, &tmpa, &tmpb, NULL)) != MP_OKAY) { goto error; } + if ((err = mp_read_unsigned_bin(&tmp, (unsigned char *)in, (int)inlen)) != MP_OKAY) { goto error; } /* sanity check on the input */ if (mp_cmp(&key->N, &tmp) == MP_LT) { - res = CRYPT_PK_INVALID_SIZE; + err = CRYPT_PK_INVALID_SIZE; goto done; } /* are we using the private exponent and is the key optimized? */ if (which == PK_PRIVATE && key->type == PK_PRIVATE_OPTIMIZED) { /* tmpa = tmp^dP mod p */ - if (mp_exptmod(&tmp, &key->dP, &key->p, &tmpa) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&tmp, &key->dP, &key->p, &tmpa)) != MP_OKAY) { goto error; } /* tmpb = tmp^dQ mod q */ - if (mp_exptmod(&tmp, &key->dQ, &key->q, &tmpb) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&tmp, &key->dQ, &key->q, &tmpb)) != MP_OKAY) { goto error; } /* tmp = tmpa*qP + tmpb*pQ mod N */ - if (mp_mul(&tmpa, &key->qP, &tmpa) != MP_OKAY) { goto error; } - if (mp_mul(&tmpb, &key->pQ, &tmpb) != MP_OKAY) { goto error; } - if (mp_addmod(&tmpa, &tmpb, &key->N, &tmp) != MP_OKAY) { goto error; } + if ((err = mp_mul(&tmpa, &key->qP, &tmpa)) != MP_OKAY) { goto error; } + if ((err = mp_mul(&tmpb, &key->pQ, &tmpb)) != MP_OKAY) { goto error; } + if ((err = mp_addmod(&tmpa, &tmpb, &key->N, &tmp)) != MP_OKAY) { goto error; } } else { /* exptmod it */ - if (mp_exptmod(&tmp, which==PK_PRIVATE?&key->d:&key->e, &key->N, &tmp) != MP_OKAY) { goto error; } + if ((err = mp_exptmod(&tmp, which==PK_PRIVATE?&key->d:&key->e, &key->N, &tmp)) != MP_OKAY) { goto error; } } /* read it back */ x = (unsigned long)mp_unsigned_bin_size(&tmp); if (x > *outlen) { - res = CRYPT_BUFFER_OVERFLOW; + err = CRYPT_BUFFER_OVERFLOW; goto done; } *outlen = x; /* convert it */ - if (mp_to_unsigned_bin(&tmp, out) != MP_OKAY) { goto error; } + if ((err = mp_to_unsigned_bin(&tmp, out)) != MP_OKAY) { goto error; } /* clean up and return */ - res = CRYPT_OK; + err = CRYPT_OK; goto done; error: - res = CRYPT_MEM; + err = mpi_to_ltc_error(err); done: mp_clear_multi(&tmp, &tmpa, &tmpb, NULL); - return res; + return err; } int rsa_signpad(const unsigned char *in, unsigned long inlen, @@ -192,8 +199,8 @@ int rsa_signpad(const unsigned char *in, unsigned long inlen, { unsigned long x, y; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); if (*outlen < (3 * inlen)) { @@ -219,12 +226,12 @@ int rsa_pad(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, int wprng, prng_state *prng) { - unsigned char buf[1536]; + unsigned char buf[3*(MAX_RSA_SIZE/8)]; unsigned long x; int err; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); /* is output big enough? */ @@ -238,7 +245,7 @@ int rsa_pad(const unsigned char *in, unsigned long inlen, } /* check inlen */ - if (inlen > 512) { + if (inlen > (MAX_RSA_SIZE/8)) { return CRYPT_PK_INVALID_SIZE; } @@ -276,12 +283,12 @@ int rsa_pad(const unsigned char *in, unsigned long inlen, } int rsa_signdepad(const unsigned char *in, unsigned long inlen, - unsigned char *out, unsigned long *outlen) + unsigned char *out, unsigned long *outlen) { unsigned long x; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); if (*outlen < inlen/3) { @@ -306,8 +313,8 @@ int rsa_depad(const unsigned char *in, unsigned long inlen, { unsigned long x; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); if (*outlen < inlen/3) { @@ -322,13 +329,17 @@ int rsa_depad(const unsigned char *in, unsigned long inlen, int rsa_export(unsigned char *out, unsigned long *outlen, int type, rsa_key *key) { - unsigned char buf2[5120]; unsigned long y, z; int err; - _ARGCHK(out != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); + + /* can we store the static header? */ + if (*outlen < (PACKET_SIZE + 1)) { + return CRYPT_BUFFER_OVERFLOW; + } /* type valid? */ if (!(key->type == PK_PRIVATE || key->type == PK_PRIVATE_OPTIMIZED) && @@ -340,43 +351,34 @@ int rsa_export(unsigned char *out, unsigned long *outlen, int type, rsa_key *key y = PACKET_SIZE; /* output key type */ - buf2[y++] = type; + out[y++] = type; /* output modulus */ - OUTPUT_BIGNUM(&key->N, buf2, y, z); + OUTPUT_BIGNUM(&key->N, out, y, z); /* output public key */ - OUTPUT_BIGNUM(&key->e, buf2, y, z); + OUTPUT_BIGNUM(&key->e, out, y, z); if (type == PK_PRIVATE || type == PK_PRIVATE_OPTIMIZED) { - OUTPUT_BIGNUM(&key->d, buf2, y, z); + OUTPUT_BIGNUM(&key->d, out, y, z); } if (type == PK_PRIVATE_OPTIMIZED) { - OUTPUT_BIGNUM(&key->dQ, buf2, y, z); - OUTPUT_BIGNUM(&key->dP, buf2, y, z); - OUTPUT_BIGNUM(&key->pQ, buf2, y, z); - OUTPUT_BIGNUM(&key->qP, buf2, y, z); - OUTPUT_BIGNUM(&key->p, buf2, y, z); - OUTPUT_BIGNUM(&key->q, buf2, y, z); - } - - /* check size */ - if (*outlen < y) { - return CRYPT_BUFFER_OVERFLOW; + OUTPUT_BIGNUM(&key->dQ, out, y, z); + OUTPUT_BIGNUM(&key->dP, out, y, z); + OUTPUT_BIGNUM(&key->pQ, out, y, z); + OUTPUT_BIGNUM(&key->qP, out, y, z); + OUTPUT_BIGNUM(&key->p, out, y, z); + OUTPUT_BIGNUM(&key->q, out, y, z); } /* store packet header */ - packet_store_header(buf2, PACKET_SECT_RSA, PACKET_SUB_KEY); + packet_store_header(out, PACKET_SECT_RSA, PACKET_SUB_KEY); /* copy to the user buffer */ - memcpy(out, buf2, (size_t)y); *outlen = y; /* clear stack and return */ -#ifdef CLEAN_STACK - zeromem(buf2, sizeof(buf2)); -#endif return CRYPT_OK; } @@ -385,11 +387,11 @@ int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key) unsigned long x, y; int err; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(key != NULL); /* check length */ - if (inlen < 1+PACKET_SIZE) { + if (inlen < (1+PACKET_SIZE)) { return CRYPT_INVALID_PACKET; } @@ -399,9 +401,9 @@ int rsa_import(const unsigned char *in, unsigned long inlen, rsa_key *key) } /* init key */ - if (mp_init_multi(&key->e, &key->d, &key->N, &key->dQ, &key->dP, &key->qP, - &key->pQ, &key->p, &key->q, NULL) != MP_OKAY) { - return CRYPT_MEM; + if ((err = mp_init_multi(&key->e, &key->d, &key->N, &key->dQ, &key->dP, &key->qP, + &key->pQ, &key->p, &key->q, NULL)) != MP_OKAY) { + return mpi_to_ltc_error(err); } /* get key type */ diff --git a/rsa_sys.c b/rsa_sys.c index 017aab7..37d381f 100644 --- a/rsa_sys.c +++ b/rsa_sys.c @@ -16,14 +16,14 @@ 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) { - unsigned char rsa_in[4096], rsa_out[4096]; + unsigned char rsa_in[RSA_STACK], rsa_out[RSA_STACK]; unsigned long x, y, rsa_size; int err; - _ARGCHK(inkey != NULL); + _ARGCHK(inkey != NULL); _ARGCHK(outkey != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* only allow keys from 64 to 256 bits */ if (inlen < 8 || inlen > 32) { @@ -52,6 +52,9 @@ int rsa_encrypt_key(const unsigned char *inkey, unsigned long inlen, return CRYPT_BUFFER_OVERFLOW; } + /* store header */ + packet_store_header(outkey, PACKET_SECT_RSA, PACKET_SUB_ENC_KEY); + /* now lets make the header */ y = PACKET_SIZE; @@ -64,15 +67,13 @@ int rsa_encrypt_key(const unsigned char *inkey, unsigned long inlen, outkey[y] = rsa_out[x]; } - /* store header */ - packet_store_header(outkey, PACKET_SECT_RSA, PACKET_SUB_ENC_KEY); - + *outlen = y; #ifdef CLEAN_STACK /* clean up */ zeromem(rsa_in, sizeof(rsa_in)); zeromem(rsa_out, sizeof(rsa_out)); #endif - *outlen = y; + return CRYPT_OK; } @@ -80,14 +81,14 @@ int rsa_decrypt_key(const unsigned char *in, unsigned long inlen, unsigned char *outkey, unsigned long *keylen, rsa_key *key) { - unsigned char sym_key[MAXBLOCKSIZE], rsa_out[4096]; + unsigned char sym_key[MAXBLOCKSIZE], rsa_out[RSA_STACK]; unsigned long x, y, z, i, rsa_size; int err; - _ARGCHK(in != NULL); + _ARGCHK(in != NULL); _ARGCHK(outkey != NULL); _ARGCHK(keylen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* right key type? */ if (key->type != PK_PRIVATE && key->type != PK_PRIVATE_OPTIMIZED) { @@ -151,16 +152,16 @@ int rsa_sign_hash(const unsigned char *in, unsigned long inlen, rsa_key *key) { unsigned long rsa_size, x, y; - unsigned char rsa_in[4096], rsa_out[4096]; + unsigned char rsa_in[RSA_STACK], rsa_out[RSA_STACK]; int err; - _ARGCHK(in != NULL); - _ARGCHK(out != NULL); + _ARGCHK(in != NULL); + _ARGCHK(out != NULL); _ARGCHK(outlen != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* reject nonsense sizes */ - if (inlen > MAXBLOCKSIZE || inlen < 16) { + if (inlen > (512/3) || inlen < 16) { return CRYPT_INVALID_ARG; } @@ -214,13 +215,13 @@ int rsa_verify_hash(const unsigned char *sig, unsigned long siglen, const unsigned char *md, int *stat, rsa_key *key) { unsigned long rsa_size, x, y, z; - unsigned char rsa_in[4096], rsa_out[4096]; + unsigned char rsa_in[RSA_STACK], rsa_out[RSA_STACK]; int err; - _ARGCHK(sig != NULL); - _ARGCHK(md != NULL); + _ARGCHK(sig != NULL); + _ARGCHK(md != NULL); _ARGCHK(stat != NULL); - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); /* always be incorrect by default */ *stat = 0; diff --git a/safer+.c b/saferp.c similarity index 99% rename from safer+.c rename to saferp.c index 8468e51..798015d 100644 --- a/safer+.c +++ b/saferp.c @@ -206,7 +206,7 @@ int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric unsigned char t[33]; static const int rounds[3] = { 8, 12, 16 }; - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); _ARGCHK(skey != NULL); /* check arguments */ @@ -316,8 +316,8 @@ void saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_ke unsigned char b[16]; int x; - _ARGCHK(pt != NULL); - _ARGCHK(ct != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); _ARGCHK(skey != NULL); /* do eight rounds */ @@ -372,8 +372,8 @@ void saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_ke unsigned char b[16]; int x; - _ARGCHK(pt != NULL); - _ARGCHK(ct != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); _ARGCHK(skey != NULL); /* do eight rounds */ diff --git a/sha224.c b/sha224.c index 681000c..efee67c 100644 --- a/sha224.c +++ b/sha224.c @@ -69,7 +69,7 @@ int sha224_test(void) }, { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", { 0x75, 0x38, 0x8b, 0x16, 0x51, 0x27, 0x76, - 0xcc, 0x5d, 0xba, 0x5d, 0xa1, 0xfd, 0x89, + 0xcc, 0x5d, 0xba, 0x5d, 0xa1, 0xfd, 0x89, 0x01, 0x50, 0xb0, 0xc6, 0x45, 0x5c, 0xb4, 0xf5, 0x8b, 0x19, 0x52, 0x52, 0x25, 0x25 } }, diff --git a/skipjack.c b/skipjack.c index cbedc15..aee2db9 100644 --- a/skipjack.c +++ b/skipjack.c @@ -27,22 +27,22 @@ const struct _cipher_descriptor skipjack_desc = }; static const unsigned char sbox[256] = { - 0xa3,0xd7,0x09,0x83,0xf8,0x48,0xf6,0xf4,0xb3,0x21,0x15,0x78,0x99,0xb1,0xaf,0xf9, - 0xe7,0x2d,0x4d,0x8a,0xce,0x4c,0xca,0x2e,0x52,0x95,0xd9,0x1e,0x4e,0x38,0x44,0x28, - 0x0a,0xdf,0x02,0xa0,0x17,0xf1,0x60,0x68,0x12,0xb7,0x7a,0xc3,0xe9,0xfa,0x3d,0x53, - 0x96,0x84,0x6b,0xba,0xf2,0x63,0x9a,0x19,0x7c,0xae,0xe5,0xf5,0xf7,0x16,0x6a,0xa2, - 0x39,0xb6,0x7b,0x0f,0xc1,0x93,0x81,0x1b,0xee,0xb4,0x1a,0xea,0xd0,0x91,0x2f,0xb8, - 0x55,0xb9,0xda,0x85,0x3f,0x41,0xbf,0xe0,0x5a,0x58,0x80,0x5f,0x66,0x0b,0xd8,0x90, - 0x35,0xd5,0xc0,0xa7,0x33,0x06,0x65,0x69,0x45,0x00,0x94,0x56,0x6d,0x98,0x9b,0x76, - 0x97,0xfc,0xb2,0xc2,0xb0,0xfe,0xdb,0x20,0xe1,0xeb,0xd6,0xe4,0xdd,0x47,0x4a,0x1d, - 0x42,0xed,0x9e,0x6e,0x49,0x3c,0xcd,0x43,0x27,0xd2,0x07,0xd4,0xde,0xc7,0x67,0x18, - 0x89,0xcb,0x30,0x1f,0x8d,0xc6,0x8f,0xaa,0xc8,0x74,0xdc,0xc9,0x5d,0x5c,0x31,0xa4, - 0x70,0x88,0x61,0x2c,0x9f,0x0d,0x2b,0x87,0x50,0x82,0x54,0x64,0x26,0x7d,0x03,0x40, - 0x34,0x4b,0x1c,0x73,0xd1,0xc4,0xfd,0x3b,0xcc,0xfb,0x7f,0xab,0xe6,0x3e,0x5b,0xa5, - 0xad,0x04,0x23,0x9c,0x14,0x51,0x22,0xf0,0x29,0x79,0x71,0x7e,0xff,0x8c,0x0e,0xe2, - 0x0c,0xef,0xbc,0x72,0x75,0x6f,0x37,0xa1,0xec,0xd3,0x8e,0x62,0x8b,0x86,0x10,0xe8, - 0x08,0x77,0x11,0xbe,0x92,0x4f,0x24,0xc5,0x32,0x36,0x9d,0xcf,0xf3,0xa6,0xbb,0xac, - 0x5e,0x6c,0xa9,0x13,0x57,0x25,0xb5,0xe3,0xbd,0xa8,0x3a,0x01,0x05,0x59,0x2a,0x46 + 0xa3,0xd7,0x09,0x83,0xf8,0x48,0xf6,0xf4,0xb3,0x21,0x15,0x78,0x99,0xb1,0xaf,0xf9, + 0xe7,0x2d,0x4d,0x8a,0xce,0x4c,0xca,0x2e,0x52,0x95,0xd9,0x1e,0x4e,0x38,0x44,0x28, + 0x0a,0xdf,0x02,0xa0,0x17,0xf1,0x60,0x68,0x12,0xb7,0x7a,0xc3,0xe9,0xfa,0x3d,0x53, + 0x96,0x84,0x6b,0xba,0xf2,0x63,0x9a,0x19,0x7c,0xae,0xe5,0xf5,0xf7,0x16,0x6a,0xa2, + 0x39,0xb6,0x7b,0x0f,0xc1,0x93,0x81,0x1b,0xee,0xb4,0x1a,0xea,0xd0,0x91,0x2f,0xb8, + 0x55,0xb9,0xda,0x85,0x3f,0x41,0xbf,0xe0,0x5a,0x58,0x80,0x5f,0x66,0x0b,0xd8,0x90, + 0x35,0xd5,0xc0,0xa7,0x33,0x06,0x65,0x69,0x45,0x00,0x94,0x56,0x6d,0x98,0x9b,0x76, + 0x97,0xfc,0xb2,0xc2,0xb0,0xfe,0xdb,0x20,0xe1,0xeb,0xd6,0xe4,0xdd,0x47,0x4a,0x1d, + 0x42,0xed,0x9e,0x6e,0x49,0x3c,0xcd,0x43,0x27,0xd2,0x07,0xd4,0xde,0xc7,0x67,0x18, + 0x89,0xcb,0x30,0x1f,0x8d,0xc6,0x8f,0xaa,0xc8,0x74,0xdc,0xc9,0x5d,0x5c,0x31,0xa4, + 0x70,0x88,0x61,0x2c,0x9f,0x0d,0x2b,0x87,0x50,0x82,0x54,0x64,0x26,0x7d,0x03,0x40, + 0x34,0x4b,0x1c,0x73,0xd1,0xc4,0xfd,0x3b,0xcc,0xfb,0x7f,0xab,0xe6,0x3e,0x5b,0xa5, + 0xad,0x04,0x23,0x9c,0x14,0x51,0x22,0xf0,0x29,0x79,0x71,0x7e,0xff,0x8c,0x0e,0xe2, + 0x0c,0xef,0xbc,0x72,0x75,0x6f,0x37,0xa1,0xec,0xd3,0x8e,0x62,0x8b,0x86,0x10,0xe8, + 0x08,0x77,0x11,0xbe,0x92,0x4f,0x24,0xc5,0x32,0x36,0x9d,0xcf,0xf3,0xa6,0xbb,0xac, + 0x5e,0x6c,0xa9,0x13,0x57,0x25,0xb5,0xe3,0xbd,0xa8,0x3a,0x01,0x05,0x59,0x2a,0x46 }; /* simple x + 1 (mod 10) in one step. */ @@ -55,7 +55,7 @@ int skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetr { int x; - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); _ARGCHK(skey != NULL); if (keylen != 10) { diff --git a/twofish.c b/twofish.c index af5ec68..bd0fc1b 100644 --- a/twofish.c +++ b/twofish.c @@ -340,7 +340,7 @@ int twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetri unsigned char tmp[4], tmp2[4], M[8*4]; ulong32 A, B; - _ARGCHK(key != NULL); + _ARGCHK(key != NULL); _ARGCHK(skey != NULL); /* invalid arguments? */ @@ -459,8 +459,8 @@ void twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_k ulong32 *S1, *S2, *S3, *S4; #endif - _ARGCHK(pt != NULL); - _ARGCHK(ct != NULL); + _ARGCHK(pt != NULL); + _ARGCHK(ct != NULL); _ARGCHK(key != NULL); #if !defined(TWOFISH_SMALL) && !defined(__GNUC__) diff --git a/whirl.c b/whirl.c new file mode 100644 index 0000000..8d447d4 --- /dev/null +++ b/whirl.c @@ -0,0 +1,275 @@ +/* LibTomCrypt, modular cryptographic library -- Tom St Denis + * + * LibTomCrypt is a library that provides various cryptographic + * algorithms in a highly modular and flexible manner. + * + * The library is free for all purposes without any express + * gurantee it works. + * + * Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org + */ + +/* WHIRLPOOL (using their new sbox) hash function by Tom St Denis */ + +#include "mycrypt.h" + +#ifdef WHIRLPOOL + +const struct _hash_descriptor whirlpool_desc = +{ + "whirlpool", + 11, + 64, + 64, + &whirlpool_init, + &whirlpool_process, + &whirlpool_done, + &whirlpool_test +}; + +/* the sboxes */ +#include "whirltab.c" + +/* get a_{i,j} */ +#define GB(a,i,j) ((a[(i) & 7] >> (8 * (j))) & 255) + +/* shortcut macro to perform three functions at once */ +#define theta_pi_gamma(a, i) \ + sbox0[GB(a, i-0, 7)] ^ \ + sbox1[GB(a, i-1, 6)] ^ \ + sbox2[GB(a, i-2, 5)] ^ \ + sbox3[GB(a, i-3, 4)] ^ \ + sbox4[GB(a, i-4, 3)] ^ \ + sbox5[GB(a, i-5, 2)] ^ \ + sbox6[GB(a, i-6, 1)] ^ \ + sbox7[GB(a, i-7, 0)] + +#ifdef CLEAN_STACK +static void _whirlpool_compress(hash_state *md, unsigned char *buf) +#else +static void whirlpool_compress(hash_state *md, unsigned char *buf) +#endif +{ + ulong64 K[2][8], T[3][8]; + int x, y; + + /* load the block/state */ + for (x = 0; x < 8; x++) { + K[0][x] = md->whirlpool.state[x]; + + LOAD64H(T[0][x], buf + (8 * x)); + T[2][x] = T[0][x]; + T[0][x] ^= K[0][x]; + } + + /* do rounds 1..10 */ + for (x = 0; x < 10; x += 2) { + /* odd round */ + /* apply main transform to K[0] into K[1] */ + for (y = 0; y < 8; y++) { + K[1][y] = theta_pi_gamma(K[0], y); + } + /* xor the constant */ + K[1][0] ^= cont[x]; + + /* apply main transform to T[0] into T[1] */ + for (y = 0; y < 8; y++) { + T[1][y] = theta_pi_gamma(T[0], y) ^ K[1][y]; + } + + /* even round */ + /* apply main transform to K[1] into K[0] */ + for (y = 0; y < 8; y++) { + K[0][y] = theta_pi_gamma(K[1], y); + } + /* xor the constant */ + K[0][0] ^= cont[x+1]; + + /* apply main transform to T[0] into T[1] */ + for (y = 0; y < 8; y++) { + T[0][y] = theta_pi_gamma(T[1], y) ^ K[0][y]; + } + } + + /* store state */ + for (x = 0; x < 8; x++) { + md->whirlpool.state[x] ^= T[0][x] ^ T[2][x]; + } +} + + +#ifdef CLEAN_STACK +static void whirlpool_compress(hash_state *md, unsigned char *buf) +{ + _whirlpool_compress(md, buf); + burn_stack((5 * 8 * sizeof(ulong64)) + (2 * sizeof(int))); +} +#endif + + +void whirlpool_init(hash_state * md) +{ + _ARGCHK(md != NULL); + zeromem(&md->whirlpool, sizeof(md->whirlpool)); +} + +HASH_PROCESS(whirlpool_process, whirlpool_compress, whirlpool, 64) + +int whirlpool_done(hash_state * md, unsigned char *hash) +{ + int i; + + _ARGCHK(md != NULL); + _ARGCHK(hash != NULL); + + if (md->whirlpool.curlen >= sizeof(md->whirlpool.buf)) { + return CRYPT_INVALID_ARG; + } + + /* increase the length of the message */ + md->whirlpool.length += md->whirlpool.curlen * 8; + + /* append the '1' bit */ + md->whirlpool.buf[md->whirlpool.curlen++] = (unsigned char)0x80; + + /* if the length is currently above 32 bytes we append zeros + * then compress. Then we can fall back to padding zeros and length + * encoding like normal. + */ + if (md->whirlpool.curlen > 32) { + while (md->whirlpool.curlen < 64) { + md->whirlpool.buf[md->whirlpool.curlen++] = (unsigned char)0; + } + whirlpool_compress(md, md->whirlpool.buf); + md->whirlpool.curlen = 0; + } + + /* pad upto 56 bytes of zeroes (should be 32 but we only support 64-bit lengths) */ + while (md->whirlpool.curlen < 56) { + md->whirlpool.buf[md->whirlpool.curlen++] = (unsigned char)0; + } + + /* store length */ + STORE64H(md->whirlpool.length, md->whirlpool.buf+56); + whirlpool_compress(md, md->whirlpool.buf); + + /* copy output */ + for (i = 0; i < 8; i++) { + STORE64H(md->whirlpool.state[i], hash+(8*i)); + } +#ifdef CLEAN_STACK + zeromem(md, sizeof(*md)); +#endif + return CRYPT_OK; +} + + +int whirlpool_test(void) +{ + #ifndef LTC_TEST + return CRYPT_NOP; + #else + static const struct { + int len; + unsigned char msg[128], hash[64]; + } tests[] = { + + /* NULL Message */ +{ + 0, + { 0x00 }, + { 0x19, 0xFA, 0x61, 0xD7, 0x55, 0x22, 0xA4, 0x66, 0x9B, 0x44, 0xE3, 0x9C, 0x1D, 0x2E, 0x17, 0x26, + 0xC5, 0x30, 0x23, 0x21, 0x30, 0xD4, 0x07, 0xF8, 0x9A, 0xFE, 0xE0, 0x96, 0x49, 0x97, 0xF7, 0xA7, + 0x3E, 0x83, 0xBE, 0x69, 0x8B, 0x28, 0x8F, 0xEB, 0xCF, 0x88, 0xE3, 0xE0, 0x3C, 0x4F, 0x07, 0x57, + 0xEA, 0x89, 0x64, 0xE5, 0x9B, 0x63, 0xD9, 0x37, 0x08, 0xB1, 0x38, 0xCC, 0x42, 0xA6, 0x6E, 0xB3 } +}, + + + /* 448-bits of 0 bits */ +{ + + 56, + { 0x00 }, + { 0x0B, 0x3F, 0x53, 0x78, 0xEB, 0xED, 0x2B, 0xF4, 0xD7, 0xBE, 0x3C, 0xFD, 0x81, 0x8C, 0x1B, 0x03, + 0xB6, 0xBB, 0x03, 0xD3, 0x46, 0x94, 0x8B, 0x04, 0xF4, 0xF4, 0x0C, 0x72, 0x6F, 0x07, 0x58, 0x70, + 0x2A, 0x0F, 0x1E, 0x22, 0x58, 0x80, 0xE3, 0x8D, 0xD5, 0xF6, 0xED, 0x6D, 0xE9, 0xB1, 0xE9, 0x61, + 0xE4, 0x9F, 0xC1, 0x31, 0x8D, 0x7C, 0xB7, 0x48, 0x22, 0xF3, 0xD0, 0xE2, 0xE9, 0xA7, 0xE7, 0xB0 } +}, + + /* 520-bits of 0 bits */ +{ + 65, + { 0x00 }, + { 0x85, 0xE1, 0x24, 0xC4, 0x41, 0x5B, 0xCF, 0x43, 0x19, 0x54, 0x3E, 0x3A, 0x63, 0xFF, 0x57, 0x1D, + 0x09, 0x35, 0x4C, 0xEE, 0xBE, 0xE1, 0xE3, 0x25, 0x30, 0x8C, 0x90, 0x69, 0xF4, 0x3E, 0x2A, 0xE4, + 0xD0, 0xE5, 0x1D, 0x4E, 0xB1, 0xE8, 0x64, 0x28, 0x70, 0x19, 0x4E, 0x95, 0x30, 0xD8, 0xD8, 0xAF, + 0x65, 0x89, 0xD1, 0xBF, 0x69, 0x49, 0xDD, 0xF9, 0x0A, 0x7F, 0x12, 0x08, 0x62, 0x37, 0x95, 0xB9 } +}, + + /* 512-bits, leading set */ +{ + 64, + { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x10, 0x3E, 0x00, 0x55, 0xA9, 0xB0, 0x90, 0xE1, 0x1C, 0x8F, 0xDD, 0xEB, 0xBA, 0x06, 0xC0, 0x5A, + 0xCE, 0x8B, 0x64, 0xB8, 0x96, 0x12, 0x8F, 0x6E, 0xED, 0x30, 0x71, 0xFC, 0xF3, 0xDC, 0x16, 0x94, + 0x67, 0x78, 0xE0, 0x72, 0x23, 0x23, 0x3F, 0xD1, 0x80, 0xFC, 0x40, 0xCC, 0xDB, 0x84, 0x30, 0xA6, + 0x40, 0xE3, 0x76, 0x34, 0x27, 0x1E, 0x65, 0x5C, 0xA1, 0x67, 0x4E, 0xBF, 0xF5, 0x07, 0xF8, 0xCB } +}, + + /* 512-bits, leading set of second byte */ +{ + 64, + { 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x35, 0x7B, 0x42, 0xEA, 0x79, 0xBC, 0x97, 0x86, 0x97, 0x5A, 0x3C, 0x44, 0x70, 0xAA, 0xB2, 0x3E, + 0x62, 0x29, 0x79, 0x7B, 0xAD, 0xBD, 0x54, 0x36, 0x5B, 0x54, 0x96, 0xE5, 0x5D, 0x9D, 0xD7, 0x9F, + 0xE9, 0x62, 0x4F, 0xB4, 0x22, 0x66, 0x93, 0x0A, 0x62, 0x8E, 0xD4, 0xDB, 0x08, 0xF9, 0xDD, 0x35, + 0xEF, 0x1B, 0xE1, 0x04, 0x53, 0xFC, 0x18, 0xF4, 0x2C, 0x7F, 0x5E, 0x1F, 0x9B, 0xAE, 0x55, 0xE0 } +}, + + /* 512-bits, leading set of last byte */ +{ + 64, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, + { 0x8B, 0x39, 0x04, 0xDD, 0x19, 0x81, 0x41, 0x26, 0xFD, 0x02, 0x74, 0xAB, 0x49, 0xC5, 0x97, 0xF6, + 0xD7, 0x75, 0x33, 0x52, 0xA2, 0xDD, 0x91, 0xFD, 0x8F, 0x9F, 0x54, 0x05, 0x4C, 0x54, 0xBF, 0x0F, + 0x06, 0xDB, 0x4F, 0xF7, 0x08, 0xA3, 0xA2, 0x8B, 0xC3, 0x7A, 0x92, 0x1E, 0xEE, 0x11, 0xED, 0x7B, + 0x6A, 0x53, 0x79, 0x32, 0xCC, 0x5E, 0x94, 0xEE, 0x1E, 0xA6, 0x57, 0x60, 0x7E, 0x36, 0xC9, 0xF7 } +}, + +}; + + int i; + unsigned char tmp[64]; + hash_state md; + + for (i = 0; i < (int)(sizeof(tests)/sizeof(tests[0])); i++) { + whirlpool_init(&md); + whirlpool_process(&md, (unsigned char *)tests[i].msg, tests[i].len); + whirlpool_done(&md, tmp); + if (memcmp(tmp, tests[i].hash, 64) != 0) { +#if 0 + printf("\nFailed test %d\n", i); + for (i = 0; i < 64; ) { + printf("%02x ", tmp[i]); + if (!(++i & 15)) printf("\n"); + } +#endif + return CRYPT_FAIL_TESTVECTOR; + } + } + return CRYPT_OK; + #endif +} + + +#endif + diff --git a/whirltab.c b/whirltab.c new file mode 100644 index 0000000..0ce779b --- /dev/null +++ b/whirltab.c @@ -0,0 +1,550 @@ +static const ulong64 sbox0[] = { +CONST64(0x18186018c07830d8), CONST64(0x23238c2305af4626), CONST64(0xc6c63fc67ef991b8), CONST64(0xe8e887e8136fcdfb), +CONST64(0x878726874ca113cb), CONST64(0xb8b8dab8a9626d11), CONST64(0x0101040108050209), CONST64(0x4f4f214f426e9e0d), +CONST64(0x3636d836adee6c9b), CONST64(0xa6a6a2a6590451ff), CONST64(0xd2d26fd2debdb90c), CONST64(0xf5f5f3f5fb06f70e), +CONST64(0x7979f979ef80f296), CONST64(0x6f6fa16f5fcede30), CONST64(0x91917e91fcef3f6d), CONST64(0x52525552aa07a4f8), +CONST64(0x60609d6027fdc047), CONST64(0xbcbccabc89766535), CONST64(0x9b9b569baccd2b37), CONST64(0x8e8e028e048c018a), +CONST64(0xa3a3b6a371155bd2), CONST64(0x0c0c300c603c186c), CONST64(0x7b7bf17bff8af684), CONST64(0x3535d435b5e16a80), +CONST64(0x1d1d741de8693af5), CONST64(0xe0e0a7e05347ddb3), CONST64(0xd7d77bd7f6acb321), CONST64(0xc2c22fc25eed999c), +CONST64(0x2e2eb82e6d965c43), CONST64(0x4b4b314b627a9629), CONST64(0xfefedffea321e15d), CONST64(0x575741578216aed5), +CONST64(0x15155415a8412abd), CONST64(0x7777c1779fb6eee8), CONST64(0x3737dc37a5eb6e92), CONST64(0xe5e5b3e57b56d79e), +CONST64(0x9f9f469f8cd92313), CONST64(0xf0f0e7f0d317fd23), CONST64(0x4a4a354a6a7f9420), CONST64(0xdada4fda9e95a944), +CONST64(0x58587d58fa25b0a2), CONST64(0xc9c903c906ca8fcf), CONST64(0x2929a429558d527c), CONST64(0x0a0a280a5022145a), +CONST64(0xb1b1feb1e14f7f50), CONST64(0xa0a0baa0691a5dc9), CONST64(0x6b6bb16b7fdad614), CONST64(0x85852e855cab17d9), +CONST64(0xbdbdcebd8173673c), CONST64(0x5d5d695dd234ba8f), CONST64(0x1010401080502090), CONST64(0xf4f4f7f4f303f507), +CONST64(0xcbcb0bcb16c08bdd), CONST64(0x3e3ef83eedc67cd3), CONST64(0x0505140528110a2d), CONST64(0x676781671fe6ce78), +CONST64(0xe4e4b7e47353d597), CONST64(0x27279c2725bb4e02), CONST64(0x4141194132588273), CONST64(0x8b8b168b2c9d0ba7), +CONST64(0xa7a7a6a7510153f6), CONST64(0x7d7de97dcf94fab2), CONST64(0x95956e95dcfb3749), CONST64(0xd8d847d88e9fad56), +CONST64(0xfbfbcbfb8b30eb70), CONST64(0xeeee9fee2371c1cd), CONST64(0x7c7ced7cc791f8bb), CONST64(0x6666856617e3cc71), +CONST64(0xdddd53dda68ea77b), CONST64(0x17175c17b84b2eaf), CONST64(0x4747014702468e45), CONST64(0x9e9e429e84dc211a), +CONST64(0xcaca0fca1ec589d4), CONST64(0x2d2db42d75995a58), CONST64(0xbfbfc6bf9179632e), CONST64(0x07071c07381b0e3f), +CONST64(0xadad8ead012347ac), CONST64(0x5a5a755aea2fb4b0), CONST64(0x838336836cb51bef), CONST64(0x3333cc3385ff66b6), +CONST64(0x636391633ff2c65c), CONST64(0x02020802100a0412), CONST64(0xaaaa92aa39384993), CONST64(0x7171d971afa8e2de), +CONST64(0xc8c807c80ecf8dc6), CONST64(0x19196419c87d32d1), CONST64(0x494939497270923b), CONST64(0xd9d943d9869aaf5f), +CONST64(0xf2f2eff2c31df931), CONST64(0xe3e3abe34b48dba8), CONST64(0x5b5b715be22ab6b9), CONST64(0x88881a8834920dbc), +CONST64(0x9a9a529aa4c8293e), CONST64(0x262698262dbe4c0b), CONST64(0x3232c8328dfa64bf), CONST64(0xb0b0fab0e94a7d59), +CONST64(0xe9e983e91b6acff2), CONST64(0x0f0f3c0f78331e77), CONST64(0xd5d573d5e6a6b733), CONST64(0x80803a8074ba1df4), +CONST64(0xbebec2be997c6127), CONST64(0xcdcd13cd26de87eb), CONST64(0x3434d034bde46889), CONST64(0x48483d487a759032), +CONST64(0xffffdbffab24e354), CONST64(0x7a7af57af78ff48d), CONST64(0x90907a90f4ea3d64), CONST64(0x5f5f615fc23ebe9d), +CONST64(0x202080201da0403d), CONST64(0x6868bd6867d5d00f), CONST64(0x1a1a681ad07234ca), CONST64(0xaeae82ae192c41b7), +CONST64(0xb4b4eab4c95e757d), CONST64(0x54544d549a19a8ce), CONST64(0x93937693ece53b7f), CONST64(0x222288220daa442f), +CONST64(0x64648d6407e9c863), CONST64(0xf1f1e3f1db12ff2a), CONST64(0x7373d173bfa2e6cc), CONST64(0x12124812905a2482), +CONST64(0x40401d403a5d807a), CONST64(0x0808200840281048), CONST64(0xc3c32bc356e89b95), CONST64(0xecec97ec337bc5df), +CONST64(0xdbdb4bdb9690ab4d), CONST64(0xa1a1bea1611f5fc0), CONST64(0x8d8d0e8d1c830791), CONST64(0x3d3df43df5c97ac8), +CONST64(0x97976697ccf1335b), CONST64(0x0000000000000000), CONST64(0xcfcf1bcf36d483f9), CONST64(0x2b2bac2b4587566e), +CONST64(0x7676c57697b3ece1), CONST64(0x8282328264b019e6), CONST64(0xd6d67fd6fea9b128), CONST64(0x1b1b6c1bd87736c3), +CONST64(0xb5b5eeb5c15b7774), CONST64(0xafaf86af112943be), CONST64(0x6a6ab56a77dfd41d), CONST64(0x50505d50ba0da0ea), +CONST64(0x45450945124c8a57), CONST64(0xf3f3ebf3cb18fb38), CONST64(0x3030c0309df060ad), CONST64(0xefef9bef2b74c3c4), +CONST64(0x3f3ffc3fe5c37eda), CONST64(0x55554955921caac7), CONST64(0xa2a2b2a2791059db), CONST64(0xeaea8fea0365c9e9), +CONST64(0x656589650fecca6a), CONST64(0xbabad2bab9686903), CONST64(0x2f2fbc2f65935e4a), CONST64(0xc0c027c04ee79d8e), +CONST64(0xdede5fdebe81a160), CONST64(0x1c1c701ce06c38fc), CONST64(0xfdfdd3fdbb2ee746), CONST64(0x4d4d294d52649a1f), +CONST64(0x92927292e4e03976), CONST64(0x7575c9758fbceafa), CONST64(0x06061806301e0c36), CONST64(0x8a8a128a249809ae), +CONST64(0xb2b2f2b2f940794b), CONST64(0xe6e6bfe66359d185), CONST64(0x0e0e380e70361c7e), CONST64(0x1f1f7c1ff8633ee7), +CONST64(0x6262956237f7c455), CONST64(0xd4d477d4eea3b53a), CONST64(0xa8a89aa829324d81), CONST64(0x96966296c4f43152), +CONST64(0xf9f9c3f99b3aef62), CONST64(0xc5c533c566f697a3), CONST64(0x2525942535b14a10), CONST64(0x59597959f220b2ab), +CONST64(0x84842a8454ae15d0), CONST64(0x7272d572b7a7e4c5), CONST64(0x3939e439d5dd72ec), CONST64(0x4c4c2d4c5a619816), +CONST64(0x5e5e655eca3bbc94), CONST64(0x7878fd78e785f09f), CONST64(0x3838e038ddd870e5), CONST64(0x8c8c0a8c14860598), +CONST64(0xd1d163d1c6b2bf17), CONST64(0xa5a5aea5410b57e4), CONST64(0xe2e2afe2434dd9a1), CONST64(0x616199612ff8c24e), +CONST64(0xb3b3f6b3f1457b42), CONST64(0x2121842115a54234), CONST64(0x9c9c4a9c94d62508), CONST64(0x1e1e781ef0663cee), +CONST64(0x4343114322528661), CONST64(0xc7c73bc776fc93b1), CONST64(0xfcfcd7fcb32be54f), CONST64(0x0404100420140824), +CONST64(0x51515951b208a2e3), CONST64(0x99995e99bcc72f25), CONST64(0x6d6da96d4fc4da22), CONST64(0x0d0d340d68391a65), +CONST64(0xfafacffa8335e979), CONST64(0xdfdf5bdfb684a369), CONST64(0x7e7ee57ed79bfca9), CONST64(0x242490243db44819), +CONST64(0x3b3bec3bc5d776fe), CONST64(0xabab96ab313d4b9a), CONST64(0xcece1fce3ed181f0), CONST64(0x1111441188552299), +CONST64(0x8f8f068f0c890383), CONST64(0x4e4e254e4a6b9c04), CONST64(0xb7b7e6b7d1517366), CONST64(0xebeb8beb0b60cbe0), +CONST64(0x3c3cf03cfdcc78c1), CONST64(0x81813e817cbf1ffd), CONST64(0x94946a94d4fe3540), CONST64(0xf7f7fbf7eb0cf31c), +CONST64(0xb9b9deb9a1676f18), CONST64(0x13134c13985f268b), CONST64(0x2c2cb02c7d9c5851), CONST64(0xd3d36bd3d6b8bb05), +CONST64(0xe7e7bbe76b5cd38c), CONST64(0x6e6ea56e57cbdc39), CONST64(0xc4c437c46ef395aa), CONST64(0x03030c03180f061b), +CONST64(0x565645568a13acdc), CONST64(0x44440d441a49885e), CONST64(0x7f7fe17fdf9efea0), CONST64(0xa9a99ea921374f88), +CONST64(0x2a2aa82a4d825467), CONST64(0xbbbbd6bbb16d6b0a), CONST64(0xc1c123c146e29f87), CONST64(0x53535153a202a6f1), +CONST64(0xdcdc57dcae8ba572), CONST64(0x0b0b2c0b58271653), CONST64(0x9d9d4e9d9cd32701), CONST64(0x6c6cad6c47c1d82b), +CONST64(0x3131c43195f562a4), CONST64(0x7474cd7487b9e8f3), CONST64(0xf6f6fff6e309f115), CONST64(0x464605460a438c4c), +CONST64(0xacac8aac092645a5), CONST64(0x89891e893c970fb5), CONST64(0x14145014a04428b4), CONST64(0xe1e1a3e15b42dfba), +CONST64(0x16165816b04e2ca6), CONST64(0x3a3ae83acdd274f7), CONST64(0x6969b9696fd0d206), CONST64(0x09092409482d1241), +CONST64(0x7070dd70a7ade0d7), CONST64(0xb6b6e2b6d954716f), CONST64(0xd0d067d0ceb7bd1e), CONST64(0xeded93ed3b7ec7d6), +CONST64(0xcccc17cc2edb85e2), CONST64(0x424215422a578468), CONST64(0x98985a98b4c22d2c), CONST64(0xa4a4aaa4490e55ed), +CONST64(0x2828a0285d885075), CONST64(0x5c5c6d5cda31b886), CONST64(0xf8f8c7f8933fed6b), CONST64(0x8686228644a411c2) +}; + +static const ulong64 sbox1[] = { +CONST64(0xd818186018c07830), CONST64(0x2623238c2305af46), CONST64(0xb8c6c63fc67ef991), CONST64(0xfbe8e887e8136fcd), +CONST64(0xcb878726874ca113), CONST64(0x11b8b8dab8a9626d), CONST64(0x0901010401080502), CONST64(0x0d4f4f214f426e9e), +CONST64(0x9b3636d836adee6c), CONST64(0xffa6a6a2a6590451), CONST64(0x0cd2d26fd2debdb9), CONST64(0x0ef5f5f3f5fb06f7), +CONST64(0x967979f979ef80f2), CONST64(0x306f6fa16f5fcede), CONST64(0x6d91917e91fcef3f), CONST64(0xf852525552aa07a4), +CONST64(0x4760609d6027fdc0), CONST64(0x35bcbccabc897665), CONST64(0x379b9b569baccd2b), CONST64(0x8a8e8e028e048c01), +CONST64(0xd2a3a3b6a371155b), CONST64(0x6c0c0c300c603c18), CONST64(0x847b7bf17bff8af6), CONST64(0x803535d435b5e16a), +CONST64(0xf51d1d741de8693a), CONST64(0xb3e0e0a7e05347dd), CONST64(0x21d7d77bd7f6acb3), CONST64(0x9cc2c22fc25eed99), +CONST64(0x432e2eb82e6d965c), CONST64(0x294b4b314b627a96), CONST64(0x5dfefedffea321e1), CONST64(0xd5575741578216ae), +CONST64(0xbd15155415a8412a), CONST64(0xe87777c1779fb6ee), CONST64(0x923737dc37a5eb6e), CONST64(0x9ee5e5b3e57b56d7), +CONST64(0x139f9f469f8cd923), CONST64(0x23f0f0e7f0d317fd), CONST64(0x204a4a354a6a7f94), CONST64(0x44dada4fda9e95a9), +CONST64(0xa258587d58fa25b0), CONST64(0xcfc9c903c906ca8f), CONST64(0x7c2929a429558d52), CONST64(0x5a0a0a280a502214), +CONST64(0x50b1b1feb1e14f7f), CONST64(0xc9a0a0baa0691a5d), CONST64(0x146b6bb16b7fdad6), CONST64(0xd985852e855cab17), +CONST64(0x3cbdbdcebd817367), CONST64(0x8f5d5d695dd234ba), CONST64(0x9010104010805020), CONST64(0x07f4f4f7f4f303f5), +CONST64(0xddcbcb0bcb16c08b), CONST64(0xd33e3ef83eedc67c), CONST64(0x2d0505140528110a), CONST64(0x78676781671fe6ce), +CONST64(0x97e4e4b7e47353d5), CONST64(0x0227279c2725bb4e), CONST64(0x7341411941325882), CONST64(0xa78b8b168b2c9d0b), +CONST64(0xf6a7a7a6a7510153), CONST64(0xb27d7de97dcf94fa), CONST64(0x4995956e95dcfb37), CONST64(0x56d8d847d88e9fad), +CONST64(0x70fbfbcbfb8b30eb), CONST64(0xcdeeee9fee2371c1), CONST64(0xbb7c7ced7cc791f8), CONST64(0x716666856617e3cc), +CONST64(0x7bdddd53dda68ea7), CONST64(0xaf17175c17b84b2e), CONST64(0x454747014702468e), CONST64(0x1a9e9e429e84dc21), +CONST64(0xd4caca0fca1ec589), CONST64(0x582d2db42d75995a), CONST64(0x2ebfbfc6bf917963), CONST64(0x3f07071c07381b0e), +CONST64(0xacadad8ead012347), CONST64(0xb05a5a755aea2fb4), CONST64(0xef838336836cb51b), CONST64(0xb63333cc3385ff66), +CONST64(0x5c636391633ff2c6), CONST64(0x1202020802100a04), CONST64(0x93aaaa92aa393849), CONST64(0xde7171d971afa8e2), +CONST64(0xc6c8c807c80ecf8d), CONST64(0xd119196419c87d32), CONST64(0x3b49493949727092), CONST64(0x5fd9d943d9869aaf), +CONST64(0x31f2f2eff2c31df9), CONST64(0xa8e3e3abe34b48db), CONST64(0xb95b5b715be22ab6), CONST64(0xbc88881a8834920d), +CONST64(0x3e9a9a529aa4c829), CONST64(0x0b262698262dbe4c), CONST64(0xbf3232c8328dfa64), CONST64(0x59b0b0fab0e94a7d), +CONST64(0xf2e9e983e91b6acf), CONST64(0x770f0f3c0f78331e), CONST64(0x33d5d573d5e6a6b7), CONST64(0xf480803a8074ba1d), +CONST64(0x27bebec2be997c61), CONST64(0xebcdcd13cd26de87), CONST64(0x893434d034bde468), CONST64(0x3248483d487a7590), +CONST64(0x54ffffdbffab24e3), CONST64(0x8d7a7af57af78ff4), CONST64(0x6490907a90f4ea3d), CONST64(0x9d5f5f615fc23ebe), +CONST64(0x3d202080201da040), CONST64(0x0f6868bd6867d5d0), CONST64(0xca1a1a681ad07234), CONST64(0xb7aeae82ae192c41), +CONST64(0x7db4b4eab4c95e75), CONST64(0xce54544d549a19a8), CONST64(0x7f93937693ece53b), CONST64(0x2f222288220daa44), +CONST64(0x6364648d6407e9c8), CONST64(0x2af1f1e3f1db12ff), CONST64(0xcc7373d173bfa2e6), CONST64(0x8212124812905a24), +CONST64(0x7a40401d403a5d80), CONST64(0x4808082008402810), CONST64(0x95c3c32bc356e89b), CONST64(0xdfecec97ec337bc5), +CONST64(0x4ddbdb4bdb9690ab), CONST64(0xc0a1a1bea1611f5f), CONST64(0x918d8d0e8d1c8307), CONST64(0xc83d3df43df5c97a), +CONST64(0x5b97976697ccf133), CONST64(0x0000000000000000), CONST64(0xf9cfcf1bcf36d483), CONST64(0x6e2b2bac2b458756), +CONST64(0xe17676c57697b3ec), CONST64(0xe68282328264b019), CONST64(0x28d6d67fd6fea9b1), CONST64(0xc31b1b6c1bd87736), +CONST64(0x74b5b5eeb5c15b77), CONST64(0xbeafaf86af112943), CONST64(0x1d6a6ab56a77dfd4), CONST64(0xea50505d50ba0da0), +CONST64(0x5745450945124c8a), CONST64(0x38f3f3ebf3cb18fb), CONST64(0xad3030c0309df060), CONST64(0xc4efef9bef2b74c3), +CONST64(0xda3f3ffc3fe5c37e), CONST64(0xc755554955921caa), CONST64(0xdba2a2b2a2791059), CONST64(0xe9eaea8fea0365c9), +CONST64(0x6a656589650fecca), CONST64(0x03babad2bab96869), CONST64(0x4a2f2fbc2f65935e), CONST64(0x8ec0c027c04ee79d), +CONST64(0x60dede5fdebe81a1), CONST64(0xfc1c1c701ce06c38), CONST64(0x46fdfdd3fdbb2ee7), CONST64(0x1f4d4d294d52649a), +CONST64(0x7692927292e4e039), CONST64(0xfa7575c9758fbcea), CONST64(0x3606061806301e0c), CONST64(0xae8a8a128a249809), +CONST64(0x4bb2b2f2b2f94079), CONST64(0x85e6e6bfe66359d1), CONST64(0x7e0e0e380e70361c), CONST64(0xe71f1f7c1ff8633e), +CONST64(0x556262956237f7c4), CONST64(0x3ad4d477d4eea3b5), CONST64(0x81a8a89aa829324d), CONST64(0x5296966296c4f431), +CONST64(0x62f9f9c3f99b3aef), CONST64(0xa3c5c533c566f697), CONST64(0x102525942535b14a), CONST64(0xab59597959f220b2), +CONST64(0xd084842a8454ae15), CONST64(0xc57272d572b7a7e4), CONST64(0xec3939e439d5dd72), CONST64(0x164c4c2d4c5a6198), +CONST64(0x945e5e655eca3bbc), CONST64(0x9f7878fd78e785f0), CONST64(0xe53838e038ddd870), CONST64(0x988c8c0a8c148605), +CONST64(0x17d1d163d1c6b2bf), CONST64(0xe4a5a5aea5410b57), CONST64(0xa1e2e2afe2434dd9), CONST64(0x4e616199612ff8c2), +CONST64(0x42b3b3f6b3f1457b), CONST64(0x342121842115a542), CONST64(0x089c9c4a9c94d625), CONST64(0xee1e1e781ef0663c), +CONST64(0x6143431143225286), CONST64(0xb1c7c73bc776fc93), CONST64(0x4ffcfcd7fcb32be5), CONST64(0x2404041004201408), +CONST64(0xe351515951b208a2), CONST64(0x2599995e99bcc72f), CONST64(0x226d6da96d4fc4da), CONST64(0x650d0d340d68391a), +CONST64(0x79fafacffa8335e9), CONST64(0x69dfdf5bdfb684a3), CONST64(0xa97e7ee57ed79bfc), CONST64(0x19242490243db448), +CONST64(0xfe3b3bec3bc5d776), CONST64(0x9aabab96ab313d4b), CONST64(0xf0cece1fce3ed181), CONST64(0x9911114411885522), +CONST64(0x838f8f068f0c8903), CONST64(0x044e4e254e4a6b9c), CONST64(0x66b7b7e6b7d15173), CONST64(0xe0ebeb8beb0b60cb), +CONST64(0xc13c3cf03cfdcc78), CONST64(0xfd81813e817cbf1f), CONST64(0x4094946a94d4fe35), CONST64(0x1cf7f7fbf7eb0cf3), +CONST64(0x18b9b9deb9a1676f), CONST64(0x8b13134c13985f26), CONST64(0x512c2cb02c7d9c58), CONST64(0x05d3d36bd3d6b8bb), +CONST64(0x8ce7e7bbe76b5cd3), CONST64(0x396e6ea56e57cbdc), CONST64(0xaac4c437c46ef395), CONST64(0x1b03030c03180f06), +CONST64(0xdc565645568a13ac), CONST64(0x5e44440d441a4988), CONST64(0xa07f7fe17fdf9efe), CONST64(0x88a9a99ea921374f), +CONST64(0x672a2aa82a4d8254), CONST64(0x0abbbbd6bbb16d6b), CONST64(0x87c1c123c146e29f), CONST64(0xf153535153a202a6), +CONST64(0x72dcdc57dcae8ba5), CONST64(0x530b0b2c0b582716), CONST64(0x019d9d4e9d9cd327), CONST64(0x2b6c6cad6c47c1d8), +CONST64(0xa43131c43195f562), CONST64(0xf37474cd7487b9e8), CONST64(0x15f6f6fff6e309f1), CONST64(0x4c464605460a438c), +CONST64(0xa5acac8aac092645), CONST64(0xb589891e893c970f), CONST64(0xb414145014a04428), CONST64(0xbae1e1a3e15b42df), +CONST64(0xa616165816b04e2c), CONST64(0xf73a3ae83acdd274), CONST64(0x066969b9696fd0d2), CONST64(0x4109092409482d12), +CONST64(0xd77070dd70a7ade0), CONST64(0x6fb6b6e2b6d95471), CONST64(0x1ed0d067d0ceb7bd), CONST64(0xd6eded93ed3b7ec7), +CONST64(0xe2cccc17cc2edb85), CONST64(0x68424215422a5784), CONST64(0x2c98985a98b4c22d), CONST64(0xeda4a4aaa4490e55), +CONST64(0x752828a0285d8850), CONST64(0x865c5c6d5cda31b8), CONST64(0x6bf8f8c7f8933fed), CONST64(0xc28686228644a411) +}; + +static const ulong64 sbox2[] = { +CONST64(0x30d818186018c078), CONST64(0x462623238c2305af), CONST64(0x91b8c6c63fc67ef9), CONST64(0xcdfbe8e887e8136f), +CONST64(0x13cb878726874ca1), CONST64(0x6d11b8b8dab8a962), CONST64(0x0209010104010805), CONST64(0x9e0d4f4f214f426e), +CONST64(0x6c9b3636d836adee), CONST64(0x51ffa6a6a2a65904), CONST64(0xb90cd2d26fd2debd), CONST64(0xf70ef5f5f3f5fb06), +CONST64(0xf2967979f979ef80), CONST64(0xde306f6fa16f5fce), CONST64(0x3f6d91917e91fcef), CONST64(0xa4f852525552aa07), +CONST64(0xc04760609d6027fd), CONST64(0x6535bcbccabc8976), CONST64(0x2b379b9b569baccd), CONST64(0x018a8e8e028e048c), +CONST64(0x5bd2a3a3b6a37115), CONST64(0x186c0c0c300c603c), CONST64(0xf6847b7bf17bff8a), CONST64(0x6a803535d435b5e1), +CONST64(0x3af51d1d741de869), CONST64(0xddb3e0e0a7e05347), CONST64(0xb321d7d77bd7f6ac), CONST64(0x999cc2c22fc25eed), +CONST64(0x5c432e2eb82e6d96), CONST64(0x96294b4b314b627a), CONST64(0xe15dfefedffea321), CONST64(0xaed5575741578216), +CONST64(0x2abd15155415a841), CONST64(0xeee87777c1779fb6), CONST64(0x6e923737dc37a5eb), CONST64(0xd79ee5e5b3e57b56), +CONST64(0x23139f9f469f8cd9), CONST64(0xfd23f0f0e7f0d317), CONST64(0x94204a4a354a6a7f), CONST64(0xa944dada4fda9e95), +CONST64(0xb0a258587d58fa25), CONST64(0x8fcfc9c903c906ca), CONST64(0x527c2929a429558d), CONST64(0x145a0a0a280a5022), +CONST64(0x7f50b1b1feb1e14f), CONST64(0x5dc9a0a0baa0691a), CONST64(0xd6146b6bb16b7fda), CONST64(0x17d985852e855cab), +CONST64(0x673cbdbdcebd8173), CONST64(0xba8f5d5d695dd234), CONST64(0x2090101040108050), CONST64(0xf507f4f4f7f4f303), +CONST64(0x8bddcbcb0bcb16c0), CONST64(0x7cd33e3ef83eedc6), CONST64(0x0a2d050514052811), CONST64(0xce78676781671fe6), +CONST64(0xd597e4e4b7e47353), CONST64(0x4e0227279c2725bb), CONST64(0x8273414119413258), CONST64(0x0ba78b8b168b2c9d), +CONST64(0x53f6a7a7a6a75101), CONST64(0xfab27d7de97dcf94), CONST64(0x374995956e95dcfb), CONST64(0xad56d8d847d88e9f), +CONST64(0xeb70fbfbcbfb8b30), CONST64(0xc1cdeeee9fee2371), CONST64(0xf8bb7c7ced7cc791), CONST64(0xcc716666856617e3), +CONST64(0xa77bdddd53dda68e), CONST64(0x2eaf17175c17b84b), CONST64(0x8e45474701470246), CONST64(0x211a9e9e429e84dc), +CONST64(0x89d4caca0fca1ec5), CONST64(0x5a582d2db42d7599), CONST64(0x632ebfbfc6bf9179), CONST64(0x0e3f07071c07381b), +CONST64(0x47acadad8ead0123), CONST64(0xb4b05a5a755aea2f), CONST64(0x1bef838336836cb5), CONST64(0x66b63333cc3385ff), +CONST64(0xc65c636391633ff2), CONST64(0x041202020802100a), CONST64(0x4993aaaa92aa3938), CONST64(0xe2de7171d971afa8), +CONST64(0x8dc6c8c807c80ecf), CONST64(0x32d119196419c87d), CONST64(0x923b494939497270), CONST64(0xaf5fd9d943d9869a), +CONST64(0xf931f2f2eff2c31d), CONST64(0xdba8e3e3abe34b48), CONST64(0xb6b95b5b715be22a), CONST64(0x0dbc88881a883492), +CONST64(0x293e9a9a529aa4c8), CONST64(0x4c0b262698262dbe), CONST64(0x64bf3232c8328dfa), CONST64(0x7d59b0b0fab0e94a), +CONST64(0xcff2e9e983e91b6a), CONST64(0x1e770f0f3c0f7833), CONST64(0xb733d5d573d5e6a6), CONST64(0x1df480803a8074ba), +CONST64(0x6127bebec2be997c), CONST64(0x87ebcdcd13cd26de), CONST64(0x68893434d034bde4), CONST64(0x903248483d487a75), +CONST64(0xe354ffffdbffab24), CONST64(0xf48d7a7af57af78f), CONST64(0x3d6490907a90f4ea), CONST64(0xbe9d5f5f615fc23e), +CONST64(0x403d202080201da0), CONST64(0xd00f6868bd6867d5), CONST64(0x34ca1a1a681ad072), CONST64(0x41b7aeae82ae192c), +CONST64(0x757db4b4eab4c95e), CONST64(0xa8ce54544d549a19), CONST64(0x3b7f93937693ece5), CONST64(0x442f222288220daa), +CONST64(0xc86364648d6407e9), CONST64(0xff2af1f1e3f1db12), CONST64(0xe6cc7373d173bfa2), CONST64(0x248212124812905a), +CONST64(0x807a40401d403a5d), CONST64(0x1048080820084028), CONST64(0x9b95c3c32bc356e8), CONST64(0xc5dfecec97ec337b), +CONST64(0xab4ddbdb4bdb9690), CONST64(0x5fc0a1a1bea1611f), CONST64(0x07918d8d0e8d1c83), CONST64(0x7ac83d3df43df5c9), +CONST64(0x335b97976697ccf1), CONST64(0x0000000000000000), CONST64(0x83f9cfcf1bcf36d4), CONST64(0x566e2b2bac2b4587), +CONST64(0xece17676c57697b3), CONST64(0x19e68282328264b0), CONST64(0xb128d6d67fd6fea9), CONST64(0x36c31b1b6c1bd877), +CONST64(0x7774b5b5eeb5c15b), CONST64(0x43beafaf86af1129), CONST64(0xd41d6a6ab56a77df), CONST64(0xa0ea50505d50ba0d), +CONST64(0x8a5745450945124c), CONST64(0xfb38f3f3ebf3cb18), CONST64(0x60ad3030c0309df0), CONST64(0xc3c4efef9bef2b74), +CONST64(0x7eda3f3ffc3fe5c3), CONST64(0xaac755554955921c), CONST64(0x59dba2a2b2a27910), CONST64(0xc9e9eaea8fea0365), +CONST64(0xca6a656589650fec), CONST64(0x6903babad2bab968), CONST64(0x5e4a2f2fbc2f6593), CONST64(0x9d8ec0c027c04ee7), +CONST64(0xa160dede5fdebe81), CONST64(0x38fc1c1c701ce06c), CONST64(0xe746fdfdd3fdbb2e), CONST64(0x9a1f4d4d294d5264), +CONST64(0x397692927292e4e0), CONST64(0xeafa7575c9758fbc), CONST64(0x0c3606061806301e), CONST64(0x09ae8a8a128a2498), +CONST64(0x794bb2b2f2b2f940), CONST64(0xd185e6e6bfe66359), CONST64(0x1c7e0e0e380e7036), CONST64(0x3ee71f1f7c1ff863), +CONST64(0xc4556262956237f7), CONST64(0xb53ad4d477d4eea3), CONST64(0x4d81a8a89aa82932), CONST64(0x315296966296c4f4), +CONST64(0xef62f9f9c3f99b3a), CONST64(0x97a3c5c533c566f6), CONST64(0x4a102525942535b1), CONST64(0xb2ab59597959f220), +CONST64(0x15d084842a8454ae), CONST64(0xe4c57272d572b7a7), CONST64(0x72ec3939e439d5dd), CONST64(0x98164c4c2d4c5a61), +CONST64(0xbc945e5e655eca3b), CONST64(0xf09f7878fd78e785), CONST64(0x70e53838e038ddd8), CONST64(0x05988c8c0a8c1486), +CONST64(0xbf17d1d163d1c6b2), CONST64(0x57e4a5a5aea5410b), CONST64(0xd9a1e2e2afe2434d), CONST64(0xc24e616199612ff8), +CONST64(0x7b42b3b3f6b3f145), CONST64(0x42342121842115a5), CONST64(0x25089c9c4a9c94d6), CONST64(0x3cee1e1e781ef066), +CONST64(0x8661434311432252), CONST64(0x93b1c7c73bc776fc), CONST64(0xe54ffcfcd7fcb32b), CONST64(0x0824040410042014), +CONST64(0xa2e351515951b208), CONST64(0x2f2599995e99bcc7), CONST64(0xda226d6da96d4fc4), CONST64(0x1a650d0d340d6839), +CONST64(0xe979fafacffa8335), CONST64(0xa369dfdf5bdfb684), CONST64(0xfca97e7ee57ed79b), CONST64(0x4819242490243db4), +CONST64(0x76fe3b3bec3bc5d7), CONST64(0x4b9aabab96ab313d), CONST64(0x81f0cece1fce3ed1), CONST64(0x2299111144118855), +CONST64(0x03838f8f068f0c89), CONST64(0x9c044e4e254e4a6b), CONST64(0x7366b7b7e6b7d151), CONST64(0xcbe0ebeb8beb0b60), +CONST64(0x78c13c3cf03cfdcc), CONST64(0x1ffd81813e817cbf), CONST64(0x354094946a94d4fe), CONST64(0xf31cf7f7fbf7eb0c), +CONST64(0x6f18b9b9deb9a167), CONST64(0x268b13134c13985f), CONST64(0x58512c2cb02c7d9c), CONST64(0xbb05d3d36bd3d6b8), +CONST64(0xd38ce7e7bbe76b5c), CONST64(0xdc396e6ea56e57cb), CONST64(0x95aac4c437c46ef3), CONST64(0x061b03030c03180f), +CONST64(0xacdc565645568a13), CONST64(0x885e44440d441a49), CONST64(0xfea07f7fe17fdf9e), CONST64(0x4f88a9a99ea92137), +CONST64(0x54672a2aa82a4d82), CONST64(0x6b0abbbbd6bbb16d), CONST64(0x9f87c1c123c146e2), CONST64(0xa6f153535153a202), +CONST64(0xa572dcdc57dcae8b), CONST64(0x16530b0b2c0b5827), CONST64(0x27019d9d4e9d9cd3), CONST64(0xd82b6c6cad6c47c1), +CONST64(0x62a43131c43195f5), CONST64(0xe8f37474cd7487b9), CONST64(0xf115f6f6fff6e309), CONST64(0x8c4c464605460a43), +CONST64(0x45a5acac8aac0926), CONST64(0x0fb589891e893c97), CONST64(0x28b414145014a044), CONST64(0xdfbae1e1a3e15b42), +CONST64(0x2ca616165816b04e), CONST64(0x74f73a3ae83acdd2), CONST64(0xd2066969b9696fd0), CONST64(0x124109092409482d), +CONST64(0xe0d77070dd70a7ad), CONST64(0x716fb6b6e2b6d954), CONST64(0xbd1ed0d067d0ceb7), CONST64(0xc7d6eded93ed3b7e), +CONST64(0x85e2cccc17cc2edb), CONST64(0x8468424215422a57), CONST64(0x2d2c98985a98b4c2), CONST64(0x55eda4a4aaa4490e), +CONST64(0x50752828a0285d88), CONST64(0xb8865c5c6d5cda31), CONST64(0xed6bf8f8c7f8933f), CONST64(0x11c28686228644a4) +}; + +static const ulong64 sbox3[] = { +CONST64(0x7830d818186018c0), CONST64(0xaf462623238c2305), CONST64(0xf991b8c6c63fc67e), CONST64(0x6fcdfbe8e887e813), +CONST64(0xa113cb878726874c), CONST64(0x626d11b8b8dab8a9), CONST64(0x0502090101040108), CONST64(0x6e9e0d4f4f214f42), +CONST64(0xee6c9b3636d836ad), CONST64(0x0451ffa6a6a2a659), CONST64(0xbdb90cd2d26fd2de), CONST64(0x06f70ef5f5f3f5fb), +CONST64(0x80f2967979f979ef), CONST64(0xcede306f6fa16f5f), CONST64(0xef3f6d91917e91fc), CONST64(0x07a4f852525552aa), +CONST64(0xfdc04760609d6027), CONST64(0x766535bcbccabc89), CONST64(0xcd2b379b9b569bac), CONST64(0x8c018a8e8e028e04), +CONST64(0x155bd2a3a3b6a371), CONST64(0x3c186c0c0c300c60), CONST64(0x8af6847b7bf17bff), CONST64(0xe16a803535d435b5), +CONST64(0x693af51d1d741de8), CONST64(0x47ddb3e0e0a7e053), CONST64(0xacb321d7d77bd7f6), CONST64(0xed999cc2c22fc25e), +CONST64(0x965c432e2eb82e6d), CONST64(0x7a96294b4b314b62), CONST64(0x21e15dfefedffea3), CONST64(0x16aed55757415782), +CONST64(0x412abd15155415a8), CONST64(0xb6eee87777c1779f), CONST64(0xeb6e923737dc37a5), CONST64(0x56d79ee5e5b3e57b), +CONST64(0xd923139f9f469f8c), CONST64(0x17fd23f0f0e7f0d3), CONST64(0x7f94204a4a354a6a), CONST64(0x95a944dada4fda9e), +CONST64(0x25b0a258587d58fa), CONST64(0xca8fcfc9c903c906), CONST64(0x8d527c2929a42955), CONST64(0x22145a0a0a280a50), +CONST64(0x4f7f50b1b1feb1e1), CONST64(0x1a5dc9a0a0baa069), CONST64(0xdad6146b6bb16b7f), CONST64(0xab17d985852e855c), +CONST64(0x73673cbdbdcebd81), CONST64(0x34ba8f5d5d695dd2), CONST64(0x5020901010401080), CONST64(0x03f507f4f4f7f4f3), +CONST64(0xc08bddcbcb0bcb16), CONST64(0xc67cd33e3ef83eed), CONST64(0x110a2d0505140528), CONST64(0xe6ce78676781671f), +CONST64(0x53d597e4e4b7e473), CONST64(0xbb4e0227279c2725), CONST64(0x5882734141194132), CONST64(0x9d0ba78b8b168b2c), +CONST64(0x0153f6a7a7a6a751), CONST64(0x94fab27d7de97dcf), CONST64(0xfb374995956e95dc), CONST64(0x9fad56d8d847d88e), +CONST64(0x30eb70fbfbcbfb8b), CONST64(0x71c1cdeeee9fee23), CONST64(0x91f8bb7c7ced7cc7), CONST64(0xe3cc716666856617), +CONST64(0x8ea77bdddd53dda6), CONST64(0x4b2eaf17175c17b8), CONST64(0x468e454747014702), CONST64(0xdc211a9e9e429e84), +CONST64(0xc589d4caca0fca1e), CONST64(0x995a582d2db42d75), CONST64(0x79632ebfbfc6bf91), CONST64(0x1b0e3f07071c0738), +CONST64(0x2347acadad8ead01), CONST64(0x2fb4b05a5a755aea), CONST64(0xb51bef838336836c), CONST64(0xff66b63333cc3385), +CONST64(0xf2c65c636391633f), CONST64(0x0a04120202080210), CONST64(0x384993aaaa92aa39), CONST64(0xa8e2de7171d971af), +CONST64(0xcf8dc6c8c807c80e), CONST64(0x7d32d119196419c8), CONST64(0x70923b4949394972), CONST64(0x9aaf5fd9d943d986), +CONST64(0x1df931f2f2eff2c3), CONST64(0x48dba8e3e3abe34b), CONST64(0x2ab6b95b5b715be2), CONST64(0x920dbc88881a8834), +CONST64(0xc8293e9a9a529aa4), CONST64(0xbe4c0b262698262d), CONST64(0xfa64bf3232c8328d), CONST64(0x4a7d59b0b0fab0e9), +CONST64(0x6acff2e9e983e91b), CONST64(0x331e770f0f3c0f78), CONST64(0xa6b733d5d573d5e6), CONST64(0xba1df480803a8074), +CONST64(0x7c6127bebec2be99), CONST64(0xde87ebcdcd13cd26), CONST64(0xe468893434d034bd), CONST64(0x75903248483d487a), +CONST64(0x24e354ffffdbffab), CONST64(0x8ff48d7a7af57af7), CONST64(0xea3d6490907a90f4), CONST64(0x3ebe9d5f5f615fc2), +CONST64(0xa0403d202080201d), CONST64(0xd5d00f6868bd6867), CONST64(0x7234ca1a1a681ad0), CONST64(0x2c41b7aeae82ae19), +CONST64(0x5e757db4b4eab4c9), CONST64(0x19a8ce54544d549a), CONST64(0xe53b7f93937693ec), CONST64(0xaa442f222288220d), +CONST64(0xe9c86364648d6407), CONST64(0x12ff2af1f1e3f1db), CONST64(0xa2e6cc7373d173bf), CONST64(0x5a24821212481290), +CONST64(0x5d807a40401d403a), CONST64(0x2810480808200840), CONST64(0xe89b95c3c32bc356), CONST64(0x7bc5dfecec97ec33), +CONST64(0x90ab4ddbdb4bdb96), CONST64(0x1f5fc0a1a1bea161), CONST64(0x8307918d8d0e8d1c), CONST64(0xc97ac83d3df43df5), +CONST64(0xf1335b97976697cc), CONST64(0x0000000000000000), CONST64(0xd483f9cfcf1bcf36), CONST64(0x87566e2b2bac2b45), +CONST64(0xb3ece17676c57697), CONST64(0xb019e68282328264), CONST64(0xa9b128d6d67fd6fe), CONST64(0x7736c31b1b6c1bd8), +CONST64(0x5b7774b5b5eeb5c1), CONST64(0x2943beafaf86af11), CONST64(0xdfd41d6a6ab56a77), CONST64(0x0da0ea50505d50ba), +CONST64(0x4c8a574545094512), CONST64(0x18fb38f3f3ebf3cb), CONST64(0xf060ad3030c0309d), CONST64(0x74c3c4efef9bef2b), +CONST64(0xc37eda3f3ffc3fe5), CONST64(0x1caac75555495592), CONST64(0x1059dba2a2b2a279), CONST64(0x65c9e9eaea8fea03), +CONST64(0xecca6a656589650f), CONST64(0x686903babad2bab9), CONST64(0x935e4a2f2fbc2f65), CONST64(0xe79d8ec0c027c04e), +CONST64(0x81a160dede5fdebe), CONST64(0x6c38fc1c1c701ce0), CONST64(0x2ee746fdfdd3fdbb), CONST64(0x649a1f4d4d294d52), +CONST64(0xe0397692927292e4), CONST64(0xbceafa7575c9758f), CONST64(0x1e0c360606180630), CONST64(0x9809ae8a8a128a24), +CONST64(0x40794bb2b2f2b2f9), CONST64(0x59d185e6e6bfe663), CONST64(0x361c7e0e0e380e70), CONST64(0x633ee71f1f7c1ff8), +CONST64(0xf7c4556262956237), CONST64(0xa3b53ad4d477d4ee), CONST64(0x324d81a8a89aa829), CONST64(0xf4315296966296c4), +CONST64(0x3aef62f9f9c3f99b), CONST64(0xf697a3c5c533c566), CONST64(0xb14a102525942535), CONST64(0x20b2ab59597959f2), +CONST64(0xae15d084842a8454), CONST64(0xa7e4c57272d572b7), CONST64(0xdd72ec3939e439d5), CONST64(0x6198164c4c2d4c5a), +CONST64(0x3bbc945e5e655eca), CONST64(0x85f09f7878fd78e7), CONST64(0xd870e53838e038dd), CONST64(0x8605988c8c0a8c14), +CONST64(0xb2bf17d1d163d1c6), CONST64(0x0b57e4a5a5aea541), CONST64(0x4dd9a1e2e2afe243), CONST64(0xf8c24e616199612f), +CONST64(0x457b42b3b3f6b3f1), CONST64(0xa542342121842115), CONST64(0xd625089c9c4a9c94), CONST64(0x663cee1e1e781ef0), +CONST64(0x5286614343114322), CONST64(0xfc93b1c7c73bc776), CONST64(0x2be54ffcfcd7fcb3), CONST64(0x1408240404100420), +CONST64(0x08a2e351515951b2), CONST64(0xc72f2599995e99bc), CONST64(0xc4da226d6da96d4f), CONST64(0x391a650d0d340d68), +CONST64(0x35e979fafacffa83), CONST64(0x84a369dfdf5bdfb6), CONST64(0x9bfca97e7ee57ed7), CONST64(0xb44819242490243d), +CONST64(0xd776fe3b3bec3bc5), CONST64(0x3d4b9aabab96ab31), CONST64(0xd181f0cece1fce3e), CONST64(0x5522991111441188), +CONST64(0x8903838f8f068f0c), CONST64(0x6b9c044e4e254e4a), CONST64(0x517366b7b7e6b7d1), CONST64(0x60cbe0ebeb8beb0b), +CONST64(0xcc78c13c3cf03cfd), CONST64(0xbf1ffd81813e817c), CONST64(0xfe354094946a94d4), CONST64(0x0cf31cf7f7fbf7eb), +CONST64(0x676f18b9b9deb9a1), CONST64(0x5f268b13134c1398), CONST64(0x9c58512c2cb02c7d), CONST64(0xb8bb05d3d36bd3d6), +CONST64(0x5cd38ce7e7bbe76b), CONST64(0xcbdc396e6ea56e57), CONST64(0xf395aac4c437c46e), CONST64(0x0f061b03030c0318), +CONST64(0x13acdc565645568a), CONST64(0x49885e44440d441a), CONST64(0x9efea07f7fe17fdf), CONST64(0x374f88a9a99ea921), +CONST64(0x8254672a2aa82a4d), CONST64(0x6d6b0abbbbd6bbb1), CONST64(0xe29f87c1c123c146), CONST64(0x02a6f153535153a2), +CONST64(0x8ba572dcdc57dcae), CONST64(0x2716530b0b2c0b58), CONST64(0xd327019d9d4e9d9c), CONST64(0xc1d82b6c6cad6c47), +CONST64(0xf562a43131c43195), CONST64(0xb9e8f37474cd7487), CONST64(0x09f115f6f6fff6e3), CONST64(0x438c4c464605460a), +CONST64(0x2645a5acac8aac09), CONST64(0x970fb589891e893c), CONST64(0x4428b414145014a0), CONST64(0x42dfbae1e1a3e15b), +CONST64(0x4e2ca616165816b0), CONST64(0xd274f73a3ae83acd), CONST64(0xd0d2066969b9696f), CONST64(0x2d12410909240948), +CONST64(0xade0d77070dd70a7), CONST64(0x54716fb6b6e2b6d9), CONST64(0xb7bd1ed0d067d0ce), CONST64(0x7ec7d6eded93ed3b), +CONST64(0xdb85e2cccc17cc2e), CONST64(0x578468424215422a), CONST64(0xc22d2c98985a98b4), CONST64(0x0e55eda4a4aaa449), +CONST64(0x8850752828a0285d), CONST64(0x31b8865c5c6d5cda), CONST64(0x3fed6bf8f8c7f893), CONST64(0xa411c28686228644) +}; + +static const ulong64 sbox4[] = { +CONST64(0xc07830d818186018), CONST64(0x05af462623238c23), CONST64(0x7ef991b8c6c63fc6), CONST64(0x136fcdfbe8e887e8), +CONST64(0x4ca113cb87872687), CONST64(0xa9626d11b8b8dab8), CONST64(0x0805020901010401), CONST64(0x426e9e0d4f4f214f), +CONST64(0xadee6c9b3636d836), CONST64(0x590451ffa6a6a2a6), CONST64(0xdebdb90cd2d26fd2), CONST64(0xfb06f70ef5f5f3f5), +CONST64(0xef80f2967979f979), CONST64(0x5fcede306f6fa16f), CONST64(0xfcef3f6d91917e91), CONST64(0xaa07a4f852525552), +CONST64(0x27fdc04760609d60), CONST64(0x89766535bcbccabc), CONST64(0xaccd2b379b9b569b), CONST64(0x048c018a8e8e028e), +CONST64(0x71155bd2a3a3b6a3), CONST64(0x603c186c0c0c300c), CONST64(0xff8af6847b7bf17b), CONST64(0xb5e16a803535d435), +CONST64(0xe8693af51d1d741d), CONST64(0x5347ddb3e0e0a7e0), CONST64(0xf6acb321d7d77bd7), CONST64(0x5eed999cc2c22fc2), +CONST64(0x6d965c432e2eb82e), CONST64(0x627a96294b4b314b), CONST64(0xa321e15dfefedffe), CONST64(0x8216aed557574157), +CONST64(0xa8412abd15155415), CONST64(0x9fb6eee87777c177), CONST64(0xa5eb6e923737dc37), CONST64(0x7b56d79ee5e5b3e5), +CONST64(0x8cd923139f9f469f), CONST64(0xd317fd23f0f0e7f0), CONST64(0x6a7f94204a4a354a), CONST64(0x9e95a944dada4fda), +CONST64(0xfa25b0a258587d58), CONST64(0x06ca8fcfc9c903c9), CONST64(0x558d527c2929a429), CONST64(0x5022145a0a0a280a), +CONST64(0xe14f7f50b1b1feb1), CONST64(0x691a5dc9a0a0baa0), CONST64(0x7fdad6146b6bb16b), CONST64(0x5cab17d985852e85), +CONST64(0x8173673cbdbdcebd), CONST64(0xd234ba8f5d5d695d), CONST64(0x8050209010104010), CONST64(0xf303f507f4f4f7f4), +CONST64(0x16c08bddcbcb0bcb), CONST64(0xedc67cd33e3ef83e), CONST64(0x28110a2d05051405), CONST64(0x1fe6ce7867678167), +CONST64(0x7353d597e4e4b7e4), CONST64(0x25bb4e0227279c27), CONST64(0x3258827341411941), CONST64(0x2c9d0ba78b8b168b), +CONST64(0x510153f6a7a7a6a7), CONST64(0xcf94fab27d7de97d), CONST64(0xdcfb374995956e95), CONST64(0x8e9fad56d8d847d8), +CONST64(0x8b30eb70fbfbcbfb), CONST64(0x2371c1cdeeee9fee), CONST64(0xc791f8bb7c7ced7c), CONST64(0x17e3cc7166668566), +CONST64(0xa68ea77bdddd53dd), CONST64(0xb84b2eaf17175c17), CONST64(0x02468e4547470147), CONST64(0x84dc211a9e9e429e), +CONST64(0x1ec589d4caca0fca), CONST64(0x75995a582d2db42d), CONST64(0x9179632ebfbfc6bf), CONST64(0x381b0e3f07071c07), +CONST64(0x012347acadad8ead), CONST64(0xea2fb4b05a5a755a), CONST64(0x6cb51bef83833683), CONST64(0x85ff66b63333cc33), +CONST64(0x3ff2c65c63639163), CONST64(0x100a041202020802), CONST64(0x39384993aaaa92aa), CONST64(0xafa8e2de7171d971), +CONST64(0x0ecf8dc6c8c807c8), CONST64(0xc87d32d119196419), CONST64(0x7270923b49493949), CONST64(0x869aaf5fd9d943d9), +CONST64(0xc31df931f2f2eff2), CONST64(0x4b48dba8e3e3abe3), CONST64(0xe22ab6b95b5b715b), CONST64(0x34920dbc88881a88), +CONST64(0xa4c8293e9a9a529a), CONST64(0x2dbe4c0b26269826), CONST64(0x8dfa64bf3232c832), CONST64(0xe94a7d59b0b0fab0), +CONST64(0x1b6acff2e9e983e9), CONST64(0x78331e770f0f3c0f), CONST64(0xe6a6b733d5d573d5), CONST64(0x74ba1df480803a80), +CONST64(0x997c6127bebec2be), CONST64(0x26de87ebcdcd13cd), CONST64(0xbde468893434d034), CONST64(0x7a75903248483d48), +CONST64(0xab24e354ffffdbff), CONST64(0xf78ff48d7a7af57a), CONST64(0xf4ea3d6490907a90), CONST64(0xc23ebe9d5f5f615f), +CONST64(0x1da0403d20208020), CONST64(0x67d5d00f6868bd68), CONST64(0xd07234ca1a1a681a), CONST64(0x192c41b7aeae82ae), +CONST64(0xc95e757db4b4eab4), CONST64(0x9a19a8ce54544d54), CONST64(0xece53b7f93937693), CONST64(0x0daa442f22228822), +CONST64(0x07e9c86364648d64), CONST64(0xdb12ff2af1f1e3f1), CONST64(0xbfa2e6cc7373d173), CONST64(0x905a248212124812), +CONST64(0x3a5d807a40401d40), CONST64(0x4028104808082008), CONST64(0x56e89b95c3c32bc3), CONST64(0x337bc5dfecec97ec), +CONST64(0x9690ab4ddbdb4bdb), CONST64(0x611f5fc0a1a1bea1), CONST64(0x1c8307918d8d0e8d), CONST64(0xf5c97ac83d3df43d), +CONST64(0xccf1335b97976697), CONST64(0x0000000000000000), CONST64(0x36d483f9cfcf1bcf), CONST64(0x4587566e2b2bac2b), +CONST64(0x97b3ece17676c576), CONST64(0x64b019e682823282), CONST64(0xfea9b128d6d67fd6), CONST64(0xd87736c31b1b6c1b), +CONST64(0xc15b7774b5b5eeb5), CONST64(0x112943beafaf86af), CONST64(0x77dfd41d6a6ab56a), CONST64(0xba0da0ea50505d50), +CONST64(0x124c8a5745450945), CONST64(0xcb18fb38f3f3ebf3), CONST64(0x9df060ad3030c030), CONST64(0x2b74c3c4efef9bef), +CONST64(0xe5c37eda3f3ffc3f), CONST64(0x921caac755554955), CONST64(0x791059dba2a2b2a2), CONST64(0x0365c9e9eaea8fea), +CONST64(0x0fecca6a65658965), CONST64(0xb9686903babad2ba), CONST64(0x65935e4a2f2fbc2f), CONST64(0x4ee79d8ec0c027c0), +CONST64(0xbe81a160dede5fde), CONST64(0xe06c38fc1c1c701c), CONST64(0xbb2ee746fdfdd3fd), CONST64(0x52649a1f4d4d294d), +CONST64(0xe4e0397692927292), CONST64(0x8fbceafa7575c975), CONST64(0x301e0c3606061806), CONST64(0x249809ae8a8a128a), +CONST64(0xf940794bb2b2f2b2), CONST64(0x6359d185e6e6bfe6), CONST64(0x70361c7e0e0e380e), CONST64(0xf8633ee71f1f7c1f), +CONST64(0x37f7c45562629562), CONST64(0xeea3b53ad4d477d4), CONST64(0x29324d81a8a89aa8), CONST64(0xc4f4315296966296), +CONST64(0x9b3aef62f9f9c3f9), CONST64(0x66f697a3c5c533c5), CONST64(0x35b14a1025259425), CONST64(0xf220b2ab59597959), +CONST64(0x54ae15d084842a84), CONST64(0xb7a7e4c57272d572), CONST64(0xd5dd72ec3939e439), CONST64(0x5a6198164c4c2d4c), +CONST64(0xca3bbc945e5e655e), CONST64(0xe785f09f7878fd78), CONST64(0xddd870e53838e038), CONST64(0x148605988c8c0a8c), +CONST64(0xc6b2bf17d1d163d1), CONST64(0x410b57e4a5a5aea5), CONST64(0x434dd9a1e2e2afe2), CONST64(0x2ff8c24e61619961), +CONST64(0xf1457b42b3b3f6b3), CONST64(0x15a5423421218421), CONST64(0x94d625089c9c4a9c), CONST64(0xf0663cee1e1e781e), +CONST64(0x2252866143431143), CONST64(0x76fc93b1c7c73bc7), CONST64(0xb32be54ffcfcd7fc), CONST64(0x2014082404041004), +CONST64(0xb208a2e351515951), CONST64(0xbcc72f2599995e99), CONST64(0x4fc4da226d6da96d), CONST64(0x68391a650d0d340d), +CONST64(0x8335e979fafacffa), CONST64(0xb684a369dfdf5bdf), CONST64(0xd79bfca97e7ee57e), CONST64(0x3db4481924249024), +CONST64(0xc5d776fe3b3bec3b), CONST64(0x313d4b9aabab96ab), CONST64(0x3ed181f0cece1fce), CONST64(0x8855229911114411), +CONST64(0x0c8903838f8f068f), CONST64(0x4a6b9c044e4e254e), CONST64(0xd1517366b7b7e6b7), CONST64(0x0b60cbe0ebeb8beb), +CONST64(0xfdcc78c13c3cf03c), CONST64(0x7cbf1ffd81813e81), CONST64(0xd4fe354094946a94), CONST64(0xeb0cf31cf7f7fbf7), +CONST64(0xa1676f18b9b9deb9), CONST64(0x985f268b13134c13), CONST64(0x7d9c58512c2cb02c), CONST64(0xd6b8bb05d3d36bd3), +CONST64(0x6b5cd38ce7e7bbe7), CONST64(0x57cbdc396e6ea56e), CONST64(0x6ef395aac4c437c4), CONST64(0x180f061b03030c03), +CONST64(0x8a13acdc56564556), CONST64(0x1a49885e44440d44), CONST64(0xdf9efea07f7fe17f), CONST64(0x21374f88a9a99ea9), +CONST64(0x4d8254672a2aa82a), CONST64(0xb16d6b0abbbbd6bb), CONST64(0x46e29f87c1c123c1), CONST64(0xa202a6f153535153), +CONST64(0xae8ba572dcdc57dc), CONST64(0x582716530b0b2c0b), CONST64(0x9cd327019d9d4e9d), CONST64(0x47c1d82b6c6cad6c), +CONST64(0x95f562a43131c431), CONST64(0x87b9e8f37474cd74), CONST64(0xe309f115f6f6fff6), CONST64(0x0a438c4c46460546), +CONST64(0x092645a5acac8aac), CONST64(0x3c970fb589891e89), CONST64(0xa04428b414145014), CONST64(0x5b42dfbae1e1a3e1), +CONST64(0xb04e2ca616165816), CONST64(0xcdd274f73a3ae83a), CONST64(0x6fd0d2066969b969), CONST64(0x482d124109092409), +CONST64(0xa7ade0d77070dd70), CONST64(0xd954716fb6b6e2b6), CONST64(0xceb7bd1ed0d067d0), CONST64(0x3b7ec7d6eded93ed), +CONST64(0x2edb85e2cccc17cc), CONST64(0x2a57846842421542), CONST64(0xb4c22d2c98985a98), CONST64(0x490e55eda4a4aaa4), +CONST64(0x5d8850752828a028), CONST64(0xda31b8865c5c6d5c), CONST64(0x933fed6bf8f8c7f8), CONST64(0x44a411c286862286) +}; + +static const ulong64 sbox5[] = { +CONST64(0x18c07830d8181860), CONST64(0x2305af462623238c), CONST64(0xc67ef991b8c6c63f), CONST64(0xe8136fcdfbe8e887), +CONST64(0x874ca113cb878726), CONST64(0xb8a9626d11b8b8da), CONST64(0x0108050209010104), CONST64(0x4f426e9e0d4f4f21), +CONST64(0x36adee6c9b3636d8), CONST64(0xa6590451ffa6a6a2), CONST64(0xd2debdb90cd2d26f), CONST64(0xf5fb06f70ef5f5f3), +CONST64(0x79ef80f2967979f9), CONST64(0x6f5fcede306f6fa1), CONST64(0x91fcef3f6d91917e), CONST64(0x52aa07a4f8525255), +CONST64(0x6027fdc04760609d), CONST64(0xbc89766535bcbcca), CONST64(0x9baccd2b379b9b56), CONST64(0x8e048c018a8e8e02), +CONST64(0xa371155bd2a3a3b6), CONST64(0x0c603c186c0c0c30), CONST64(0x7bff8af6847b7bf1), CONST64(0x35b5e16a803535d4), +CONST64(0x1de8693af51d1d74), CONST64(0xe05347ddb3e0e0a7), CONST64(0xd7f6acb321d7d77b), CONST64(0xc25eed999cc2c22f), +CONST64(0x2e6d965c432e2eb8), CONST64(0x4b627a96294b4b31), CONST64(0xfea321e15dfefedf), CONST64(0x578216aed5575741), +CONST64(0x15a8412abd151554), CONST64(0x779fb6eee87777c1), CONST64(0x37a5eb6e923737dc), CONST64(0xe57b56d79ee5e5b3), +CONST64(0x9f8cd923139f9f46), CONST64(0xf0d317fd23f0f0e7), CONST64(0x4a6a7f94204a4a35), CONST64(0xda9e95a944dada4f), +CONST64(0x58fa25b0a258587d), CONST64(0xc906ca8fcfc9c903), CONST64(0x29558d527c2929a4), CONST64(0x0a5022145a0a0a28), +CONST64(0xb1e14f7f50b1b1fe), CONST64(0xa0691a5dc9a0a0ba), CONST64(0x6b7fdad6146b6bb1), CONST64(0x855cab17d985852e), +CONST64(0xbd8173673cbdbdce), CONST64(0x5dd234ba8f5d5d69), CONST64(0x1080502090101040), CONST64(0xf4f303f507f4f4f7), +CONST64(0xcb16c08bddcbcb0b), CONST64(0x3eedc67cd33e3ef8), CONST64(0x0528110a2d050514), CONST64(0x671fe6ce78676781), +CONST64(0xe47353d597e4e4b7), CONST64(0x2725bb4e0227279c), CONST64(0x4132588273414119), CONST64(0x8b2c9d0ba78b8b16), +CONST64(0xa7510153f6a7a7a6), CONST64(0x7dcf94fab27d7de9), CONST64(0x95dcfb374995956e), CONST64(0xd88e9fad56d8d847), +CONST64(0xfb8b30eb70fbfbcb), CONST64(0xee2371c1cdeeee9f), CONST64(0x7cc791f8bb7c7ced), CONST64(0x6617e3cc71666685), +CONST64(0xdda68ea77bdddd53), CONST64(0x17b84b2eaf17175c), CONST64(0x4702468e45474701), CONST64(0x9e84dc211a9e9e42), +CONST64(0xca1ec589d4caca0f), CONST64(0x2d75995a582d2db4), CONST64(0xbf9179632ebfbfc6), CONST64(0x07381b0e3f07071c), +CONST64(0xad012347acadad8e), CONST64(0x5aea2fb4b05a5a75), CONST64(0x836cb51bef838336), CONST64(0x3385ff66b63333cc), +CONST64(0x633ff2c65c636391), CONST64(0x02100a0412020208), CONST64(0xaa39384993aaaa92), CONST64(0x71afa8e2de7171d9), +CONST64(0xc80ecf8dc6c8c807), CONST64(0x19c87d32d1191964), CONST64(0x497270923b494939), CONST64(0xd9869aaf5fd9d943), +CONST64(0xf2c31df931f2f2ef), CONST64(0xe34b48dba8e3e3ab), CONST64(0x5be22ab6b95b5b71), CONST64(0x8834920dbc88881a), +CONST64(0x9aa4c8293e9a9a52), CONST64(0x262dbe4c0b262698), CONST64(0x328dfa64bf3232c8), CONST64(0xb0e94a7d59b0b0fa), +CONST64(0xe91b6acff2e9e983), CONST64(0x0f78331e770f0f3c), CONST64(0xd5e6a6b733d5d573), CONST64(0x8074ba1df480803a), +CONST64(0xbe997c6127bebec2), CONST64(0xcd26de87ebcdcd13), CONST64(0x34bde468893434d0), CONST64(0x487a75903248483d), +CONST64(0xffab24e354ffffdb), CONST64(0x7af78ff48d7a7af5), CONST64(0x90f4ea3d6490907a), CONST64(0x5fc23ebe9d5f5f61), +CONST64(0x201da0403d202080), CONST64(0x6867d5d00f6868bd), CONST64(0x1ad07234ca1a1a68), CONST64(0xae192c41b7aeae82), +CONST64(0xb4c95e757db4b4ea), CONST64(0x549a19a8ce54544d), CONST64(0x93ece53b7f939376), CONST64(0x220daa442f222288), +CONST64(0x6407e9c86364648d), CONST64(0xf1db12ff2af1f1e3), CONST64(0x73bfa2e6cc7373d1), CONST64(0x12905a2482121248), +CONST64(0x403a5d807a40401d), CONST64(0x0840281048080820), CONST64(0xc356e89b95c3c32b), CONST64(0xec337bc5dfecec97), +CONST64(0xdb9690ab4ddbdb4b), CONST64(0xa1611f5fc0a1a1be), CONST64(0x8d1c8307918d8d0e), CONST64(0x3df5c97ac83d3df4), +CONST64(0x97ccf1335b979766), CONST64(0x0000000000000000), CONST64(0xcf36d483f9cfcf1b), CONST64(0x2b4587566e2b2bac), +CONST64(0x7697b3ece17676c5), CONST64(0x8264b019e6828232), CONST64(0xd6fea9b128d6d67f), CONST64(0x1bd87736c31b1b6c), +CONST64(0xb5c15b7774b5b5ee), CONST64(0xaf112943beafaf86), CONST64(0x6a77dfd41d6a6ab5), CONST64(0x50ba0da0ea50505d), +CONST64(0x45124c8a57454509), CONST64(0xf3cb18fb38f3f3eb), CONST64(0x309df060ad3030c0), CONST64(0xef2b74c3c4efef9b), +CONST64(0x3fe5c37eda3f3ffc), CONST64(0x55921caac7555549), CONST64(0xa2791059dba2a2b2), CONST64(0xea0365c9e9eaea8f), +CONST64(0x650fecca6a656589), CONST64(0xbab9686903babad2), CONST64(0x2f65935e4a2f2fbc), CONST64(0xc04ee79d8ec0c027), +CONST64(0xdebe81a160dede5f), CONST64(0x1ce06c38fc1c1c70), CONST64(0xfdbb2ee746fdfdd3), CONST64(0x4d52649a1f4d4d29), +CONST64(0x92e4e03976929272), CONST64(0x758fbceafa7575c9), CONST64(0x06301e0c36060618), CONST64(0x8a249809ae8a8a12), +CONST64(0xb2f940794bb2b2f2), CONST64(0xe66359d185e6e6bf), CONST64(0x0e70361c7e0e0e38), CONST64(0x1ff8633ee71f1f7c), +CONST64(0x6237f7c455626295), CONST64(0xd4eea3b53ad4d477), CONST64(0xa829324d81a8a89a), CONST64(0x96c4f43152969662), +CONST64(0xf99b3aef62f9f9c3), CONST64(0xc566f697a3c5c533), CONST64(0x2535b14a10252594), CONST64(0x59f220b2ab595979), +CONST64(0x8454ae15d084842a), CONST64(0x72b7a7e4c57272d5), CONST64(0x39d5dd72ec3939e4), CONST64(0x4c5a6198164c4c2d), +CONST64(0x5eca3bbc945e5e65), CONST64(0x78e785f09f7878fd), CONST64(0x38ddd870e53838e0), CONST64(0x8c148605988c8c0a), +CONST64(0xd1c6b2bf17d1d163), CONST64(0xa5410b57e4a5a5ae), CONST64(0xe2434dd9a1e2e2af), CONST64(0x612ff8c24e616199), +CONST64(0xb3f1457b42b3b3f6), CONST64(0x2115a54234212184), CONST64(0x9c94d625089c9c4a), CONST64(0x1ef0663cee1e1e78), +CONST64(0x4322528661434311), CONST64(0xc776fc93b1c7c73b), CONST64(0xfcb32be54ffcfcd7), CONST64(0x0420140824040410), +CONST64(0x51b208a2e3515159), CONST64(0x99bcc72f2599995e), CONST64(0x6d4fc4da226d6da9), CONST64(0x0d68391a650d0d34), +CONST64(0xfa8335e979fafacf), CONST64(0xdfb684a369dfdf5b), CONST64(0x7ed79bfca97e7ee5), CONST64(0x243db44819242490), +CONST64(0x3bc5d776fe3b3bec), CONST64(0xab313d4b9aabab96), CONST64(0xce3ed181f0cece1f), CONST64(0x1188552299111144), +CONST64(0x8f0c8903838f8f06), CONST64(0x4e4a6b9c044e4e25), CONST64(0xb7d1517366b7b7e6), CONST64(0xeb0b60cbe0ebeb8b), +CONST64(0x3cfdcc78c13c3cf0), CONST64(0x817cbf1ffd81813e), CONST64(0x94d4fe354094946a), CONST64(0xf7eb0cf31cf7f7fb), +CONST64(0xb9a1676f18b9b9de), CONST64(0x13985f268b13134c), CONST64(0x2c7d9c58512c2cb0), CONST64(0xd3d6b8bb05d3d36b), +CONST64(0xe76b5cd38ce7e7bb), CONST64(0x6e57cbdc396e6ea5), CONST64(0xc46ef395aac4c437), CONST64(0x03180f061b03030c), +CONST64(0x568a13acdc565645), CONST64(0x441a49885e44440d), CONST64(0x7fdf9efea07f7fe1), CONST64(0xa921374f88a9a99e), +CONST64(0x2a4d8254672a2aa8), CONST64(0xbbb16d6b0abbbbd6), CONST64(0xc146e29f87c1c123), CONST64(0x53a202a6f1535351), +CONST64(0xdcae8ba572dcdc57), CONST64(0x0b582716530b0b2c), CONST64(0x9d9cd327019d9d4e), CONST64(0x6c47c1d82b6c6cad), +CONST64(0x3195f562a43131c4), CONST64(0x7487b9e8f37474cd), CONST64(0xf6e309f115f6f6ff), CONST64(0x460a438c4c464605), +CONST64(0xac092645a5acac8a), CONST64(0x893c970fb589891e), CONST64(0x14a04428b4141450), CONST64(0xe15b42dfbae1e1a3), +CONST64(0x16b04e2ca6161658), CONST64(0x3acdd274f73a3ae8), CONST64(0x696fd0d2066969b9), CONST64(0x09482d1241090924), +CONST64(0x70a7ade0d77070dd), CONST64(0xb6d954716fb6b6e2), CONST64(0xd0ceb7bd1ed0d067), CONST64(0xed3b7ec7d6eded93), +CONST64(0xcc2edb85e2cccc17), CONST64(0x422a578468424215), CONST64(0x98b4c22d2c98985a), CONST64(0xa4490e55eda4a4aa), +CONST64(0x285d8850752828a0), CONST64(0x5cda31b8865c5c6d), CONST64(0xf8933fed6bf8f8c7), CONST64(0x8644a411c2868622) +}; + +static const ulong64 sbox6[] = { +CONST64(0x6018c07830d81818), CONST64(0x8c2305af46262323), CONST64(0x3fc67ef991b8c6c6), CONST64(0x87e8136fcdfbe8e8), +CONST64(0x26874ca113cb8787), CONST64(0xdab8a9626d11b8b8), CONST64(0x0401080502090101), CONST64(0x214f426e9e0d4f4f), +CONST64(0xd836adee6c9b3636), CONST64(0xa2a6590451ffa6a6), CONST64(0x6fd2debdb90cd2d2), CONST64(0xf3f5fb06f70ef5f5), +CONST64(0xf979ef80f2967979), CONST64(0xa16f5fcede306f6f), CONST64(0x7e91fcef3f6d9191), CONST64(0x5552aa07a4f85252), +CONST64(0x9d6027fdc0476060), CONST64(0xcabc89766535bcbc), CONST64(0x569baccd2b379b9b), CONST64(0x028e048c018a8e8e), +CONST64(0xb6a371155bd2a3a3), CONST64(0x300c603c186c0c0c), CONST64(0xf17bff8af6847b7b), CONST64(0xd435b5e16a803535), +CONST64(0x741de8693af51d1d), CONST64(0xa7e05347ddb3e0e0), CONST64(0x7bd7f6acb321d7d7), CONST64(0x2fc25eed999cc2c2), +CONST64(0xb82e6d965c432e2e), CONST64(0x314b627a96294b4b), CONST64(0xdffea321e15dfefe), CONST64(0x41578216aed55757), +CONST64(0x5415a8412abd1515), CONST64(0xc1779fb6eee87777), CONST64(0xdc37a5eb6e923737), CONST64(0xb3e57b56d79ee5e5), +CONST64(0x469f8cd923139f9f), CONST64(0xe7f0d317fd23f0f0), CONST64(0x354a6a7f94204a4a), CONST64(0x4fda9e95a944dada), +CONST64(0x7d58fa25b0a25858), CONST64(0x03c906ca8fcfc9c9), CONST64(0xa429558d527c2929), CONST64(0x280a5022145a0a0a), +CONST64(0xfeb1e14f7f50b1b1), CONST64(0xbaa0691a5dc9a0a0), CONST64(0xb16b7fdad6146b6b), CONST64(0x2e855cab17d98585), +CONST64(0xcebd8173673cbdbd), CONST64(0x695dd234ba8f5d5d), CONST64(0x4010805020901010), CONST64(0xf7f4f303f507f4f4), +CONST64(0x0bcb16c08bddcbcb), CONST64(0xf83eedc67cd33e3e), CONST64(0x140528110a2d0505), CONST64(0x81671fe6ce786767), +CONST64(0xb7e47353d597e4e4), CONST64(0x9c2725bb4e022727), CONST64(0x1941325882734141), CONST64(0x168b2c9d0ba78b8b), +CONST64(0xa6a7510153f6a7a7), CONST64(0xe97dcf94fab27d7d), CONST64(0x6e95dcfb37499595), CONST64(0x47d88e9fad56d8d8), +CONST64(0xcbfb8b30eb70fbfb), CONST64(0x9fee2371c1cdeeee), CONST64(0xed7cc791f8bb7c7c), CONST64(0x856617e3cc716666), +CONST64(0x53dda68ea77bdddd), CONST64(0x5c17b84b2eaf1717), CONST64(0x014702468e454747), CONST64(0x429e84dc211a9e9e), +CONST64(0x0fca1ec589d4caca), CONST64(0xb42d75995a582d2d), CONST64(0xc6bf9179632ebfbf), CONST64(0x1c07381b0e3f0707), +CONST64(0x8ead012347acadad), CONST64(0x755aea2fb4b05a5a), CONST64(0x36836cb51bef8383), CONST64(0xcc3385ff66b63333), +CONST64(0x91633ff2c65c6363), CONST64(0x0802100a04120202), CONST64(0x92aa39384993aaaa), CONST64(0xd971afa8e2de7171), +CONST64(0x07c80ecf8dc6c8c8), CONST64(0x6419c87d32d11919), CONST64(0x39497270923b4949), CONST64(0x43d9869aaf5fd9d9), +CONST64(0xeff2c31df931f2f2), CONST64(0xabe34b48dba8e3e3), CONST64(0x715be22ab6b95b5b), CONST64(0x1a8834920dbc8888), +CONST64(0x529aa4c8293e9a9a), CONST64(0x98262dbe4c0b2626), CONST64(0xc8328dfa64bf3232), CONST64(0xfab0e94a7d59b0b0), +CONST64(0x83e91b6acff2e9e9), CONST64(0x3c0f78331e770f0f), CONST64(0x73d5e6a6b733d5d5), CONST64(0x3a8074ba1df48080), +CONST64(0xc2be997c6127bebe), CONST64(0x13cd26de87ebcdcd), CONST64(0xd034bde468893434), CONST64(0x3d487a7590324848), +CONST64(0xdbffab24e354ffff), CONST64(0xf57af78ff48d7a7a), CONST64(0x7a90f4ea3d649090), CONST64(0x615fc23ebe9d5f5f), +CONST64(0x80201da0403d2020), CONST64(0xbd6867d5d00f6868), CONST64(0x681ad07234ca1a1a), CONST64(0x82ae192c41b7aeae), +CONST64(0xeab4c95e757db4b4), CONST64(0x4d549a19a8ce5454), CONST64(0x7693ece53b7f9393), CONST64(0x88220daa442f2222), +CONST64(0x8d6407e9c8636464), CONST64(0xe3f1db12ff2af1f1), CONST64(0xd173bfa2e6cc7373), CONST64(0x4812905a24821212), +CONST64(0x1d403a5d807a4040), CONST64(0x2008402810480808), CONST64(0x2bc356e89b95c3c3), CONST64(0x97ec337bc5dfecec), +CONST64(0x4bdb9690ab4ddbdb), CONST64(0xbea1611f5fc0a1a1), CONST64(0x0e8d1c8307918d8d), CONST64(0xf43df5c97ac83d3d), +CONST64(0x6697ccf1335b9797), CONST64(0x0000000000000000), CONST64(0x1bcf36d483f9cfcf), CONST64(0xac2b4587566e2b2b), +CONST64(0xc57697b3ece17676), CONST64(0x328264b019e68282), CONST64(0x7fd6fea9b128d6d6), CONST64(0x6c1bd87736c31b1b), +CONST64(0xeeb5c15b7774b5b5), CONST64(0x86af112943beafaf), CONST64(0xb56a77dfd41d6a6a), CONST64(0x5d50ba0da0ea5050), +CONST64(0x0945124c8a574545), CONST64(0xebf3cb18fb38f3f3), CONST64(0xc0309df060ad3030), CONST64(0x9bef2b74c3c4efef), +CONST64(0xfc3fe5c37eda3f3f), CONST64(0x4955921caac75555), CONST64(0xb2a2791059dba2a2), CONST64(0x8fea0365c9e9eaea), +CONST64(0x89650fecca6a6565), CONST64(0xd2bab9686903baba), CONST64(0xbc2f65935e4a2f2f), CONST64(0x27c04ee79d8ec0c0), +CONST64(0x5fdebe81a160dede), CONST64(0x701ce06c38fc1c1c), CONST64(0xd3fdbb2ee746fdfd), CONST64(0x294d52649a1f4d4d), +CONST64(0x7292e4e039769292), CONST64(0xc9758fbceafa7575), CONST64(0x1806301e0c360606), CONST64(0x128a249809ae8a8a), +CONST64(0xf2b2f940794bb2b2), CONST64(0xbfe66359d185e6e6), CONST64(0x380e70361c7e0e0e), CONST64(0x7c1ff8633ee71f1f), +CONST64(0x956237f7c4556262), CONST64(0x77d4eea3b53ad4d4), CONST64(0x9aa829324d81a8a8), CONST64(0x6296c4f431529696), +CONST64(0xc3f99b3aef62f9f9), CONST64(0x33c566f697a3c5c5), CONST64(0x942535b14a102525), CONST64(0x7959f220b2ab5959), +CONST64(0x2a8454ae15d08484), CONST64(0xd572b7a7e4c57272), CONST64(0xe439d5dd72ec3939), CONST64(0x2d4c5a6198164c4c), +CONST64(0x655eca3bbc945e5e), CONST64(0xfd78e785f09f7878), CONST64(0xe038ddd870e53838), CONST64(0x0a8c148605988c8c), +CONST64(0x63d1c6b2bf17d1d1), CONST64(0xaea5410b57e4a5a5), CONST64(0xafe2434dd9a1e2e2), CONST64(0x99612ff8c24e6161), +CONST64(0xf6b3f1457b42b3b3), CONST64(0x842115a542342121), CONST64(0x4a9c94d625089c9c), CONST64(0x781ef0663cee1e1e), +CONST64(0x1143225286614343), CONST64(0x3bc776fc93b1c7c7), CONST64(0xd7fcb32be54ffcfc), CONST64(0x1004201408240404), +CONST64(0x5951b208a2e35151), CONST64(0x5e99bcc72f259999), CONST64(0xa96d4fc4da226d6d), CONST64(0x340d68391a650d0d), +CONST64(0xcffa8335e979fafa), CONST64(0x5bdfb684a369dfdf), CONST64(0xe57ed79bfca97e7e), CONST64(0x90243db448192424), +CONST64(0xec3bc5d776fe3b3b), CONST64(0x96ab313d4b9aabab), CONST64(0x1fce3ed181f0cece), CONST64(0x4411885522991111), +CONST64(0x068f0c8903838f8f), CONST64(0x254e4a6b9c044e4e), CONST64(0xe6b7d1517366b7b7), CONST64(0x8beb0b60cbe0ebeb), +CONST64(0xf03cfdcc78c13c3c), CONST64(0x3e817cbf1ffd8181), CONST64(0x6a94d4fe35409494), CONST64(0xfbf7eb0cf31cf7f7), +CONST64(0xdeb9a1676f18b9b9), CONST64(0x4c13985f268b1313), CONST64(0xb02c7d9c58512c2c), CONST64(0x6bd3d6b8bb05d3d3), +CONST64(0xbbe76b5cd38ce7e7), CONST64(0xa56e57cbdc396e6e), CONST64(0x37c46ef395aac4c4), CONST64(0x0c03180f061b0303), +CONST64(0x45568a13acdc5656), CONST64(0x0d441a49885e4444), CONST64(0xe17fdf9efea07f7f), CONST64(0x9ea921374f88a9a9), +CONST64(0xa82a4d8254672a2a), CONST64(0xd6bbb16d6b0abbbb), CONST64(0x23c146e29f87c1c1), CONST64(0x5153a202a6f15353), +CONST64(0x57dcae8ba572dcdc), CONST64(0x2c0b582716530b0b), CONST64(0x4e9d9cd327019d9d), CONST64(0xad6c47c1d82b6c6c), +CONST64(0xc43195f562a43131), CONST64(0xcd7487b9e8f37474), CONST64(0xfff6e309f115f6f6), CONST64(0x05460a438c4c4646), +CONST64(0x8aac092645a5acac), CONST64(0x1e893c970fb58989), CONST64(0x5014a04428b41414), CONST64(0xa3e15b42dfbae1e1), +CONST64(0x5816b04e2ca61616), CONST64(0xe83acdd274f73a3a), CONST64(0xb9696fd0d2066969), CONST64(0x2409482d12410909), +CONST64(0xdd70a7ade0d77070), CONST64(0xe2b6d954716fb6b6), CONST64(0x67d0ceb7bd1ed0d0), CONST64(0x93ed3b7ec7d6eded), +CONST64(0x17cc2edb85e2cccc), CONST64(0x15422a5784684242), CONST64(0x5a98b4c22d2c9898), CONST64(0xaaa4490e55eda4a4), +CONST64(0xa0285d8850752828), CONST64(0x6d5cda31b8865c5c), CONST64(0xc7f8933fed6bf8f8), CONST64(0x228644a411c28686) +}; + +static const ulong64 sbox7[] = { +CONST64(0x186018c07830d818), CONST64(0x238c2305af462623), CONST64(0xc63fc67ef991b8c6), CONST64(0xe887e8136fcdfbe8), +CONST64(0x8726874ca113cb87), CONST64(0xb8dab8a9626d11b8), CONST64(0x0104010805020901), CONST64(0x4f214f426e9e0d4f), +CONST64(0x36d836adee6c9b36), CONST64(0xa6a2a6590451ffa6), CONST64(0xd26fd2debdb90cd2), CONST64(0xf5f3f5fb06f70ef5), +CONST64(0x79f979ef80f29679), CONST64(0x6fa16f5fcede306f), CONST64(0x917e91fcef3f6d91), CONST64(0x525552aa07a4f852), +CONST64(0x609d6027fdc04760), CONST64(0xbccabc89766535bc), CONST64(0x9b569baccd2b379b), CONST64(0x8e028e048c018a8e), +CONST64(0xa3b6a371155bd2a3), CONST64(0x0c300c603c186c0c), CONST64(0x7bf17bff8af6847b), CONST64(0x35d435b5e16a8035), +CONST64(0x1d741de8693af51d), CONST64(0xe0a7e05347ddb3e0), CONST64(0xd77bd7f6acb321d7), CONST64(0xc22fc25eed999cc2), +CONST64(0x2eb82e6d965c432e), CONST64(0x4b314b627a96294b), CONST64(0xfedffea321e15dfe), CONST64(0x5741578216aed557), +CONST64(0x155415a8412abd15), CONST64(0x77c1779fb6eee877), CONST64(0x37dc37a5eb6e9237), CONST64(0xe5b3e57b56d79ee5), +CONST64(0x9f469f8cd923139f), CONST64(0xf0e7f0d317fd23f0), CONST64(0x4a354a6a7f94204a), CONST64(0xda4fda9e95a944da), +CONST64(0x587d58fa25b0a258), CONST64(0xc903c906ca8fcfc9), CONST64(0x29a429558d527c29), CONST64(0x0a280a5022145a0a), +CONST64(0xb1feb1e14f7f50b1), CONST64(0xa0baa0691a5dc9a0), CONST64(0x6bb16b7fdad6146b), CONST64(0x852e855cab17d985), +CONST64(0xbdcebd8173673cbd), CONST64(0x5d695dd234ba8f5d), CONST64(0x1040108050209010), CONST64(0xf4f7f4f303f507f4), +CONST64(0xcb0bcb16c08bddcb), CONST64(0x3ef83eedc67cd33e), CONST64(0x05140528110a2d05), CONST64(0x6781671fe6ce7867), +CONST64(0xe4b7e47353d597e4), CONST64(0x279c2725bb4e0227), CONST64(0x4119413258827341), CONST64(0x8b168b2c9d0ba78b), +CONST64(0xa7a6a7510153f6a7), CONST64(0x7de97dcf94fab27d), CONST64(0x956e95dcfb374995), CONST64(0xd847d88e9fad56d8), +CONST64(0xfbcbfb8b30eb70fb), CONST64(0xee9fee2371c1cdee), CONST64(0x7ced7cc791f8bb7c), CONST64(0x66856617e3cc7166), +CONST64(0xdd53dda68ea77bdd), CONST64(0x175c17b84b2eaf17), CONST64(0x47014702468e4547), CONST64(0x9e429e84dc211a9e), +CONST64(0xca0fca1ec589d4ca), CONST64(0x2db42d75995a582d), CONST64(0xbfc6bf9179632ebf), CONST64(0x071c07381b0e3f07), +CONST64(0xad8ead012347acad), CONST64(0x5a755aea2fb4b05a), CONST64(0x8336836cb51bef83), CONST64(0x33cc3385ff66b633), +CONST64(0x6391633ff2c65c63), CONST64(0x020802100a041202), CONST64(0xaa92aa39384993aa), CONST64(0x71d971afa8e2de71), +CONST64(0xc807c80ecf8dc6c8), CONST64(0x196419c87d32d119), CONST64(0x4939497270923b49), CONST64(0xd943d9869aaf5fd9), +CONST64(0xf2eff2c31df931f2), CONST64(0xe3abe34b48dba8e3), CONST64(0x5b715be22ab6b95b), CONST64(0x881a8834920dbc88), +CONST64(0x9a529aa4c8293e9a), CONST64(0x2698262dbe4c0b26), CONST64(0x32c8328dfa64bf32), CONST64(0xb0fab0e94a7d59b0), +CONST64(0xe983e91b6acff2e9), CONST64(0x0f3c0f78331e770f), CONST64(0xd573d5e6a6b733d5), CONST64(0x803a8074ba1df480), +CONST64(0xbec2be997c6127be), CONST64(0xcd13cd26de87ebcd), CONST64(0x34d034bde4688934), CONST64(0x483d487a75903248), +CONST64(0xffdbffab24e354ff), CONST64(0x7af57af78ff48d7a), CONST64(0x907a90f4ea3d6490), CONST64(0x5f615fc23ebe9d5f), +CONST64(0x2080201da0403d20), CONST64(0x68bd6867d5d00f68), CONST64(0x1a681ad07234ca1a), CONST64(0xae82ae192c41b7ae), +CONST64(0xb4eab4c95e757db4), CONST64(0x544d549a19a8ce54), CONST64(0x937693ece53b7f93), CONST64(0x2288220daa442f22), +CONST64(0x648d6407e9c86364), CONST64(0xf1e3f1db12ff2af1), CONST64(0x73d173bfa2e6cc73), CONST64(0x124812905a248212), +CONST64(0x401d403a5d807a40), CONST64(0x0820084028104808), CONST64(0xc32bc356e89b95c3), CONST64(0xec97ec337bc5dfec), +CONST64(0xdb4bdb9690ab4ddb), CONST64(0xa1bea1611f5fc0a1), CONST64(0x8d0e8d1c8307918d), CONST64(0x3df43df5c97ac83d), +CONST64(0x976697ccf1335b97), CONST64(0x0000000000000000), CONST64(0xcf1bcf36d483f9cf), CONST64(0x2bac2b4587566e2b), +CONST64(0x76c57697b3ece176), CONST64(0x82328264b019e682), CONST64(0xd67fd6fea9b128d6), CONST64(0x1b6c1bd87736c31b), +CONST64(0xb5eeb5c15b7774b5), CONST64(0xaf86af112943beaf), CONST64(0x6ab56a77dfd41d6a), CONST64(0x505d50ba0da0ea50), +CONST64(0x450945124c8a5745), CONST64(0xf3ebf3cb18fb38f3), CONST64(0x30c0309df060ad30), CONST64(0xef9bef2b74c3c4ef), +CONST64(0x3ffc3fe5c37eda3f), CONST64(0x554955921caac755), CONST64(0xa2b2a2791059dba2), CONST64(0xea8fea0365c9e9ea), +CONST64(0x6589650fecca6a65), CONST64(0xbad2bab9686903ba), CONST64(0x2fbc2f65935e4a2f), CONST64(0xc027c04ee79d8ec0), +CONST64(0xde5fdebe81a160de), CONST64(0x1c701ce06c38fc1c), CONST64(0xfdd3fdbb2ee746fd), CONST64(0x4d294d52649a1f4d), +CONST64(0x927292e4e0397692), CONST64(0x75c9758fbceafa75), CONST64(0x061806301e0c3606), CONST64(0x8a128a249809ae8a), +CONST64(0xb2f2b2f940794bb2), CONST64(0xe6bfe66359d185e6), CONST64(0x0e380e70361c7e0e), CONST64(0x1f7c1ff8633ee71f), +CONST64(0x62956237f7c45562), CONST64(0xd477d4eea3b53ad4), CONST64(0xa89aa829324d81a8), CONST64(0x966296c4f4315296), +CONST64(0xf9c3f99b3aef62f9), CONST64(0xc533c566f697a3c5), CONST64(0x25942535b14a1025), CONST64(0x597959f220b2ab59), +CONST64(0x842a8454ae15d084), CONST64(0x72d572b7a7e4c572), CONST64(0x39e439d5dd72ec39), CONST64(0x4c2d4c5a6198164c), +CONST64(0x5e655eca3bbc945e), CONST64(0x78fd78e785f09f78), CONST64(0x38e038ddd870e538), CONST64(0x8c0a8c148605988c), +CONST64(0xd163d1c6b2bf17d1), CONST64(0xa5aea5410b57e4a5), CONST64(0xe2afe2434dd9a1e2), CONST64(0x6199612ff8c24e61), +CONST64(0xb3f6b3f1457b42b3), CONST64(0x21842115a5423421), CONST64(0x9c4a9c94d625089c), CONST64(0x1e781ef0663cee1e), +CONST64(0x4311432252866143), CONST64(0xc73bc776fc93b1c7), CONST64(0xfcd7fcb32be54ffc), CONST64(0x0410042014082404), +CONST64(0x515951b208a2e351), CONST64(0x995e99bcc72f2599), CONST64(0x6da96d4fc4da226d), CONST64(0x0d340d68391a650d), +CONST64(0xfacffa8335e979fa), CONST64(0xdf5bdfb684a369df), CONST64(0x7ee57ed79bfca97e), CONST64(0x2490243db4481924), +CONST64(0x3bec3bc5d776fe3b), CONST64(0xab96ab313d4b9aab), CONST64(0xce1fce3ed181f0ce), CONST64(0x1144118855229911), +CONST64(0x8f068f0c8903838f), CONST64(0x4e254e4a6b9c044e), CONST64(0xb7e6b7d1517366b7), CONST64(0xeb8beb0b60cbe0eb), +CONST64(0x3cf03cfdcc78c13c), CONST64(0x813e817cbf1ffd81), CONST64(0x946a94d4fe354094), CONST64(0xf7fbf7eb0cf31cf7), +CONST64(0xb9deb9a1676f18b9), CONST64(0x134c13985f268b13), CONST64(0x2cb02c7d9c58512c), CONST64(0xd36bd3d6b8bb05d3), +CONST64(0xe7bbe76b5cd38ce7), CONST64(0x6ea56e57cbdc396e), CONST64(0xc437c46ef395aac4), CONST64(0x030c03180f061b03), +CONST64(0x5645568a13acdc56), CONST64(0x440d441a49885e44), CONST64(0x7fe17fdf9efea07f), CONST64(0xa99ea921374f88a9), +CONST64(0x2aa82a4d8254672a), CONST64(0xbbd6bbb16d6b0abb), CONST64(0xc123c146e29f87c1), CONST64(0x535153a202a6f153), +CONST64(0xdc57dcae8ba572dc), CONST64(0x0b2c0b582716530b), CONST64(0x9d4e9d9cd327019d), CONST64(0x6cad6c47c1d82b6c), +CONST64(0x31c43195f562a431), CONST64(0x74cd7487b9e8f374), CONST64(0xf6fff6e309f115f6), CONST64(0x4605460a438c4c46), +CONST64(0xac8aac092645a5ac), CONST64(0x891e893c970fb589), CONST64(0x145014a04428b414), CONST64(0xe1a3e15b42dfbae1), +CONST64(0x165816b04e2ca616), CONST64(0x3ae83acdd274f73a), CONST64(0x69b9696fd0d20669), CONST64(0x092409482d124109), +CONST64(0x70dd70a7ade0d770), CONST64(0xb6e2b6d954716fb6), CONST64(0xd067d0ceb7bd1ed0), CONST64(0xed93ed3b7ec7d6ed), +CONST64(0xcc17cc2edb85e2cc), CONST64(0x4215422a57846842), CONST64(0x985a98b4c22d2c98), CONST64(0xa4aaa4490e55eda4), +CONST64(0x28a0285d88507528), CONST64(0x5c6d5cda31b8865c), CONST64(0xf8c7f8933fed6bf8), CONST64(0x86228644a411c286) +}; + +static const ulong64 cont[] = { +CONST64(0x1823c6e887b8014f), +CONST64(0x36a6d2f5796f9152), +CONST64(0x60bc9b8ea30c7b35), +CONST64(0x1de0d7c22e4bfe57), +CONST64(0x157737e59ff04ada), +CONST64(0x58c9290ab1a06b85), +CONST64(0xbd5d10f4cb3e0567), +CONST64(0xe427418ba77d95d8), +CONST64(0xfbee7c66dd17479e), +CONST64(0xca2dbf07ad5a8333), +CONST64(0x6302aa71c81949d9), +}; +