mirror of
				https://github.com/Mbed-TLS/mbedtls.git
				synced 2025-10-27 12:15:33 +03:00 
			
		
		
		
	To silence no previous prototype warnings. And this is the proper way to do it anyway. Signed-off-by: Janos Follath <janos.follath@arm.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * \file bignum_internal.h
 | |
|  *
 | |
|  * \brief Internal-only bignum public-key cryptosystem API.
 | |
|  *
 | |
|  * This file declares bignum-related functions that are to be used
 | |
|  * only from within the Mbed TLS library itself.
 | |
|  *
 | |
|  */
 | |
| /*
 | |
|  *  Copyright The Mbed TLS Contributors
 | |
|  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
 | |
|  */
 | |
| #ifndef MBEDTLS_BIGNUM_INTERNAL_H
 | |
| #define MBEDTLS_BIGNUM_INTERNAL_H
 | |
| 
 | |
| /**
 | |
|  * \brief          Perform a modular exponentiation: X = A^E mod N
 | |
|  *
 | |
|  * \warning        This function is not constant time with respect to \p E (the exponent).
 | |
|  *
 | |
|  * \param X        The destination MPI. This must point to an initialized MPI.
 | |
|  *                 This must not alias E or N.
 | |
|  * \param A        The base of the exponentiation.
 | |
|  *                 This must point to an initialized MPI.
 | |
|  * \param E        The exponent MPI. This must point to an initialized MPI.
 | |
|  * \param N        The base for the modular reduction. This must point to an
 | |
|  *                 initialized MPI.
 | |
|  * \param prec_RR  A helper MPI depending solely on \p N which can be used to
 | |
|  *                 speed-up multiple modular exponentiations for the same value
 | |
|  *                 of \p N. This may be \c NULL. If it is not \c NULL, it must
 | |
|  *                 point to an initialized MPI. If it hasn't been used after
 | |
|  *                 the call to mbedtls_mpi_init(), this function will compute
 | |
|  *                 the helper value and store it in \p prec_RR for reuse on
 | |
|  *                 subsequent calls to this function. Otherwise, the function
 | |
|  *                 will assume that \p prec_RR holds the helper value set by a
 | |
|  *                 previous call to mbedtls_mpi_exp_mod(), and reuse it.
 | |
|  *
 | |
|  * \return         \c 0 if successful.
 | |
|  * \return         #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
 | |
|  * \return         #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \c N is negative or
 | |
|  *                 even, or if \c E is negative.
 | |
|  * \return         Another negative error code on different kinds of failures.
 | |
|  *
 | |
|  */
 | |
| int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A,
 | |
|                                const mbedtls_mpi *E, const mbedtls_mpi *N,
 | |
|                                mbedtls_mpi *prec_RR);
 | |
| 
 | |
| #endif /* bignum_internal.h */
 |