mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-31 11:40:51 -04:00 
			
		
		
		
	Propagate usage of mask generation functions
Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
This commit is contained in:
		
							parent
							
								
									396438c57b
								
							
						
					
					
						commit
						9cb55698aa
					
				| @ -96,6 +96,24 @@ size_t mbedtls_cf_size_mask( size_t value ) | |||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #if defined(MBEDTLS_BIGNUM_C) | ||||||
|  | 
 | ||||||
|  | mbedtls_mpi_uint mbedtls_cf_mpi_uint_mask( mbedtls_mpi_uint value ) | ||||||
|  | { | ||||||
|  |     /* MSVC has a warning about unary minus on unsigned, but this is
 | ||||||
|  |      * well-defined and precisely what we want to do here */ | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | #pragma warning( push ) | ||||||
|  | #pragma warning( disable : 4146 ) | ||||||
|  | #endif | ||||||
|  |     return( - ( ( value | - value ) >> ( sizeof( value ) * 8 - 1 ) ) ); | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | #pragma warning( pop ) | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif /* MBEDTLS_BIGNUM_C */ | ||||||
|  | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Constant-flow mask generation for "less than" comparison: |  * Constant-flow mask generation for "less than" comparison: | ||||||
|  * - if x < y,  return all bits 1, that is (size_t) -1 |  * - if x < y,  return all bits 1, that is (size_t) -1 | ||||||
| @ -526,21 +544,8 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, | |||||||
|     MPI_VALIDATE_RET( X != NULL ); |     MPI_VALIDATE_RET( X != NULL ); | ||||||
|     MPI_VALIDATE_RET( Y != NULL ); |     MPI_VALIDATE_RET( Y != NULL ); | ||||||
| 
 | 
 | ||||||
|     /* MSVC has a warning about unary minus on unsigned integer types,
 |  | ||||||
|      * but this is well-defined and precisely what we want to do here. */ |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( push ) |  | ||||||
| #pragma warning( disable : 4146 ) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
|     /* make sure assign is 0 or 1 in a time-constant manner */ |  | ||||||
|     assign = (assign | (unsigned char)-assign) >> (sizeof( assign ) * 8 - 1); |  | ||||||
|     /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ |     /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ | ||||||
|     limb_mask = -assign; |     limb_mask = mbedtls_cf_mpi_uint_mask( assign );; | ||||||
| 
 |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( pop ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
|     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); |     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); | ||||||
| 
 | 
 | ||||||
| @ -575,21 +580,8 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, | |||||||
|     if( X == Y ) |     if( X == Y ) | ||||||
|         return( 0 ); |         return( 0 ); | ||||||
| 
 | 
 | ||||||
|     /* MSVC has a warning about unary minus on unsigned integer types,
 |  | ||||||
|      * but this is well-defined and precisely what we want to do here. */ |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( push ) |  | ||||||
| #pragma warning( disable : 4146 ) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
|     /* make sure swap is 0 or 1 in a time-constant manner */ |  | ||||||
|     swap = (swap | (unsigned char)-swap) >> (sizeof( swap ) * 8 - 1); |  | ||||||
|     /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ |     /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ | ||||||
|     limb_mask = -swap; |     limb_mask = mbedtls_cf_mpi_uint_mask( swap ); | ||||||
| 
 |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( pop ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
|     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); |     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); | ||||||
|     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( Y, X->n ) ); |     MBEDTLS_MPI_CHK( mbedtls_mpi_grow( Y, X->n ) ); | ||||||
|  | |||||||
| @ -38,6 +38,12 @@ unsigned mbedtls_cf_uint_mask( unsigned value ); | |||||||
| 
 | 
 | ||||||
| size_t mbedtls_cf_size_mask( size_t value ); | size_t mbedtls_cf_size_mask( size_t value ); | ||||||
| 
 | 
 | ||||||
|  | #if defined(MBEDTLS_BIGNUM_C) | ||||||
|  | 
 | ||||||
|  | mbedtls_mpi_uint mbedtls_cf_mpi_uint_mask( mbedtls_mpi_uint value ); | ||||||
|  | 
 | ||||||
|  | #endif /* MBEDTLS_BIGNUM_C */ | ||||||
|  | 
 | ||||||
| size_t mbedtls_cf_size_mask_lt( size_t x, | size_t mbedtls_cf_size_mask_lt( size_t x, | ||||||
|                                 size_t y ); |                                 size_t y ); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3581,16 +3581,7 @@ static int ssl_parse_encrypted_pms( mbedtls_ssl_context *ssl, | |||||||
|     diff |= peer_pms[1] ^ ver[1]; |     diff |= peer_pms[1] ^ ver[1]; | ||||||
| 
 | 
 | ||||||
|     /* mask = diff ? 0xff : 0x00 using bit operations to avoid branches */ |     /* mask = diff ? 0xff : 0x00 using bit operations to avoid branches */ | ||||||
|     /* MSVC has a warning about unary minus on unsigned, but this is
 |     mask = mbedtls_cf_uint_mask( diff ); | ||||||
|      * well-defined and precisely what we want to do here */ |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( push ) |  | ||||||
| #pragma warning( disable : 4146 ) |  | ||||||
| #endif |  | ||||||
|     mask = - ( ( diff | - diff ) >> ( sizeof( unsigned int ) * 8 - 1 ) ); |  | ||||||
| #if defined(_MSC_VER) |  | ||||||
| #pragma warning( pop ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
|     /*
 |     /*
 | ||||||
|      * Protection against Bleichenbacher's attack: invalid PKCS#1 v1.5 padding |      * Protection against Bleichenbacher's attack: invalid PKCS#1 v1.5 padding | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 gabor-mezei-arm
						gabor-mezei-arm