Commit 360a5830 authored by Manuel Pégourié-Gonnard's avatar Manuel Pégourié-Gonnard Committed by Paul Bakker
Browse files

Adapt x509parse_cert_info() for EC

parent 674b2243
...@@ -36,6 +36,27 @@ ...@@ -36,6 +36,27 @@
#define POLARSSL_ERR_PK_MALLOC_FAILED -0x2F80 /**< Memory alloation failed. */ #define POLARSSL_ERR_PK_MALLOC_FAILED -0x2F80 /**< Memory alloation failed. */
#define POLARSSL_ERR_PK_TYPE_MISMATCH -0x2F00 /**< Type mismatch, eg attempt to use a RSA key as EC, or to modify key type */ #define POLARSSL_ERR_PK_TYPE_MISMATCH -0x2F00 /**< Type mismatch, eg attempt to use a RSA key as EC, or to modify key type */
#if defined(POLARSSL_RSA_C)
/**
* Quick access to an RSA context inside a PK context.
*
* \warning You must make sure the PK context actually holds an RSA context
* before using this macro!
*/
#define pk_rsa( pk ) ( (rsa_context *) pk.data )
#endif
#if defined(POLARSSL_ECP_C)
/**
* Quick access to an EC context inside a PK context.
*
* \warning You must make sure the PK context actually holds an EC context
* before using this macro!
*/
#define pk_ec( pk ) ( (ecp_keypair *) pk.data )
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
......
...@@ -3341,8 +3341,23 @@ int x509parse_cert_info( char *buf, size_t size, const char *prefix, ...@@ -3341,8 +3341,23 @@ int x509parse_cert_info( char *buf, size_t size, const char *prefix,
ret = snprintf( p, n, desc ); ret = snprintf( p, n, desc );
SAFE_SNPRINTF(); SAFE_SNPRINTF();
ret = snprintf( p, n, "\n%sRSA key size : %d bits\n", prefix, switch( crt->pk.type )
(int) crt->rsa.N.n * (int) sizeof( t_uint ) * 8 ); {
case POLARSSL_PK_NONE:
case POLARSSL_PK_ECDSA:
ret = snprintf(p, n, "\n%sPK type looks wrong!", prefix);
break;
case POLARSSL_PK_RSA:
ret = snprintf( p, n, "\n%sRSA key size : %d bits\n", prefix,
(int) pk_rsa( crt->pk )->N.n * (int) sizeof( t_uint ) * 8 );
break;
case POLARSSL_PK_ECKEY:
case POLARSSL_PK_ECKEY_DH:
ret = snprintf( p, n, "\n%sEC key size : %d bits\n", prefix,
(int) pk_ec( crt->pk )->grp.pbits );
}
SAFE_SNPRINTF(); SAFE_SNPRINTF();
return( (int) ( size - n ) ); return( (int) ( size - n ) );
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment