diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h index da938021fb..beecd898ed 100644 --- a/include/polarssl/bignum.h +++ b/include/polarssl/bignum.h @@ -70,14 +70,15 @@ #define POLARSSL_MPI_MAX_BITS ( 8 * POLARSSL_MPI_MAX_SIZE ) /**< Maximum number of bits for usable MPIs. */ /* - * When reading from files with mpi_read_file() the buffer should have space + * When reading from files with mpi_read_file() and writing to files with + * mpi_write_file() the buffer should have space * for a (short) label, the MPI (in the provided radix), the newline * characters and the '\0'. * * By default we assume at least a 10 char label, a minimum radix of 10 * (decimal) and a maximum of 4096 bit numbers (1234 decimal chars). */ -#define POLARSSL_MPI_READ_BUFFER_SIZE 1250 +#define POLARSSL_MPI_RW_BUFFER_SIZE 1250 /* * Define the base integer type, architecture-wise diff --git a/library/bignum.c b/library/bignum.c index 9af6980c6e..cbd25ab555 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -444,7 +444,7 @@ int mpi_read_file( mpi *X, int radix, FILE *fin ) * Buffer should have space for (short) label and decimal formatted MPI, * newline characters and '\0' */ - char s[ POLARSSL_MPI_READ_BUFFER_SIZE ]; + char s[ POLARSSL_MPI_RW_BUFFER_SIZE ]; memset( s, 0, sizeof( s ) ); if( fgets( s, sizeof( s ) - 1, fin ) == NULL ) @@ -473,9 +473,10 @@ int mpi_write_file( const char *p, const mpi *X, int radix, FILE *fout ) int ret; size_t n, slen, plen; /* - * Buffer should have space for minus sign, hexified MPI and '\0' + * Buffer should have space for (short) label and decimal formatted MPI, + * newline characters and '\0' */ - char s[ 2 * POLARSSL_MPI_MAX_SIZE + 2 ]; + char s[ POLARSSL_MPI_RW_BUFFER_SIZE ]; n = sizeof( s ); memset( s, 0, n );