| aes.h | | aes.h | |
| | | | |
| skipping to change at line 137 | | skipping to change at line 137 | |
| * \return 0 if successful | | * \return 0 if successful | |
| */ | | */ | |
| int aes_crypt_cfb128( aes_context *ctx, | | int aes_crypt_cfb128( aes_context *ctx, | |
| int mode, | | int mode, | |
| size_t length, | | size_t length, | |
| size_t *iv_off, | | size_t *iv_off, | |
| unsigned char iv[16], | | unsigned char iv[16], | |
| const unsigned char *input, | | const unsigned char *input, | |
| unsigned char *output ); | | unsigned char *output ); | |
| | | | |
|
| /* | | /** | |
| * \brief AES-CTR buffer encryption/decryption | | * \brief AES-CTR buffer encryption/decryption | |
| * | | * | |
| * Warning: You have to keep the maximum use of your counter in mind! | | * Warning: You have to keep the maximum use of your counter in mind! | |
| * | | * | |
| * Note: Due to the nature of CTR you should use the same key schedule for | | * Note: Due to the nature of CTR you should use the same key schedule for | |
| * both encryption and decryption. So a context initialized with | | * both encryption and decryption. So a context initialized with | |
| * aes_setkey_enc() for both AES_ENCRYPT and AES_DECRYPT. | | * aes_setkey_enc() for both AES_ENCRYPT and AES_DECRYPT. | |
| * | | * | |
| * \param length The length of the data | | * \param length The length of the data | |
| * \param nc_off The offset in the current stream_block (for resumin
g | | * \param nc_off The offset in the current stream_block (for resumin
g | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| arc4.h | | arc4.h | |
| | | | |
| skipping to change at line 69 | | skipping to change at line 69 | |
| * \param ctx ARC4 context | | * \param ctx ARC4 context | |
| * \param length length of the input data | | * \param length length of the input data | |
| * \param input buffer holding the input data | | * \param input buffer holding the input data | |
| * \param output buffer for the output data | | * \param output buffer for the output data | |
| * | | * | |
| * \return 0 if successful | | * \return 0 if successful | |
| */ | | */ | |
| int arc4_crypt( arc4_context *ctx, size_t length, const unsigned char *inpu
t, | | int arc4_crypt( arc4_context *ctx, size_t length, const unsigned char *inpu
t, | |
| unsigned char *output ); | | unsigned char *output ); | |
| | | | |
|
| /* | | /** | |
| * \brief Checkup routine | | * \brief Checkup routine | |
| * | | * | |
| * \return 0 if successful, or 1 if the test failed | | * \return 0 if successful, or 1 if the test failed | |
| */ | | */ | |
| int arc4_self_test( int verbose ); | | int arc4_self_test( int verbose ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| bignum.h | | bignum.h | |
| | | | |
| skipping to change at line 187 | | skipping to change at line 187 | |
| * \brief Set value from integer | | * \brief Set value from integer | |
| * | | * | |
| * \param X MPI to set | | * \param X MPI to set | |
| * \param z Value to use | | * \param z Value to use | |
| * | | * | |
| * \return 0 if successful, | | * \return 0 if successful, | |
| * POLARSSL_ERR_MPI_MALLOC_FAILED if memory allocation fail
ed | | * POLARSSL_ERR_MPI_MALLOC_FAILED if memory allocation fail
ed | |
| */ | | */ | |
| int mpi_lset( mpi *X, t_sint z ); | | int mpi_lset( mpi *X, t_sint z ); | |
| | | | |
|
| /* | | /** | |
| * \brief Get a specific bit from X | | * \brief Get a specific bit from X | |
| * | | * | |
| * \param X MPI to use | | * \param X MPI to use | |
| * \param pos Zero-based index of the bit in X | | * \param pos Zero-based index of the bit in X | |
| * | | * | |
| * \return Either a 0 or a 1 | | * \return Either a 0 or a 1 | |
| */ | | */ | |
| int mpi_get_bit( mpi *X, size_t pos ); | | int mpi_get_bit( mpi *X, size_t pos ); | |
| | | | |
|
| /* | | /** | |
| * \brief Set a bit of X to a specific value of 0 or 1 | | * \brief Set a bit of X to a specific value of 0 or 1 | |
| * | | * | |
| * \note Will grow X if necessary to set a bit to 1 in a not yet | | * \note Will grow X if necessary to set a bit to 1 in a not yet | |
| * existing limb. Will not grow if bit should be set to 0 | | * existing limb. Will not grow if bit should be set to 0 | |
| * | | * | |
| * \param X MPI to use | | * \param X MPI to use | |
| * \param pos Zero-based index of the bit in X | | * \param pos Zero-based index of the bit in X | |
| * \param val The value to set the bit to (0 or 1) | | * \param val The value to set the bit to (0 or 1) | |
| * | | * | |
| * \return 0 if successful, | | * \return 0 if successful, | |
| | | | |
| skipping to change at line 540 | | skipping to change at line 540 | |
| * \brief Sliding-window exponentiation: X = A^E mod N | | * \brief Sliding-window exponentiation: X = A^E mod N | |
| * | | * | |
| * \param X Destination MPI | | * \param X Destination MPI | |
| * \param A Left-hand MPI | | * \param A Left-hand MPI | |
| * \param E Exponent MPI | | * \param E Exponent MPI | |
| * \param N Modular MPI | | * \param N Modular MPI | |
| * \param _RR Speed-up MPI used for recalculations | | * \param _RR Speed-up MPI used for recalculations | |
| * | | * | |
| * \return 0 if successful, | | * \return 0 if successful, | |
| * POLARSSL_ERR_MPI_MALLOC_FAILED if memory allocation fail
ed, | | * POLARSSL_ERR_MPI_MALLOC_FAILED if memory allocation fail
ed, | |
|
| * POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or even | | * POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or even | |
| | | or if | |
| | | * E is negative | |
| * | | * | |
| * \note _RR is used to avoid re-computing R*R mod N across | | * \note _RR is used to avoid re-computing R*R mod N across | |
| * multiple calls, which speeds up things a bit. It can | | * multiple calls, which speeds up things a bit. It can | |
| * be set to NULL if the extra performance is unneeded. | | * be set to NULL if the extra performance is unneeded. | |
| */ | | */ | |
| int mpi_exp_mod( mpi *X, const mpi *A, const mpi *E, const mpi *N, mpi *_RR
); | | int mpi_exp_mod( mpi *X, const mpi *A, const mpi *E, const mpi *N, mpi *_RR
); | |
| | | | |
| /** | | /** | |
| * \brief Fill an MPI X with size bytes of random | | * \brief Fill an MPI X with size bytes of random | |
| * | | * | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 5 lines changed or added | |
|
| bn_mul.h | | bn_mul.h | |
| | | | |
| skipping to change at line 398 | | skipping to change at line 398 | |
| asm( "stw %%r5, %0 " : "=m" (c)); \ | | asm( "stw %%r5, %0 " : "=m" (c)); \ | |
| asm( "stw %%r4, %0 " : "=m" (d)); \ | | asm( "stw %%r4, %0 " : "=m" (d)); \ | |
| asm( "stw %%r3, %0 " : "=m" (s) :: \ | | asm( "stw %%r3, %0 " : "=m" (s) :: \ | |
| "r3", "r4", "r5", "r6", "r7", "r8", "r9" ); | | "r3", "r4", "r5", "r6", "r7", "r8", "r9" ); | |
| | | | |
| #endif | | #endif | |
| | | | |
| #endif /* PPC32 */ | | #endif /* PPC32 */ | |
| #endif /* PPC64 */ | | #endif /* PPC64 */ | |
| | | | |
|
| #if defined(__sparc__) | | #if defined(__sparc__) && defined(__sparc64__) | |
| | | | |
| #define MULADDC_INIT \ | | #define MULADDC_INIT \ | |
|
| asm( "ld %0, %%o0 " :: "m" (s)); \ | | asm( \ | |
| asm( "ld %0, %%o1 " :: "m" (d)); \ | | " \ | |
| asm( "ld %0, %%o2 " :: "m" (c)); \ | | ldx %3, %%o0; \ | |
| asm( "ld %0, %%o3 " :: "m" (b)); | | ldx %4, %%o1; \ | |
| | | ld %5, %%o2; \ | |
| | | ld %6, %%o3; \ | |
| | | " | |
| | | | |
| #define MULADDC_CORE \ | | #define MULADDC_CORE \ | |
|
| asm( "ld [%o0], %o4 " ); \ | | " \ | |
| asm( "inc 4, %o0 " ); \ | | ld [%%o0], %%o4; \ | |
| asm( "ld [%o1], %o5 " ); \ | | inc 4, %%o0; \ | |
| asm( "umul %o3, %o4, %o4 " ); \ | | ld [%%o1], %%o5; \ | |
| asm( "addcc %o4, %o2, %o4 " ); \ | | umul %%o3, %%o4, %%o4; \ | |
| asm( "rd %y, %g1 " ); \ | | addcc %%o4, %%o2, %%o4; \ | |
| asm( "addx %g1, 0, %g1 " ); \ | | rd %%y, %%g1; \ | |
| asm( "addcc %o4, %o5, %o4 " ); \ | | addx %%g1, 0, %%g1; \ | |
| asm( "st %o4, [%o1] " ); \ | | addcc %%o4, %%o5, %%o4; \ | |
| asm( "addx %g1, 0, %o2 " ); \ | | st %%o4, [%%o1]; \ | |
| asm( "inc 4, %o1 " ); | | addx %%g1, 0, %%o2; \ | |
| | | inc 4, %%o1; \ | |
| | | " | |
| | | | |
| #define MULADDC_STOP \ | | #define MULADDC_STOP \ | |
|
| asm( "st %%o2, %0 " : "=m" (c)); \ | | " \ | |
| asm( "st %%o1, %0 " : "=m" (d)); \ | | st %%o2, %0; \ | |
| asm( "st %%o0, %0 " : "=m" (s) :: \ | | stx %%o1, %1; \ | |
| "g1", "o0", "o1", "o2", "o3", "o4", "o5" ); | | stx %%o0, %2; \ | |
| | | " \ | |
| | | : "=m" (c), "=m" (d), "=m" (s) \ | |
| | | : "m" (s), "m" (d), "m" (c), "m" (b) \ | |
| | | : "g1", "o0", "o1", "o2", "o3", "o4", \ | |
| | | "o5" \ | |
| | | ); | |
| | | #endif /* SPARCv9 */ | |
| | | | |
| | | #if defined(__sparc__) && !defined(__sparc64__) | |
| | | | |
| | | #define MULADDC_INIT \ | |
| | | asm( \ | |
| | | " \ | |
| | | ld %3, %%o0; \ | |
| | | ld %4, %%o1; \ | |
| | | ld %5, %%o2; \ | |
| | | ld %6, %%o3; \ | |
| | | " | |
| | | | |
| | | #define MULADDC_CORE \ | |
| | | " \ | |
| | | ld [%%o0], %%o4; \ | |
| | | inc 4, %%o0; \ | |
| | | ld [%%o1], %%o5; \ | |
| | | umul %%o3, %%o4, %%o4; \ | |
| | | addcc %%o4, %%o2, %%o4; \ | |
| | | rd %%y, %%g1; \ | |
| | | addx %%g1, 0, %%g1; \ | |
| | | addcc %%o4, %%o5, %%o4; \ | |
| | | st %%o4, [%%o1]; \ | |
| | | addx %%g1, 0, %%o2; \ | |
| | | inc 4, %%o1; \ | |
| | | " | |
| | | | |
| | | #define MULADDC_STOP \ | |
| | | " \ | |
| | | st %%o2, %0; \ | |
| | | st %%o1, %1; \ | |
| | | st %%o0, %2; \ | |
| | | " \ | |
| | | : "=m" (c), "=m" (d), "=m" (s) \ | |
| | | : "m" (s), "m" (d), "m" (c), "m" (b) \ | |
| | | : "g1", "o0", "o1", "o2", "o3", "o4", \ | |
| | | "o5" \ | |
| | | ); | |
| | | | |
| #endif /* SPARCv8 */ | | #endif /* SPARCv8 */ | |
| | | | |
| #if defined(__microblaze__) || defined(microblaze) | | #if defined(__microblaze__) || defined(microblaze) | |
| | | | |
| #define MULADDC_INIT \ | | #define MULADDC_INIT \ | |
| asm( "lwi r3, %0 " :: "m" (s)); \ | | asm( "lwi r3, %0 " :: "m" (s)); \ | |
| asm( "lwi r4, %0 " :: "m" (d)); \ | | asm( "lwi r4, %0 " :: "m" (d)); \ | |
| asm( "lwi r5, %0 " :: "m" (c)); \ | | asm( "lwi r5, %0 " :: "m" (c)); \ | |
| asm( "lwi r6, %0 " :: "m" (b)); \ | | asm( "lwi r6, %0 " :: "m" (b)); \ | |
| | | | |
End of changes. 4 change blocks. |
| 20 lines changed or deleted | | 70 lines changed or added | |
|
| camellia.h | | camellia.h | |
| | | | |
| skipping to change at line 142 | | skipping to change at line 142 | |
| * \return 0 if successful, or POLARSSL_ERR_CAMELLIA_INVALID_INPUT_
LENGTH | | * \return 0 if successful, or POLARSSL_ERR_CAMELLIA_INVALID_INPUT_
LENGTH | |
| */ | | */ | |
| int camellia_crypt_cfb128( camellia_context *ctx, | | int camellia_crypt_cfb128( camellia_context *ctx, | |
| int mode, | | int mode, | |
| size_t length, | | size_t length, | |
| size_t *iv_off, | | size_t *iv_off, | |
| unsigned char iv[16], | | unsigned char iv[16], | |
| const unsigned char *input, | | const unsigned char *input, | |
| unsigned char *output ); | | unsigned char *output ); | |
| | | | |
|
| /* | | /** | |
| * \brief CAMELLIA-CTR buffer encryption/decryption | | * \brief CAMELLIA-CTR buffer encryption/decryption | |
| * | | * | |
| * Warning: You have to keep the maximum use of your counter in mind! | | * Warning: You have to keep the maximum use of your counter in mind! | |
| * | | * | |
| * Note: Due to the nature of CTR you should use the same key schedule for | | * Note: Due to the nature of CTR you should use the same key schedule for | |
| * both encryption and decryption. So a context initialized with | | * both encryption and decryption. So a context initialized with | |
| * camellia_setkey_enc() for both CAMELLIA_ENCRYPT and CAMELLIA_DECRYPT. | | * camellia_setkey_enc() for both CAMELLIA_ENCRYPT and CAMELLIA_DECRYPT. | |
| * | | * | |
| * \param length The length of the data | | * \param length The length of the data | |
| * \param nc_off The offset in the current stream_block (for resumin
g | | * \param nc_off The offset in the current stream_block (for resumin
g | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| config.h | | config.h | |
| | | | |
| skipping to change at line 283 | | skipping to change at line 283 | |
| * Module: library/base64.c | | * Module: library/base64.c | |
| * Caller: library/pem.c | | * Caller: library/pem.c | |
| * | | * | |
| * This module is required for PEM support (required by X.509). | | * This module is required for PEM support (required by X.509). | |
| */ | | */ | |
| #define POLARSSL_BASE64_C | | #define POLARSSL_BASE64_C | |
| | | | |
| /** | | /** | |
| * \def POLARSSL_BIGNUM_C | | * \def POLARSSL_BIGNUM_C | |
| * | | * | |
|
| * Enable the multo-precision integer library. | | * Enable the multi-precision integer library. | |
| * | | * | |
| * Module: library/bignum.c | | * Module: library/bignum.c | |
| * Caller: library/dhm.c | | * Caller: library/dhm.c | |
| * library/rsa.c | | * library/rsa.c | |
| * library/ssl_tls.c | | * library/ssl_tls.c | |
| * library/x509parse.c | | * library/x509parse.c | |
| * | | * | |
| * This module is required for RSA and DHM support. | | * This module is required for RSA and DHM support. | |
| */ | | */ | |
| #define POLARSSL_BIGNUM_C | | #define POLARSSL_BIGNUM_C | |
| | | | |
| skipping to change at line 609 | | skipping to change at line 609 | |
| * | | * | |
| * Module: library/ssl_cli.c | | * Module: library/ssl_cli.c | |
| * Caller: | | * Caller: | |
| * | | * | |
| * Requires: POLARSSL_SSL_TLS_C | | * Requires: POLARSSL_SSL_TLS_C | |
| * | | * | |
| * This module is required for SSL/TLS client support. | | * This module is required for SSL/TLS client support. | |
| */ | | */ | |
| #define POLARSSL_SSL_CLI_C | | #define POLARSSL_SSL_CLI_C | |
| | | | |
|
| /* | | /** | |
| * \def POLARSSL_SSL_SRV_C | | * \def POLARSSL_SSL_SRV_C | |
| * | | * | |
| * Enable the SSL/TLS server code. | | * Enable the SSL/TLS server code. | |
| * | | * | |
| * Module: library/ssl_srv.c | | * Module: library/ssl_srv.c | |
| * Caller: | | * Caller: | |
| * | | * | |
| * Requires: POLARSSL_SSL_TLS_C | | * Requires: POLARSSL_SSL_TLS_C | |
| * | | * | |
| * This module is required for SSL/TLS server support. | | * This module is required for SSL/TLS server support. | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| dhm.h | | dhm.h | |
| | | | |
| skipping to change at line 137 | | skipping to change at line 137 | |
| * | | * | |
| * \param ctx DHM context | | * \param ctx DHM context | |
| * \param output destination buffer | | * \param output destination buffer | |
| * \param olen number of chars written | | * \param olen number of chars written | |
| * | | * | |
| * \return 0 if successful, or an POLARSSL_ERR_DHM_XXX error code | | * \return 0 if successful, or an POLARSSL_ERR_DHM_XXX error code | |
| */ | | */ | |
| int dhm_calc_secret( dhm_context *ctx, | | int dhm_calc_secret( dhm_context *ctx, | |
| unsigned char *output, size_t *olen ); | | unsigned char *output, size_t *olen ); | |
| | | | |
|
| /* | | /** | |
| * \brief Free the components of a DHM key | | * \brief Free the components of a DHM key | |
| */ | | */ | |
| void dhm_free( dhm_context *ctx ); | | void dhm_free( dhm_context *ctx ); | |
| | | | |
| /** | | /** | |
| * \brief Checkup routine | | * \brief Checkup routine | |
| * | | * | |
| * \return 0 if successful, or 1 if the test failed | | * \return 0 if successful, or 1 if the test failed | |
| */ | | */ | |
| int dhm_self_test( int verbose ); | | int dhm_self_test( int verbose ); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| version.h | | version.h | |
| /** | | /** | |
| * \file version.h | | * \file version.h | |
| * | | * | |
| * \brief Run-time version information | | * \brief Run-time version information | |
| * | | * | |
|
| * Copyright (C) 2006-2012, Brainspark B.V. | | * Copyright (C) 2006-2013, Brainspark B.V. | |
| * | | * | |
| * This file is part of PolarSSL (http://www.polarssl.org) | | * This file is part of PolarSSL (http://www.polarssl.org) | |
| * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org> | | * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org> | |
| * | | * | |
| * All rights reserved. | | * All rights reserved. | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| | | | |
| skipping to change at line 42 | | skipping to change at line 42 | |
| #define POLARSSL_VERSION_H | | #define POLARSSL_VERSION_H | |
| | | | |
| #include "config.h" | | #include "config.h" | |
| | | | |
| /** | | /** | |
| * The version number x.y.z is split into three parts. | | * The version number x.y.z is split into three parts. | |
| * Major, Minor, Patchlevel | | * Major, Minor, Patchlevel | |
| */ | | */ | |
| #define POLARSSL_VERSION_MAJOR 1 | | #define POLARSSL_VERSION_MAJOR 1 | |
| #define POLARSSL_VERSION_MINOR 1 | | #define POLARSSL_VERSION_MINOR 1 | |
|
| #define POLARSSL_VERSION_PATCH 4 | | #define POLARSSL_VERSION_PATCH 5 | |
| | | | |
| /** | | /** | |
| * The single version number has the following structure: | | * The single version number has the following structure: | |
| * MMNNPP00 | | * MMNNPP00 | |
| * Major version | Minor version | Patch version | | * Major version | Minor version | Patch version | |
| */ | | */ | |
|
| #define POLARSSL_VERSION_NUMBER 0x01010400 | | #define POLARSSL_VERSION_NUMBER 0x01010500 | |
| #define POLARSSL_VERSION_STRING "1.1.4" | | #define POLARSSL_VERSION_STRING "1.1.5" | |
| #define POLARSSL_VERSION_STRING_FULL "PolarSSL 1.1.4" | | #define POLARSSL_VERSION_STRING_FULL "PolarSSL 1.1.5" | |
| | | | |
| #if defined(POLARSSL_VERSION_C) | | #if defined(POLARSSL_VERSION_C) | |
| | | | |
| /** | | /** | |
| * Get the version number. | | * Get the version number. | |
| * | | * | |
| * \return The constructed version number in the format | | * \return The constructed version number in the format | |
| * MMNNPP00 (Major, Minor, Patch). | | * MMNNPP00 (Major, Minor, Patch). | |
| */ | | */ | |
| unsigned int version_get_number( void ); | | unsigned int version_get_number( void ); | |
| | | | |
End of changes. 3 change blocks. |
| 5 lines changed or deleted | | 5 lines changed or added | |
|
| x509.h | | x509.h | |
| | | | |
| skipping to change at line 619 | | skipping to change at line 619 | |
| /** | | /** | |
| * \brief Give an known OID, return its descriptive string. | | * \brief Give an known OID, return its descriptive string. | |
| * | | * | |
| * \param oid buffer containing the oid | | * \param oid buffer containing the oid | |
| * | | * | |
| * \return Return a string if the OID is known, | | * \return Return a string if the OID is known, | |
| * or NULL otherwise. | | * or NULL otherwise. | |
| */ | | */ | |
| const char *x509_oid_get_description( x509_buf *oid ); | | const char *x509_oid_get_description( x509_buf *oid ); | |
| | | | |
|
| /* | | /** | |
| * \brief Give an OID, return a string version of its OID number. | | * \brief Give an OID, return a string version of its OID number. | |
| * | | * | |
| * \param buf Buffer to write to | | * \param buf Buffer to write to | |
| * \param size Maximum size of buffer | | * \param size Maximum size of buffer | |
| * \param oid Buffer containing the OID | | * \param oid Buffer containing the OID | |
| * | | * | |
| * \return The amount of data written to the buffer, or -1 in | | * \return The amount of data written to the buffer, or -1 in | |
| * case of an error. | | * case of an error. | |
| */ | | */ | |
| int x509_oid_get_numeric_string( char *buf, size_t size, x509_buf *oid ); | | int x509_oid_get_numeric_string( char *buf, size_t size, x509_buf *oid ); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|