Merge pull request #323 from yanesca/iotcrypt-942-initialise-return-values
Initialise return values to an error
This commit is contained in:
commit
795c6bab62
@ -52,9 +52,10 @@
|
|||||||
* For historical reasons, low-level error codes are divided in even and odd,
|
* For historical reasons, low-level error codes are divided in even and odd,
|
||||||
* even codes were assigned first, and -1 is reserved for other errors.
|
* even codes were assigned first, and -1 is reserved for other errors.
|
||||||
*
|
*
|
||||||
* Low-level module errors (0x0002-0x007E, 0x0003-0x007F)
|
* Low-level module errors (0x0002-0x007E, 0x0001-0x007F)
|
||||||
*
|
*
|
||||||
* Module Nr Codes assigned
|
* Module Nr Codes assigned
|
||||||
|
* ERROR 2 0x006E 0x0001
|
||||||
* MPI 7 0x0002-0x0010
|
* MPI 7 0x0002-0x0010
|
||||||
* GCM 3 0x0012-0x0014 0x0013-0x0013
|
* GCM 3 0x0012-0x0014 0x0013-0x0013
|
||||||
* BLOWFISH 3 0x0016-0x0018 0x0017-0x0017
|
* BLOWFISH 3 0x0016-0x0018 0x0017-0x0017
|
||||||
@ -86,7 +87,7 @@
|
|||||||
* CHACHA20 3 0x0051-0x0055
|
* CHACHA20 3 0x0051-0x0055
|
||||||
* POLY1305 3 0x0057-0x005B
|
* POLY1305 3 0x0057-0x005B
|
||||||
* CHACHAPOLY 2 0x0054-0x0056
|
* CHACHAPOLY 2 0x0054-0x0056
|
||||||
* PLATFORM 1 0x0070-0x0072
|
* PLATFORM 2 0x0070-0x0072
|
||||||
*
|
*
|
||||||
* High-level module nr (3 bits - 0x0...-0x7...)
|
* High-level module nr (3 bits - 0x0...-0x7...)
|
||||||
* Name ID Nr of Errors
|
* Name ID Nr of Errors
|
||||||
@ -112,6 +113,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MBEDTLS_ERR_ERROR_GENERIC_ERROR -0x0001 /**< Generic error */
|
||||||
|
#define MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED -0x006E /**< This is a bug in the library */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Translate a mbed TLS error code into a string representation,
|
* \brief Translate a mbed TLS error code into a string representation,
|
||||||
* Result is truncated if necessary and always includes a terminating
|
* Result is truncated if necessary and always includes a terminating
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#include "mbedtls/aes.h"
|
#include "mbedtls/aes.h"
|
||||||
#include "mbedtls/platform.h"
|
#include "mbedtls/platform.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
#if defined(MBEDTLS_PADLOCK_C)
|
#if defined(MBEDTLS_PADLOCK_C)
|
||||||
#include "mbedtls/padlock.h"
|
#include "mbedtls/padlock.h"
|
||||||
#endif
|
#endif
|
||||||
@ -766,7 +767,7 @@ int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx,
|
|||||||
const unsigned char *key,
|
const unsigned char *key,
|
||||||
unsigned int keybits)
|
unsigned int keybits)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const unsigned char *key1, *key2;
|
const unsigned char *key1, *key2;
|
||||||
unsigned int key1bits, key2bits;
|
unsigned int key1bits, key2bits;
|
||||||
|
|
||||||
@ -791,7 +792,7 @@ int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx,
|
|||||||
const unsigned char *key,
|
const unsigned char *key,
|
||||||
unsigned int keybits)
|
unsigned int keybits)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const unsigned char *key1, *key2;
|
const unsigned char *key1, *key2;
|
||||||
unsigned int key1bits, key2bits;
|
unsigned int key1bits, key2bits;
|
||||||
|
|
||||||
@ -1175,7 +1176,7 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t blocks = length / 16;
|
size_t blocks = length / 16;
|
||||||
size_t leftover = length % 16;
|
size_t leftover = length % 16;
|
||||||
unsigned char tweak[16];
|
unsigned char tweak[16];
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/asn1.h"
|
#include "mbedtls/asn1.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -124,7 +125,7 @@ int mbedtls_asn1_get_bool( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
int *val )
|
int *val )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_BOOLEAN ) ) != 0 )
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_BOOLEAN ) ) != 0 )
|
||||||
@ -143,7 +144,7 @@ static int asn1_get_tagged_int( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
int tag, int *val )
|
int tag, int *val )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, tag ) ) != 0 )
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, tag ) ) != 0 )
|
||||||
@ -202,7 +203,7 @@ int mbedtls_asn1_get_mpi( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
mbedtls_mpi *X )
|
mbedtls_mpi *X )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 )
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 )
|
||||||
@ -219,7 +220,7 @@ int mbedtls_asn1_get_mpi( unsigned char **p,
|
|||||||
int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end,
|
int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end,
|
||||||
mbedtls_asn1_bitstring *bs)
|
mbedtls_asn1_bitstring *bs)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* Certificate type is a single byte bitstring */
|
/* Certificate type is a single byte bitstring */
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
|
||||||
@ -252,7 +253,7 @@ int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end,
|
|||||||
int mbedtls_asn1_get_bitstring_null( unsigned char **p, const unsigned char *end,
|
int mbedtls_asn1_get_bitstring_null( unsigned char **p, const unsigned char *end,
|
||||||
size_t *len )
|
size_t *len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
|
if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -278,7 +279,7 @@ int mbedtls_asn1_get_sequence_of( unsigned char **p,
|
|||||||
mbedtls_asn1_sequence *cur,
|
mbedtls_asn1_sequence *cur,
|
||||||
int tag)
|
int tag)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
mbedtls_asn1_buf *buf;
|
mbedtls_asn1_buf *buf;
|
||||||
|
|
||||||
@ -327,7 +328,7 @@ int mbedtls_asn1_get_alg( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params )
|
mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &len,
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &len,
|
||||||
@ -371,7 +372,7 @@ int mbedtls_asn1_get_alg_null( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
mbedtls_asn1_buf *alg )
|
mbedtls_asn1_buf *alg )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_asn1_buf params;
|
mbedtls_asn1_buf params;
|
||||||
|
|
||||||
memset( ¶ms, 0, sizeof(mbedtls_asn1_buf) );
|
memset( ¶ms, 0, sizeof(mbedtls_asn1_buf) );
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#if defined(MBEDTLS_ASN1_WRITE_C)
|
#if defined(MBEDTLS_ASN1_WRITE_C)
|
||||||
|
|
||||||
#include "mbedtls/asn1write.h"
|
#include "mbedtls/asn1write.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -131,7 +132,7 @@ int mbedtls_asn1_write_raw_buffer( unsigned char **p, unsigned char *start,
|
|||||||
#if defined(MBEDTLS_BIGNUM_C)
|
#if defined(MBEDTLS_BIGNUM_C)
|
||||||
int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedtls_mpi *X )
|
int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedtls_mpi *X )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
// Write the MPI
|
// Write the MPI
|
||||||
@ -168,7 +169,7 @@ cleanup:
|
|||||||
|
|
||||||
int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start )
|
int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
// Write NULL
|
// Write NULL
|
||||||
@ -182,7 +183,7 @@ int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start )
|
|||||||
int mbedtls_asn1_write_oid( unsigned char **p, unsigned char *start,
|
int mbedtls_asn1_write_oid( unsigned char **p, unsigned char *start,
|
||||||
const char *oid, size_t oid_len )
|
const char *oid, size_t oid_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
|
||||||
@ -197,7 +198,7 @@ int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *s
|
|||||||
const char *oid, size_t oid_len,
|
const char *oid, size_t oid_len,
|
||||||
size_t par_len )
|
size_t par_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
if( par_len == 0 )
|
if( par_len == 0 )
|
||||||
@ -216,7 +217,7 @@ int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *s
|
|||||||
|
|
||||||
int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolean )
|
int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolean )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
if( *p - start < 1 )
|
if( *p - start < 1 )
|
||||||
@ -233,7 +234,7 @@ int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolea
|
|||||||
|
|
||||||
static int asn1_write_tagged_int( unsigned char **p, unsigned char *start, int val, int tag )
|
static int asn1_write_tagged_int( unsigned char **p, unsigned char *start, int val, int tag )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
@ -273,7 +274,7 @@ int mbedtls_asn1_write_enum( unsigned char **p, unsigned char *start, int val )
|
|||||||
int mbedtls_asn1_write_tagged_string( unsigned char **p, unsigned char *start, int tag,
|
int mbedtls_asn1_write_tagged_string( unsigned char **p, unsigned char *start, int tag,
|
||||||
const char *text, size_t text_len )
|
const char *text, size_t text_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
|
||||||
@ -349,7 +350,7 @@ int mbedtls_asn1_write_named_bitstring( unsigned char **p,
|
|||||||
int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
|
int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
|
||||||
const unsigned char *buf, size_t bits )
|
const unsigned char *buf, size_t bits )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
size_t unused_bits, byte_len;
|
size_t unused_bits, byte_len;
|
||||||
|
|
||||||
@ -382,7 +383,7 @@ int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
|
|||||||
int mbedtls_asn1_write_octet_string( unsigned char **p, unsigned char *start,
|
int mbedtls_asn1_write_octet_string( unsigned char **p, unsigned char *start,
|
||||||
const unsigned char *buf, size_t size )
|
const unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, buf, size ) );
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, buf, size ) );
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
#include "mbedtls/bignum.h"
|
#include "mbedtls/bignum.h"
|
||||||
#include "mbedtls/bn_mul.h"
|
#include "mbedtls/bn_mul.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -314,7 +315,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z )
|
int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) );
|
||||||
@ -457,7 +458,7 @@ static int mpi_get_digit( mbedtls_mpi_uint *d, int radix, char c )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s )
|
int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, j, slen, n;
|
size_t i, j, slen, n;
|
||||||
mbedtls_mpi_uint d;
|
mbedtls_mpi_uint d;
|
||||||
mbedtls_mpi T;
|
mbedtls_mpi T;
|
||||||
@ -532,7 +533,7 @@ cleanup:
|
|||||||
static int mpi_write_hlp( mbedtls_mpi *X, int radix,
|
static int mpi_write_hlp( mbedtls_mpi *X, int radix,
|
||||||
char **p, const size_t buflen )
|
char **p, const size_t buflen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi_uint r;
|
mbedtls_mpi_uint r;
|
||||||
size_t length = 0;
|
size_t length = 0;
|
||||||
char *p_end = *p + buflen;
|
char *p_end = *p + buflen;
|
||||||
@ -697,7 +698,7 @@ int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE *fout )
|
int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE *fout )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n, slen, plen;
|
size_t n, slen, plen;
|
||||||
/*
|
/*
|
||||||
* Buffer should have space for (short) label and decimal formatted MPI,
|
* Buffer should have space for (short) label and decimal formatted MPI,
|
||||||
@ -832,7 +833,7 @@ static void mpi_bigendian_to_host( mbedtls_mpi_uint * const p, size_t limbs )
|
|||||||
int mbedtls_mpi_read_binary_le( mbedtls_mpi *X,
|
int mbedtls_mpi_read_binary_le( mbedtls_mpi *X,
|
||||||
const unsigned char *buf, size_t buflen )
|
const unsigned char *buf, size_t buflen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
size_t const limbs = CHARS_TO_LIMBS( buflen );
|
size_t const limbs = CHARS_TO_LIMBS( buflen );
|
||||||
|
|
||||||
@ -864,7 +865,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, size_t buflen )
|
int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, size_t buflen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t const limbs = CHARS_TO_LIMBS( buflen );
|
size_t const limbs = CHARS_TO_LIMBS( buflen );
|
||||||
size_t const overhead = ( limbs * ciL ) - buflen;
|
size_t const overhead = ( limbs * ciL ) - buflen;
|
||||||
unsigned char *Xp;
|
unsigned char *Xp;
|
||||||
@ -991,7 +992,7 @@ int mbedtls_mpi_write_binary( const mbedtls_mpi *X,
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count )
|
int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, v0, t1;
|
size_t i, v0, t1;
|
||||||
mbedtls_mpi_uint r0 = 0, r1;
|
mbedtls_mpi_uint r0 = 0, r1;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
@ -1170,7 +1171,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, j;
|
size_t i, j;
|
||||||
mbedtls_mpi_uint *o, *p, c, tmp;
|
mbedtls_mpi_uint *o, *p, c, tmp;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
@ -1251,7 +1252,7 @@ static void mpi_sub_hlp( size_t n, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d )
|
|||||||
int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
mbedtls_mpi TB;
|
mbedtls_mpi TB;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n;
|
size_t n;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
MPI_VALIDATE_RET( A != NULL );
|
MPI_VALIDATE_RET( A != NULL );
|
||||||
@ -1474,7 +1475,7 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mp
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, j;
|
size_t i, j;
|
||||||
mbedtls_mpi TA, TB;
|
mbedtls_mpi TA, TB;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
@ -1629,7 +1630,7 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1,
|
|||||||
int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A,
|
int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A,
|
||||||
const mbedtls_mpi *B )
|
const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, n, t, k;
|
size_t i, n, t, k;
|
||||||
mbedtls_mpi X, Y, Z, T1, T2;
|
mbedtls_mpi X, Y, Z, T1, T2;
|
||||||
mbedtls_mpi_uint TP2[3];
|
mbedtls_mpi_uint TP2[3];
|
||||||
@ -1775,7 +1776,7 @@ int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R,
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MPI_VALIDATE_RET( R != NULL );
|
MPI_VALIDATE_RET( R != NULL );
|
||||||
MPI_VALIDATE_RET( A != NULL );
|
MPI_VALIDATE_RET( A != NULL );
|
||||||
MPI_VALIDATE_RET( B != NULL );
|
MPI_VALIDATE_RET( B != NULL );
|
||||||
@ -1937,7 +1938,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A,
|
|||||||
const mbedtls_mpi *E, const mbedtls_mpi *N,
|
const mbedtls_mpi *E, const mbedtls_mpi *N,
|
||||||
mbedtls_mpi *_RR )
|
mbedtls_mpi *_RR )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t wbits, wsize, one = 1;
|
size_t wbits, wsize, one = 1;
|
||||||
size_t i, j, nblimbs;
|
size_t i, j, nblimbs;
|
||||||
size_t bufsize, nbits;
|
size_t bufsize, nbits;
|
||||||
@ -2152,7 +2153,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t lz, lzt;
|
size_t lz, lzt;
|
||||||
mbedtls_mpi TA, TB;
|
mbedtls_mpi TA, TB;
|
||||||
|
|
||||||
@ -2214,7 +2215,7 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t const limbs = CHARS_TO_LIMBS( size );
|
size_t const limbs = CHARS_TO_LIMBS( size );
|
||||||
size_t const overhead = ( limbs * ciL ) - size;
|
size_t const overhead = ( limbs * ciL ) - size;
|
||||||
unsigned char *Xp;
|
unsigned char *Xp;
|
||||||
@ -2245,7 +2246,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N )
|
int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
|
mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
MPI_VALIDATE_RET( A != NULL );
|
MPI_VALIDATE_RET( A != NULL );
|
||||||
@ -2498,7 +2499,7 @@ int mbedtls_mpi_is_prime_ext( const mbedtls_mpi *X, int rounds,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi XX;
|
mbedtls_mpi XX;
|
||||||
MPI_VALIDATE_RET( X != NULL );
|
MPI_VALIDATE_RET( X != NULL );
|
||||||
MPI_VALIDATE_RET( f_rng != NULL );
|
MPI_VALIDATE_RET( f_rng != NULL );
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ccm.h"
|
#include "mbedtls/ccm.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -74,7 +75,7 @@ int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx,
|
|||||||
const unsigned char *key,
|
const unsigned char *key,
|
||||||
unsigned int keybits )
|
unsigned int keybits )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_cipher_info_t *cipher_info;
|
const mbedtls_cipher_info_t *cipher_info;
|
||||||
|
|
||||||
CCM_VALIDATE_RET( ctx != NULL );
|
CCM_VALIDATE_RET( ctx != NULL );
|
||||||
@ -156,7 +157,7 @@ static int ccm_auth_crypt( mbedtls_ccm_context *ctx, int mode, size_t length,
|
|||||||
const unsigned char *input, unsigned char *output,
|
const unsigned char *input, unsigned char *output,
|
||||||
unsigned char *tag, size_t tag_len )
|
unsigned char *tag, size_t tag_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char i;
|
unsigned char i;
|
||||||
unsigned char q;
|
unsigned char q;
|
||||||
size_t len_left, olen;
|
size_t len_left, olen;
|
||||||
@ -366,7 +367,7 @@ int mbedtls_ccm_star_auth_decrypt( mbedtls_ccm_context *ctx, size_t length,
|
|||||||
const unsigned char *input, unsigned char *output,
|
const unsigned char *input, unsigned char *output,
|
||||||
const unsigned char *tag, size_t tag_len )
|
const unsigned char *tag, size_t tag_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char check_tag[16];
|
unsigned char check_tag[16];
|
||||||
unsigned char i;
|
unsigned char i;
|
||||||
int diff;
|
int diff;
|
||||||
@ -479,7 +480,7 @@ int mbedtls_ccm_self_test( int verbose )
|
|||||||
unsigned char plaintext[CCM_SELFTEST_PT_MAX_LEN];
|
unsigned char plaintext[CCM_SELFTEST_PT_MAX_LEN];
|
||||||
unsigned char ciphertext[CCM_SELFTEST_CT_MAX_LEN];
|
unsigned char ciphertext[CCM_SELFTEST_CT_MAX_LEN];
|
||||||
size_t i;
|
size_t i;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_ccm_init( &ctx );
|
mbedtls_ccm_init( &ctx );
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/chacha20.h"
|
#include "mbedtls/chacha20.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -325,7 +326,7 @@ int mbedtls_chacha20_crypt( const unsigned char key[32],
|
|||||||
unsigned char* output )
|
unsigned char* output )
|
||||||
{
|
{
|
||||||
mbedtls_chacha20_context ctx;
|
mbedtls_chacha20_context ctx;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
CHACHA20_VALIDATE_RET( key != NULL );
|
CHACHA20_VALIDATE_RET( key != NULL );
|
||||||
CHACHA20_VALIDATE_RET( nonce != NULL );
|
CHACHA20_VALIDATE_RET( nonce != NULL );
|
||||||
@ -536,7 +537,7 @@ int mbedtls_chacha20_self_test( int verbose )
|
|||||||
{
|
{
|
||||||
unsigned char output[381];
|
unsigned char output[381];
|
||||||
unsigned i;
|
unsigned i;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
for( i = 0U; i < 2U; i++ )
|
for( i = 0U; i < 2U; i++ )
|
||||||
{
|
{
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/chachapoly.h"
|
#include "mbedtls/chachapoly.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -122,7 +123,7 @@ void mbedtls_chachapoly_free( mbedtls_chachapoly_context *ctx )
|
|||||||
int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx,
|
int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx,
|
||||||
const unsigned char key[32] )
|
const unsigned char key[32] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
||||||
CHACHAPOLY_VALIDATE_RET( key != NULL );
|
CHACHAPOLY_VALIDATE_RET( key != NULL );
|
||||||
|
|
||||||
@ -135,7 +136,7 @@ int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx,
|
|||||||
const unsigned char nonce[12],
|
const unsigned char nonce[12],
|
||||||
mbedtls_chachapoly_mode_t mode )
|
mbedtls_chachapoly_mode_t mode )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char poly1305_key[64];
|
unsigned char poly1305_key[64];
|
||||||
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
||||||
CHACHAPOLY_VALIDATE_RET( nonce != NULL );
|
CHACHAPOLY_VALIDATE_RET( nonce != NULL );
|
||||||
@ -191,7 +192,7 @@ int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
||||||
CHACHAPOLY_VALIDATE_RET( len == 0 || input != NULL );
|
CHACHAPOLY_VALIDATE_RET( len == 0 || input != NULL );
|
||||||
CHACHAPOLY_VALIDATE_RET( len == 0 || output != NULL );
|
CHACHAPOLY_VALIDATE_RET( len == 0 || output != NULL );
|
||||||
@ -240,7 +241,7 @@ int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx,
|
|||||||
int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx,
|
int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx,
|
||||||
unsigned char mac[16] )
|
unsigned char mac[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char len_block[16];
|
unsigned char len_block[16];
|
||||||
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
CHACHAPOLY_VALIDATE_RET( ctx != NULL );
|
||||||
CHACHAPOLY_VALIDATE_RET( mac != NULL );
|
CHACHAPOLY_VALIDATE_RET( mac != NULL );
|
||||||
@ -304,7 +305,7 @@ static int chachapoly_crypt_and_tag( mbedtls_chachapoly_context *ctx,
|
|||||||
unsigned char *output,
|
unsigned char *output,
|
||||||
unsigned char tag[16] )
|
unsigned char tag[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
ret = mbedtls_chachapoly_starts( ctx, nonce, mode );
|
ret = mbedtls_chachapoly_starts( ctx, nonce, mode );
|
||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
@ -354,7 +355,7 @@ int mbedtls_chachapoly_auth_decrypt( mbedtls_chachapoly_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char check_tag[16];
|
unsigned char check_tag[16];
|
||||||
size_t i;
|
size_t i;
|
||||||
int diff;
|
int diff;
|
||||||
@ -492,7 +493,7 @@ int mbedtls_chachapoly_self_test( int verbose )
|
|||||||
{
|
{
|
||||||
mbedtls_chachapoly_context ctx;
|
mbedtls_chachapoly_context ctx;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char output[200];
|
unsigned char output[200];
|
||||||
unsigned char mac[16];
|
unsigned char mac[16];
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "mbedtls/cipher.h"
|
#include "mbedtls/cipher.h"
|
||||||
#include "mbedtls/cipher_internal.h"
|
#include "mbedtls/cipher_internal.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -504,7 +505,7 @@ int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx,
|
|||||||
int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *input,
|
int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *input,
|
||||||
size_t ilen, unsigned char *output, size_t *olen )
|
size_t ilen, unsigned char *output, size_t *olen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t block_size;
|
size_t block_size;
|
||||||
|
|
||||||
CIPHER_VALIDATE_RET( ctx != NULL );
|
CIPHER_VALIDATE_RET( ctx != NULL );
|
||||||
@ -1134,7 +1135,7 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx,
|
|||||||
const unsigned char *tag, size_t tag_len )
|
const unsigned char *tag, size_t tag_len )
|
||||||
{
|
{
|
||||||
unsigned char check_tag[16];
|
unsigned char check_tag[16];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
CIPHER_VALIDATE_RET( ctx != NULL );
|
CIPHER_VALIDATE_RET( ctx != NULL );
|
||||||
CIPHER_VALIDATE_RET( tag_len == 0 || tag != NULL );
|
CIPHER_VALIDATE_RET( tag_len == 0 || tag != NULL );
|
||||||
@ -1211,7 +1212,7 @@ int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx,
|
|||||||
const unsigned char *input, size_t ilen,
|
const unsigned char *input, size_t ilen,
|
||||||
unsigned char *output, size_t *olen )
|
unsigned char *output, size_t *olen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t finish_olen;
|
size_t finish_olen;
|
||||||
|
|
||||||
CIPHER_VALIDATE_RET( ctx != NULL );
|
CIPHER_VALIDATE_RET( ctx != NULL );
|
||||||
@ -1455,7 +1456,7 @@ int mbedtls_cipher_auth_decrypt( mbedtls_cipher_context_t *ctx,
|
|||||||
#if defined(MBEDTLS_GCM_C)
|
#if defined(MBEDTLS_GCM_C)
|
||||||
if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode )
|
if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
*olen = ilen;
|
*olen = ilen;
|
||||||
ret = mbedtls_gcm_auth_decrypt( ctx->cipher_ctx, ilen,
|
ret = mbedtls_gcm_auth_decrypt( ctx->cipher_ctx, ilen,
|
||||||
@ -1471,7 +1472,7 @@ int mbedtls_cipher_auth_decrypt( mbedtls_cipher_context_t *ctx,
|
|||||||
#if defined(MBEDTLS_CCM_C)
|
#if defined(MBEDTLS_CCM_C)
|
||||||
if( MBEDTLS_MODE_CCM == ctx->cipher_info->mode )
|
if( MBEDTLS_MODE_CCM == ctx->cipher_info->mode )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
*olen = ilen;
|
*olen = ilen;
|
||||||
ret = mbedtls_ccm_auth_decrypt( ctx->cipher_ctx, ilen,
|
ret = mbedtls_ccm_auth_decrypt( ctx->cipher_ctx, ilen,
|
||||||
@ -1487,7 +1488,7 @@ int mbedtls_cipher_auth_decrypt( mbedtls_cipher_context_t *ctx,
|
|||||||
#if defined(MBEDTLS_CHACHAPOLY_C)
|
#if defined(MBEDTLS_CHACHAPOLY_C)
|
||||||
if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type )
|
if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* ChachaPoly has fixed length nonce and MAC (tag) */
|
/* ChachaPoly has fixed length nonce and MAC (tag) */
|
||||||
if ( ( iv_len != ctx->cipher_info->iv_size ) ||
|
if ( ( iv_len != ctx->cipher_info->iv_size ) ||
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#if defined(MBEDTLS_CIPHER_C)
|
#if defined(MBEDTLS_CIPHER_C)
|
||||||
|
|
||||||
#include "mbedtls/cipher_internal.h"
|
#include "mbedtls/cipher_internal.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_CHACHAPOLY_C)
|
#if defined(MBEDTLS_CHACHAPOLY_C)
|
||||||
#include "mbedtls/chachapoly.h"
|
#include "mbedtls/chachapoly.h"
|
||||||
@ -1916,7 +1917,7 @@ static int chacha20_stream_wrap( void *ctx, size_t length,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
ret = mbedtls_chacha20_update( ctx, length, input, output );
|
ret = mbedtls_chacha20_update( ctx, length, input, output );
|
||||||
if( ret == MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA )
|
if( ret == MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA )
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/cmac.h"
|
#include "mbedtls/cmac.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -136,7 +137,7 @@ static int cmac_multiply_by_u( unsigned char *output,
|
|||||||
static int cmac_generate_subkeys( mbedtls_cipher_context_t *ctx,
|
static int cmac_generate_subkeys( mbedtls_cipher_context_t *ctx,
|
||||||
unsigned char* K1, unsigned char* K2 )
|
unsigned char* K1, unsigned char* K2 )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char L[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
unsigned char L[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||||
size_t olen, block_size;
|
size_t olen, block_size;
|
||||||
|
|
||||||
@ -315,7 +316,7 @@ int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx,
|
|||||||
unsigned char K1[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
unsigned char K1[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||||
unsigned char K2[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
unsigned char K2[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||||
unsigned char M_last[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
unsigned char M_last[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t olen, block_size;
|
size_t olen, block_size;
|
||||||
|
|
||||||
if( ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL ||
|
if( ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL ||
|
||||||
@ -393,7 +394,7 @@ int mbedtls_cipher_cmac( const mbedtls_cipher_info_t *cipher_info,
|
|||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
mbedtls_cipher_context_t ctx;
|
mbedtls_cipher_context_t ctx;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( cipher_info == NULL || key == NULL || input == NULL || output == NULL )
|
if( cipher_info == NULL || key == NULL || input == NULL || output == NULL )
|
||||||
return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||||
@ -427,7 +428,7 @@ int mbedtls_aes_cmac_prf_128( const unsigned char *key, size_t key_length,
|
|||||||
const unsigned char *input, size_t in_len,
|
const unsigned char *input, size_t in_len,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_cipher_info_t *cipher_info;
|
const mbedtls_cipher_info_t *cipher_info;
|
||||||
unsigned char zero_key[MBEDTLS_AES_BLOCK_SIZE];
|
unsigned char zero_key[MBEDTLS_AES_BLOCK_SIZE];
|
||||||
unsigned char int_key[MBEDTLS_AES_BLOCK_SIZE];
|
unsigned char int_key[MBEDTLS_AES_BLOCK_SIZE];
|
||||||
@ -894,7 +895,7 @@ exit:
|
|||||||
static int test_aes128_cmac_prf( int verbose )
|
static int test_aes128_cmac_prf( int verbose )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char output[MBEDTLS_AES_BLOCK_SIZE];
|
unsigned char output[MBEDTLS_AES_BLOCK_SIZE];
|
||||||
|
|
||||||
for( i = 0; i < NB_PRF_TESTS; i++ )
|
for( i = 0; i < NB_PRF_TESTS; i++ )
|
||||||
@ -921,7 +922,7 @@ static int test_aes128_cmac_prf( int verbose )
|
|||||||
|
|
||||||
int mbedtls_cmac_self_test( int verbose )
|
int mbedtls_cmac_self_test( int verbose )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
#if defined(MBEDTLS_AES_C)
|
#if defined(MBEDTLS_AES_C)
|
||||||
/* AES-128 */
|
/* AES-128 */
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ctr_drbg.h"
|
#include "mbedtls/ctr_drbg.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -319,7 +320,7 @@ int mbedtls_ctr_drbg_update_ret( mbedtls_ctr_drbg_context *ctx,
|
|||||||
size_t add_len )
|
size_t add_len )
|
||||||
{
|
{
|
||||||
unsigned char add_input[MBEDTLS_CTR_DRBG_SEEDLEN];
|
unsigned char add_input[MBEDTLS_CTR_DRBG_SEEDLEN];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( add_len == 0 )
|
if( add_len == 0 )
|
||||||
return( 0 );
|
return( 0 );
|
||||||
@ -367,7 +368,7 @@ static int mbedtls_ctr_drbg_reseed_internal( mbedtls_ctr_drbg_context *ctx,
|
|||||||
{
|
{
|
||||||
unsigned char seed[MBEDTLS_CTR_DRBG_MAX_SEED_INPUT];
|
unsigned char seed[MBEDTLS_CTR_DRBG_MAX_SEED_INPUT];
|
||||||
size_t seedlen = 0;
|
size_t seedlen = 0;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ctx->entropy_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT )
|
if( ctx->entropy_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT )
|
||||||
return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG );
|
return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG );
|
||||||
@ -452,7 +453,7 @@ int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx,
|
|||||||
const unsigned char *custom,
|
const unsigned char *custom,
|
||||||
size_t len )
|
size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char key[MBEDTLS_CTR_DRBG_KEYSIZE];
|
unsigned char key[MBEDTLS_CTR_DRBG_KEYSIZE];
|
||||||
size_t nonce_len;
|
size_t nonce_len;
|
||||||
|
|
||||||
@ -590,7 +591,7 @@ exit:
|
|||||||
int mbedtls_ctr_drbg_random( void *p_rng, unsigned char *output,
|
int mbedtls_ctr_drbg_random( void *p_rng, unsigned char *output,
|
||||||
size_t output_len )
|
size_t output_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ctr_drbg_context *ctx = (mbedtls_ctr_drbg_context *) p_rng;
|
mbedtls_ctr_drbg_context *ctx = (mbedtls_ctr_drbg_context *) p_rng;
|
||||||
|
|
||||||
#if defined(MBEDTLS_THREADING_C)
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/dhm.h"
|
#include "mbedtls/dhm.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -137,7 +138,7 @@ int mbedtls_dhm_read_params( mbedtls_dhm_context *ctx,
|
|||||||
unsigned char **p,
|
unsigned char **p,
|
||||||
const unsigned char *end )
|
const unsigned char *end )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
DHM_VALIDATE_RET( ctx != NULL );
|
DHM_VALIDATE_RET( ctx != NULL );
|
||||||
DHM_VALIDATE_RET( p != NULL && *p != NULL );
|
DHM_VALIDATE_RET( p != NULL && *p != NULL );
|
||||||
DHM_VALIDATE_RET( end != NULL );
|
DHM_VALIDATE_RET( end != NULL );
|
||||||
@ -239,7 +240,7 @@ int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx,
|
|||||||
const mbedtls_mpi *P,
|
const mbedtls_mpi *P,
|
||||||
const mbedtls_mpi *G )
|
const mbedtls_mpi *G )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
DHM_VALIDATE_RET( ctx != NULL );
|
DHM_VALIDATE_RET( ctx != NULL );
|
||||||
DHM_VALIDATE_RET( P != NULL );
|
DHM_VALIDATE_RET( P != NULL );
|
||||||
DHM_VALIDATE_RET( G != NULL );
|
DHM_VALIDATE_RET( G != NULL );
|
||||||
@ -260,7 +261,7 @@ int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx,
|
|||||||
int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx,
|
int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx,
|
||||||
const unsigned char *input, size_t ilen )
|
const unsigned char *input, size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
DHM_VALIDATE_RET( ctx != NULL );
|
DHM_VALIDATE_RET( ctx != NULL );
|
||||||
DHM_VALIDATE_RET( input != NULL );
|
DHM_VALIDATE_RET( input != NULL );
|
||||||
|
|
||||||
@ -396,7 +397,7 @@ int mbedtls_dhm_calc_secret( mbedtls_dhm_context *ctx,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi GYb;
|
mbedtls_mpi GYb;
|
||||||
DHM_VALIDATE_RET( ctx != NULL );
|
DHM_VALIDATE_RET( ctx != NULL );
|
||||||
DHM_VALIDATE_RET( output != NULL );
|
DHM_VALIDATE_RET( output != NULL );
|
||||||
@ -473,7 +474,7 @@ void mbedtls_dhm_free( mbedtls_dhm_context *ctx )
|
|||||||
int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin,
|
int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin,
|
||||||
size_t dhminlen )
|
size_t dhminlen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
unsigned char *p, *end;
|
unsigned char *p, *end;
|
||||||
#if defined(MBEDTLS_PEM_PARSE_C)
|
#if defined(MBEDTLS_PEM_PARSE_C)
|
||||||
@ -627,7 +628,7 @@ static int load_file( const char *path, unsigned char **buf, size_t *n )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path )
|
int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n;
|
size_t n;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
DHM_VALIDATE_RET( dhm != NULL );
|
DHM_VALIDATE_RET( dhm != NULL );
|
||||||
@ -679,7 +680,7 @@ static const size_t mbedtls_test_dhm_params_len = sizeof( mbedtls_test_dhm_param
|
|||||||
*/
|
*/
|
||||||
int mbedtls_dhm_self_test( int verbose )
|
int mbedtls_dhm_self_test( int verbose )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_dhm_context dhm;
|
mbedtls_dhm_context dhm;
|
||||||
|
|
||||||
mbedtls_dhm_init( &dhm );
|
mbedtls_dhm_init( &dhm );
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ecdh.h"
|
#include "mbedtls/ecdh.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ static int ecdh_gen_public_restartable( mbedtls_ecp_group *grp,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* If multiplication is in progress, we already generated a privkey */
|
/* If multiplication is in progress, we already generated a privkey */
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
@ -121,7 +122,7 @@ static int ecdh_compute_shared_restartable( mbedtls_ecp_group *grp,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point P;
|
mbedtls_ecp_point P;
|
||||||
|
|
||||||
mbedtls_ecp_point_init( &P );
|
mbedtls_ecp_point_init( &P );
|
||||||
@ -199,7 +200,7 @@ void mbedtls_ecdh_init( mbedtls_ecdh_context *ctx )
|
|||||||
static int ecdh_setup_internal( mbedtls_ecdh_context_mbed *ctx,
|
static int ecdh_setup_internal( mbedtls_ecdh_context_mbed *ctx,
|
||||||
mbedtls_ecp_group_id grp_id )
|
mbedtls_ecp_group_id grp_id )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
ret = mbedtls_ecp_group_load( &ctx->grp, grp_id );
|
ret = mbedtls_ecp_group_load( &ctx->grp, grp_id );
|
||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
@ -307,7 +308,7 @@ static int ecdh_make_params_internal( mbedtls_ecdh_context_mbed *ctx,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
int restart_enabled )
|
int restart_enabled )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t grp_len, pt_len;
|
size_t grp_len, pt_len;
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
||||||
@ -414,7 +415,7 @@ int mbedtls_ecdh_read_params( mbedtls_ecdh_context *ctx,
|
|||||||
const unsigned char **buf,
|
const unsigned char **buf,
|
||||||
const unsigned char *end )
|
const unsigned char *end )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_group_id grp_id;
|
mbedtls_ecp_group_id grp_id;
|
||||||
ECDH_VALIDATE_RET( ctx != NULL );
|
ECDH_VALIDATE_RET( ctx != NULL );
|
||||||
ECDH_VALIDATE_RET( buf != NULL );
|
ECDH_VALIDATE_RET( buf != NULL );
|
||||||
@ -451,7 +452,7 @@ static int ecdh_get_params_internal( mbedtls_ecdh_context_mbed *ctx,
|
|||||||
const mbedtls_ecp_keypair *key,
|
const mbedtls_ecp_keypair *key,
|
||||||
mbedtls_ecdh_side side )
|
mbedtls_ecdh_side side )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* If it's not our key, just import the public part as Qp */
|
/* If it's not our key, just import the public part as Qp */
|
||||||
if( side == MBEDTLS_ECDH_THEIRS )
|
if( side == MBEDTLS_ECDH_THEIRS )
|
||||||
@ -475,7 +476,7 @@ int mbedtls_ecdh_get_params( mbedtls_ecdh_context *ctx,
|
|||||||
const mbedtls_ecp_keypair *key,
|
const mbedtls_ecp_keypair *key,
|
||||||
mbedtls_ecdh_side side )
|
mbedtls_ecdh_side side )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECDH_VALIDATE_RET( ctx != NULL );
|
ECDH_VALIDATE_RET( ctx != NULL );
|
||||||
ECDH_VALIDATE_RET( key != NULL );
|
ECDH_VALIDATE_RET( key != NULL );
|
||||||
ECDH_VALIDATE_RET( side == MBEDTLS_ECDH_OURS ||
|
ECDH_VALIDATE_RET( side == MBEDTLS_ECDH_OURS ||
|
||||||
@ -530,7 +531,7 @@ static int ecdh_make_public_internal( mbedtls_ecdh_context_mbed *ctx,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
int restart_enabled )
|
int restart_enabled )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
||||||
#endif
|
#endif
|
||||||
@ -602,7 +603,7 @@ int mbedtls_ecdh_make_public( mbedtls_ecdh_context *ctx, size_t *olen,
|
|||||||
static int ecdh_read_public_internal( mbedtls_ecdh_context_mbed *ctx,
|
static int ecdh_read_public_internal( mbedtls_ecdh_context_mbed *ctx,
|
||||||
const unsigned char *buf, size_t blen )
|
const unsigned char *buf, size_t blen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const unsigned char *p = buf;
|
const unsigned char *p = buf;
|
||||||
|
|
||||||
if( ( ret = mbedtls_ecp_tls_read_point( &ctx->grp, &ctx->Qp, &p,
|
if( ( ret = mbedtls_ecp_tls_read_point( &ctx->grp, &ctx->Qp, &p,
|
||||||
@ -652,7 +653,7 @@ static int ecdh_calc_secret_internal( mbedtls_ecdh_context_mbed *ctx,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
int restart_enabled )
|
int restart_enabled )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
mbedtls_ecp_restart_ctx *rs_ctx = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
/* Parameter validation macros based on platform_util.h */
|
/* Parameter validation macros based on platform_util.h */
|
||||||
#define ECDSA_VALIDATE_RET( cond ) \
|
#define ECDSA_VALIDATE_RET( cond ) \
|
||||||
@ -229,7 +230,7 @@ static void ecdsa_restart_det_free( mbedtls_ecdsa_restart_det_ctx *ctx )
|
|||||||
static int derive_mpi( const mbedtls_ecp_group *grp, mbedtls_mpi *x,
|
static int derive_mpi( const mbedtls_ecp_group *grp, mbedtls_mpi *x,
|
||||||
const unsigned char *buf, size_t blen )
|
const unsigned char *buf, size_t blen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n_size = ( grp->nbits + 7 ) / 8;
|
size_t n_size = ( grp->nbits + 7 ) / 8;
|
||||||
size_t use_size = blen > n_size ? n_size : blen;
|
size_t use_size = blen > n_size ? n_size : blen;
|
||||||
|
|
||||||
@ -429,7 +430,7 @@ static int ecdsa_sign_det_restartable( mbedtls_ecp_group *grp,
|
|||||||
void *p_rng_blind,
|
void *p_rng_blind,
|
||||||
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_hmac_drbg_context rng_ctx;
|
mbedtls_hmac_drbg_context rng_ctx;
|
||||||
mbedtls_hmac_drbg_context *p_rng = &rng_ctx;
|
mbedtls_hmac_drbg_context *p_rng = &rng_ctx;
|
||||||
unsigned char data[2 * MBEDTLS_ECP_MAX_BYTES];
|
unsigned char data[2 * MBEDTLS_ECP_MAX_BYTES];
|
||||||
@ -599,7 +600,7 @@ static int ecdsa_verify_restartable( mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_mpi *r, const mbedtls_mpi *s,
|
const mbedtls_mpi *r, const mbedtls_mpi *s,
|
||||||
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi e, s_inv, u1, u2;
|
mbedtls_mpi e, s_inv, u1, u2;
|
||||||
mbedtls_ecp_point R;
|
mbedtls_ecp_point R;
|
||||||
mbedtls_mpi *pu1 = &u1, *pu2 = &u2;
|
mbedtls_mpi *pu1 = &u1, *pu2 = &u2;
|
||||||
@ -723,7 +724,7 @@ int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp,
|
|||||||
static int ecdsa_signature_to_asn1( const mbedtls_mpi *r, const mbedtls_mpi *s,
|
static int ecdsa_signature_to_asn1( const mbedtls_mpi *r, const mbedtls_mpi *s,
|
||||||
unsigned char *sig, size_t *slen )
|
unsigned char *sig, size_t *slen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char buf[MBEDTLS_ECDSA_MAX_LEN];
|
unsigned char buf[MBEDTLS_ECDSA_MAX_LEN];
|
||||||
unsigned char *p = buf + sizeof( buf );
|
unsigned char *p = buf + sizeof( buf );
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
@ -752,7 +753,7 @@ int mbedtls_ecdsa_write_signature_restartable( mbedtls_ecdsa_context *ctx,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi r, s;
|
mbedtls_mpi r, s;
|
||||||
ECDSA_VALIDATE_RET( ctx != NULL );
|
ECDSA_VALIDATE_RET( ctx != NULL );
|
||||||
ECDSA_VALIDATE_RET( hash != NULL );
|
ECDSA_VALIDATE_RET( hash != NULL );
|
||||||
@ -845,7 +846,7 @@ int mbedtls_ecdsa_read_signature_restartable( mbedtls_ecdsa_context *ctx,
|
|||||||
const unsigned char *sig, size_t slen,
|
const unsigned char *sig, size_t slen,
|
||||||
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
mbedtls_ecdsa_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p = (unsigned char *) sig;
|
unsigned char *p = (unsigned char *) sig;
|
||||||
const unsigned char *end = sig + slen;
|
const unsigned char *end = sig + slen;
|
||||||
size_t len;
|
size_t len;
|
||||||
@ -925,7 +926,7 @@ int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecdsa_from_keypair( mbedtls_ecdsa_context *ctx, const mbedtls_ecp_keypair *key )
|
int mbedtls_ecdsa_from_keypair( mbedtls_ecdsa_context *ctx, const mbedtls_ecp_keypair *key )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECDSA_VALIDATE_RET( ctx != NULL );
|
ECDSA_VALIDATE_RET( ctx != NULL );
|
||||||
ECDSA_VALIDATE_RET( key != NULL );
|
ECDSA_VALIDATE_RET( key != NULL );
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ecjpake.h"
|
#include "mbedtls/ecjpake.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -110,7 +111,7 @@ int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
|||||||
const unsigned char *secret,
|
const unsigned char *secret,
|
||||||
size_t len )
|
size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
ECJPAKE_VALIDATE_RET( ctx != NULL );
|
ECJPAKE_VALIDATE_RET( ctx != NULL );
|
||||||
ECJPAKE_VALIDATE_RET( role == MBEDTLS_ECJPAKE_CLIENT ||
|
ECJPAKE_VALIDATE_RET( role == MBEDTLS_ECJPAKE_CLIENT ||
|
||||||
@ -159,7 +160,7 @@ static int ecjpake_write_len_point( unsigned char **p,
|
|||||||
const int pf,
|
const int pf,
|
||||||
const mbedtls_ecp_point *P )
|
const mbedtls_ecp_point *P )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
/* Need at least 4 for length plus 1 for point */
|
/* Need at least 4 for length plus 1 for point */
|
||||||
@ -199,7 +200,7 @@ static int ecjpake_hash( const mbedtls_md_info_t *md_info,
|
|||||||
const char *id,
|
const char *id,
|
||||||
mbedtls_mpi *h )
|
mbedtls_mpi *h )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char buf[ECJPAKE_HASH_BUF_LEN];
|
unsigned char buf[ECJPAKE_HASH_BUF_LEN];
|
||||||
unsigned char *p = buf;
|
unsigned char *p = buf;
|
||||||
const unsigned char *end = buf + sizeof( buf );
|
const unsigned char *end = buf + sizeof( buf );
|
||||||
@ -249,7 +250,7 @@ static int ecjpake_zkp_read( const mbedtls_md_info_t *md_info,
|
|||||||
const unsigned char **p,
|
const unsigned char **p,
|
||||||
const unsigned char *end )
|
const unsigned char *end )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point V, VV;
|
mbedtls_ecp_point V, VV;
|
||||||
mbedtls_mpi r, h;
|
mbedtls_mpi r, h;
|
||||||
size_t r_len;
|
size_t r_len;
|
||||||
@ -324,7 +325,7 @@ static int ecjpake_zkp_write( const mbedtls_md_info_t *md_info,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point V;
|
mbedtls_ecp_point V;
|
||||||
mbedtls_mpi v;
|
mbedtls_mpi v;
|
||||||
mbedtls_mpi h; /* later recycled to hold r */
|
mbedtls_mpi h; /* later recycled to hold r */
|
||||||
@ -382,7 +383,7 @@ static int ecjpake_kkp_read( const mbedtls_md_info_t *md_info,
|
|||||||
const unsigned char **p,
|
const unsigned char **p,
|
||||||
const unsigned char *end )
|
const unsigned char *end )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( end < *p )
|
if( end < *p )
|
||||||
return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
|
||||||
@ -422,7 +423,7 @@ static int ecjpake_kkp_write( const mbedtls_md_info_t *md_info,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( end < *p )
|
if( end < *p )
|
||||||
@ -457,7 +458,7 @@ static int ecjpake_kkpp_read( const mbedtls_md_info_t *md_info,
|
|||||||
const unsigned char *buf,
|
const unsigned char *buf,
|
||||||
size_t len )
|
size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const unsigned char *p = buf;
|
const unsigned char *p = buf;
|
||||||
const unsigned char *end = buf + len;
|
const unsigned char *end = buf + len;
|
||||||
|
|
||||||
@ -495,7 +496,7 @@ static int ecjpake_kkpp_write( const mbedtls_md_info_t *md_info,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p = buf;
|
unsigned char *p = buf;
|
||||||
const unsigned char *end = buf + len;
|
const unsigned char *end = buf + len;
|
||||||
|
|
||||||
@ -553,7 +554,7 @@ static int ecjpake_ecp_add3( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
const mbedtls_ecp_point *B,
|
const mbedtls_ecp_point *B,
|
||||||
const mbedtls_ecp_point *C )
|
const mbedtls_ecp_point *C )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi one;
|
mbedtls_mpi one;
|
||||||
|
|
||||||
mbedtls_mpi_init( &one );
|
mbedtls_mpi_init( &one );
|
||||||
@ -575,7 +576,7 @@ int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx,
|
|||||||
const unsigned char *buf,
|
const unsigned char *buf,
|
||||||
size_t len )
|
size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const unsigned char *p = buf;
|
const unsigned char *p = buf;
|
||||||
const unsigned char *end = buf + len;
|
const unsigned char *end = buf + len;
|
||||||
mbedtls_ecp_group grp;
|
mbedtls_ecp_group grp;
|
||||||
@ -639,7 +640,7 @@ static int ecjpake_mul_secret( mbedtls_mpi *R, int sign,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi b; /* Blinding value, then s + N * blinding */
|
mbedtls_mpi b; /* Blinding value, then s + N * blinding */
|
||||||
|
|
||||||
mbedtls_mpi_init( &b );
|
mbedtls_mpi_init( &b );
|
||||||
@ -668,7 +669,7 @@ int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point G; /* C: GA, S: GB */
|
mbedtls_ecp_point G; /* C: GA, S: GB */
|
||||||
mbedtls_ecp_point Xm; /* C: Xc, S: Xs */
|
mbedtls_ecp_point Xm; /* C: Xc, S: Xs */
|
||||||
mbedtls_mpi xm; /* C: xc, S: xs */
|
mbedtls_mpi xm; /* C: xc, S: xs */
|
||||||
@ -750,7 +751,7 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point K;
|
mbedtls_ecp_point K;
|
||||||
mbedtls_mpi m_xm2_s, one;
|
mbedtls_mpi m_xm2_s, one;
|
||||||
unsigned char kx[MBEDTLS_ECP_MAX_BYTES];
|
unsigned char kx[MBEDTLS_ECP_MAX_BYTES];
|
||||||
@ -956,7 +957,7 @@ static int ecjpake_test_load( mbedtls_ecjpake_context *ctx,
|
|||||||
const unsigned char *xm1, size_t len1,
|
const unsigned char *xm1, size_t len1,
|
||||||
const unsigned char *xm2, size_t len2 )
|
const unsigned char *xm2, size_t len2 )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len1 ) );
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len2 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len2 ) );
|
||||||
@ -1004,7 +1005,7 @@ static int ecjpake_lgc( void *p, unsigned char *out, size_t len )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecjpake_self_test( int verbose )
|
int mbedtls_ecjpake_self_test( int verbose )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecjpake_context cli;
|
mbedtls_ecjpake_context cli;
|
||||||
mbedtls_ecjpake_context srv;
|
mbedtls_ecjpake_context srv;
|
||||||
unsigned char buf[512], pms[32];
|
unsigned char buf[512], pms[32];
|
||||||
|
@ -81,6 +81,7 @@
|
|||||||
#include "mbedtls/ecp.h"
|
#include "mbedtls/ecp.h"
|
||||||
#include "mbedtls/threading.h"
|
#include "mbedtls/threading.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -634,7 +635,7 @@ void mbedtls_ecp_keypair_free( mbedtls_ecp_keypair *key )
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecp_copy( mbedtls_ecp_point *P, const mbedtls_ecp_point *Q )
|
int mbedtls_ecp_copy( mbedtls_ecp_point *P, const mbedtls_ecp_point *Q )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( P != NULL );
|
ECP_VALIDATE_RET( P != NULL );
|
||||||
ECP_VALIDATE_RET( Q != NULL );
|
ECP_VALIDATE_RET( Q != NULL );
|
||||||
|
|
||||||
@ -662,7 +663,7 @@ int mbedtls_ecp_group_copy( mbedtls_ecp_group *dst, const mbedtls_ecp_group *src
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecp_set_zero( mbedtls_ecp_point *pt )
|
int mbedtls_ecp_set_zero( mbedtls_ecp_point *pt )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( pt != NULL );
|
ECP_VALIDATE_RET( pt != NULL );
|
||||||
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->X , 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->X , 1 ) );
|
||||||
@ -708,7 +709,7 @@ int mbedtls_ecp_point_cmp( const mbedtls_ecp_point *P,
|
|||||||
int mbedtls_ecp_point_read_string( mbedtls_ecp_point *P, int radix,
|
int mbedtls_ecp_point_read_string( mbedtls_ecp_point *P, int radix,
|
||||||
const char *x, const char *y )
|
const char *x, const char *y )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( P != NULL );
|
ECP_VALIDATE_RET( P != NULL );
|
||||||
ECP_VALIDATE_RET( x != NULL );
|
ECP_VALIDATE_RET( x != NULL );
|
||||||
ECP_VALIDATE_RET( y != NULL );
|
ECP_VALIDATE_RET( y != NULL );
|
||||||
@ -903,7 +904,7 @@ int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, const mbedtls_ecp
|
|||||||
int format, size_t *olen,
|
int format, size_t *olen,
|
||||||
unsigned char *buf, size_t blen )
|
unsigned char *buf, size_t blen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( grp != NULL );
|
ECP_VALIDATE_RET( grp != NULL );
|
||||||
ECP_VALIDATE_RET( pt != NULL );
|
ECP_VALIDATE_RET( pt != NULL );
|
||||||
ECP_VALIDATE_RET( olen != NULL );
|
ECP_VALIDATE_RET( olen != NULL );
|
||||||
@ -936,7 +937,7 @@ int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, const mbedtls_ecp
|
|||||||
int mbedtls_ecp_tls_read_group( mbedtls_ecp_group *grp,
|
int mbedtls_ecp_tls_read_group( mbedtls_ecp_group *grp,
|
||||||
const unsigned char **buf, size_t len )
|
const unsigned char **buf, size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_group_id grp_id;
|
mbedtls_ecp_group_id grp_id;
|
||||||
ECP_VALIDATE_RET( grp != NULL );
|
ECP_VALIDATE_RET( grp != NULL );
|
||||||
ECP_VALIDATE_RET( buf != NULL );
|
ECP_VALIDATE_RET( buf != NULL );
|
||||||
@ -1031,7 +1032,7 @@ int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, size_t *olen,
|
|||||||
*/
|
*/
|
||||||
static int ecp_modp( mbedtls_mpi *N, const mbedtls_ecp_group *grp )
|
static int ecp_modp( mbedtls_mpi *N, const mbedtls_ecp_group *grp )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( grp->modp == NULL )
|
if( grp->modp == NULL )
|
||||||
return( mbedtls_mpi_mod_mpi( N, N, &grp->P ) );
|
return( mbedtls_mpi_mod_mpi( N, N, &grp->P ) );
|
||||||
@ -1088,7 +1089,7 @@ static inline int mbedtls_mpi_mul_mod( const mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_mpi *A,
|
const mbedtls_mpi *A,
|
||||||
const mbedtls_mpi *B )
|
const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( X, A, B ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( X, A, B ) );
|
||||||
MOD_MUL( *X );
|
MOD_MUL( *X );
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -1108,7 +1109,7 @@ static inline int mbedtls_mpi_sub_mod( const mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_mpi *A,
|
const mbedtls_mpi *A,
|
||||||
const mbedtls_mpi *B )
|
const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( X, A, B ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( X, A, B ) );
|
||||||
MOD_SUB( *X );
|
MOD_SUB( *X );
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -1129,7 +1130,7 @@ static inline int mbedtls_mpi_add_mod( const mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_mpi *A,
|
const mbedtls_mpi *A,
|
||||||
const mbedtls_mpi *B )
|
const mbedtls_mpi *B )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( X, A, B ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( X, A, B ) );
|
||||||
MOD_ADD( *X );
|
MOD_ADD( *X );
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -1140,7 +1141,7 @@ static inline int mbedtls_mpi_shift_l_mod( const mbedtls_ecp_group *grp,
|
|||||||
mbedtls_mpi *X,
|
mbedtls_mpi *X,
|
||||||
size_t count )
|
size_t count )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, count ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, count ) );
|
||||||
MOD_ADD( *X );
|
MOD_ADD( *X );
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -1162,7 +1163,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ecp_normalize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt )
|
static int ecp_normalize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi Zi, ZZi;
|
mbedtls_mpi Zi, ZZi;
|
||||||
|
|
||||||
if( mbedtls_mpi_cmp_int( &pt->Z, 0 ) == 0 )
|
if( mbedtls_mpi_cmp_int( &pt->Z, 0 ) == 0 )
|
||||||
@ -1214,7 +1215,7 @@ cleanup:
|
|||||||
static int ecp_normalize_jac_many( const mbedtls_ecp_group *grp,
|
static int ecp_normalize_jac_many( const mbedtls_ecp_group *grp,
|
||||||
mbedtls_ecp_point *T[], size_t T_size )
|
mbedtls_ecp_point *T[], size_t T_size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi *c, u, Zi, ZZi;
|
mbedtls_mpi *c, u, Zi, ZZi;
|
||||||
|
|
||||||
@ -1303,7 +1304,7 @@ static int ecp_safe_invert_jac( const mbedtls_ecp_group *grp,
|
|||||||
mbedtls_ecp_point *Q,
|
mbedtls_ecp_point *Q,
|
||||||
unsigned char inv )
|
unsigned char inv )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char nonzero;
|
unsigned char nonzero;
|
||||||
mbedtls_mpi mQY;
|
mbedtls_mpi mQY;
|
||||||
|
|
||||||
@ -1337,7 +1338,7 @@ cleanup:
|
|||||||
static int ecp_double_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
static int ecp_double_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
||||||
const mbedtls_ecp_point *P )
|
const mbedtls_ecp_point *P )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi M, S, T, U;
|
mbedtls_mpi M, S, T, U;
|
||||||
|
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
@ -1433,7 +1434,7 @@ cleanup:
|
|||||||
static int ecp_add_mixed( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
static int ecp_add_mixed( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
||||||
const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q )
|
const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi T1, T2, T3, T4, X, Y, Z;
|
mbedtls_mpi T1, T2, T3, T4, X, Y, Z;
|
||||||
|
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
@ -1521,7 +1522,7 @@ cleanup:
|
|||||||
static int ecp_randomize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt,
|
static int ecp_randomize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt,
|
||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi l, ll;
|
mbedtls_mpi l, ll;
|
||||||
size_t p_size;
|
size_t p_size;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@ -1693,7 +1694,7 @@ static int ecp_precompute_comb( const mbedtls_ecp_group *grp,
|
|||||||
unsigned char w, size_t d,
|
unsigned char w, size_t d,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char i;
|
unsigned char i;
|
||||||
size_t j = 0;
|
size_t j = 0;
|
||||||
const unsigned char T_size = 1U << ( w - 1 );
|
const unsigned char T_size = 1U << ( w - 1 );
|
||||||
@ -1829,7 +1830,7 @@ static int ecp_select_comb( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
const mbedtls_ecp_point T[], unsigned char T_size,
|
const mbedtls_ecp_point T[], unsigned char T_size,
|
||||||
unsigned char i )
|
unsigned char i )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char ii, j;
|
unsigned char ii, j;
|
||||||
|
|
||||||
/* Ignore the "sign" bit and scale down */
|
/* Ignore the "sign" bit and scale down */
|
||||||
@ -1862,7 +1863,7 @@ static int ecp_mul_comb_core( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point Txi;
|
mbedtls_ecp_point Txi;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
@ -1942,7 +1943,7 @@ static int ecp_comb_recode_scalar( const mbedtls_ecp_group *grp,
|
|||||||
unsigned char w,
|
unsigned char w,
|
||||||
unsigned char *parity_trick )
|
unsigned char *parity_trick )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi M, mm;
|
mbedtls_mpi M, mm;
|
||||||
|
|
||||||
mbedtls_mpi_init( &M );
|
mbedtls_mpi_init( &M );
|
||||||
@ -1988,7 +1989,7 @@ static int ecp_mul_comb_after_precomp( const mbedtls_ecp_group *grp,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char parity_trick;
|
unsigned char parity_trick;
|
||||||
unsigned char k[COMB_MAX_D + 1];
|
unsigned char k[COMB_MAX_D + 1];
|
||||||
mbedtls_ecp_point *RR = R;
|
mbedtls_ecp_point *RR = R;
|
||||||
@ -2083,7 +2084,7 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char w, p_eq_g, i;
|
unsigned char w, p_eq_g, i;
|
||||||
size_t d;
|
size_t d;
|
||||||
unsigned char T_size, T_ok;
|
unsigned char T_size, T_ok;
|
||||||
@ -2215,7 +2216,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ecp_normalize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P )
|
static int ecp_normalize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
|
#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
|
||||||
if( mbedtls_internal_ecp_grp_capable( grp ) )
|
if( mbedtls_internal_ecp_grp_capable( grp ) )
|
||||||
@ -2241,7 +2242,7 @@ cleanup:
|
|||||||
static int ecp_randomize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P,
|
static int ecp_randomize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P,
|
||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi l;
|
mbedtls_mpi l;
|
||||||
size_t p_size;
|
size_t p_size;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@ -2296,7 +2297,7 @@ static int ecp_double_add_mxz( const mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q,
|
const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q,
|
||||||
const mbedtls_mpi *d )
|
const mbedtls_mpi *d )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi A, AA, B, BB, E, C, D, DA, CB;
|
mbedtls_mpi A, AA, B, BB, E, C, D, DA, CB;
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
|
#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
|
||||||
@ -2344,7 +2345,7 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
unsigned char b;
|
unsigned char b;
|
||||||
mbedtls_ecp_point RP;
|
mbedtls_ecp_point RP;
|
||||||
@ -2484,7 +2485,7 @@ int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
*/
|
*/
|
||||||
static int ecp_check_pubkey_sw( const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt )
|
static int ecp_check_pubkey_sw( const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi YY, RHS;
|
mbedtls_mpi YY, RHS;
|
||||||
|
|
||||||
/* pt coordinates must be normalized for our checks */
|
/* pt coordinates must be normalized for our checks */
|
||||||
@ -2537,7 +2538,7 @@ static int mbedtls_ecp_mul_shortcuts( mbedtls_ecp_group *grp,
|
|||||||
const mbedtls_ecp_point *P,
|
const mbedtls_ecp_point *P,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( mbedtls_mpi_cmp_int( m, 1 ) == 0 )
|
if( mbedtls_mpi_cmp_int( m, 1 ) == 0 )
|
||||||
{
|
{
|
||||||
@ -2569,7 +2570,7 @@ int mbedtls_ecp_muladd_restartable(
|
|||||||
const mbedtls_mpi *n, const mbedtls_ecp_point *Q,
|
const mbedtls_mpi *n, const mbedtls_ecp_point *Q,
|
||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point mP;
|
mbedtls_ecp_point mP;
|
||||||
mbedtls_ecp_point *pmP = &mP;
|
mbedtls_ecp_point *pmP = &mP;
|
||||||
mbedtls_ecp_point *pR = R;
|
mbedtls_ecp_point *pR = R;
|
||||||
@ -2846,7 +2847,7 @@ int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t),
|
int (*f_rng)(void *, unsigned char *, size_t),
|
||||||
void *p_rng )
|
void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( grp != NULL );
|
ECP_VALIDATE_RET( grp != NULL );
|
||||||
ECP_VALIDATE_RET( d != NULL );
|
ECP_VALIDATE_RET( d != NULL );
|
||||||
ECP_VALIDATE_RET( G != NULL );
|
ECP_VALIDATE_RET( G != NULL );
|
||||||
@ -2882,7 +2883,7 @@ int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp,
|
|||||||
int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key,
|
int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key,
|
||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
ECP_VALIDATE_RET( key != NULL );
|
ECP_VALIDATE_RET( key != NULL );
|
||||||
ECP_VALIDATE_RET( f_rng != NULL );
|
ECP_VALIDATE_RET( f_rng != NULL );
|
||||||
|
|
||||||
@ -2966,7 +2967,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecp_check_pub_priv( const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv )
|
int mbedtls_ecp_check_pub_priv( const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_point Q;
|
mbedtls_ecp_point Q;
|
||||||
mbedtls_ecp_group grp;
|
mbedtls_ecp_group grp;
|
||||||
ECP_VALIDATE_RET( pub != NULL );
|
ECP_VALIDATE_RET( pub != NULL );
|
||||||
@ -3012,7 +3013,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_ecp_self_test( int verbose )
|
int mbedtls_ecp_self_test( int verbose )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_ecp_group grp;
|
mbedtls_ecp_group grp;
|
||||||
mbedtls_ecp_point R, P;
|
mbedtls_ecp_point R, P;
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ecp.h"
|
#include "mbedtls/ecp.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -669,7 +670,7 @@ static int ecp_mod_p256k1( mbedtls_mpi * );
|
|||||||
*/
|
*/
|
||||||
static int ecp_use_curve25519( mbedtls_ecp_group *grp )
|
static int ecp_use_curve25519( mbedtls_ecp_group *grp )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* Actually ( A + 2 ) / 4 */
|
/* Actually ( A + 2 ) / 4 */
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &grp->A, 16, "01DB42" ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &grp->A, 16, "01DB42" ) );
|
||||||
@ -709,7 +710,7 @@ cleanup:
|
|||||||
static int ecp_use_curve448( mbedtls_ecp_group *grp )
|
static int ecp_use_curve448( mbedtls_ecp_group *grp )
|
||||||
{
|
{
|
||||||
mbedtls_mpi Ns;
|
mbedtls_mpi Ns;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_mpi_init( &Ns );
|
mbedtls_mpi_init( &Ns );
|
||||||
|
|
||||||
@ -900,7 +901,7 @@ static inline void carry64( mbedtls_mpi_uint *dst, mbedtls_mpi_uint *carry )
|
|||||||
*/
|
*/
|
||||||
static int ecp_mod_p192( mbedtls_mpi *N )
|
static int ecp_mod_p192( mbedtls_mpi *N )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi_uint c = 0;
|
mbedtls_mpi_uint c = 0;
|
||||||
mbedtls_mpi_uint *p, *end;
|
mbedtls_mpi_uint *p, *end;
|
||||||
|
|
||||||
@ -991,7 +992,7 @@ static inline void sub32( uint32_t *dst, uint32_t src, signed char *carry )
|
|||||||
* (see fix_negative for the motivation of C)
|
* (see fix_negative for the motivation of C)
|
||||||
*/
|
*/
|
||||||
#define INIT( b ) \
|
#define INIT( b ) \
|
||||||
int ret; \
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; \
|
||||||
signed char c = 0, cc; \
|
signed char c = 0, cc; \
|
||||||
uint32_t cur; \
|
uint32_t cur; \
|
||||||
size_t i = 0, bits = (b); \
|
size_t i = 0, bits = (b); \
|
||||||
@ -1027,7 +1028,7 @@ static inline void sub32( uint32_t *dst, uint32_t src, signed char *carry )
|
|||||||
*/
|
*/
|
||||||
static inline int fix_negative( mbedtls_mpi *N, signed char c, mbedtls_mpi *C, size_t bits )
|
static inline int fix_negative( mbedtls_mpi *N, signed char c, mbedtls_mpi *C, size_t bits )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* C = - c * 2^(bits + 32) */
|
/* C = - c * 2^(bits + 32) */
|
||||||
#if !defined(MBEDTLS_HAVE_INT64)
|
#if !defined(MBEDTLS_HAVE_INT64)
|
||||||
@ -1185,7 +1186,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ecp_mod_p521( mbedtls_mpi *N )
|
static int ecp_mod_p521( mbedtls_mpi *N )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi M;
|
mbedtls_mpi M;
|
||||||
mbedtls_mpi_uint Mp[P521_WIDTH + 1];
|
mbedtls_mpi_uint Mp[P521_WIDTH + 1];
|
||||||
@ -1234,7 +1235,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ecp_mod_p255( mbedtls_mpi *N )
|
static int ecp_mod_p255( mbedtls_mpi *N )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi M;
|
mbedtls_mpi M;
|
||||||
mbedtls_mpi_uint Mp[P255_WIDTH + 2];
|
mbedtls_mpi_uint Mp[P255_WIDTH + 2];
|
||||||
@ -1291,7 +1292,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ecp_mod_p448( mbedtls_mpi *N )
|
static int ecp_mod_p448( mbedtls_mpi *N )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi M, Q;
|
mbedtls_mpi M, Q;
|
||||||
mbedtls_mpi_uint Mp[P448_WIDTH + 1], Qp[P448_WIDTH];
|
mbedtls_mpi_uint Mp[P448_WIDTH + 1], Qp[P448_WIDTH];
|
||||||
@ -1353,7 +1354,7 @@ cleanup:
|
|||||||
static inline int ecp_mod_koblitz( mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p_limbs,
|
static inline int ecp_mod_koblitz( mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p_limbs,
|
||||||
size_t adjust, size_t shift, mbedtls_mpi_uint mask )
|
size_t adjust, size_t shift, mbedtls_mpi_uint mask )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
mbedtls_mpi M, R;
|
mbedtls_mpi M, R;
|
||||||
mbedtls_mpi_uint Mp[P_KOBLITZ_MAX + P_KOBLITZ_R + 1];
|
mbedtls_mpi_uint Mp[P_KOBLITZ_MAX + P_KOBLITZ_R + 1];
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "mbedtls/entropy.h"
|
#include "mbedtls/entropy.h"
|
||||||
#include "mbedtls/entropy_poll.h"
|
#include "mbedtls/entropy_poll.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -236,7 +237,7 @@ cleanup:
|
|||||||
int mbedtls_entropy_update_manual( mbedtls_entropy_context *ctx,
|
int mbedtls_entropy_update_manual( mbedtls_entropy_context *ctx,
|
||||||
const unsigned char *data, size_t len )
|
const unsigned char *data, size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
#if defined(MBEDTLS_THREADING_C)
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
|
if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
|
||||||
@ -308,7 +309,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_entropy_gather( mbedtls_entropy_context *ctx )
|
int mbedtls_entropy_gather( mbedtls_entropy_context *ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
#if defined(MBEDTLS_THREADING_C)
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
|
if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/entropy.h"
|
#include "mbedtls/entropy.h"
|
||||||
#include "mbedtls/entropy_poll.h"
|
#include "mbedtls/entropy_poll.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_TIMING_C)
|
#if defined(MBEDTLS_TIMING_C)
|
||||||
#include "mbedtls/timing.h"
|
#include "mbedtls/timing.h"
|
||||||
@ -121,7 +122,7 @@ int mbedtls_platform_entropy_poll( void *data,
|
|||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
size_t read_len;
|
size_t read_len;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
((void) data);
|
((void) data);
|
||||||
|
|
||||||
#if defined(HAVE_GETRANDOM)
|
#if defined(HAVE_GETRANDOM)
|
||||||
|
@ -109,6 +109,10 @@
|
|||||||
#include "mbedtls/entropy.h"
|
#include "mbedtls/entropy.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ERROR_C)
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_GCM_C)
|
#if defined(MBEDTLS_GCM_C)
|
||||||
#include "mbedtls/gcm.h"
|
#include "mbedtls/gcm.h"
|
||||||
#endif
|
#endif
|
||||||
@ -579,6 +583,13 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen )
|
|||||||
mbedtls_snprintf( buf, buflen, "ENTROPY - Read/write error in file" );
|
mbedtls_snprintf( buf, buflen, "ENTROPY - Read/write error in file" );
|
||||||
#endif /* MBEDTLS_ENTROPY_C */
|
#endif /* MBEDTLS_ENTROPY_C */
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ERROR_C)
|
||||||
|
if( use_ret == -(MBEDTLS_ERR_ERROR_GENERIC_ERROR) )
|
||||||
|
mbedtls_snprintf( buf, buflen, "ERROR - Generic error" );
|
||||||
|
if( use_ret == -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED) )
|
||||||
|
mbedtls_snprintf( buf, buflen, "ERROR - This is a bug in the library" );
|
||||||
|
#endif /* MBEDTLS_ERROR_C */
|
||||||
|
|
||||||
#if defined(MBEDTLS_GCM_C)
|
#if defined(MBEDTLS_GCM_C)
|
||||||
if( use_ret == -(MBEDTLS_ERR_GCM_AUTH_FAILED) )
|
if( use_ret == -(MBEDTLS_ERR_GCM_AUTH_FAILED) )
|
||||||
mbedtls_snprintf( buf, buflen, "GCM - Authenticated decryption failed" );
|
mbedtls_snprintf( buf, buflen, "GCM - Authenticated decryption failed" );
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/gcm.h"
|
#include "mbedtls/gcm.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -168,7 +169,7 @@ int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx,
|
|||||||
const unsigned char *key,
|
const unsigned char *key,
|
||||||
unsigned int keybits )
|
unsigned int keybits )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_cipher_info_t *cipher_info;
|
const mbedtls_cipher_info_t *cipher_info;
|
||||||
|
|
||||||
GCM_VALIDATE_RET( ctx != NULL );
|
GCM_VALIDATE_RET( ctx != NULL );
|
||||||
@ -280,7 +281,7 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx,
|
|||||||
const unsigned char *add,
|
const unsigned char *add,
|
||||||
size_t add_len )
|
size_t add_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char work_buf[16];
|
unsigned char work_buf[16];
|
||||||
size_t i;
|
size_t i;
|
||||||
const unsigned char *p;
|
const unsigned char *p;
|
||||||
@ -365,7 +366,7 @@ int mbedtls_gcm_update( mbedtls_gcm_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char ectr[16];
|
unsigned char ectr[16];
|
||||||
size_t i;
|
size_t i;
|
||||||
const unsigned char *p;
|
const unsigned char *p;
|
||||||
@ -476,7 +477,7 @@ int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx,
|
|||||||
size_t tag_len,
|
size_t tag_len,
|
||||||
unsigned char *tag )
|
unsigned char *tag )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
GCM_VALIDATE_RET( ctx != NULL );
|
GCM_VALIDATE_RET( ctx != NULL );
|
||||||
GCM_VALIDATE_RET( iv != NULL );
|
GCM_VALIDATE_RET( iv != NULL );
|
||||||
@ -508,7 +509,7 @@ int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char check_tag[16];
|
unsigned char check_tag[16];
|
||||||
size_t i;
|
size_t i;
|
||||||
int diff;
|
int diff;
|
||||||
|
@ -29,13 +29,14 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "mbedtls/hkdf.h"
|
#include "mbedtls/hkdf.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
int mbedtls_hkdf( const mbedtls_md_info_t *md, const unsigned char *salt,
|
int mbedtls_hkdf( const mbedtls_md_info_t *md, const unsigned char *salt,
|
||||||
size_t salt_len, const unsigned char *ikm, size_t ikm_len,
|
size_t salt_len, const unsigned char *ikm, size_t ikm_len,
|
||||||
const unsigned char *info, size_t info_len,
|
const unsigned char *info, size_t info_len,
|
||||||
unsigned char *okm, size_t okm_len )
|
unsigned char *okm, size_t okm_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char prk[MBEDTLS_MD_MAX_SIZE];
|
unsigned char prk[MBEDTLS_MD_MAX_SIZE];
|
||||||
|
|
||||||
ret = mbedtls_hkdf_extract( md, salt, salt_len, ikm, ikm_len, prk );
|
ret = mbedtls_hkdf_extract( md, salt, salt_len, ikm, ikm_len, prk );
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/hmac_drbg.h"
|
#include "mbedtls/hmac_drbg.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -127,7 +128,7 @@ int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx,
|
|||||||
const mbedtls_md_info_t * md_info,
|
const mbedtls_md_info_t * md_info,
|
||||||
const unsigned char *data, size_t data_len )
|
const unsigned char *data, size_t data_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 )
|
if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -159,7 +160,7 @@ static int hmac_drbg_reseed_core( mbedtls_hmac_drbg_context *ctx,
|
|||||||
{
|
{
|
||||||
unsigned char seed[MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT];
|
unsigned char seed[MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT];
|
||||||
size_t seedlen = 0;
|
size_t seedlen = 0;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
{
|
{
|
||||||
size_t total_entropy_len;
|
size_t total_entropy_len;
|
||||||
@ -251,7 +252,7 @@ int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx,
|
|||||||
const unsigned char *custom,
|
const unsigned char *custom,
|
||||||
size_t len )
|
size_t len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t md_size;
|
size_t md_size;
|
||||||
|
|
||||||
if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 )
|
if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 )
|
||||||
@ -329,7 +330,7 @@ int mbedtls_hmac_drbg_random_with_add( void *p_rng,
|
|||||||
unsigned char *output, size_t out_len,
|
unsigned char *output, size_t out_len,
|
||||||
const unsigned char *additional, size_t add_len )
|
const unsigned char *additional, size_t add_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng;
|
mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng;
|
||||||
size_t md_len = mbedtls_md_get_size( ctx->md_ctx.md_info );
|
size_t md_len = mbedtls_md_get_size( ctx->md_ctx.md_info );
|
||||||
size_t left = out_len;
|
size_t left = out_len;
|
||||||
@ -398,7 +399,7 @@ exit:
|
|||||||
*/
|
*/
|
||||||
int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len )
|
int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng;
|
mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng;
|
||||||
|
|
||||||
#if defined(MBEDTLS_THREADING_C)
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
@ -434,7 +435,7 @@ void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx )
|
|||||||
#if defined(MBEDTLS_FS_IO)
|
#if defined(MBEDTLS_FS_IO)
|
||||||
int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path )
|
int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
unsigned char buf[ MBEDTLS_HMAC_DRBG_MAX_INPUT ];
|
unsigned char buf[ MBEDTLS_HMAC_DRBG_MAX_INPUT ];
|
||||||
|
|
||||||
|
11
library/md.c
11
library/md.c
@ -34,6 +34,7 @@
|
|||||||
#include "mbedtls/md.h"
|
#include "mbedtls/md.h"
|
||||||
#include "mbedtls/md_internal.h"
|
#include "mbedtls/md_internal.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include "mbedtls/md2.h"
|
#include "mbedtls/md2.h"
|
||||||
#include "mbedtls/md4.h"
|
#include "mbedtls/md4.h"
|
||||||
@ -643,7 +644,7 @@ int mbedtls_md( const mbedtls_md_info_t *md_info, const unsigned char *input, si
|
|||||||
#if defined(MBEDTLS_FS_IO)
|
#if defined(MBEDTLS_FS_IO)
|
||||||
int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, unsigned char *output )
|
int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
size_t n;
|
size_t n;
|
||||||
mbedtls_md_context_t ctx;
|
mbedtls_md_context_t ctx;
|
||||||
@ -683,7 +684,7 @@ cleanup:
|
|||||||
|
|
||||||
int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen )
|
int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char sum[MBEDTLS_MD_MAX_SIZE];
|
unsigned char sum[MBEDTLS_MD_MAX_SIZE];
|
||||||
unsigned char *ipad, *opad;
|
unsigned char *ipad, *opad;
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -738,7 +739,7 @@ int mbedtls_md_hmac_update( mbedtls_md_context_t *ctx, const unsigned char *inpu
|
|||||||
|
|
||||||
int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output )
|
int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char tmp[MBEDTLS_MD_MAX_SIZE];
|
unsigned char tmp[MBEDTLS_MD_MAX_SIZE];
|
||||||
unsigned char *opad;
|
unsigned char *opad;
|
||||||
|
|
||||||
@ -762,7 +763,7 @@ int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output )
|
|||||||
|
|
||||||
int mbedtls_md_hmac_reset( mbedtls_md_context_t *ctx )
|
int mbedtls_md_hmac_reset( mbedtls_md_context_t *ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *ipad;
|
unsigned char *ipad;
|
||||||
|
|
||||||
if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL )
|
if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL )
|
||||||
@ -781,7 +782,7 @@ int mbedtls_md_hmac( const mbedtls_md_info_t *md_info,
|
|||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
mbedtls_md_context_t ctx;
|
mbedtls_md_context_t ctx;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( md_info == NULL )
|
if( md_info == NULL )
|
||||||
return( MBEDTLS_ERR_MD_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_MD_BAD_INPUT_DATA );
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/md2.h"
|
#include "mbedtls/md2.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -170,7 +171,7 @@ int mbedtls_md2_update_ret( mbedtls_md2_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
|
|
||||||
while( ilen > 0 )
|
while( ilen > 0 )
|
||||||
@ -212,7 +213,7 @@ void mbedtls_md2_update( mbedtls_md2_context *ctx,
|
|||||||
int mbedtls_md2_finish_ret( mbedtls_md2_context *ctx,
|
int mbedtls_md2_finish_ret( mbedtls_md2_context *ctx,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i;
|
size_t i;
|
||||||
unsigned char x;
|
unsigned char x;
|
||||||
|
|
||||||
@ -250,7 +251,7 @@ int mbedtls_md2_ret( const unsigned char *input,
|
|||||||
size_t ilen,
|
size_t ilen,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_md2_context ctx;
|
mbedtls_md2_context ctx;
|
||||||
|
|
||||||
mbedtls_md2_init( &ctx );
|
mbedtls_md2_init( &ctx );
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/md4.h"
|
#include "mbedtls/md4.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -253,7 +254,7 @@ int mbedtls_md4_update_ret( mbedtls_md4_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
uint32_t left;
|
uint32_t left;
|
||||||
|
|
||||||
@ -323,7 +324,7 @@ static const unsigned char md4_padding[64] =
|
|||||||
int mbedtls_md4_finish_ret( mbedtls_md4_context *ctx,
|
int mbedtls_md4_finish_ret( mbedtls_md4_context *ctx,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint32_t last, padn;
|
uint32_t last, padn;
|
||||||
uint32_t high, low;
|
uint32_t high, low;
|
||||||
unsigned char msglen[8];
|
unsigned char msglen[8];
|
||||||
@ -371,7 +372,7 @@ int mbedtls_md4_ret( const unsigned char *input,
|
|||||||
size_t ilen,
|
size_t ilen,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_md4_context ctx;
|
mbedtls_md4_context ctx;
|
||||||
|
|
||||||
mbedtls_md4_init( &ctx );
|
mbedtls_md4_init( &ctx );
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/md5.h"
|
#include "mbedtls/md5.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -259,7 +260,7 @@ int mbedtls_md5_update_ret( mbedtls_md5_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
uint32_t left;
|
uint32_t left;
|
||||||
|
|
||||||
@ -318,7 +319,7 @@ void mbedtls_md5_update( mbedtls_md5_context *ctx,
|
|||||||
int mbedtls_md5_finish_ret( mbedtls_md5_context *ctx,
|
int mbedtls_md5_finish_ret( mbedtls_md5_context *ctx,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint32_t used;
|
uint32_t used;
|
||||||
uint32_t high, low;
|
uint32_t high, low;
|
||||||
|
|
||||||
@ -386,7 +387,7 @@ int mbedtls_md5_ret( const unsigned char *input,
|
|||||||
size_t ilen,
|
size_t ilen,
|
||||||
unsigned char output[16] )
|
unsigned char output[16] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_md5_context ctx;
|
mbedtls_md5_context ctx;
|
||||||
|
|
||||||
mbedtls_md5_init( &ctx );
|
mbedtls_md5_init( &ctx );
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/nist_kw.h"
|
#include "mbedtls/nist_kw.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -116,7 +117,7 @@ int mbedtls_nist_kw_setkey( mbedtls_nist_kw_context *ctx,
|
|||||||
unsigned int keybits,
|
unsigned int keybits,
|
||||||
const int is_wrap )
|
const int is_wrap )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_cipher_info_t *cipher_info;
|
const mbedtls_cipher_info_t *cipher_info;
|
||||||
|
|
||||||
cipher_info = mbedtls_cipher_info_from_values( cipher,
|
cipher_info = mbedtls_cipher_info_from_values( cipher,
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/oid.h"
|
#include "mbedtls/oid.h"
|
||||||
#include "mbedtls/rsa.h"
|
#include "mbedtls/rsa.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -732,7 +733,7 @@ FN_OID_GET_ATTR2(mbedtls_oid_get_pkcs12_pbe_alg, oid_pkcs12_pbe_alg_t, pkcs12_pb
|
|||||||
int mbedtls_oid_get_numeric_string( char *buf, size_t size,
|
int mbedtls_oid_get_numeric_string( char *buf, size_t size,
|
||||||
const mbedtls_asn1_buf *oid )
|
const mbedtls_asn1_buf *oid )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t i, n;
|
size_t i, n;
|
||||||
unsigned int value;
|
unsigned int value;
|
||||||
char *p;
|
char *p;
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "mbedtls/md5.h"
|
#include "mbedtls/md5.h"
|
||||||
#include "mbedtls/cipher.h"
|
#include "mbedtls/cipher.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -85,7 +86,7 @@ static int pem_pbkdf1( unsigned char *key, size_t keylen,
|
|||||||
mbedtls_md5_context md5_ctx;
|
mbedtls_md5_context md5_ctx;
|
||||||
unsigned char md5sum[16];
|
unsigned char md5sum[16];
|
||||||
size_t use_len;
|
size_t use_len;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_md5_init( &md5_ctx );
|
mbedtls_md5_init( &md5_ctx );
|
||||||
|
|
||||||
@ -146,7 +147,7 @@ static int pem_des_decrypt( unsigned char des_iv[8],
|
|||||||
{
|
{
|
||||||
mbedtls_des_context des_ctx;
|
mbedtls_des_context des_ctx;
|
||||||
unsigned char des_key[8];
|
unsigned char des_key[8];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_des_init( &des_ctx );
|
mbedtls_des_init( &des_ctx );
|
||||||
|
|
||||||
@ -174,7 +175,7 @@ static int pem_des3_decrypt( unsigned char des3_iv[8],
|
|||||||
{
|
{
|
||||||
mbedtls_des3_context des3_ctx;
|
mbedtls_des3_context des3_ctx;
|
||||||
unsigned char des3_key[24];
|
unsigned char des3_key[24];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_des3_init( &des3_ctx );
|
mbedtls_des3_init( &des3_ctx );
|
||||||
|
|
||||||
@ -204,7 +205,7 @@ static int pem_aes_decrypt( unsigned char aes_iv[16], unsigned int keylen,
|
|||||||
{
|
{
|
||||||
mbedtls_aes_context aes_ctx;
|
mbedtls_aes_context aes_ctx;
|
||||||
unsigned char aes_key[32];
|
unsigned char aes_key[32];
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
mbedtls_aes_init( &aes_ctx );
|
mbedtls_aes_init( &aes_ctx );
|
||||||
|
|
||||||
@ -439,7 +440,7 @@ int mbedtls_pem_write_buffer( const char *header, const char *footer,
|
|||||||
const unsigned char *der_data, size_t der_len,
|
const unsigned char *der_data, size_t der_len,
|
||||||
unsigned char *buf, size_t buf_len, size_t *olen )
|
unsigned char *buf, size_t buf_len, size_t *olen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *encode_buf = NULL, *c, *p = buf;
|
unsigned char *encode_buf = NULL, *c, *p = buf;
|
||||||
size_t len = 0, use_len, add_len = 0;
|
size_t len = 0, use_len, add_len = 0;
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "mbedtls/pk_internal.h"
|
#include "mbedtls/pk_internal.h"
|
||||||
|
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_RSA_C)
|
#if defined(MBEDTLS_RSA_C)
|
||||||
#include "mbedtls/rsa.h"
|
#include "mbedtls/rsa.h"
|
||||||
@ -297,7 +298,7 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx,
|
|||||||
mbedtls_ecp_restart_is_enabled() &&
|
mbedtls_ecp_restart_is_enabled() &&
|
||||||
ctx->pk_info->verify_rs_func != NULL )
|
ctx->pk_info->verify_rs_func != NULL )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 )
|
if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -354,7 +355,7 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options,
|
|||||||
if( type == MBEDTLS_PK_RSASSA_PSS )
|
if( type == MBEDTLS_PK_RSASSA_PSS )
|
||||||
{
|
{
|
||||||
#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V21)
|
#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V21)
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_pk_rsassa_pss_options *pss_opts;
|
const mbedtls_pk_rsassa_pss_options *pss_opts;
|
||||||
|
|
||||||
#if SIZE_MAX > UINT_MAX
|
#if SIZE_MAX > UINT_MAX
|
||||||
@ -420,7 +421,7 @@ int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx,
|
|||||||
mbedtls_ecp_restart_is_enabled() &&
|
mbedtls_ecp_restart_is_enabled() &&
|
||||||
ctx->pk_info->sign_rs_func != NULL )
|
ctx->pk_info->sign_rs_func != NULL )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 )
|
if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -604,7 +605,7 @@ int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk,
|
|||||||
psa_ecc_curve_t curve_id;
|
psa_ecc_curve_t curve_id;
|
||||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||||
psa_key_type_t key_type;
|
psa_key_type_t key_type;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* export the private key material in the format PSA wants */
|
/* export the private key material in the format PSA wants */
|
||||||
if( mbedtls_pk_get_type( pk ) != MBEDTLS_PK_ECKEY )
|
if( mbedtls_pk_get_type( pk ) != MBEDTLS_PK_ECKEY )
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
#if defined(MBEDTLS_PK_C)
|
#if defined(MBEDTLS_PK_C)
|
||||||
#include "mbedtls/pk_internal.h"
|
#include "mbedtls/pk_internal.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
/* Even if RSA not activated, for the sake of RSA-alt */
|
/* Even if RSA not activated, for the sake of RSA-alt */
|
||||||
#include "mbedtls/rsa.h"
|
#include "mbedtls/rsa.h"
|
||||||
@ -83,7 +84,7 @@ static int rsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *hash, size_t hash_len,
|
const unsigned char *hash, size_t hash_len,
|
||||||
const unsigned char *sig, size_t sig_len )
|
const unsigned char *sig, size_t sig_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx;
|
mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx;
|
||||||
size_t rsa_len = mbedtls_rsa_get_len( rsa );
|
size_t rsa_len = mbedtls_rsa_get_len( rsa );
|
||||||
|
|
||||||
@ -248,7 +249,7 @@ static int eckey_verify_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *hash, size_t hash_len,
|
const unsigned char *hash, size_t hash_len,
|
||||||
const unsigned char *sig, size_t sig_len )
|
const unsigned char *sig, size_t sig_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecdsa_context ecdsa;
|
mbedtls_ecdsa_context ecdsa;
|
||||||
|
|
||||||
mbedtls_ecdsa_init( &ecdsa );
|
mbedtls_ecdsa_init( &ecdsa );
|
||||||
@ -266,7 +267,7 @@ static int eckey_sign_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
unsigned char *sig, size_t *sig_len,
|
unsigned char *sig, size_t *sig_len,
|
||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecdsa_context ecdsa;
|
mbedtls_ecdsa_context ecdsa;
|
||||||
|
|
||||||
mbedtls_ecdsa_init( &ecdsa );
|
mbedtls_ecdsa_init( &ecdsa );
|
||||||
@ -340,7 +341,7 @@ static int eckey_verify_rs_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *sig, size_t sig_len,
|
const unsigned char *sig, size_t sig_len,
|
||||||
void *rs_ctx )
|
void *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
eckey_restart_ctx *rs = rs_ctx;
|
eckey_restart_ctx *rs = rs_ctx;
|
||||||
|
|
||||||
/* Should never happen */
|
/* Should never happen */
|
||||||
@ -365,7 +366,7 @@ static int eckey_sign_rs_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
|
||||||
void *rs_ctx )
|
void *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
eckey_restart_ctx *rs = rs_ctx;
|
eckey_restart_ctx *rs = rs_ctx;
|
||||||
|
|
||||||
/* Should never happen */
|
/* Should never happen */
|
||||||
@ -490,7 +491,7 @@ static int ecdsa_can_do( mbedtls_pk_type_t type )
|
|||||||
static int extract_ecdsa_sig_int( unsigned char **from, const unsigned char *end,
|
static int extract_ecdsa_sig_int( unsigned char **from, const unsigned char *end,
|
||||||
unsigned char *to, size_t to_len )
|
unsigned char *to, size_t to_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t unpadded_len, padding_len;
|
size_t unpadded_len, padding_len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( from, end, &unpadded_len,
|
if( ( ret = mbedtls_asn1_get_tag( from, end, &unpadded_len,
|
||||||
@ -524,7 +525,7 @@ static int extract_ecdsa_sig_int( unsigned char **from, const unsigned char *end
|
|||||||
static int extract_ecdsa_sig( unsigned char **p, const unsigned char *end,
|
static int extract_ecdsa_sig( unsigned char **p, const unsigned char *end,
|
||||||
unsigned char *sig, size_t int_size )
|
unsigned char *sig, size_t int_size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t tmp_size;
|
size_t tmp_size;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &tmp_size,
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &tmp_size,
|
||||||
@ -545,7 +546,7 @@ static int ecdsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *hash, size_t hash_len,
|
const unsigned char *hash, size_t hash_len,
|
||||||
const unsigned char *sig, size_t sig_len )
|
const unsigned char *sig, size_t sig_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||||
psa_key_handle_t key_handle = 0;
|
psa_key_handle_t key_handle = 0;
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
@ -630,7 +631,7 @@ static int ecdsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *hash, size_t hash_len,
|
const unsigned char *hash, size_t hash_len,
|
||||||
const unsigned char *sig, size_t sig_len )
|
const unsigned char *sig, size_t sig_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
((void) md_alg);
|
((void) md_alg);
|
||||||
|
|
||||||
ret = mbedtls_ecdsa_read_signature( (mbedtls_ecdsa_context *) ctx,
|
ret = mbedtls_ecdsa_read_signature( (mbedtls_ecdsa_context *) ctx,
|
||||||
@ -658,7 +659,7 @@ static int ecdsa_verify_rs_wrap( void *ctx, mbedtls_md_type_t md_alg,
|
|||||||
const unsigned char *sig, size_t sig_len,
|
const unsigned char *sig, size_t sig_len,
|
||||||
void *rs_ctx )
|
void *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
((void) md_alg);
|
((void) md_alg);
|
||||||
|
|
||||||
ret = mbedtls_ecdsa_read_signature_restartable(
|
ret = mbedtls_ecdsa_read_signature_restartable(
|
||||||
@ -804,7 +805,7 @@ static int rsa_alt_check_pair( const void *pub, const void *prv )
|
|||||||
unsigned char sig[MBEDTLS_MPI_MAX_SIZE];
|
unsigned char sig[MBEDTLS_MPI_MAX_SIZE];
|
||||||
unsigned char hash[32];
|
unsigned char hash[32];
|
||||||
size_t sig_len = 0;
|
size_t sig_len = 0;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( rsa_alt_get_bitlen( prv ) != rsa_get_bitlen( pub ) )
|
if( rsa_alt_get_bitlen( prv ) != rsa_get_bitlen( pub ) )
|
||||||
return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED );
|
return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED );
|
||||||
@ -925,7 +926,7 @@ static int pk_opaque_can_do( mbedtls_pk_type_t type )
|
|||||||
static int asn1_write_mpibuf( unsigned char **p, unsigned char *start,
|
static int asn1_write_mpibuf( unsigned char **p, unsigned char *start,
|
||||||
size_t n_len )
|
size_t n_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
if( (size_t)( *p - start ) < n_len )
|
if( (size_t)( *p - start ) < n_len )
|
||||||
@ -977,7 +978,7 @@ static int asn1_write_mpibuf( unsigned char **p, unsigned char *start,
|
|||||||
static int pk_ecdsa_sig_asn1_from_psa( unsigned char *sig, size_t *sig_len,
|
static int pk_ecdsa_sig_asn1_from_psa( unsigned char *sig, size_t *sig_len,
|
||||||
size_t buf_len )
|
size_t buf_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
const size_t rs_len = *sig_len / 2;
|
const size_t rs_len = *sig_len / 2;
|
||||||
unsigned char *p = sig + buf_len;
|
unsigned char *p = sig + buf_len;
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#include "mbedtls/asn1.h"
|
#include "mbedtls/asn1.h"
|
||||||
#include "mbedtls/cipher.h"
|
#include "mbedtls/cipher.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -53,7 +54,7 @@
|
|||||||
static int pkcs12_parse_pbe_params( mbedtls_asn1_buf *params,
|
static int pkcs12_parse_pbe_params( mbedtls_asn1_buf *params,
|
||||||
mbedtls_asn1_buf *salt, int *iterations )
|
mbedtls_asn1_buf *salt, int *iterations )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char **p = ¶ms->p;
|
unsigned char **p = ¶ms->p;
|
||||||
const unsigned char *end = params->p + params->len;
|
const unsigned char *end = params->p + params->len;
|
||||||
|
|
||||||
@ -145,7 +146,7 @@ int mbedtls_pkcs12_pbe_sha1_rc4_128( mbedtls_asn1_buf *pbe_params, int mode,
|
|||||||
((void) output);
|
((void) output);
|
||||||
return( MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE );
|
return( MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE );
|
||||||
#else
|
#else
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char key[16];
|
unsigned char key[16];
|
||||||
mbedtls_arc4_context ctx;
|
mbedtls_arc4_context ctx;
|
||||||
((void) mode);
|
((void) mode);
|
||||||
@ -250,7 +251,7 @@ int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen,
|
|||||||
const unsigned char *salt, size_t saltlen,
|
const unsigned char *salt, size_t saltlen,
|
||||||
mbedtls_md_type_t md_type, int id, int iterations )
|
mbedtls_md_type_t md_type, int id, int iterations )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned int j;
|
unsigned int j;
|
||||||
|
|
||||||
unsigned char diversifier[128];
|
unsigned char diversifier[128];
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#if defined(MBEDTLS_PKCS5_C)
|
#if defined(MBEDTLS_PKCS5_C)
|
||||||
|
|
||||||
#include "mbedtls/pkcs5.h"
|
#include "mbedtls/pkcs5.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||||
#include "mbedtls/asn1.h"
|
#include "mbedtls/asn1.h"
|
||||||
@ -59,7 +60,7 @@ static int pkcs5_parse_pbkdf2_params( const mbedtls_asn1_buf *params,
|
|||||||
mbedtls_asn1_buf *salt, int *iterations,
|
mbedtls_asn1_buf *salt, int *iterations,
|
||||||
int *keylen, mbedtls_md_type_t *md_type )
|
int *keylen, mbedtls_md_type_t *md_type )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_asn1_buf prf_alg_oid;
|
mbedtls_asn1_buf prf_alg_oid;
|
||||||
unsigned char *p = params->p;
|
unsigned char *p = params->p;
|
||||||
const unsigned char *end = params->p + params->len;
|
const unsigned char *end = params->p + params->len;
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "mbedtls/asn1.h"
|
#include "mbedtls/asn1.h"
|
||||||
#include "mbedtls/oid.h"
|
#include "mbedtls/oid.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -130,7 +131,7 @@ int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n )
|
|||||||
int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx,
|
int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx,
|
||||||
const char *path, const char *pwd )
|
const char *path, const char *pwd )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n;
|
size_t n;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
@ -157,7 +158,7 @@ int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx,
|
|||||||
*/
|
*/
|
||||||
int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path )
|
int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t n;
|
size_t n;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
@ -188,7 +189,7 @@ int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path )
|
|||||||
static int pk_get_ecparams( unsigned char **p, const unsigned char *end,
|
static int pk_get_ecparams( unsigned char **p, const unsigned char *end,
|
||||||
mbedtls_asn1_buf *params )
|
mbedtls_asn1_buf *params )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if ( end - *p < 1 )
|
if ( end - *p < 1 )
|
||||||
return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT +
|
return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT +
|
||||||
@ -243,7 +244,7 @@ static int pk_get_ecparams( unsigned char **p, const unsigned char *end,
|
|||||||
*/
|
*/
|
||||||
static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp )
|
static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p = params->p;
|
unsigned char *p = params->p;
|
||||||
const unsigned char * const end = params->p + params->len;
|
const unsigned char * const end = params->p + params->len;
|
||||||
const unsigned char *end_field, *end_curve;
|
const unsigned char *end_field, *end_curve;
|
||||||
@ -433,7 +434,7 @@ cleanup:
|
|||||||
static int pk_group_id_from_specified( const mbedtls_asn1_buf *params,
|
static int pk_group_id_from_specified( const mbedtls_asn1_buf *params,
|
||||||
mbedtls_ecp_group_id *grp_id )
|
mbedtls_ecp_group_id *grp_id )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_group grp;
|
mbedtls_ecp_group grp;
|
||||||
|
|
||||||
mbedtls_ecp_group_init( &grp );
|
mbedtls_ecp_group_init( &grp );
|
||||||
@ -460,7 +461,7 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int pk_use_ecparams( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp )
|
static int pk_use_ecparams( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ecp_group_id grp_id;
|
mbedtls_ecp_group_id grp_id;
|
||||||
|
|
||||||
if( params->tag == MBEDTLS_ASN1_OID )
|
if( params->tag == MBEDTLS_ASN1_OID )
|
||||||
@ -500,7 +501,7 @@ static int pk_use_ecparams( const mbedtls_asn1_buf *params, mbedtls_ecp_group *g
|
|||||||
static int pk_get_ecpubkey( unsigned char **p, const unsigned char *end,
|
static int pk_get_ecpubkey( unsigned char **p, const unsigned char *end,
|
||||||
mbedtls_ecp_keypair *key )
|
mbedtls_ecp_keypair *key )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( ( ret = mbedtls_ecp_point_read_binary( &key->grp, &key->Q,
|
if( ( ret = mbedtls_ecp_point_read_binary( &key->grp, &key->Q,
|
||||||
(const unsigned char *) *p, end - *p ) ) == 0 )
|
(const unsigned char *) *p, end - *p ) ) == 0 )
|
||||||
@ -528,7 +529,7 @@ static int pk_get_rsapubkey( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
mbedtls_rsa_context *rsa )
|
mbedtls_rsa_context *rsa )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if( ( ret = mbedtls_asn1_get_tag( p, end, &len,
|
if( ( ret = mbedtls_asn1_get_tag( p, end, &len,
|
||||||
@ -583,7 +584,7 @@ static int pk_get_pk_alg( unsigned char **p,
|
|||||||
const unsigned char *end,
|
const unsigned char *end,
|
||||||
mbedtls_pk_type_t *pk_alg, mbedtls_asn1_buf *params )
|
mbedtls_pk_type_t *pk_alg, mbedtls_asn1_buf *params )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_asn1_buf alg_oid;
|
mbedtls_asn1_buf alg_oid;
|
||||||
|
|
||||||
memset( params, 0, sizeof(mbedtls_asn1_buf) );
|
memset( params, 0, sizeof(mbedtls_asn1_buf) );
|
||||||
@ -615,7 +616,7 @@ static int pk_get_pk_alg( unsigned char **p,
|
|||||||
int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end,
|
int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end,
|
||||||
mbedtls_pk_context *pk )
|
mbedtls_pk_context *pk )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len;
|
size_t len;
|
||||||
mbedtls_asn1_buf alg_params;
|
mbedtls_asn1_buf alg_params;
|
||||||
mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE;
|
mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE;
|
||||||
@ -811,7 +812,7 @@ static int pk_parse_key_sec1_der( mbedtls_ecp_keypair *eck,
|
|||||||
const unsigned char *key,
|
const unsigned char *key,
|
||||||
size_t keylen )
|
size_t keylen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
int version, pubkey_done;
|
int version, pubkey_done;
|
||||||
size_t len;
|
size_t len;
|
||||||
mbedtls_asn1_buf params;
|
mbedtls_asn1_buf params;
|
||||||
@ -1164,7 +1165,7 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk,
|
|||||||
const unsigned char *key, size_t keylen,
|
const unsigned char *key, size_t keylen,
|
||||||
const unsigned char *pwd, size_t pwdlen )
|
const unsigned char *pwd, size_t pwdlen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
const mbedtls_pk_info_t *pk_info;
|
const mbedtls_pk_info_t *pk_info;
|
||||||
#if defined(MBEDTLS_PEM_PARSE_C)
|
#if defined(MBEDTLS_PEM_PARSE_C)
|
||||||
size_t len;
|
size_t len;
|
||||||
@ -1376,7 +1377,7 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk,
|
|||||||
int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx,
|
int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx,
|
||||||
const unsigned char *key, size_t keylen )
|
const unsigned char *key, size_t keylen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
#if defined(MBEDTLS_RSA_C)
|
#if defined(MBEDTLS_RSA_C)
|
||||||
const mbedtls_pk_info_t *pk_info;
|
const mbedtls_pk_info_t *pk_info;
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "mbedtls/asn1write.h"
|
#include "mbedtls/asn1write.h"
|
||||||
#include "mbedtls/oid.h"
|
#include "mbedtls/oid.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -77,7 +78,7 @@
|
|||||||
static int pk_write_rsa_pubkey( unsigned char **p, unsigned char *start,
|
static int pk_write_rsa_pubkey( unsigned char **p, unsigned char *start,
|
||||||
mbedtls_rsa_context *rsa )
|
mbedtls_rsa_context *rsa )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
mbedtls_mpi T;
|
mbedtls_mpi T;
|
||||||
|
|
||||||
@ -116,7 +117,7 @@ end_of_export:
|
|||||||
static int pk_write_ec_pubkey( unsigned char **p, unsigned char *start,
|
static int pk_write_ec_pubkey( unsigned char **p, unsigned char *start,
|
||||||
mbedtls_ecp_keypair *ec )
|
mbedtls_ecp_keypair *ec )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
unsigned char buf[MBEDTLS_ECP_MAX_PT_LEN];
|
unsigned char buf[MBEDTLS_ECP_MAX_PT_LEN];
|
||||||
|
|
||||||
@ -144,7 +145,7 @@ static int pk_write_ec_pubkey( unsigned char **p, unsigned char *start,
|
|||||||
static int pk_write_ec_param( unsigned char **p, unsigned char *start,
|
static int pk_write_ec_param( unsigned char **p, unsigned char *start,
|
||||||
mbedtls_ecp_keypair *ec )
|
mbedtls_ecp_keypair *ec )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
const char *oid;
|
const char *oid;
|
||||||
size_t oid_len;
|
size_t oid_len;
|
||||||
@ -163,7 +164,7 @@ static int pk_write_ec_param( unsigned char **p, unsigned char *start,
|
|||||||
static int pk_write_ec_private( unsigned char **p, unsigned char *start,
|
static int pk_write_ec_private( unsigned char **p, unsigned char *start,
|
||||||
mbedtls_ecp_keypair *ec )
|
mbedtls_ecp_keypair *ec )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t byte_length = ( ec->grp.pbits + 7 ) / 8;
|
size_t byte_length = ( ec->grp.pbits + 7 ) / 8;
|
||||||
unsigned char tmp[MBEDTLS_ECP_MAX_BYTES];
|
unsigned char tmp[MBEDTLS_ECP_MAX_BYTES];
|
||||||
|
|
||||||
@ -181,7 +182,7 @@ exit:
|
|||||||
int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start,
|
int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start,
|
||||||
const mbedtls_pk_context *key )
|
const mbedtls_pk_context *key )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
PK_VALIDATE_RET( p != NULL );
|
PK_VALIDATE_RET( p != NULL );
|
||||||
@ -229,7 +230,7 @@ int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start,
|
|||||||
|
|
||||||
int mbedtls_pk_write_pubkey_der( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
int mbedtls_pk_write_pubkey_der( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *c;
|
unsigned char *c;
|
||||||
size_t len = 0, par_len = 0, oid_len;
|
size_t len = 0, par_len = 0, oid_len;
|
||||||
mbedtls_pk_type_t pk_type;
|
mbedtls_pk_type_t pk_type;
|
||||||
@ -315,7 +316,7 @@ int mbedtls_pk_write_pubkey_der( mbedtls_pk_context *key, unsigned char *buf, si
|
|||||||
|
|
||||||
int mbedtls_pk_write_key_der( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
int mbedtls_pk_write_key_der( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *c;
|
unsigned char *c;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
@ -558,7 +559,7 @@ int mbedtls_pk_write_key_der( mbedtls_pk_context *key, unsigned char *buf, size_
|
|||||||
|
|
||||||
int mbedtls_pk_write_pubkey_pem( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
int mbedtls_pk_write_pubkey_pem( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char output_buf[PUB_DER_MAX_BYTES];
|
unsigned char output_buf[PUB_DER_MAX_BYTES];
|
||||||
size_t olen = 0;
|
size_t olen = 0;
|
||||||
|
|
||||||
@ -583,7 +584,7 @@ int mbedtls_pk_write_pubkey_pem( mbedtls_pk_context *key, unsigned char *buf, si
|
|||||||
|
|
||||||
int mbedtls_pk_write_key_pem( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
int mbedtls_pk_write_key_pem( mbedtls_pk_context *key, unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char output_buf[PRV_DER_MAX_BYTES];
|
unsigned char output_buf[PRV_DER_MAX_BYTES];
|
||||||
const char *begin, *end;
|
const char *begin, *end;
|
||||||
size_t olen = 0;
|
size_t olen = 0;
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/platform.h"
|
#include "mbedtls/platform.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
/* The compile time configuration of memory allocation via the macros
|
/* The compile time configuration of memory allocation via the macros
|
||||||
* MBEDTLS_PLATFORM_{FREE/CALLOC}_MACRO takes precedence over the runtime
|
* MBEDTLS_PLATFORM_{FREE/CALLOC}_MACRO takes precedence over the runtime
|
||||||
@ -86,7 +87,7 @@ int mbedtls_platform_set_calloc_free( void * (*calloc_func)( size_t, size_t ),
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... )
|
int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
va_list argp;
|
va_list argp;
|
||||||
|
|
||||||
va_start( argp, fmt );
|
va_start( argp, fmt );
|
||||||
@ -131,7 +132,7 @@ int mbedtls_platform_set_snprintf( int (*snprintf_func)( char * s, size_t n,
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_list arg )
|
int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_list arg )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* Avoid calling the invalid parameter handler by checking ourselves */
|
/* Avoid calling the invalid parameter handler by checking ourselves */
|
||||||
if( s == NULL || n == 0 || fmt == NULL )
|
if( s == NULL || n == 0 || fmt == NULL )
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/poly1305.h"
|
#include "mbedtls/poly1305.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -423,7 +424,7 @@ int mbedtls_poly1305_mac( const unsigned char key[32],
|
|||||||
unsigned char mac[16] )
|
unsigned char mac[16] )
|
||||||
{
|
{
|
||||||
mbedtls_poly1305_context ctx;
|
mbedtls_poly1305_context ctx;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
POLY1305_VALIDATE_RET( key != NULL );
|
POLY1305_VALIDATE_RET( key != NULL );
|
||||||
POLY1305_VALIDATE_RET( mac != NULL );
|
POLY1305_VALIDATE_RET( mac != NULL );
|
||||||
POLY1305_VALIDATE_RET( ilen == 0 || input != NULL );
|
POLY1305_VALIDATE_RET( ilen == 0 || input != NULL );
|
||||||
@ -529,7 +530,7 @@ int mbedtls_poly1305_self_test( int verbose )
|
|||||||
{
|
{
|
||||||
unsigned char mac[16];
|
unsigned char mac[16];
|
||||||
unsigned i;
|
unsigned i;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
for( i = 0U; i < 2U; i++ )
|
for( i = 0U; i < 2U; i++ )
|
||||||
{
|
{
|
||||||
|
@ -75,6 +75,7 @@
|
|||||||
#include "mbedtls/pk.h"
|
#include "mbedtls/pk.h"
|
||||||
#include "mbedtls/pk_internal.h"
|
#include "mbedtls/pk_internal.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
#include "mbedtls/ripemd160.h"
|
#include "mbedtls/ripemd160.h"
|
||||||
#include "mbedtls/rsa.h"
|
#include "mbedtls/rsa.h"
|
||||||
#include "mbedtls/sha1.h"
|
#include "mbedtls/sha1.h"
|
||||||
@ -351,6 +352,8 @@ static psa_status_t mbedtls_to_psa_error( int ret )
|
|||||||
return( PSA_ERROR_INSUFFICIENT_MEMORY );
|
return( PSA_ERROR_INSUFFICIENT_MEMORY );
|
||||||
case MBEDTLS_ERR_ECP_HW_ACCEL_FAILED:
|
case MBEDTLS_ERR_ECP_HW_ACCEL_FAILED:
|
||||||
return( PSA_ERROR_HARDWARE_FAILURE );
|
return( PSA_ERROR_HARDWARE_FAILURE );
|
||||||
|
case MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED:
|
||||||
|
return( PSA_ERROR_CORRUPTION_DETECTED );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return( PSA_ERROR_GENERIC_ERROR );
|
return( PSA_ERROR_GENERIC_ERROR );
|
||||||
@ -1141,7 +1144,7 @@ static psa_status_t psa_get_rsa_public_exponent(
|
|||||||
psa_key_attributes_t *attributes )
|
psa_key_attributes_t *attributes )
|
||||||
{
|
{
|
||||||
mbedtls_mpi mpi;
|
mbedtls_mpi mpi;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint8_t *buffer = NULL;
|
uint8_t *buffer = NULL;
|
||||||
size_t buflen;
|
size_t buflen;
|
||||||
mbedtls_mpi_init( &mpi );
|
mbedtls_mpi_init( &mpi );
|
||||||
@ -1245,7 +1248,7 @@ psa_status_t psa_get_key_slot_number(
|
|||||||
static int pk_write_pubkey_simple( mbedtls_pk_context *key,
|
static int pk_write_pubkey_simple( mbedtls_pk_context *key,
|
||||||
unsigned char *buf, size_t size )
|
unsigned char *buf, size_t size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *c;
|
unsigned char *c;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
@ -1330,7 +1333,7 @@ static psa_status_t psa_internal_export_key( const psa_key_slot_t *slot,
|
|||||||
PSA_KEY_TYPE_IS_ECC( slot->attr.type ) )
|
PSA_KEY_TYPE_IS_ECC( slot->attr.type ) )
|
||||||
{
|
{
|
||||||
mbedtls_pk_context pk;
|
mbedtls_pk_context pk;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
||||||
{
|
{
|
||||||
#if defined(MBEDTLS_RSA_C)
|
#if defined(MBEDTLS_RSA_C)
|
||||||
@ -1778,7 +1781,7 @@ static psa_status_t psa_validate_optional_attributes(
|
|||||||
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
||||||
{
|
{
|
||||||
mbedtls_mpi actual, required;
|
mbedtls_mpi actual, required;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi_init( &actual );
|
mbedtls_mpi_init( &actual );
|
||||||
mbedtls_mpi_init( &required );
|
mbedtls_mpi_init( &required );
|
||||||
ret = mbedtls_rsa_export( slot->data.rsa,
|
ret = mbedtls_rsa_export( slot->data.rsa,
|
||||||
@ -2101,7 +2104,7 @@ psa_status_t psa_hash_abort( psa_hash_operation_t *operation )
|
|||||||
psa_status_t psa_hash_setup( psa_hash_operation_t *operation,
|
psa_status_t psa_hash_setup( psa_hash_operation_t *operation,
|
||||||
psa_algorithm_t alg )
|
psa_algorithm_t alg )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* A context must be freshly initialized before it can be set up. */
|
/* A context must be freshly initialized before it can be set up. */
|
||||||
if( operation->alg != 0 )
|
if( operation->alg != 0 )
|
||||||
@ -2177,7 +2180,7 @@ psa_status_t psa_hash_update( psa_hash_operation_t *operation,
|
|||||||
const uint8_t *input,
|
const uint8_t *input,
|
||||||
size_t input_length )
|
size_t input_length )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
/* Don't require hash implementations to behave correctly on a
|
/* Don't require hash implementations to behave correctly on a
|
||||||
* zero-length input, which may have an invalid pointer. */
|
* zero-length input, which may have an invalid pointer. */
|
||||||
@ -2245,7 +2248,7 @@ psa_status_t psa_hash_finish( psa_hash_operation_t *operation,
|
|||||||
size_t *hash_length )
|
size_t *hash_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t actual_hash_length = PSA_HASH_SIZE( operation->alg );
|
size_t actual_hash_length = PSA_HASH_SIZE( operation->alg );
|
||||||
|
|
||||||
/* Fill the output buffer with something that isn't a valid hash
|
/* Fill the output buffer with something that isn't a valid hash
|
||||||
@ -2628,7 +2631,7 @@ static int psa_cmac_setup( psa_mac_operation_t *operation,
|
|||||||
psa_key_slot_t *slot,
|
psa_key_slot_t *slot,
|
||||||
const mbedtls_cipher_info_t *cipher_info )
|
const mbedtls_cipher_info_t *cipher_info )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
operation->mac_size = cipher_info->block_size;
|
operation->mac_size = cipher_info->block_size;
|
||||||
|
|
||||||
@ -2749,7 +2752,7 @@ static psa_status_t psa_mac_setup( psa_mac_operation_t *operation,
|
|||||||
const mbedtls_cipher_info_t *cipher_info =
|
const mbedtls_cipher_info_t *cipher_info =
|
||||||
mbedtls_cipher_info_from_psa( full_length_alg,
|
mbedtls_cipher_info_from_psa( full_length_alg,
|
||||||
slot->attr.type, key_bits, NULL );
|
slot->attr.type, key_bits, NULL );
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( cipher_info == NULL )
|
if( cipher_info == NULL )
|
||||||
{
|
{
|
||||||
status = PSA_ERROR_NOT_SUPPORTED;
|
status = PSA_ERROR_NOT_SUPPORTED;
|
||||||
@ -3101,7 +3104,7 @@ static psa_status_t psa_rsa_sign( mbedtls_rsa_context *rsa,
|
|||||||
size_t *signature_length )
|
size_t *signature_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_md_type_t md_alg;
|
mbedtls_md_type_t md_alg;
|
||||||
|
|
||||||
status = psa_rsa_decode_md_type( alg, hash_length, &md_alg );
|
status = psa_rsa_decode_md_type( alg, hash_length, &md_alg );
|
||||||
@ -3159,7 +3162,7 @@ static psa_status_t psa_rsa_verify( mbedtls_rsa_context *rsa,
|
|||||||
size_t signature_length )
|
size_t signature_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_md_type_t md_alg;
|
mbedtls_md_type_t md_alg;
|
||||||
|
|
||||||
status = psa_rsa_decode_md_type( alg, hash_length, &md_alg );
|
status = psa_rsa_decode_md_type( alg, hash_length, &md_alg );
|
||||||
@ -3225,7 +3228,7 @@ static psa_status_t psa_ecdsa_sign( mbedtls_ecp_keypair *ecp,
|
|||||||
size_t signature_size,
|
size_t signature_size,
|
||||||
size_t *signature_length )
|
size_t *signature_length )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi r, s;
|
mbedtls_mpi r, s;
|
||||||
size_t curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits );
|
size_t curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits );
|
||||||
mbedtls_mpi_init( &r );
|
mbedtls_mpi_init( &r );
|
||||||
@ -3280,7 +3283,7 @@ static psa_status_t psa_ecdsa_verify( mbedtls_ecp_keypair *ecp,
|
|||||||
const uint8_t *signature,
|
const uint8_t *signature,
|
||||||
size_t signature_length )
|
size_t signature_length )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi r, s;
|
mbedtls_mpi r, s;
|
||||||
size_t curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits );
|
size_t curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits );
|
||||||
mbedtls_mpi_init( &r );
|
mbedtls_mpi_init( &r );
|
||||||
@ -3519,7 +3522,7 @@ psa_status_t psa_asymmetric_encrypt( psa_key_handle_t handle,
|
|||||||
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) )
|
||||||
{
|
{
|
||||||
mbedtls_rsa_context *rsa = slot->data.rsa;
|
mbedtls_rsa_context *rsa = slot->data.rsa;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( output_size < mbedtls_rsa_get_len( rsa ) )
|
if( output_size < mbedtls_rsa_get_len( rsa ) )
|
||||||
return( PSA_ERROR_BUFFER_TOO_SMALL );
|
return( PSA_ERROR_BUFFER_TOO_SMALL );
|
||||||
#if defined(MBEDTLS_PKCS1_V15)
|
#if defined(MBEDTLS_PKCS1_V15)
|
||||||
@ -3598,7 +3601,7 @@ psa_status_t psa_asymmetric_decrypt( psa_key_handle_t handle,
|
|||||||
if( slot->attr.type == PSA_KEY_TYPE_RSA_KEY_PAIR )
|
if( slot->attr.type == PSA_KEY_TYPE_RSA_KEY_PAIR )
|
||||||
{
|
{
|
||||||
mbedtls_rsa_context *rsa = slot->data.rsa;
|
mbedtls_rsa_context *rsa = slot->data.rsa;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
if( input_length != mbedtls_rsa_get_len( rsa ) )
|
if( input_length != mbedtls_rsa_get_len( rsa ) )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
@ -3795,7 +3798,7 @@ psa_status_t psa_cipher_generate_iv( psa_cipher_operation_t *operation,
|
|||||||
size_t *iv_length )
|
size_t *iv_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( operation->iv_set || ! operation->iv_required )
|
if( operation->iv_set || ! operation->iv_required )
|
||||||
{
|
{
|
||||||
return( PSA_ERROR_BAD_STATE );
|
return( PSA_ERROR_BAD_STATE );
|
||||||
@ -3827,7 +3830,7 @@ psa_status_t psa_cipher_set_iv( psa_cipher_operation_t *operation,
|
|||||||
size_t iv_length )
|
size_t iv_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( operation->iv_set || ! operation->iv_required )
|
if( operation->iv_set || ! operation->iv_required )
|
||||||
{
|
{
|
||||||
return( PSA_ERROR_BAD_STATE );
|
return( PSA_ERROR_BAD_STATE );
|
||||||
@ -3855,7 +3858,7 @@ psa_status_t psa_cipher_update( psa_cipher_operation_t *operation,
|
|||||||
size_t *output_length )
|
size_t *output_length )
|
||||||
{
|
{
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t expected_output_size;
|
size_t expected_output_size;
|
||||||
|
|
||||||
if( operation->alg == 0 )
|
if( operation->alg == 0 )
|
||||||
@ -5365,7 +5368,7 @@ exit:
|
|||||||
psa_status_t psa_generate_random( uint8_t *output,
|
psa_status_t psa_generate_random( uint8_t *output,
|
||||||
size_t output_size )
|
size_t output_size )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
GUARD_MODULE_INITIALIZED;
|
GUARD_MODULE_INITIALIZED;
|
||||||
|
|
||||||
while( output_size > MBEDTLS_CTR_DRBG_MAX_REQUEST )
|
while( output_size > MBEDTLS_CTR_DRBG_MAX_REQUEST )
|
||||||
@ -5460,7 +5463,7 @@ static psa_status_t psa_generate_key_internal(
|
|||||||
if ( type == PSA_KEY_TYPE_RSA_KEY_PAIR )
|
if ( type == PSA_KEY_TYPE_RSA_KEY_PAIR )
|
||||||
{
|
{
|
||||||
mbedtls_rsa_context *rsa;
|
mbedtls_rsa_context *rsa;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
int exponent;
|
int exponent;
|
||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS )
|
if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS )
|
||||||
@ -5502,7 +5505,7 @@ static psa_status_t psa_generate_key_internal(
|
|||||||
const mbedtls_ecp_curve_info *curve_info =
|
const mbedtls_ecp_curve_info *curve_info =
|
||||||
mbedtls_ecp_curve_info_from_grp_id( grp_id );
|
mbedtls_ecp_curve_info_from_grp_id( grp_id );
|
||||||
mbedtls_ecp_keypair *ecp;
|
mbedtls_ecp_keypair *ecp;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
if( domain_parameters_size != 0 )
|
if( domain_parameters_size != 0 )
|
||||||
return( PSA_ERROR_NOT_SUPPORTED );
|
return( PSA_ERROR_NOT_SUPPORTED );
|
||||||
if( grp_id == MBEDTLS_ECP_DP_NONE || curve_info == NULL )
|
if( grp_id == MBEDTLS_ECP_DP_NONE || curve_info == NULL )
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/ripemd160.h"
|
#include "mbedtls/ripemd160.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -322,7 +323,7 @@ int mbedtls_ripemd160_update_ret( mbedtls_ripemd160_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
uint32_t left;
|
uint32_t left;
|
||||||
|
|
||||||
@ -390,7 +391,7 @@ static const unsigned char ripemd160_padding[64] =
|
|||||||
int mbedtls_ripemd160_finish_ret( mbedtls_ripemd160_context *ctx,
|
int mbedtls_ripemd160_finish_ret( mbedtls_ripemd160_context *ctx,
|
||||||
unsigned char output[20] )
|
unsigned char output[20] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint32_t last, padn;
|
uint32_t last, padn;
|
||||||
uint32_t high, low;
|
uint32_t high, low;
|
||||||
unsigned char msglen[8];
|
unsigned char msglen[8];
|
||||||
@ -439,7 +440,7 @@ int mbedtls_ripemd160_ret( const unsigned char *input,
|
|||||||
size_t ilen,
|
size_t ilen,
|
||||||
unsigned char output[20] )
|
unsigned char output[20] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_ripemd160_context ctx;
|
mbedtls_ripemd160_context ctx;
|
||||||
|
|
||||||
mbedtls_ripemd160_init( &ctx );
|
mbedtls_ripemd160_init( &ctx );
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "mbedtls/rsa_internal.h"
|
#include "mbedtls/rsa_internal.h"
|
||||||
#include "mbedtls/oid.h"
|
#include "mbedtls/oid.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -98,7 +99,7 @@ int mbedtls_rsa_import( mbedtls_rsa_context *ctx,
|
|||||||
const mbedtls_mpi *P, const mbedtls_mpi *Q,
|
const mbedtls_mpi *P, const mbedtls_mpi *Q,
|
||||||
const mbedtls_mpi *D, const mbedtls_mpi *E )
|
const mbedtls_mpi *D, const mbedtls_mpi *E )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
|
|
||||||
if( ( N != NULL && ( ret = mbedtls_mpi_copy( &ctx->N, N ) ) != 0 ) ||
|
if( ( N != NULL && ( ret = mbedtls_mpi_copy( &ctx->N, N ) ) != 0 ) ||
|
||||||
@ -392,7 +393,7 @@ int mbedtls_rsa_export( const mbedtls_rsa_context *ctx,
|
|||||||
mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q,
|
mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q,
|
||||||
mbedtls_mpi *D, mbedtls_mpi *E )
|
mbedtls_mpi *D, mbedtls_mpi *E )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
int is_priv;
|
int is_priv;
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
|
|
||||||
@ -436,7 +437,7 @@ int mbedtls_rsa_export( const mbedtls_rsa_context *ctx,
|
|||||||
int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx,
|
int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx,
|
||||||
mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP )
|
mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
int is_priv;
|
int is_priv;
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
|
|
||||||
@ -527,7 +528,7 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx,
|
|||||||
void *p_rng,
|
void *p_rng,
|
||||||
unsigned int nbits, int exponent )
|
unsigned int nbits, int exponent )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_mpi H, G, L;
|
mbedtls_mpi H, G, L;
|
||||||
int prime_quality = 0;
|
int prime_quality = 0;
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
@ -719,7 +720,7 @@ int mbedtls_rsa_public( mbedtls_rsa_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t olen;
|
size_t olen;
|
||||||
mbedtls_mpi T;
|
mbedtls_mpi T;
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
@ -832,7 +833,7 @@ int mbedtls_rsa_private( mbedtls_rsa_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t olen;
|
size_t olen;
|
||||||
|
|
||||||
/* Temporary holding the result */
|
/* Temporary holding the result */
|
||||||
@ -1125,7 +1126,7 @@ int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx,
|
|||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
size_t olen;
|
size_t olen;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p = output;
|
unsigned char *p = output;
|
||||||
unsigned int hlen;
|
unsigned int hlen;
|
||||||
const mbedtls_md_info_t *md_info;
|
const mbedtls_md_info_t *md_info;
|
||||||
@ -1212,7 +1213,7 @@ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx,
|
|||||||
unsigned char *output )
|
unsigned char *output )
|
||||||
{
|
{
|
||||||
size_t nb_pad, olen;
|
size_t nb_pad, olen;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *p = output;
|
unsigned char *p = output;
|
||||||
|
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
@ -1322,7 +1323,7 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx,
|
|||||||
unsigned char *output,
|
unsigned char *output,
|
||||||
size_t output_max_len )
|
size_t output_max_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t ilen, i, pad_len;
|
size_t ilen, i, pad_len;
|
||||||
unsigned char *p, bad, pad_done;
|
unsigned char *p, bad, pad_done;
|
||||||
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
|
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
|
||||||
@ -1558,7 +1559,7 @@ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx,
|
|||||||
unsigned char *output,
|
unsigned char *output,
|
||||||
size_t output_max_len )
|
size_t output_max_len )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t ilen, i, plaintext_max_size;
|
size_t ilen, i, plaintext_max_size;
|
||||||
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
|
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
|
||||||
/* The following variables take sensitive values: their value must
|
/* The following variables take sensitive values: their value must
|
||||||
@ -1774,7 +1775,7 @@ int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx,
|
|||||||
unsigned char *p = sig;
|
unsigned char *p = sig;
|
||||||
unsigned char salt[MBEDTLS_MD_MAX_SIZE];
|
unsigned char salt[MBEDTLS_MD_MAX_SIZE];
|
||||||
size_t slen, min_slen, hlen, offset = 0;
|
size_t slen, min_slen, hlen, offset = 0;
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t msb;
|
size_t msb;
|
||||||
const mbedtls_md_info_t *md_info;
|
const mbedtls_md_info_t *md_info;
|
||||||
mbedtls_md_context_t md_ctx;
|
mbedtls_md_context_t md_ctx;
|
||||||
@ -2029,7 +2030,7 @@ int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx,
|
|||||||
const unsigned char *hash,
|
const unsigned char *hash,
|
||||||
unsigned char *sig )
|
unsigned char *sig )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned char *sig_try = NULL, *verif = NULL;
|
unsigned char *sig_try = NULL, *verif = NULL;
|
||||||
|
|
||||||
RSA_VALIDATE_RET( ctx != NULL );
|
RSA_VALIDATE_RET( ctx != NULL );
|
||||||
@ -2151,7 +2152,7 @@ int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx,
|
|||||||
int expected_salt_len,
|
int expected_salt_len,
|
||||||
const unsigned char *sig )
|
const unsigned char *sig )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t siglen;
|
size_t siglen;
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
unsigned char *hash_start;
|
unsigned char *hash_start;
|
||||||
@ -2448,7 +2449,7 @@ int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx,
|
|||||||
*/
|
*/
|
||||||
int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src )
|
int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
RSA_VALIDATE_RET( dst != NULL );
|
RSA_VALIDATE_RET( dst != NULL );
|
||||||
RSA_VALIDATE_RET( src != NULL );
|
RSA_VALIDATE_RET( src != NULL );
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/sha1.h"
|
#include "mbedtls/sha1.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -307,7 +308,7 @@ int mbedtls_sha1_update_ret( mbedtls_sha1_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
uint32_t left;
|
uint32_t left;
|
||||||
|
|
||||||
@ -368,7 +369,7 @@ void mbedtls_sha1_update( mbedtls_sha1_context *ctx,
|
|||||||
int mbedtls_sha1_finish_ret( mbedtls_sha1_context *ctx,
|
int mbedtls_sha1_finish_ret( mbedtls_sha1_context *ctx,
|
||||||
unsigned char output[20] )
|
unsigned char output[20] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint32_t used;
|
uint32_t used;
|
||||||
uint32_t high, low;
|
uint32_t high, low;
|
||||||
|
|
||||||
@ -440,7 +441,7 @@ int mbedtls_sha1_ret( const unsigned char *input,
|
|||||||
size_t ilen,
|
size_t ilen,
|
||||||
unsigned char output[20] )
|
unsigned char output[20] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_sha1_context ctx;
|
mbedtls_sha1_context ctx;
|
||||||
|
|
||||||
SHA1_VALIDATE_RET( ilen == 0 || input != NULL );
|
SHA1_VALIDATE_RET( ilen == 0 || input != NULL );
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/sha256.h"
|
#include "mbedtls/sha256.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -275,7 +276,7 @@ int mbedtls_sha256_update_ret( mbedtls_sha256_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
uint32_t left;
|
uint32_t left;
|
||||||
|
|
||||||
@ -336,7 +337,7 @@ void mbedtls_sha256_update( mbedtls_sha256_context *ctx,
|
|||||||
int mbedtls_sha256_finish_ret( mbedtls_sha256_context *ctx,
|
int mbedtls_sha256_finish_ret( mbedtls_sha256_context *ctx,
|
||||||
unsigned char output[32] )
|
unsigned char output[32] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
uint32_t used;
|
uint32_t used;
|
||||||
uint32_t high, low;
|
uint32_t high, low;
|
||||||
|
|
||||||
@ -414,7 +415,7 @@ int mbedtls_sha256_ret( const unsigned char *input,
|
|||||||
unsigned char output[32],
|
unsigned char output[32],
|
||||||
int is224 )
|
int is224 )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_sha256_context ctx;
|
mbedtls_sha256_context ctx;
|
||||||
|
|
||||||
SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 );
|
SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 );
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "mbedtls/sha512.h"
|
#include "mbedtls/sha512.h"
|
||||||
#include "mbedtls/platform_util.h"
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__WATCOMC__)
|
#if defined(_MSC_VER) || defined(__WATCOMC__)
|
||||||
#define UL64(x) x##ui64
|
#define UL64(x) x##ui64
|
||||||
@ -323,7 +324,7 @@ int mbedtls_sha512_update_ret( mbedtls_sha512_context *ctx,
|
|||||||
const unsigned char *input,
|
const unsigned char *input,
|
||||||
size_t ilen )
|
size_t ilen )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t fill;
|
size_t fill;
|
||||||
unsigned int left;
|
unsigned int left;
|
||||||
|
|
||||||
@ -383,7 +384,7 @@ void mbedtls_sha512_update( mbedtls_sha512_context *ctx,
|
|||||||
int mbedtls_sha512_finish_ret( mbedtls_sha512_context *ctx,
|
int mbedtls_sha512_finish_ret( mbedtls_sha512_context *ctx,
|
||||||
unsigned char output[64] )
|
unsigned char output[64] )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
unsigned used;
|
unsigned used;
|
||||||
uint64_t high, low;
|
uint64_t high, low;
|
||||||
|
|
||||||
@ -463,7 +464,7 @@ int mbedtls_sha512_ret( const unsigned char *input,
|
|||||||
unsigned char output[64],
|
unsigned char output[64],
|
||||||
int is384 )
|
int is384 )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
mbedtls_sha512_context ctx;
|
mbedtls_sha512_context ctx;
|
||||||
|
|
||||||
SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 );
|
SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 );
|
||||||
|
@ -31,7 +31,7 @@ my $error_format_file = $data_dir.'/error.fmt';
|
|||||||
|
|
||||||
my @low_level_modules = qw( AES ARC4 ARIA ASN1 BASE64 BIGNUM BLOWFISH
|
my @low_level_modules = qw( AES ARC4 ARIA ASN1 BASE64 BIGNUM BLOWFISH
|
||||||
CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES
|
CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES
|
||||||
ENTROPY GCM HKDF HMAC_DRBG MD2 MD4 MD5
|
ENTROPY ERROR GCM HKDF HMAC_DRBG MD2 MD4 MD5
|
||||||
OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160
|
OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160
|
||||||
SHA1 SHA256 SHA512 THREADING XTEA );
|
SHA1 SHA256 SHA512 THREADING XTEA );
|
||||||
my @high_level_modules = qw( CIPHER DHM ECP MD
|
my @high_level_modules = qw( CIPHER DHM ECP MD
|
||||||
|
Loading…
Reference in New Issue
Block a user