1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-07-30 22:43:08 +03:00

- Improved information provided about current Hashing, Cipher and Suite capabilities

This commit is contained in:
Paul Bakker
2011-01-16 21:27:44 +00:00
parent 76fd75a3de
commit 72f6266f02
7 changed files with 167 additions and 18 deletions

View File

@ -37,6 +37,34 @@
#include <string.h>
#include <stdlib.h>
static const int supported_ciphers[] = {
#if defined(POLARSSL_AES_C)
POLARSSL_CIPHER_AES_128_CBC,
POLARSSL_CIPHER_AES_192_CBC,
POLARSSL_CIPHER_AES_256_CBC,
#endif /* defined(POLARSSL_AES_C) */
#if defined(POLARSSL_CAMELLIA_C)
POLARSSL_CIPHER_CAMELLIA_128_CBC,
POLARSSL_CIPHER_CAMELLIA_192_CBC,
POLARSSL_CIPHER_CAMELLIA_256_CBC,
#endif /* defined(POLARSSL_CAMELLIA_C) */
#if defined(POLARSSL_DES_C)
POLARSSL_CIPHER_DES_CBC,
POLARSSL_CIPHER_DES_EDE_CBC,
POLARSSL_CIPHER_DES_EDE3_CBC,
#endif /* defined(POLARSSL_DES_C) */
0
};
const int *cipher_list( void )
{
return supported_ciphers;
}
const cipher_info_t *cipher_info_from_type( cipher_type_t cipher_type )
{
/* Find static cipher information */

View File

@ -37,6 +37,42 @@
#include <string.h>
#include <stdlib.h>
static const int supported_digests[] = {
#if defined(POLARSSL_MD2_C)
POLARSSL_MD_MD2,
#endif
#if defined(POLARSSL_MD4_C)
POLARSSL_MD_MD4,
#endif
#if defined(POLARSSL_MD5_C)
POLARSSL_MD_MD5,
#endif
#if defined(POLARSSL_SHA1_C)
POLARSSL_MD_SHA1,
#endif
#if defined(POLARSSL_SHA2_C)
POLARSSL_MD_SHA224,
POLARSSL_MD_SHA256,
#endif
#if defined(POLARSSL_SHA4_C)
POLARSSL_MD_SHA384,
POLARSSL_MD_SHA512,
#endif
0
};
const int *md_list( void )
{
return supported_digests;
}
const md_info_t *md_info_from_string( const char *md_name )
{
if( NULL == md_name )

View File

@ -1863,52 +1863,52 @@ int ssl_get_verify_result( const ssl_context *ssl )
return( ssl->verify_result );
}
const char *ssl_get_cipher( const ssl_context *ssl )
const char *ssl_get_cipher_name( const int cipher_id )
{
switch( ssl->session->cipher )
switch( cipher_id )
{
#if defined(POLARSSL_ARC4_C)
case SSL_RSA_RC4_128_MD5:
return( "SSL_RSA_RC4_128_MD5" );
return( "SSL-RSA-RC4-128-MD5" );
case SSL_RSA_RC4_128_SHA:
return( "SSL_RSA_RC4_128_SHA" );
return( "SSL-RSA-RC4-128-SHA" );
#endif
#if defined(POLARSSL_DES_C)
case SSL_RSA_DES_168_SHA:
return( "SSL_RSA_DES_168_SHA" );
return( "SSL-RSA-DES-168-SHA" );
case SSL_EDH_RSA_DES_168_SHA:
return( "SSL_EDH_RSA_DES_168_SHA" );
return( "SSL-EDH-RSA-DES-168-SHA" );
#endif
#if defined(POLARSSL_AES_C)
case SSL_RSA_AES_128_SHA:
return( "SSL_RSA_AES_128_SHA" );
return( "SSL-RSA-AES-128-SHA" );
case SSL_EDH_RSA_AES_128_SHA:
return( "SSL_EDH_RSA_AES_128_SHA" );
return( "SSL-EDH-RSA-AES-128-SHA" );
case SSL_RSA_AES_256_SHA:
return( "SSL_RSA_AES_256_SHA" );
return( "SSL-RSA-AES-256-SHA" );
case SSL_EDH_RSA_AES_256_SHA:
return( "SSL_EDH_RSA_AES_256_SHA" );
return( "SSL-EDH-RSA-AES-256-SHA" );
#endif
#if defined(POLARSSL_CAMELLIA_C)
case SSL_RSA_CAMELLIA_128_SHA:
return( "SSL_RSA_CAMELLIA_128_SHA" );
return( "SSL-RSA-CAMELLIA-128-SHA" );
case SSL_EDH_RSA_CAMELLIA_128_SHA:
return( "SSL_EDH_RSA_CAMELLIA_128_SHA" );
return( "SSL-EDH-RSA-CAMELLIA-128-SHA" );
case SSL_RSA_CAMELLIA_256_SHA:
return( "SSL_RSA_CAMELLIA_256_SHA" );
return( "SSL-RSA-CAMELLIA-256-SHA" );
case SSL_EDH_RSA_CAMELLIA_256_SHA:
return( "SSL_EDH_RSA_CAMELLIA_256_SHA" );
return( "SSL-EDH-RSA-CAMELLIA-256-SHA" );
#endif
default:
@ -1918,6 +1918,52 @@ const char *ssl_get_cipher( const ssl_context *ssl )
return( "unknown" );
}
int ssl_get_cipher_id( const char *cipher_name )
{
#if defined(POLARSSL_ARC4_C)
if (0 == strcasecmp(cipher_name, "SSL-RSA-RC4-128-MD5"))
return( SSL_RSA_RC4_128_MD5 );
if (0 == strcasecmp(cipher_name, "SSL-RSA-RC4-128-SHA"))
return( SSL_RSA_RC4_128_SHA );
#endif
#if defined(POLARSSL_DES_C)
if (0 == strcasecmp(cipher_name, "SSL-RSA-DES-168-SHA"))
return( SSL_RSA_DES_168_SHA );
if (0 == strcasecmp(cipher_name, "SSL-EDH-RSA-DES-168-SHA"))
return( SSL_EDH_RSA_DES_168_SHA );
#endif
#if defined(POLARSSL_AES_C)
if (0 == strcasecmp(cipher_name, "SSL-RSA-AES-128-SHA"))
return( SSL_RSA_AES_128_SHA );
if (0 == strcasecmp(cipher_name, "SSL-EDH-RSA-AES-128-SHA"))
return( SSL_EDH_RSA_AES_128_SHA );
if (0 == strcasecmp(cipher_name, "SSL-RSA-AES-256-SHA"))
return( SSL_RSA_AES_256_SHA );
if (0 == strcasecmp(cipher_name, "SSL-EDH-RSA-AES-256-SHA"))
return( SSL_EDH_RSA_AES_256_SHA );
#endif
#if defined(POLARSSL_CAMELLIA_C)
if (0 == strcasecmp(cipher_name, "SSL-RSA-CAMELLIA-128-SHA"))
return( SSL_RSA_CAMELLIA_128_SHA );
if (0 == strcasecmp(cipher_name, "SSL-EDH-RSA-CAMELLIA-128-SHA"))
return( SSL_EDH_RSA_CAMELLIA_128_SHA );
if (0 == strcasecmp(cipher_name, "SSL-RSA-CAMELLIA-256-SHA"))
return( SSL_RSA_CAMELLIA_256_SHA );
if (0 == strcasecmp(cipher_name, "SSL-EDH-RSA-CAMELLIA-256-SHA"))
return( SSL_EDH_RSA_CAMELLIA_256_SHA );
#endif
return( 0 );
}
const char *ssl_get_cipher( const ssl_context *ssl )
{
return ssl_get_cipher_name( ssl->session->cipher );
}
const char *ssl_get_version( const ssl_context *ssl )
{
switch( ssl->minor_ver )