mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	Merge branch 'pr_1480' into development-proposed
This commit is contained in:
		
						commit
						90a8b5219f
					
				| @ -63,6 +63,8 @@ Changes | |||||||
|      Alex Hixon. |      Alex Hixon. | ||||||
|    * Allow configuring the shared library extension by setting the DLEXT |    * Allow configuring the shared library extension by setting the DLEXT | ||||||
|      environment variable when using the project makefiles. |      environment variable when using the project makefiles. | ||||||
|  |    * Optimize unnecessary zeroing in mbedtls_mpi_copy. Based on a contribution | ||||||
|  |      by Alexey Skalozub in #405. | ||||||
| 
 | 
 | ||||||
| = mbed TLS 2.8.0 branch released 2018-03-16 | = mbed TLS 2.8.0 branch released 2018-03-16 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -204,6 +204,8 @@ void mbedtls_mpi_free( mbedtls_mpi *X ); | |||||||
| /**
 | /**
 | ||||||
|  * \brief          Enlarge to the specified number of limbs |  * \brief          Enlarge to the specified number of limbs | ||||||
|  * |  * | ||||||
|  |  *                 This function does nothing if the MPI is already large enough. | ||||||
|  |  * | ||||||
|  * \param X        MPI to grow |  * \param X        MPI to grow | ||||||
|  * \param nblimbs  The target number of limbs |  * \param nblimbs  The target number of limbs | ||||||
|  * |  * | ||||||
| @ -215,19 +217,23 @@ int mbedtls_mpi_grow( mbedtls_mpi *X, size_t nblimbs ); | |||||||
| /**
 | /**
 | ||||||
|  * \brief          Resize down, keeping at least the specified number of limbs |  * \brief          Resize down, keeping at least the specified number of limbs | ||||||
|  * |  * | ||||||
|  |  *                 If \c X is smaller than \c nblimbs, it is resized up | ||||||
|  |  *                 instead. | ||||||
|  |  * | ||||||
|  * \param X        MPI to shrink |  * \param X        MPI to shrink | ||||||
|  * \param nblimbs  The minimum number of limbs to keep |  * \param nblimbs  The minimum number of limbs to keep | ||||||
|  * |  * | ||||||
|  * \return         0 if successful, |  * \return         0 if successful, | ||||||
|  *                 MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed |  *                 MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed | ||||||
|  |  *                 (this can only happen when resizing up). | ||||||
|  */ |  */ | ||||||
| int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ); | int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ); | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * \brief          Copy the contents of Y into X |  * \brief          Copy the contents of Y into X | ||||||
|  * |  * | ||||||
|  * \param X        Destination MPI |  * \param X        Destination MPI. It is enlarged if necessary. | ||||||
|  * \param Y        Source MPI |  * \param Y        Source MPI. | ||||||
|  * |  * | ||||||
|  * \return         0 if successful, |  * \return         0 if successful, | ||||||
|  *                 MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed |  *                 MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed | ||||||
|  | |||||||
| @ -184,7 +184,7 @@ int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ) | |||||||
|  */ |  */ | ||||||
| int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ) | int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ) | ||||||
| { | { | ||||||
|     int ret; |     int ret = 0; | ||||||
|     size_t i; |     size_t i; | ||||||
| 
 | 
 | ||||||
|     if( X == Y ) |     if( X == Y ) | ||||||
| @ -203,9 +203,15 @@ int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ) | |||||||
| 
 | 
 | ||||||
|     X->s = Y->s; |     X->s = Y->s; | ||||||
| 
 | 
 | ||||||
|     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i ) ); |     if( X->n < i ) | ||||||
|  |     { | ||||||
|  |         MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i ) ); | ||||||
|  |     } | ||||||
|  |     else | ||||||
|  |     { | ||||||
|  |         memset( X->p + i, 0, ( X->n - i ) * ciL ); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     memset( X->p, 0, X->n * ciL ); |  | ||||||
|     memcpy( X->p, Y->p, i * ciL ); |     memcpy( X->p, Y->p, i * ciL ); | ||||||
| 
 | 
 | ||||||
| cleanup: | cleanup: | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gilles Peskine
						Gilles Peskine