mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	Add mbedtls_ecp_gen_keypair_base()
This commit is contained in:
		
							parent
							
								
									8489f17277
								
							
						
					
					
						commit
						d9a3f47ecd
					
				| @ -569,6 +569,29 @@ int mbedtls_ecp_check_pubkey( const mbedtls_ecp_group *grp, const mbedtls_ecp_po | |||||||
|  */ |  */ | ||||||
| int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, const mbedtls_mpi *d ); | int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, const mbedtls_mpi *d ); | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * \brief           Generate a keypair with configurable base point | ||||||
|  |  * | ||||||
|  |  * \param grp       ECP group | ||||||
|  |  * \param G         Chosen base point | ||||||
|  |  * \param d         Destination MPI (secret part) | ||||||
|  |  * \param Q         Destination point (public part) | ||||||
|  |  * \param f_rng     RNG function | ||||||
|  |  * \param p_rng     RNG parameter | ||||||
|  |  * | ||||||
|  |  * \return          0 if successful, | ||||||
|  |  *                  or a MBEDTLS_ERR_ECP_XXX or MBEDTLS_MPI_XXX error code | ||||||
|  |  * | ||||||
|  |  * \note            Uses bare components rather than an mbedtls_ecp_keypair structure | ||||||
|  |  *                  in order to ease use with other structures such as | ||||||
|  |  *                  mbedtls_ecdh_context of mbedtls_ecdsa_context. | ||||||
|  |  */ | ||||||
|  | int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp, | ||||||
|  |                      const mbedtls_ecp_point *G, | ||||||
|  |                      mbedtls_mpi *d, mbedtls_ecp_point *Q, | ||||||
|  |                      int (*f_rng)(void *, unsigned char *, size_t), | ||||||
|  |                      void *p_rng ); | ||||||
|  | 
 | ||||||
| /**
 | /**
 | ||||||
|  * \brief           Generate a keypair |  * \brief           Generate a keypair | ||||||
|  * |  * | ||||||
|  | |||||||
| @ -1761,9 +1761,11 @@ int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, const mbedtls_mpi * | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Generate a keypair |  * Generate a keypair with configurable base point | ||||||
|  */ |  */ | ||||||
| int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q, | int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp, | ||||||
|  |                      const mbedtls_ecp_point *G, | ||||||
|  |                      mbedtls_mpi *d, mbedtls_ecp_point *Q, | ||||||
|                      int (*f_rng)(void *, unsigned char *, size_t), |                      int (*f_rng)(void *, unsigned char *, size_t), | ||||||
|                      void *p_rng ) |                      void *p_rng ) | ||||||
| { | { | ||||||
| @ -1835,7 +1837,18 @@ cleanup: | |||||||
|     if( ret != 0 ) |     if( ret != 0 ) | ||||||
|         return( ret ); |         return( ret ); | ||||||
| 
 | 
 | ||||||
|     return( mbedtls_ecp_mul( grp, Q, d, &grp->G, f_rng, p_rng ) ); |     return( mbedtls_ecp_mul( grp, Q, d, G, f_rng, p_rng ) ); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Generate key pair, wrapper for conventional base point | ||||||
|  |  */ | ||||||
|  | int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp, | ||||||
|  |                              mbedtls_mpi *d, mbedtls_ecp_point *Q, | ||||||
|  |                              int (*f_rng)(void *, unsigned char *, size_t), | ||||||
|  |                              void *p_rng ) | ||||||
|  | { | ||||||
|  |     return( mbedtls_ecp_gen_keypair_base( grp, &grp->G, d, Q, f_rng, p_rng ) ); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Manuel Pégourié-Gonnard
						Manuel Pégourié-Gonnard