Add ecp_genkey(), prettier wrapper
This commit is contained in:
parent
76f03118c4
commit
104ee1d1f6
@ -535,6 +535,20 @@ int ecp_gen_keypair( ecp_group *grp, mpi *d, 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 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Generate a keypair
|
||||||
|
*
|
||||||
|
* \param grp_id ECP group identifier
|
||||||
|
* \param key Destination keypair
|
||||||
|
* \param f_rng RNG function
|
||||||
|
* \param p_rng RNG parameter
|
||||||
|
*
|
||||||
|
* \return 0 if successful,
|
||||||
|
* or a POLARSSL_ERR_ECP_XXX or POLARSSL_MPI_XXX error code
|
||||||
|
*/
|
||||||
|
int ecp_gen_key( ecp_group_id grp_id, ecp_keypair *key,
|
||||||
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Checkup routine
|
* \brief Checkup routine
|
||||||
*
|
*
|
||||||
|
@ -1669,6 +1669,20 @@ int ecp_gen_keypair( ecp_group *grp, mpi *d, ecp_point *Q,
|
|||||||
return( ecp_mul( grp, Q, d, &grp->G, f_rng, p_rng ) );
|
return( ecp_mul( grp, Q, d, &grp->G, f_rng, p_rng ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generate a keypair, prettier wrapper
|
||||||
|
*/
|
||||||
|
int ecp_gen_key( ecp_group_id grp_id, ecp_keypair *key,
|
||||||
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if( ( ret = ecp_use_known_dp( &key->grp, grp_id ) ) != 0 )
|
||||||
|
return( ret );
|
||||||
|
|
||||||
|
return( ecp_gen_keypair( &key->grp, &key->d, &key->Q, f_rng, p_rng ) );
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(POLARSSL_ECP_NIST_OPTIM)
|
#if defined(POLARSSL_ECP_NIST_OPTIM)
|
||||||
/*
|
/*
|
||||||
* Fast reduction modulo the primes used by the NIST curves.
|
* Fast reduction modulo the primes used by the NIST curves.
|
||||||
|
@ -247,6 +247,10 @@ ECP gen keypair
|
|||||||
depends_on:POLARSSL_ECP_DP_SECP192R1_ENABLED
|
depends_on:POLARSSL_ECP_DP_SECP192R1_ENABLED
|
||||||
ecp_gen_keypair:POLARSSL_ECP_DP_SECP192R1
|
ecp_gen_keypair:POLARSSL_ECP_DP_SECP192R1
|
||||||
|
|
||||||
|
ECP gen keypair wrapper
|
||||||
|
depends_on:POLARSSL_ECP_DP_SECP192R1_ENABLED
|
||||||
|
ecp_gen_key:POLARSSL_ECP_DP_SECP192R1
|
||||||
|
|
||||||
ECP mod p192 small (more than 192 bits, less limbs than 2 * 192 bits)
|
ECP mod p192 small (more than 192 bits, less limbs than 2 * 192 bits)
|
||||||
depends_on:POLARSSL_ECP_DP_SECP192R1_ENABLED
|
depends_on:POLARSSL_ECP_DP_SECP192R1_ENABLED
|
||||||
ecp_fast_mod:POLARSSL_ECP_DP_SECP192R1:"0100000000000103010000000000010201000000000001010100000000000100"
|
ecp_fast_mod:POLARSSL_ECP_DP_SECP192R1:"0100000000000103010000000000010201000000000001010100000000000100"
|
||||||
|
@ -522,6 +522,24 @@ void ecp_gen_keypair( int id )
|
|||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
|
||||||
|
/* BEGIN_CASE */
|
||||||
|
void ecp_gen_key( int id )
|
||||||
|
{
|
||||||
|
ecp_keypair key;
|
||||||
|
rnd_pseudo_info rnd_info;
|
||||||
|
|
||||||
|
ecp_keypair_init( &key );
|
||||||
|
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||||
|
|
||||||
|
TEST_ASSERT( ecp_gen_key( id, &key, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||||
|
|
||||||
|
TEST_ASSERT( ecp_check_pubkey( &key.grp, &key.Q ) == 0 );
|
||||||
|
TEST_ASSERT( ecp_check_privkey( &key.grp, &key.d ) == 0 );
|
||||||
|
|
||||||
|
ecp_keypair_free( &key );
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
||||||
|
|
||||||
/* BEGIN_CASE depends_on:POLARSSL_SELF_TEST */
|
/* BEGIN_CASE depends_on:POLARSSL_SELF_TEST */
|
||||||
void ecp_selftest()
|
void ecp_selftest()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user