| aes.h | | aes.h | |
| | | | |
| skipping to change at line 22 | | skipping to change at line 22 | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file aes.h | | /*!\file aes.h | |
| * \brief AES block cipher, as specified by NIST FIPS 197. | | * \brief AES block cipher, as specified by NIST FIPS 197. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_m BC_aes_m | | * \ingroup BC_m BC_aes_m | |
| */ | | */ | |
| | | | |
| #ifndef _AES_H | | #ifndef _AES_H | |
| #define _AES_H | | #define _AES_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/aesopt.h" | | #include "beecrypt/aesopt.h" | |
| | | | |
| /*!\brief Holds all the parameters necessary for the AES cipher. | | /*!\brief Holds all the parameters necessary for the AES cipher. | |
| | | | |
| skipping to change at line 91 | | skipping to change at line 91 | |
| /*!\fn int aesSetIV(aesParam* ap, const byte* iv) | | /*!\fn int aesSetIV(aesParam* ap, const byte* iv) | |
| * \brief This function sets the Initialization Vector. | | * \brief This function sets the Initialization Vector. | |
| * \note This function is only useful in block chaining or feedback modes. | | * \note This function is only useful in block chaining or feedback modes. | |
| * \param ap The cipher's parameter block. | | * \param ap The cipher's parameter block. | |
| * \param iv The initialization vector; may be null. | | * \param iv The initialization vector; may be null. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int aesSetIV (aesParam* ap, const byte* iv); | | int aesSetIV (aesParam* ap, const byte* iv); | |
| | | | |
|
| | | /*!\fn int aesSetCTR(aesParam* ap, const byte* nivz, size_t counter) | |
| | | * \brief This function sets the CTR mode counter. | |
| | | * \note This function is only useful in CTR modes. | |
| | | * \param ap The cipher's parameter block. | |
| | | * \param nivz The concatenation of Nonce, IV, and padding Zeroes. | |
| | | * \param counter The counter. | |
| | | * \retval 0 on success. | |
| | | */ | |
| | | BEECRYPTAPI | |
| | | int aesSetCTR (aesParam* ap, const byte* nivz, size_t c | |
| | | ounter); | |
| | | | |
| /*!\fn aesEncrypt(aesParam* ap, uint32_t* dst, const uint32_t* src) | | /*!\fn aesEncrypt(aesParam* ap, uint32_t* dst, const uint32_t* src) | |
| * \brief This function performs the raw AES encryption; it encrypts one bl
ock | | * \brief This function performs the raw AES encryption; it encrypts one bl
ock | |
| * of 128 bits. | | * of 128 bits. | |
| * \param ap The cipher's parameter block. | | * \param ap The cipher's parameter block. | |
| * \param dst The ciphertext; should be aligned on 32-bit boundary. | | * \param dst The ciphertext; should be aligned on 32-bit boundary. | |
| * \param src The cleartext; should be aligned on 32-bit boundary. | | * \param src The cleartext; should be aligned on 32-bit boundary. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int aesEncrypt (aesParam* ap, uint32_t* dst, const uint3
2_t* src); | | int aesEncrypt (aesParam* ap, uint32_t* dst, const uint3
2_t* src); | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 13 lines changed or added | |
|
| aesopt.h | | aesopt.h | |
| | | | |
| skipping to change at line 22 | | skipping to change at line 22 | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file aesopt.h | | /*!\file aesopt.h | |
| * \brief AES block cipher, assembler-optimized routines, headers. | | * \brief AES block cipher, assembler-optimized routines, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_aes_m | | * \ingroup BC_aes_m | |
| */ | | */ | |
| | | | |
| #ifndef _AESOPT_H | | #ifndef _AESOPT_H | |
| #define _AESOPT_H | | #define _AESOPT_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/aes.h" | | #include "beecrypt/aes.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| | | | |
| skipping to change at line 45 | | skipping to change at line 45 | |
| | | | |
| #if WIN32 | | #if WIN32 | |
| # if defined(_MSC_VER) && defined(_M_IX86) | | # if defined(_MSC_VER) && defined(_M_IX86) | |
| /* this space intentionally left blank */ | | /* this space intentionally left blank */ | |
| # elif __INTEL__ && __MWERKS__ | | # elif __INTEL__ && __MWERKS__ | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
| #if defined(__GNUC__) | | #if defined(__GNUC__) | |
| # if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686) | | # if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686) | |
|
| # if defined(OPTIMIZE_MMX) | | | |
| # define ASM_AESENCRYPT | | | |
| # define ASM_AESENCRYPTECB | | | |
| # define ASM_AESDECRYPT | | | |
| # define ASM_AESDECRYPTECB | | | |
| # endif | | | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
| #if defined(__INTEL_COMPILER) | | #if defined(__INTEL_COMPILER) | |
| # if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686) | | # if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686) | |
|
| # if defined(OPTIMIZE_MMX) | | | |
| # define ASM_AESENCRYPT | | | |
| # define ASM_AESENCRYPTECB | | | |
| # define ASM_AESDECRYPT | | | |
| # define ASM_AESDECRYPTECB | | | |
| # endif | | | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
| #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) | | #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) | |
| /* this space intentionally left blank */ | | /* this space intentionally left blank */ | |
| #endif | | #endif | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
End of changes. 3 change blocks. |
| 13 lines changed or deleted | | 1 lines changed or added | |
|
| api.h | | api.h | |
| /* | | /* | |
|
| * Copyright (c) 2001, 2002, 2004 Beeyond Software Holding BV | | * Copyright (c) 2001, 2002, 2004 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file api.h | | /*!\file api.h | |
| * \brief BeeCrypt API, portability headers. | | * \brief BeeCrypt API, portability headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| */ | | */ | |
| | | | |
| #ifndef _BEECRYPT_API_H | | #ifndef _BEECRYPT_API_H | |
| #define _BEECRYPT_API_H | | #define _BEECRYPT_API_H | |
| | | | |
| #if defined(_WIN32) && !defined(WIN32) | | #if defined(_WIN32) && !defined(WIN32) | |
| # define WIN32 1 | | # define WIN32 1 | |
| #endif | | #endif | |
| | | | |
| #if WIN32 | | #if WIN32 | |
|
| # if !__CYGWIN32__ | | # if !__CYGWIN32__ && !__MINGW32__ | |
| # include "beecrypt/win.h" | | # include "beecrypt/win.h" | |
| # else | | # else | |
| # include "beecrypt/gnu.h" | | # include "beecrypt/gnu.h" | |
| # endif | | # endif | |
| # ifdef BEECRYPT_DLL_EXPORT | | # ifdef BEECRYPT_DLL_EXPORT | |
| # define BEECRYPTAPI __declspec(dllexport) | | # define BEECRYPTAPI __declspec(dllexport) | |
| # else | | # else | |
| # define BEECRYPTAPI __declspec(dllimport) | | # define BEECRYPTAPI __declspec(dllimport) | |
| # endif | | # endif | |
| # ifdef BEECRYPT_CXX_DLL_EXPORT | | # ifdef BEECRYPT_CXX_DLL_EXPORT | |
| | | | |
| skipping to change at line 56 | | skipping to change at line 56 | |
| # else | | # else | |
| # define BEECRYPTCXXAPI __declspec(dllimport) | | # define BEECRYPTCXXAPI __declspec(dllimport) | |
| # define BEECRYPTCXXTEMPLATE extern | | # define BEECRYPTCXXTEMPLATE extern | |
| # endif | | # endif | |
| #else | | #else | |
| # include "beecrypt/gnu.h" | | # include "beecrypt/gnu.h" | |
| # define BEECRYPTAPI | | # define BEECRYPTAPI | |
| # define BEECRYPTCXXAPI | | # define BEECRYPTCXXAPI | |
| #endif | | #endif | |
| | | | |
|
| | | #if HAVE_ASSERT_H | |
| | | # include <assert.h> | |
| | | #else | |
| | | # define assert(x) | |
| | | #endif | |
| | | | |
| #ifndef ROTL32 | | #ifndef ROTL32 | |
| # define ROTL32(x, s) (((x) << (s)) | ((x) >> (32 - (s)))) | | # define ROTL32(x, s) (((x) << (s)) | ((x) >> (32 - (s)))) | |
| #endif | | #endif | |
| #ifndef ROTR32 | | #ifndef ROTR32 | |
| # define ROTR32(x, s) (((x) >> (s)) | ((x) << (32 - (s)))) | | # define ROTR32(x, s) (((x) >> (s)) | ((x) << (32 - (s)))) | |
| #endif | | #endif | |
| #ifndef ROTR64 | | #ifndef ROTR64 | |
| # define ROTR64(x, s) (((x) >> (s)) | ((x) << (64 - (s)))) | | # define ROTR64(x, s) (((x) >> (s)) | ((x) << (64 - (s)))) | |
| #endif | | #endif | |
| | | | |
| typedef uint8_t byte; | | typedef uint8_t byte; | |
| | | | |
|
| typedef int8_t javabyte; | | #if JAVAGLUE | |
| typedef int16_t javashort; | | # include <jni.h> | |
| typedef int32_t javaint; | | #else | |
| typedef int64_t javalong; | | typedef int8_t jbyte; | |
| | | typedef int16_t jshort; | |
| typedef uint16_t javachar; | | typedef int32_t jint; | |
| | | typedef int64_t jlong; | |
| | | typedef uint16_t jchar; | |
| | | typedef float jfloat; | |
| | | typedef double jdouble; | |
| | | #endif | |
| | | | |
| #if (MP_WBITS == 64) | | #if (MP_WBITS == 64) | |
| typedef uint64_t mpw; | | typedef uint64_t mpw; | |
| typedef uint32_t mphw; | | typedef uint32_t mphw; | |
| #elif (MP_WBITS == 32) | | #elif (MP_WBITS == 32) | |
| # if HAVE_UINT64_T | | # if HAVE_UINT64_T | |
| # define HAVE_MPDW 1 | | # define HAVE_MPDW 1 | |
| typedef uint64_t mpdw; | | typedef uint64_t mpdw; | |
| # endif | | # endif | |
| typedef uint32_t mpw; | | typedef uint32_t mpw; | |
| | | | |
End of changes. 5 change blocks. |
| 9 lines changed or deleted | | 20 lines changed or added | |
|
| base64.h | | base64.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file base64.h | | /*!\file base64.h | |
| * \brief Base64 encoding and decoding, headers. | | * \brief Base64 encoding and decoding, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| */ | | */ | |
| | | | |
| #ifndef _BASE64_H | | #ifndef _BASE64_H | |
| #define _BASE64_H | | #define _BASE64_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| /*!\ | | /*!\ | |
| * Decode white space character set (default). | | * Decode white space character set (default). | |
| */ | | */ | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| beecrypt.h | | beecrypt.h | |
| /* | | /* | |
|
| * Copyright (c) 1999, 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1999, 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file beecrypt.h | | /*!\file beecrypt.h | |
| * \brief BeeCrypt API, headers. | | * \brief BeeCrypt API, headers. | |
| * | | * | |
| * These API functions provide an abstract way for using most of | | * These API functions provide an abstract way for using most of | |
| * the various algorithms implemented by the library. | | * the various algorithms implemented by the library. | |
| * | | * | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup ES_m PRNG_m HASH_m HMAC_m BC_m | | * \ingroup ES_m PRNG_m HASH_m HMAC_m BC_m | |
| */ | | */ | |
| | | | |
| #ifndef _BEECRYPT_H | | #ifndef _BEECRYPT_H | |
| #define _BEECRYPT_H | | #define _BEECRYPT_H | |
| | | | |
| #include "beecrypt/api.h" | | #include "beecrypt/api.h" | |
| | | | |
| #include "beecrypt/memchunk.h" | | #include "beecrypt/memchunk.h" | |
| #include "beecrypt/mpnumber.h" | | #include "beecrypt/mpnumber.h" | |
| | | | |
| skipping to change at line 586 | | skipping to change at line 586 | |
| * \brief Prototype definition for an initialization vector setup function. | | * \brief Prototype definition for an initialization vector setup function. | |
| * \param bp The blockcipher's parameters. | | * \param bp The blockcipher's parameters. | |
| * \param iv The blockciphers' IV value. | | * \param iv The blockciphers' IV value. | |
| * \note iv length must be equal to the cipher's block size. | | * \note iv length must be equal to the cipher's block size. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| * \retval -1 on failure. | | * \retval -1 on failure. | |
| * \ingroup BC_m | | * \ingroup BC_m | |
| */ | | */ | |
| typedef int (*blockCipherSetIV )(blockCipherParam*, const byte*); | | typedef int (*blockCipherSetIV )(blockCipherParam*, const byte*); | |
| | | | |
|
| | | /*!\typedef int (*blockCipherSetCTR)(blockCipherParam* bp, const byte* nivz | |
| | | , size_t counter) | |
| | | * \brief Prototype definition for an initialization vector setup function. | |
| | | * \param bp The blockcipher's parameters. | |
| | | * \param nivz The concatenation of the Nonce, IV and padding Zero bytes. | |
| | | * \param counter The blockciphers' counter value. | |
| | | * \note nivz length must be equal to the cipher's block size. | |
| | | * \retval 0 on success. | |
| | | * \retval -1 on failure. | |
| | | * \ingroup BC_m | |
| | | */ | |
| | | typedef int (*blockCipherSetCTR )(blockCipherParam*, const byte*, size_t); | |
| | | | |
| /*!\typedef int (*blockCipherRawcrypt)(blockCipherParam* bp, uint32_t* dst,
const uint32_t* src) | | /*!\typedef int (*blockCipherRawcrypt)(blockCipherParam* bp, uint32_t* dst,
const uint32_t* src) | |
| * \brief Prototype for a \e raw encryption or decryption function. | | * \brief Prototype for a \e raw encryption or decryption function. | |
| * \param bp The blockcipher's parameters. | | * \param bp The blockcipher's parameters. | |
| * \param dst The ciphertext address; must be aligned on 32-bit boundary. | | * \param dst The ciphertext address; must be aligned on 32-bit boundary. | |
| * \param src The cleartext address; must be aligned on 32-bit boundary. | | * \param src The cleartext address; must be aligned on 32-bit boundary. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| * \retval -1 on failure. | | * \retval -1 on failure. | |
| * \ingroup BC_m | | * \ingroup BC_m | |
| */ | | */ | |
| typedef int (*blockCipherRawcrypt)(blockCipherParam*, uint32_t*, const uint
32_t*); | | typedef int (*blockCipherRawcrypt)(blockCipherParam*, uint32_t*, const uint
32_t*); | |
| | | | |
| skipping to change at line 669 | | skipping to change at line 681 | |
| */ | | */ | |
| const size_t keybitsinc; | | const size_t keybitsinc; | |
| /*!\var setup | | /*!\var setup | |
| * \brief Pointer to the cipher's setup function. | | * \brief Pointer to the cipher's setup function. | |
| */ | | */ | |
| const blockCipherSetup setup; | | const blockCipherSetup setup; | |
| /*!\var setiv | | /*!\var setiv | |
| * \brief Pointer to the cipher's initialization vector setup functi
on. | | * \brief Pointer to the cipher's initialization vector setup functi
on. | |
| */ | | */ | |
| const blockCipherSetIV setiv; | | const blockCipherSetIV setiv; | |
|
| | | /*!\var setctr | |
| | | * \brief Pointer to the cipher's ctr setup function. | |
| | | */ | |
| | | const blockCipherSetCTR setctr; | |
| | | /*!\var getfb | |
| | | * \brief Pointer to the cipher's feedback-returning function. | |
| | | */ | |
| | | const blockCipherFeedback getfb; | |
| /*!\var raw | | /*!\var raw | |
| * \brief The cipher's raw functions. | | * \brief The cipher's raw functions. | |
| */ | | */ | |
| const blockCipherRaw raw; | | const blockCipherRaw raw; | |
| /*!\var ecb | | /*!\var ecb | |
| * \brief The cipher's ECB functions. | | * \brief The cipher's ECB functions. | |
| */ | | */ | |
| const blockCipherMode ecb; | | const blockCipherMode ecb; | |
|
| | | /*!\var cbc | |
| | | * \brief The cipher's CBC functions. | |
| | | */ | |
| const blockCipherMode cbc; | | const blockCipherMode cbc; | |
|
| /*!\var getfb | | /*!\var ctr | |
| * \brief Pointer to the cipher's feedback-returning function. | | * \brief The cipher's CTR functions. | |
| */ | | */ | |
|
| const blockCipherFeedback getfb; | | const blockCipherMode ctr; | |
| }; | | }; | |
| | | | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| typedef struct _blockCipher blockCipher; | | typedef struct _blockCipher blockCipher; | |
| #endif | | #endif | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| | | | |
| skipping to change at line 784 | | skipping to change at line 807 | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockCipherContextInit(blockCipherContext*, const blockCipher*); | | int blockCipherContextInit(blockCipherContext*, const blockCipher*); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockCipherContextSetup(blockCipherContext*, const byte*, size_t, ciphe
rOperation); | | int blockCipherContextSetup(blockCipherContext*, const byte*, size_t, ciphe
rOperation); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockCipherContextSetIV(blockCipherContext*, const byte*); | | int blockCipherContextSetIV(blockCipherContext*, const byte*); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| | | int blockCipherContextSetCTR(blockCipherContext*, const byte*, size_t); | |
| | | | |
| | | BEECRYPTAPI | |
| int blockCipherContextFree(blockCipherContext*); | | int blockCipherContextFree(blockCipherContext*); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockCipherContextECB(blockCipherContext*, uint32_t*, const uint32_t*,
int); | | int blockCipherContextECB(blockCipherContext*, uint32_t*, const uint32_t*,
int); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockCipherContextCBC(blockCipherContext*, uint32_t*, const uint32_t*,
int); | | int blockCipherContextCBC(blockCipherContext*, uint32_t*, const uint32_t*,
int); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| | | int blockCipherContextCTR(blockCipherContext*, uint32_t*, const uint32_t*, | |
| | | int); | |
| | | | |
| | | BEECRYPTAPI | |
| int blockCipherContextValidKeylen(blockCipherContext*, size_t); | | int blockCipherContextValidKeylen(blockCipherContext*, size_t); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 9 change blocks. |
| 5 lines changed or deleted | | 36 lines changed or added | |
|
| blockmode.h | | blockmode.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002, 2005 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file blockmode.h | | /*!\file blockmode.h | |
| * \brief Blockcipher operation modes. | | * \brief Blockcipher operation modes. | |
| * \todo Additional modes, such as CFB and OFB. | | * \todo Additional modes, such as CFB and OFB. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_m | | * \ingroup BC_m | |
| */ | | */ | |
| | | | |
| #ifndef _BLOCKMODE_H | | #ifndef _BLOCKMODE_H | |
| #define _BLOCKMODE_H | | #define _BLOCKMODE_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 88 | |
| * \param bc The blockcipher. | | * \param bc The blockcipher. | |
| * \param bp The cipher's parameter block. | | * \param bp The cipher's parameter block. | |
| * \param dst The cleartext data; should be aligned on a 32-bit boundary. | | * \param dst The cleartext data; should be aligned on a 32-bit boundary. | |
| * \param src The ciphertext data; should be aligned on a 32-bit boundary. | | * \param src The ciphertext data; should be aligned on a 32-bit boundary. | |
| * \param nblocks The number of blocks to be decrypted. | | * \param nblocks The number of blocks to be decrypted. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blockDecryptCBC(const blockCipher* bc, blockCipherParam* bp, uint32_t*
dst, const uint32_t* src, unsigned int nblocks); | | int blockDecryptCBC(const blockCipher* bc, blockCipherParam* bp, uint32_t*
dst, const uint32_t* src, unsigned int nblocks); | |
| | | | |
|
| | | BEECRYPTAPI | |
| | | int blockEncryptCTR(const blockCipher* bc, blockCipherParam* bp, uint32_t* | |
| | | dst, const uint32_t* src, unsigned int nblocks); | |
| | | | |
| | | BEECRYPTAPI | |
| | | int blockDecryptCTR(const blockCipher* bc, blockCipherParam* bp, uint32_t* | |
| | | dst, const uint32_t* src, unsigned int nblocks); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 10 lines changed or added | |
|
| blockpad.h | | blockpad.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file blockpad.h | | /*!\file blockpad.h | |
| * \brief Blockcipher padding algorithms. | | * \brief Blockcipher padding algorithms. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_m | | * \ingroup BC_m | |
| */ | | */ | |
| | | | |
| #ifndef _BLOCKPAD_H | | #ifndef _BLOCKPAD_H | |
| #define _BLOCKPAD_H | | #define _BLOCKPAD_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| blowfish.h | | blowfish.h | |
| /* | | /* | |
|
| * Copyright (c) 1999, 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1999, 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| /*!\file blowfish.h | | /*!\file blowfish.h | |
| * \brief Blowfish block cipher. | | * \brief Blowfish block cipher. | |
| * | | * | |
| * For more information on this blockcipher, see: | | * For more information on this blockcipher, see: | |
| * "Applied Cryptography", second edition | | * "Applied Cryptography", second edition | |
| * Bruce Schneier | | * Bruce Schneier | |
| * Wiley & Sons | | * Wiley & Sons | |
| * | | * | |
| * Also see http://www.counterpane.com/blowfish.html | | * Also see http://www.counterpane.com/blowfish.html | |
| * | | * | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_m BC_blowfish_m | | * \ingroup BC_m BC_blowfish_m | |
| */ | | */ | |
| | | | |
| #ifndef _BLOWFISH_H | | #ifndef _BLOWFISH_H | |
| #define _BLOWFISH_H | | #define _BLOWFISH_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/blowfishopt.h" | | #include "beecrypt/blowfishopt.h" | |
| | | | |
| #define BLOWFISHROUNDS 16 | | #define BLOWFISHROUNDS 16 | |
| | | | |
| skipping to change at line 79 | | skipping to change at line 79 | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| /*!\var blowfish | | /*!\var blowfish | |
| * \brief Holds the full API description of the Blowfish algorithm. | | * \brief Holds the full API description of the Blowfish algorithm. | |
| */ | | */ | |
| extern const BEECRYPTAPI blockCipher blowfish; | | extern const BEECRYPTAPI blockCipher blowfish; | |
| | | | |
|
| /*!\fn int blowfishSetup(blowfishParam* bp, const byte* key, size_t keybits | | /*!\fn int blowfishSetup(blowfishParam* bp, const byte* key, size_t keybits | |
| , cipherOperation | | , cipherOperation op) | |
| op) | | | |
| * \brief The function performs the cipher's key expansion. | | * \brief The function performs the cipher's key expansion. | |
| * \param bp The cipher's parameter block. | | * \param bp The cipher's parameter block. | |
| * \param key The key value. | | * \param key The key value. | |
| * \param keybits The number of bits in the key; legal values are: 32 to 44
8, | | * \param keybits The number of bits in the key; legal values are: 32 to 44
8, | |
| * in multiples of 8. | | * in multiples of 8. | |
| * \param op ENCRYPT or DECRYPT. | | * \param op ENCRYPT or DECRYPT. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| * \retval -1 on failure. | | * \retval -1 on failure. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int blowfishSetup (blowfishParam*, const byte*, size_t, cipher
Operation); | | int blowfishSetup (blowfishParam*, const byte*, size_t, cipher
Operation); | |
| | | | |
| /*!\fn int blowfishSetIV(blowfishParam* bp, const byte* iv) | | /*!\fn int blowfishSetIV(blowfishParam* bp, const byte* iv) | |
| * \brief This function sets the Initialization Vector. | | * \brief This function sets the Initialization Vector. | |
| * \note This function is only useful in block chaining or feedback modes. | | * \note This function is only useful in block chaining or feedback modes. | |
| * \param bp The cipher's parameter block. | | * \param bp The cipher's parameter block. | |
| * \param iv The initialization vector; may be null. | | * \param iv The initialization vector; may be null. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| int blowfishSetIV (blowfishParam*, const byte*); | | int blowfishSetIV (blowfishParam*, const byte* iv); | |
| | | | |
| | | BEECRYPTAPI | |
| | | int blowfishSetCTR (blowfishParam*, const byte* nivz, size_t co | |
| | | unter); | |
| | | | |
| /*!\fn blowfishEncrypt(blowfishParam* bp, uint32_t* dst, const uint32_t* sr
c) | | /*!\fn blowfishEncrypt(blowfishParam* bp, uint32_t* dst, const uint32_t* sr
c) | |
| * \brief This function performs the Blowfish encryption; it encrypts one b
lock | | * \brief This function performs the Blowfish encryption; it encrypts one b
lock | |
| * of 64 bits. | | * of 64 bits. | |
| * \param bp The cipher's parameter block. | | * \param bp The cipher's parameter block. | |
| * \param dst The ciphertext; should be aligned on 32-bit boundary. | | * \param dst The ciphertext; should be aligned on 32-bit boundary. | |
| * \param src The cleartext; should be aligned on 32-bit boundary. | | * \param src The cleartext; should be aligned on 32-bit boundary. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| | | | |
End of changes. 4 change blocks. |
| 6 lines changed or deleted | | 9 lines changed or added | |
|
| blowfishopt.h | | blowfishopt.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002, 2003 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002, 2003 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file blowfishopt.h | | /*!\file blowfishopt.h | |
| * \brief Blowfish block cipher, assembler-optimized routines, headers. | | * \brief Blowfish block cipher, assembler-optimized routines, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup BC_blowfish_m | | * \ingroup BC_blowfish_m | |
| */ | | */ | |
| | | | |
| #ifndef _BLOWFISHOPT_H | | #ifndef _BLOWFISHOPT_H | |
| #define _BLOWFISHOPT_H | | #define _BLOWFISHOPT_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/blowfish.h" | | #include "beecrypt/blowfish.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| dldp.h | | dldp.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file dldp.h | | /*!\file dldp.h | |
| * \brief Discrete Logarithm domain parameters, headers. | | * \brief Discrete Logarithm domain parameters, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_m | | * \ingroup DL_m | |
| */ | | */ | |
| | | | |
| #ifndef _DLDP_H | | #ifndef _DLDP_H | |
| #define _DLDP_H | | #define _DLDP_H | |
| | | | |
| #include "beecrypt/mpbarrett.h" | | #include "beecrypt/mpbarrett.h" | |
| | | | |
| /* | | /* | |
| * Discrete Logarithm Domain Parameters - Prime | | * Discrete Logarithm Domain Parameters - Prime | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| * | | * | |
| * Make sure q is large enough to foil Pohlig-Hellman attacks | | * Make sure q is large enough to foil Pohlig-Hellman attacks | |
| * See: "Handbook of Applied Cryptography", Chapter 3.6.4 | | * See: "Handbook of Applied Cryptography", Chapter 3.6.4 | |
| * | | * | |
| * g is either a generator of a subgroup of order q, or a generator of orde
r | | * g is either a generator of a subgroup of order q, or a generator of orde
r | |
| * n = (p-1) | | * n = (p-1) | |
| */ | | */ | |
| | | | |
| /*!\brief Discrete Logarithm Domain Parameters over a prime field. | | /*!\brief Discrete Logarithm Domain Parameters over a prime field. | |
| * | | * | |
|
| * For the variables in this structure /f$p=qr+1/f$; if /f$p=2q+1 then r=2/
f$. | | * For the variables in this structure \f$p=qr+1\f$; if \f$p=2q+1\f$ then \
f$r=2\f$. | |
| * | | * | |
| * \ingroup DL_m | | * \ingroup DL_m | |
| */ | | */ | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| struct BEECRYPTAPI dldp_p | | struct BEECRYPTAPI dldp_p | |
| #else | | #else | |
| struct _dldp_p | | struct _dldp_p | |
| #endif | | #endif | |
| { | | { | |
| /*!\var p | | /*!\var p | |
| | | | |
| skipping to change at line 124 | | skipping to change at line 124 | |
| * Functions for generating keys | | * Functions for generating keys | |
| */ | | */ | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int dldp_pPrivate (const dldp_p*, randomGeneratorContext*, mpnumber*); | | int dldp_pPrivate (const dldp_p*, randomGeneratorContext*, mpnumber*); | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int dldp_pPrivate_s(const dldp_p*, randomGeneratorContext*, mpnumber*, size
_t); | | int dldp_pPrivate_s(const dldp_p*, randomGeneratorContext*, mpnumber*, size
_t); | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int dldp_pPublic (const dldp_p*, const mpnumber*, mpnumber*); | | int dldp_pPublic (const dldp_p*, const mpnumber*, mpnumber*); | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| int dldp_pPair (const dldp_p*, randomGeneratorContext*, mpnumber*, mpnu
mber*); | | int dldp_pPair (const dldp_p*, randomGeneratorContext*, mpnumber* x, mp
number* y); | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| int dldp_pPair_s (const dldp_p*, randomGeneratorContext*, mpnumber*, mpnu
mber*, size_t); | | int dldp_pPair_s (const dldp_p*, randomGeneratorContext*, mpnumber* x, mp
number* y, size_t); | |
| | | | |
| /* | | /* | |
| * Function for comparing domain parameters | | * Function for comparing domain parameters | |
| */ | | */ | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int dldp_pEqual (const dldp_p*, const dldp_p*); | | int dldp_pEqual (const dldp_p*, const dldp_p*); | |
| | | | |
| /* | | /* | |
| * Functions for generating and validating dldp_pgoq variant domain paramet
ers | | * Functions for generating and validating dldp_pgoq variant domain paramet
ers | |
| | | | |
End of changes. 5 change blocks. |
| 5 lines changed or deleted | | 5 lines changed or added | |
|
| dlkp.h | | dlkp.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file dlkp.h | | /*!\file dlkp.h | |
| * \brief Discrete Logarithm keypair, headers. | | * \brief Discrete Logarithm keypair, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_m | | * \ingroup DL_m | |
| */ | | */ | |
| | | | |
| #ifndef _DLKP_H | | #ifndef _DLKP_H | |
| #define _DLKP_H | | #define _DLKP_H | |
| | | | |
| #include "beecrypt/dlpk.h" | | #include "beecrypt/dlpk.h" | |
| | | | |
| /*!\ingroup DL_m | | /*!\ingroup DL_m | |
| */ | | */ | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| dlpk.h | | dlpk.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file dlpk.h | | /*!\file dlpk.h | |
| * \brief Discrete Logarithm public key, headers. | | * \brief Discrete Logarithm public key, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_m | | * \ingroup DL_m | |
| */ | | */ | |
| | | | |
| #ifndef _DLPK_H | | #ifndef _DLPK_H | |
| #define _DLPK_H | | #define _DLPK_H | |
| | | | |
| #include "beecrypt/dldp.h" | | #include "beecrypt/dldp.h" | |
| | | | |
| /*!\ingroup DL_m | | /*!\ingroup DL_m | |
| */ | | */ | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| dlsvdp-dh.h | | dlsvdp-dh.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file dlsvdp-dh.h | | /*!\file dlsvdp-dh.h | |
| * \brief Diffie-Hellman algorithm, headers. | | * \brief Diffie-Hellman algorithm, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_m DL_dh_m | | * \ingroup DL_m DL_dh_m | |
| */ | | */ | |
| | | | |
| #ifndef _DLSVDP_DH_H | | #ifndef _DLSVDP_DH_H | |
| #define _DLSVDP_DH_H | | #define _DLSVDP_DH_H | |
| | | | |
|
| #include "beecrypt/dldp.h" | | | |
| #include "beecrypt/dlkp.h" | | #include "beecrypt/dlkp.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| typedef dldp_p dhparam; | | typedef dldp_p dhparam; | |
| typedef dlkp_p dhkp; | | typedef dlkp_p dhkp; | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 2 lines changed or added | |
|
| dsa.h | | dsa.h | |
| /* | | /* | |
|
| * Copyright (c) 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| | | | |
| skipping to change at line 28 | | skipping to change at line 28 | |
| */ | | */ | |
| | | | |
| /*!\file dsa.h | | /*!\file dsa.h | |
| * \brief Digital Signature Algorithm, as specified by NIST FIPS 186. | | * \brief Digital Signature Algorithm, as specified by NIST FIPS 186. | |
| * | | * | |
| * FIPS 186 specifies the DSA algorithm as having a large prime \f$p\f$, | | * FIPS 186 specifies the DSA algorithm as having a large prime \f$p\f$, | |
| * a cofactor \f$q\f$ and a generator \f$g\f$ of a subgroup of | | * a cofactor \f$q\f$ and a generator \f$g\f$ of a subgroup of | |
| * \f$\mathds{Z}^{*}_p\f$ with order \f$q\f$. The private and public key | | * \f$\mathds{Z}^{*}_p\f$ with order \f$q\f$. The private and public key | |
| * values are \f$x\f$ and \f$y\f$ respectively. | | * values are \f$x\f$ and \f$y\f$ respectively. | |
| * | | * | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_dsa_m | | * \ingroup DL_dsa_m | |
| */ | | */ | |
| | | | |
| #ifndef _DSA_H | | #ifndef _DSA_H | |
| #define _DSA_H | | #define _DSA_H | |
| | | | |
| #include "beecrypt/dlkp.h" | | #include "beecrypt/dlkp.h" | |
| | | | |
| typedef dldp_p dsaparam; | | typedef dldp_p dsaparam; | |
| typedef dlpk_p dsapub; | | typedef dlpk_p dsapub; | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| elgamal.h | | elgamal.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| | | | |
| skipping to change at line 34 | | skipping to change at line 34 | |
| * "Handbook of Applied Cryptography", | | * "Handbook of Applied Cryptography", | |
| * 11.5.2: "The ElGamal signature scheme", p. 454-459 | | * 11.5.2: "The ElGamal signature scheme", p. 454-459 | |
| * | | * | |
| * Two of the signature variants in Note 11.70 are implemented. | | * Two of the signature variants in Note 11.70 are implemented. | |
| * | | * | |
| * \todo Implement ElGamal encryption and decryption. | | * \todo Implement ElGamal encryption and decryption. | |
| * | | * | |
| * \todo Explore the possibility of using simultaneous multiple exponentiat
ion, | | * \todo Explore the possibility of using simultaneous multiple exponentiat
ion, | |
| * as described in HAC, 14.87 (iii). | | * as described in HAC, 14.87 (iii). | |
| * | | * | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup DL_m DL_elgamal_m | | * \ingroup DL_m DL_elgamal_m | |
| */ | | */ | |
| | | | |
| #ifndef _ELGAMAL_H | | #ifndef _ELGAMAL_H | |
| #define _ELGAMAL_H | | #define _ELGAMAL_H | |
| | | | |
| #include "beecrypt/mpbarrett.h" | | #include "beecrypt/mpbarrett.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /*!\fn int elgv1sign(const mpbarrett* p, const mpbarrett* n, const mpnumber | | /*!\fn int elgv1sign(const mpbarrett* p, const mpbarrett* n, const mpnumber | |
| * g, | | * g, randomGeneratorContext* rgc, const mpnumber* hm, const mpnumber* x, mp | |
| randomGeneratorContext* rgc, const mpnumber* hm, const mpnumber* x, mpnumbe | | number* r, mpnumber* s) | |
| r* r, | | | |
| mpnumber* s) | | | |
| * \brief This function performs raw ElGamal signing, variant 1. | | * \brief This function performs raw ElGamal signing, variant 1. | |
| * | | * | |
| * Signing equations: | | * Signing equations: | |
| * | | * | |
| * \li \f$r=g^{k}\ \textrm{mod}\ p\f$ | | * \li \f$r=g^{k}\ \textrm{mod}\ p\f$ | |
| * \li \f$s=k^{-1}(h(m)-xr)\ \textrm{mod}\ (p-1)\f$ | | * \li \f$s=k^{-1}(h(m)-xr)\ \textrm{mod}\ (p-1)\f$ | |
| * | | * | |
| * \param p The prime. | | * \param p The prime. | |
| * \param n The reducer mod (p-1). | | * \param n The reducer mod (p-1). | |
| * \param g The generator. | | * \param g The generator. | |
| | | | |
End of changes. 3 change blocks. |
| 7 lines changed or deleted | | 5 lines changed or added | |
|
| entropy.h | | entropy.h | |
| /* | | /* | |
|
| * Copyright (c) 1998, 1999, 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1998, 1999, 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file entropy.h | | /*!\file entropy.h | |
| * \brief Entropy sources, headers. | | * \brief Entropy sources, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup ES_m ES_audio_m ES_dsp_m ES_random_m ES_urandom_m ES_tty_m | | * \ingroup ES_m ES_audio_m ES_dsp_m ES_random_m ES_urandom_m ES_tty_m | |
| */ | | */ | |
| | | | |
| #ifndef _ENTROPY_H | | #ifndef _ENTROPY_H | |
| #define _ENTROPY_H | | #define _ENTROPY_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| #if WIN32 | | #if WIN32 | |
| #include <windows.h> | | #include <windows.h> | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| fips186.h | | fips186.h | |
| /* | | /* | |
|
| * Copyright (c) 1998, 1999, 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1998, 1999, 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file fips186.h | | /*!\file fips186.h | |
| * \brief FIPS-186 pseudo-random number generator, headers. | | * \brief FIPS-186 pseudo-random number generator, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup PRNG_m PRNG_fips186_m | | * \ingroup PRNG_m PRNG_fips186_m | |
| */ | | */ | |
| | | | |
| #ifndef _FIPS186_H | | #ifndef _FIPS186_H | |
| #define _FIPS186_H | | #define _FIPS186_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| #ifdef _REENTRANT | | #ifdef _REENTRANT | |
| # if WIN32 | | # if WIN32 | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| gnu.h | | gnu.h | |
| /* | | /* | |
|
| * Copyright (c) 2003 Bob Deblier | | * Copyright (c) 2003, 2009 Bob Deblier | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| #ifndef _BEECRYPT_GNU_H | | #ifndef _BEECRYPT_GNU_H | |
| #define _BEECRYPT_GNU_H | | #define _BEECRYPT_GNU_H | |
| | | | |
|
| | | #if __MINGW32__ | |
| | | # define _REENTRANT | |
| | | # if !defined(_WIN32_WINNT) | |
| | | # define _WIN32_WINNT 0x0400 | |
| | | # endif | |
| | | # include <windows.h> | |
| | | #endif | |
| | | | |
| #include <inttypes.h> | | #include <inttypes.h> | |
| #include <stdint.h> | | #include <stdint.h> | |
| | | | |
| #include <pthread.h> | | #include <pthread.h> | |
|
| | | #include <semaphore.h> | |
| | | #include <sched.h> | |
| #include <stdio.h> | | #include <stdio.h> | |
| #include <stdlib.h> | | #include <stdlib.h> | |
| | | | |
| #include <string.h> | | #include <string.h> | |
| #include <unistd.h> | | #include <unistd.h> | |
| #include <dlfcn.h> | | #include <dlfcn.h> | |
| | | | |
| typedef pthread_cond_t bc_cond_t; | | typedef pthread_cond_t bc_cond_t; | |
| typedef pthread_mutex_t bc_mutex_t; | | typedef pthread_mutex_t bc_mutex_t; | |
| typedef pthread_t bc_thread_t; | | typedef pthread_t bc_thread_t; | |
|
| | | typedef pthread_t bc_threadid_t; | |
| | | | |
| #if defined(__GNUC__) | | #if defined(__GNUC__) | |
| # if !defined(__GNUC_PREREQ__) | | # if !defined(__GNUC_PREREQ__) | |
| # define __GNUC_PREREQ__(maj, min) (__GNUC__ > (maj) || __GNUC__ == (maj)
&& __GNUC_MINOR__ >= (min)) | | # define __GNUC_PREREQ__(maj, min) (__GNUC__ > (maj) || __GNUC__ == (maj)
&& __GNUC_MINOR__ >= (min)) | |
| # endif | | # endif | |
| #else | | #else | |
| # define __GNUC__ 0 | | # define __GNUC__ 0 | |
| # define __GNUC_PREREQ__(maj, min) 0 | | # define __GNUC_PREREQ__(maj, min) 0 | |
| #endif | | #endif | |
| | | | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 12 lines changed or added | |
|
| hmac.h | | hmac.h | |
| /* | | /* | |
|
| * Copyright (c) 1999, 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1999, 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file hmac.h | | /*!\file hmac.h | |
| * \brief HMAC algorithm, headers. | | * \brief HMAC algorithm, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HMAC_m | | * \ingroup HMAC_m | |
| */ | | */ | |
| | | | |
| #ifndef _HMAC_H | | #ifndef _HMAC_H | |
| #define _HMAC_H | | #define _HMAC_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| /*!\ingroup HMAC_m | | /*!\ingroup HMAC_m | |
| */ | | */ | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| hmacmd5.h | | hmacmd5.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file hmacmd5.h | | /*!\file hmacmd5.h | |
| * \brief HMAC-MD5 message authentication code, headers. | | * \brief HMAC-MD5 message authentication code, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HMAC_m HMAC_md5_m | | * \ingroup HMAC_m HMAC_md5_m | |
| */ | | */ | |
| | | | |
| #ifndef _HMACMD5_H | | #ifndef _HMACMD5_H | |
| #define _HMACMD5_H | | #define _HMACMD5_H | |
| | | | |
| #include "beecrypt/hmac.h" | | #include "beecrypt/hmac.h" | |
| #include "beecrypt/md5.h" | | #include "beecrypt/md5.h" | |
| | | | |
| /*!\ingroup HMAC_md5_m | | /*!\ingroup HMAC_md5_m | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| hmacsha1.h | | hmacsha1.h | |
| /* | | /* | |
|
| * Copyright (c) 1999, 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1999, 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file hmacsha1.h | | /*!\file hmacsha1.h | |
| * \brief HMAC-SHA-1 message authentication code, headers. | | * \brief HMAC-SHA-1 message authentication code, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HMAC_m HMAC_sha1_m | | * \ingroup HMAC_m HMAC_sha1_m | |
| */ | | */ | |
| | | | |
| #ifndef _HMACSHA1_H | | #ifndef _HMACSHA1_H | |
| #define _HMACSHA1_H | | #define _HMACSHA1_H | |
| | | | |
| #include "beecrypt/hmac.h" | | #include "beecrypt/hmac.h" | |
| #include "beecrypt/sha1.h" | | #include "beecrypt/sha1.h" | |
| | | | |
| /*!\ingroup HMAC_sha1_m | | /*!\ingroup HMAC_sha1_m | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| hmacsha256.h | | hmacsha256.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file hmacsha256.h | | /*!\file hmacsha256.h | |
| * \brief HMAC-SHA-256 message authentication code, headers. | | * \brief HMAC-SHA-256 message authentication code, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HMAC_m HMAC_sha256_m | | * \ingroup HMAC_m HMAC_sha256_m | |
| */ | | */ | |
| | | | |
| #ifndef _HMACSHA256_H | | #ifndef _HMACSHA256_H | |
| #define _HMACSHA256_H | | #define _HMACSHA256_H | |
| | | | |
| #include "beecrypt/hmac.h" | | #include "beecrypt/hmac.h" | |
| #include "beecrypt/sha256.h" | | #include "beecrypt/sha256.h" | |
| | | | |
| /*!\ingroup HMAC_sha256_m | | /*!\ingroup HMAC_sha256_m | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| hmacsha512.h | | hmacsha512.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file hmacsha512.h | | /*!\file hmacsha512.h | |
| * \brief HMAC-SHA-512 message authentication code, headers. | | * \brief HMAC-SHA-512 message authentication code, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HMAC_m HMAC_sha512_m | | * \ingroup HMAC_m HMAC_sha512_m | |
| */ | | */ | |
| | | | |
| #ifndef _HMACSHA512_H | | #ifndef _HMACSHA512_H | |
| #define _HMACSHA512_H | | #define _HMACSHA512_H | |
| | | | |
| #include "beecrypt/hmac.h" | | #include "beecrypt/hmac.h" | |
| #include "beecrypt/sha512.h" | | #include "beecrypt/sha512.h" | |
| | | | |
| /*!\ingroup HMAC_sha512_m | | /*!\ingroup HMAC_sha512_m | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| md5.h | | md5.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file md5.h | | /*!\file md5.h | |
| * \brief MD5 hash function. | | * \brief MD5 hash function. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HASH_m HASH_md5_m | | * \ingroup HASH_m HASH_md5_m | |
| */ | | */ | |
| | | | |
| #ifndef _MD5_H | | #ifndef _MD5_H | |
| #define _MD5_H | | #define _MD5_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| /*!\brief Holds all the parameters necessary for the MD5 algorithm. | | /*!\brief Holds all the parameters necessary for the MD5 algorithm. | |
| * \ingroup HASH_md5_h | | * \ingroup HASH_md5_h | |
| | | | |
| skipping to change at line 72 | | skipping to change at line 72 | |
| }; | | }; | |
| | | | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| typedef struct _md5Param md5Param; | | typedef struct _md5Param md5Param; | |
| #endif | | #endif | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /*!\var sha1 | | /*!\var md5 | |
| * \brief Holds the full API description of the MD5 algorithm. | | * \brief Holds the full API description of the MD5 algorithm. | |
| */ | | */ | |
| extern BEECRYPTAPI const hashFunction md5; | | extern BEECRYPTAPI const hashFunction md5; | |
| | | | |
| /*!\fn int md5Reset(md5Param* mp) | | /*!\fn int md5Reset(md5Param* mp) | |
| * \brief This function resets the parameter block so that it's ready for a | | * \brief This function resets the parameter block so that it's ready for a | |
| * new hash. | | * new hash. | |
| * \param mp The hash function's parameter block. | | * \param mp The hash function's parameter block. | |
| * \retval 0 on success. | | * \retval 0 on success. | |
| */ | | */ | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 3 lines changed or added | |
|
| mp.h | | mp.h | |
| | | | |
| skipping to change at line 37 | | skipping to change at line 37 | |
| * <li>mpaddmul | | * <li>mpaddmul | |
| * <li>mpsetmul | | * <li>mpsetmul | |
| * <li>mpaddsqrtrc | | * <li>mpaddsqrtrc | |
| * <li>mpsub | | * <li>mpsub | |
| * <li>mpadd | | * <li>mpadd | |
| * </ul> | | * </ul> | |
| * | | * | |
| * With some smart use of available assembler instructions, it's possible | | * With some smart use of available assembler instructions, it's possible | |
| * to speed these routines up by a factor of 2 to 4. | | * to speed these routines up by a factor of 2 to 4. | |
| * | | * | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup MP_m | | * \ingroup MP_m | |
| */ | | */ | |
| | | | |
| #ifndef _MP_H | | #ifndef _MP_H | |
| #define _MP_H | | #define _MP_H | |
| | | | |
| #include "beecrypt/api.h" | | #include "beecrypt/api.h" | |
| #include "beecrypt/mpopt.h" | | #include "beecrypt/mpopt.h" | |
| | | | |
| #define MP_HWBITS (MP_WBITS >> 1) | | #define MP_HWBITS (MP_WBITS >> 1) | |
| | | | |
| skipping to change at line 225 | | skipping to change at line 225 | |
| * \note The comparison treats the arguments as unsigned. | | * \note The comparison treats the arguments as unsigned. | |
| * \param size The size of the multi-precision integers. | | * \param size The size of the multi-precision integers. | |
| * \param xdata The first multi-precision integer. | | * \param xdata The first multi-precision integer. | |
| * \param ydata The second multi-precision integer. | | * \param ydata The second multi-precision integer. | |
| * \retval 1 if less or equal | | * \retval 1 if less or equal | |
| * \retval 0 if greater | | * \retval 0 if greater | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int mple (size_t size, const mpw* xdata, const mpw* ydata); | | int mple (size_t size, const mpw* xdata, const mpw* ydata); | |
| | | | |
|
| | | /*!\fn int mpcmp(size_t size, const mpw* xdata, const mpw* ydata) | |
| | | * \brief This function performs a comparison of two multi-precision | |
| | | * integers of the same size. | |
| | | * \note The comparison treats the arguments as unsigned. | |
| | | * \retval -1 if x < y | |
| | | * \retval 0 if x == y | |
| | | * \retval 1 if x > y | |
| | | */ | |
| | | BEECRYPTAPI | |
| | | int mpcmp(size_t size, const mpw* xdata, const mpw* ydata); | |
| | | | |
| /*!\fn int mpeqx(size_t xsize, const mpw* xdata, size_t ysize, const mpw* y
data) | | /*!\fn int mpeqx(size_t xsize, const mpw* xdata, size_t ysize, const mpw* y
data) | |
| * \brief This function tests if two multi-precision integers of different | | * \brief This function tests if two multi-precision integers of different | |
| * size are equal. | | * size are equal. | |
| * \param xsize The size of the first multi-precision integer. | | * \param xsize The size of the first multi-precision integer. | |
| * \param xdata The first multi-precision integer. | | * \param xdata The first multi-precision integer. | |
| * \param ysize The size of the first multi-precision integer. | | * \param ysize The size of the first multi-precision integer. | |
| * \param ydata The second multi-precision integer. | | * \param ydata The second multi-precision integer. | |
| * \retval 1 if equal | | * \retval 1 if equal | |
| * \retval 0 if not equal | | * \retval 0 if not equal | |
| */ | | */ | |
| | | | |
| skipping to change at line 307 | | skipping to change at line 318 | |
| * \param xsize The size of the first multi-precision integer. | | * \param xsize The size of the first multi-precision integer. | |
| * \param xdata The first multi-precision integer. | | * \param xdata The first multi-precision integer. | |
| * \param ysize The size of the second multi-precision integer. | | * \param ysize The size of the second multi-precision integer. | |
| * \param ydata The second multi-precision integer. | | * \param ydata The second multi-precision integer. | |
| * \retval 1 if less or equal | | * \retval 1 if less or equal | |
| * \retval 0 if greater | | * \retval 0 if greater | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int mplex(size_t xsize, const mpw* xdata, size_t ysize, const mpw* ydata); | | int mplex(size_t xsize, const mpw* xdata, size_t ysize, const mpw* ydata); | |
| | | | |
|
| | | /*!\fn int mpcmpx(size_t xsize, const mpw* xdata, size_t ysize, const mpw* | |
| | | ydata) | |
| | | * \brief This function performs a comparison of two multi-precision | |
| | | * integers of the different size. | |
| | | * \note The comparison treats the arguments as unsigned. | |
| | | * \retval -1 if x < y | |
| | | * \retval 0 if x == y | |
| | | * \retval 1 if x > y | |
| | | */ | |
| | | BEECRYPTAPI | |
| | | int mpcmpx(size_t xsize, const mpw* xdata, size_t ysize, const mpw* ydata); | |
| | | | |
| /*!\fn int mpisone(size_t size, const mpw* data) | | /*!\fn int mpisone(size_t size, const mpw* data) | |
| * \brief This functions tests if the value of a multi-precision integer is | | * \brief This functions tests if the value of a multi-precision integer is | |
| * equal to one. | | * equal to one. | |
| * \param size The size of the multi-precision integer. | | * \param size The size of the multi-precision integer. | |
| * \param data The multi-precision integer data. | | * \param data The multi-precision integer data. | |
| * \retval 1 if one | | * \retval 1 if one | |
| * \retval 0 if not one | | * \retval 0 if not one | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int mpisone(size_t size, const mpw* data); | | int mpisone(size_t size, const mpw* data); | |
| | | | |
| skipping to change at line 453 | | skipping to change at line 475 | |
| * \param data The multi-precision integer data. | | * \param data The multi-precision integer data. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| void mpnot(size_t size, mpw* data); | | void mpnot(size_t size, mpw* data); | |
| | | | |
| /*!\fn void mpsetw(size_t size, mpw* xdata, mpw y) | | /*!\fn void mpsetw(size_t size, mpw* xdata, mpw y) | |
| * \brief This function sets the value of a multi-precision integer to the | | * \brief This function sets the value of a multi-precision integer to the | |
| * given word. The given value is copied into the least significant word, | | * given word. The given value is copied into the least significant word, | |
| * while the most significant words are zeroed. | | * while the most significant words are zeroed. | |
| * \param size The size of the multi-precision integer. | | * \param size The size of the multi-precision integer. | |
|
| * \param xdata The first multi-precision integer. | | * \param xdata The multi-precision integer data. | |
| * \param y The multi-precision word. | | * \param y The value to be assigned. | |
| */ | | */ | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| void mpsetw(size_t size, mpw* xdata, mpw y); | | void mpsetw(size_t size, mpw* xdata, mpw y); | |
| | | | |
|
| | | /*!\fn void mpsetws(size_t size, mpw* xdata, size_t y) | |
| | | * \brief This function sets the value of a multi-precision integer to the | |
| | | * given word. The given value is copied into the least significant word(s | |
| | | ), | |
| | | * while the most significant words are zeroed. | |
| | | * \param size The size of the multi-precision integer. | |
| | | * \param xdata The multi-precision integer data. | |
| | | * \param y The value. | |
| | | */ | |
| | | BEECRYPTAPI | |
| | | void mpsetws(size_t size, mpw* xdata, size_t y); | |
| | | | |
| /*!\fn void mpsetx(size_t xsize, mpw* xdata, size_t ysize, const mpw* ydata
) | | /*!\fn void mpsetx(size_t xsize, mpw* xdata, size_t ysize, const mpw* ydata
) | |
| * \brief This function set the value of the first multi-precision integer | | * \brief This function set the value of the first multi-precision integer | |
| * to the second, truncating the most significant words if ysize > xsize,
or | | * to the second, truncating the most significant words if ysize > xsize,
or | |
| * zeroing the most significant words if ysize < xsize. | | * zeroing the most significant words if ysize < xsize. | |
| * \param xsize The size of the first multi-precision integer. | | * \param xsize The size of the first multi-precision integer. | |
| * \param xdata The first multi-precision integer. | | * \param xdata The first multi-precision integer. | |
| * \param ysize The size of the second multi-precision integer. | | * \param ysize The size of the second multi-precision integer. | |
| * \param ydata The second multi-precision integer. | | * \param ydata The second multi-precision integer. | |
| */ | | */ | |
|
| | | BEECRYPTAPI | |
| void mpsetx(size_t xsize, mpw* xdata, size_t ysize, const mpw* ydata); | | void mpsetx(size_t xsize, mpw* xdata, size_t ysize, const mpw* ydata); | |
| | | | |
| /*!\fn int mpaddw(size_t size, mpw* xdata, mpw y) | | /*!\fn int mpaddw(size_t size, mpw* xdata, mpw y) | |
| * \brief This function adds one word to a multi-precision integer. | | * \brief This function adds one word to a multi-precision integer. | |
| * The performed operation is in pseudocode: x += y. | | * The performed operation is in pseudocode: x += y. | |
| * \param size The size of the multi-precision integer. | | * \param size The size of the multi-precision integer. | |
| * \param xdata The first multi-precision integer. | | * \param xdata The first multi-precision integer. | |
| * \param y The multi-precision word. | | * \param y The multi-precision word. | |
| * \return The carry-over value of the operation; this value is either 0 or
1. | | * \return The carry-over value of the operation; this value is either 0 or
1. | |
| */ | | */ | |
| | | | |
| skipping to change at line 679 | | skipping to change at line 713 | |
| void mpfprint(FILE* f, size_t size, const mpw* data); | | void mpfprint(FILE* f, size_t size, const mpw* data); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| void mpfprintln(FILE* f, size_t size, const mpw* data); | | void mpfprintln(FILE* f, size_t size, const mpw* data); | |
| | | | |
| /* | | /* | |
| * Conversion Routines | | * Conversion Routines | |
| */ | | */ | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| int os2ip(mpw* idata, size_t isize, const byte* osdata, size_t ossize); | | int i2osp(byte* osdata, size_t ossize, const mpw* idata, size_t isize); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
|
| int i2osp(byte* osdata, size_t ossize, const mpw* idata, size_t isize); | | int os2ip(mpw* idata, size_t isize, const byte* osdata, size_t ossize); | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| int hs2ip(mpw* idata, size_t isize, const char* hsdata, size_t hssize); | | int hs2ip(mpw* idata, size_t isize, const char* hsdata, size_t hssize); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 8 change blocks. |
| 5 lines changed or deleted | | 41 lines changed or added | |
|
| mpbarrett.h | | mpbarrett.h | |
| | | | |
| skipping to change at line 22 | | skipping to change at line 22 | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file mpbarrett.h | | /*!\file mpbarrett.h | |
| * \brief Multi-precision integer routines using Barrett modular reduction,
headers. | | * \brief Multi-precision integer routines using Barrett modular reduction,
headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup MP_m | | * \ingroup MP_m | |
| */ | | */ | |
| | | | |
| #ifndef _MPBARRETT_H | | #ifndef _MPBARRETT_H | |
| #define _MPBARRETT_H | | #define _MPBARRETT_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/mpnumber.h" | | #include "beecrypt/mpnumber.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 52 | |
| size_t size; | | size_t size; | |
| mpw* modl; /* (size) words */ | | mpw* modl; /* (size) words */ | |
| mpw* mu; /* (size+1) words */ | | mpw* mu; /* (size+1) words */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| mpbarrett(); | | mpbarrett(); | |
| mpbarrett(const mpbarrett&); | | mpbarrett(const mpbarrett&); | |
| ~mpbarrett(); | | ~mpbarrett(); | |
| | | | |
| const mpbarrett& operator=(const mpbarrett&); | | const mpbarrett& operator=(const mpbarrett&); | |
|
| bool operator==(const mpbarrett&) const throw (); | | | |
| bool operator!=(const mpbarrett&) const throw (); | | | |
| | | | |
| void wipe(); | | void wipe(); | |
|
| size_t bitlength() const throw (); | | | |
| | | size_t bitlength() const; | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| typedef struct _mpbarrett mpbarrett; | | typedef struct _mpbarrett mpbarrett; | |
| #else | | #else | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| std::ostream& operator<<(std::ostream&, const mpbarrett&); | | std::ostream& operator<<(std::ostream&, const mpbarrett&); | |
| #endif | | #endif | |
| | | | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 3 lines changed or added | |
|
| mpnumber.h | | mpnumber.h | |
| | | | |
| skipping to change at line 22 | | skipping to change at line 22 | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file mpnumber.h | | /*!\file mpnumber.h | |
| * \brief Multi-precision numbers, headers. | | * \brief Multi-precision numbers, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup MP_m | | * \ingroup MP_m | |
| */ | | */ | |
| | | | |
| #ifndef _MPNUMBER_H | | #ifndef _MPNUMBER_H | |
| #define _MPNUMBER_H | | #define _MPNUMBER_H | |
| | | | |
| #include "beecrypt/mp.h" | | #include "beecrypt/mp.h" | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| # include <iostream> | | # include <iostream> | |
| | | | |
| skipping to change at line 50 | | skipping to change at line 50 | |
| { | | { | |
| size_t size; | | size_t size; | |
| mpw* data; | | mpw* data; | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| static const mpnumber ZERO; | | static const mpnumber ZERO; | |
| static const mpnumber ONE; | | static const mpnumber ONE; | |
| | | | |
| mpnumber(); | | mpnumber(); | |
| mpnumber(unsigned int); | | mpnumber(unsigned int); | |
|
| | | mpnumber(size_t, const mpw*); | |
| mpnumber(const mpnumber&); | | mpnumber(const mpnumber&); | |
| ~mpnumber(); | | ~mpnumber(); | |
| | | | |
| const mpnumber& operator=(const mpnumber&); | | const mpnumber& operator=(const mpnumber&); | |
|
| bool operator==(const mpnumber&) const throw (); | | | |
| bool operator!=(const mpnumber&) const throw (); | | | |
| | | | |
| void wipe(); | | void wipe(); | |
| | | | |
|
| size_t bitlength() const throw (); | | size_t bitlength() const; | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| typedef struct _mpnumber mpnumber; | | typedef struct _mpnumber mpnumber; | |
| #else | | #else | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| std::ostream& operator<<(std::ostream&, const mpnumber&); | | std::ostream& operator<<(std::ostream&, const mpnumber&); | |
|
| /* | | | |
| BEECRYPTAPI | | | |
| std::istream& operator>>(std::istream&, mpnumber&); | | | |
| */ | | | |
| #endif | | #endif | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| void mpnzero(mpnumber*); | | void mpnzero(mpnumber*); | |
| BEECRYPTAPI | | BEECRYPTAPI | |
| void mpnsize(mpnumber*, size_t); | | void mpnsize(mpnumber*, size_t); | |
| | | | |
End of changes. 5 change blocks. |
| 8 lines changed or deleted | | 3 lines changed or added | |
|
| mtprng.h | | mtprng.h | |
| /* | | /* | |
|
| * Copyright (c) 1998, 1999, 2000, 2003 Virtual Unlimited B.V. | | * Copyright (c) 1998, 1999, 2000, 2003 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file mtprng.h | | /*!\file mtprng.h | |
| * \brief Mersenne Twister pseudo-random number generator, headers. | | * \brief Mersenne Twister pseudo-random number generator, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup PRNG_m | | * \ingroup PRNG_m | |
| */ | | */ | |
| | | | |
| #ifndef _MTPRNG_H | | #ifndef _MTPRNG_H | |
| #define _MTPRNG_H | | #define _MTPRNG_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| #ifdef _REENTRANT | | #ifdef _REENTRANT | |
| # if WIN32 | | # if WIN32 | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| sha1.h | | sha1.h | |
| /* | | /* | |
|
| * Copyright (c) 1997, 1998, 1999, 2000, 2002 Virtual Unlimited B.V. | | * Copyright (c) 1997, 1998, 1999, 2000, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file sha1.h | | /*!\file sha1.h | |
| * \brief SHA-1 hash function, headers. | | * \brief SHA-1 hash function, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HASH_m HASH_sha1_m | | * \ingroup HASH_m HASH_sha1_m | |
| */ | | */ | |
| | | | |
| #ifndef _SHA1_H | | #ifndef _SHA1_H | |
| #define _SHA1_H | | #define _SHA1_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| #include "beecrypt/sha1opt.h" | | #include "beecrypt/sha1opt.h" | |
| | | | |
| /*!\brief Holds all the parameters necessary for the SHA-1 algorithm. | | /*!\brief Holds all the parameters necessary for the SHA-1 algorithm. | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| sha256.h | | sha256.h | |
| /* | | /* | |
|
| * Copyright (c) 2000, 2001, 2002 Virtual Unlimited B.V. | | * Copyright (c) 2000, 2001, 2002 X-Way Rights BV | |
| * | | * | |
| * This library is free software; you can redistribute it and/or | | * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | | * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | | * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | | * version 2.1 of the License, or (at your option) any later version. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | | * Lesser General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU Lesser General Public | | * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | | * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| * | | * | |
| */ | | */ | |
| | | | |
| /*!\file sha256.h | | /*!\file sha256.h | |
| * \brief SHA-256 hash function, headers. | | * \brief SHA-256 hash function, headers. | |
|
| * \author Bob Deblier <bob.deblier@pandora.be> | | * \author Bob Deblier <bob.deblier@telenet.be> | |
| * \ingroup HASH_m HASH_sha256_m | | * \ingroup HASH_m HASH_sha256_m | |
| */ | | */ | |
| | | | |
| #ifndef _SHA256_H | | #ifndef _SHA256_H | |
| #define _SHA256_H | | #define _SHA256_H | |
| | | | |
| #include "beecrypt/beecrypt.h" | | #include "beecrypt/beecrypt.h" | |
| | | | |
| /*!\brief Holds all the parameters necessary for the SHA-256 algorithm. | | /*!\brief Holds all the parameters necessary for the SHA-256 algorithm. | |
| * \ingroup HASH_sha256_m | | * \ingroup HASH_sha256_m | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|