X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=tools%2Fnames.c;h=3ea7f1b31f7e1a4ce6000f79003896d38f07f5ac;hp=438f41a6d01146ba6e251b8ed960cbdd5b7f3054;hb=e37c90ac68c4a42417e0302343de87c9e340803e;hpb=3655193439d4e093bb80a2f0d9e02179d424de08 diff --git a/tools/names.c b/tools/names.c index 438f41a..3ea7f1b 100644 --- a/tools/names.c +++ b/tools/names.c @@ -82,6 +82,30 @@ const cipher_suite cipher_suites[] = { REQ_ECDHE_RSA | REQ_AESGCM | REQ_SHA384 | REQ_TLS12, "ECDHE with RSA, AES-256/GCM encryption (TLS 1.2+)" }, + { + "ECDHE_ECDSA_WITH_AES_128_CCM", + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, + REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "ECDHE with ECDSA, AES-128/CCM encryption (TLS 1.2+)" + }, + { + "ECDHE_ECDSA_WITH_AES_256_CCM", + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, + REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "ECDHE with ECDSA, AES-256/CCM encryption (TLS 1.2+)" + }, + { + "ECDHE_ECDSA_WITH_AES_128_CCM_8", + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, + REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "ECDHE with ECDSA, AES-128/CCM_8 encryption (TLS 1.2+)" + }, + { + "ECDHE_ECDSA_WITH_AES_256_CCM_8", + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, + REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "ECDHE with ECDSA, AES-256/CCM_8 encryption (TLS 1.2+)" + }, { "ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, @@ -214,6 +238,30 @@ const cipher_suite cipher_suites[] = { REQ_RSAKEYX | REQ_AESGCM | REQ_SHA384 | REQ_TLS12, "RSA key exchange, AES-256/GCM encryption (TLS 1.2+)" }, + { + "RSA_WITH_AES_128_CCM", + BR_TLS_RSA_WITH_AES_128_CCM, + REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "RSA key exchange, AES-128/CCM encryption (TLS 1.2+)" + }, + { + "RSA_WITH_AES_256_CCM", + BR_TLS_RSA_WITH_AES_256_CCM, + REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "RSA key exchange, AES-256/CCM encryption (TLS 1.2+)" + }, + { + "RSA_WITH_AES_128_CCM_8", + BR_TLS_RSA_WITH_AES_128_CCM_8, + REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "RSA key exchange, AES-128/CCM_8 encryption (TLS 1.2+)" + }, + { + "RSA_WITH_AES_256_CCM_8", + BR_TLS_RSA_WITH_AES_256_CCM_8, + REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12, + "RSA key exchange, AES-256/CCM_8 encryption (TLS 1.2+)" + }, { "RSA_WITH_AES_128_CBC_SHA256", BR_TLS_RSA_WITH_AES_128_CBC_SHA256, @@ -271,7 +319,7 @@ const cipher_suite cipher_suites[] = { { NULL, 0, 0, NULL } }; -static struct { +static const struct { int id; const char *name; } curves[] = { @@ -338,6 +386,130 @@ static struct { { 0, 0 } }; +static const struct { + const char *long_name; + const char *short_name; + const void *impl; +} algo_names[] = { + /* Block ciphers */ + { "aes_big_cbcenc", "big", &br_aes_big_cbcenc_vtable }, + { "aes_big_cbcdec", "big", &br_aes_big_cbcdec_vtable }, + { "aes_big_ctr", "big", &br_aes_big_ctr_vtable }, + { "aes_big_ctrcbc", "big", &br_aes_big_ctrcbc_vtable }, + { "aes_small_cbcenc", "small", &br_aes_small_cbcenc_vtable }, + { "aes_small_cbcdec", "small", &br_aes_small_cbcdec_vtable }, + { "aes_small_ctr", "small", &br_aes_small_ctr_vtable }, + { "aes_small_ctrcbc", "small", &br_aes_small_ctrcbc_vtable }, + { "aes_ct_cbcenc", "ct", &br_aes_ct_cbcenc_vtable }, + { "aes_ct_cbcdec", "ct", &br_aes_ct_cbcdec_vtable }, + { "aes_ct_ctr", "ct", &br_aes_ct_ctr_vtable }, + { "aes_ct_ctrcbc", "ct", &br_aes_ct_ctrcbc_vtable }, + { "aes_ct64_cbcenc", "ct64", &br_aes_ct64_cbcenc_vtable }, + { "aes_ct64_cbcdec", "ct64", &br_aes_ct64_cbcdec_vtable }, + { "aes_ct64_ctr", "ct64", &br_aes_ct64_ctr_vtable }, + { "aes_ct64_ctrcbc", "ct64", &br_aes_ct64_ctrcbc_vtable }, + + { "des_tab_cbcenc", "tab", &br_des_tab_cbcenc_vtable }, + { "des_tab_cbcdec", "tab", &br_des_tab_cbcdec_vtable }, + { "des_ct_cbcenc", "ct", &br_des_ct_cbcenc_vtable }, + { "des_ct_cbcdec", "ct", &br_des_ct_cbcdec_vtable }, + + { "chacha20_ct", "ct", &br_chacha20_ct_run }, + + { "ghash_ctmul", "ctmul", &br_ghash_ctmul }, + { "ghash_ctmul32", "ctmul32", &br_ghash_ctmul32 }, + { "ghash_ctmul64", "ctmul64", &br_ghash_ctmul64 }, + + { "poly1305_ctmul", "ctmul", &br_poly1305_ctmul_run }, + { "poly1305_ctmul32", "ctmul32", &br_poly1305_ctmul32_run }, + + { "ec_all_m15", "all_m15", &br_ec_all_m15 }, + { "ec_all_m31", "all_m31", &br_ec_all_m31 }, + { "ec_c25519_i15", "c25519_i15", &br_ec_c25519_i15 }, + { "ec_c25519_i31", "c25519_i31", &br_ec_c25519_i31 }, + { "ec_c25519_m15", "c25519_m15", &br_ec_c25519_m15 }, + { "ec_c25519_m31", "c25519_m31", &br_ec_c25519_m31 }, + { "ec_p256_m15", "p256_m15", &br_ec_p256_m15 }, + { "ec_p256_m31", "p256_m31", &br_ec_p256_m31 }, + { "ec_prime_i15", "prime_i15", &br_ec_prime_i15 }, + { "ec_prime_i31", "prime_i31", &br_ec_prime_i31 }, + + { "ecdsa_i15_sign_asn1", "i15_asn1", &br_ecdsa_i15_sign_asn1 }, + { "ecdsa_i15_sign_raw", "i15_raw", &br_ecdsa_i15_sign_raw }, + { "ecdsa_i31_sign_asn1", "i31_asn1", &br_ecdsa_i31_sign_asn1 }, + { "ecdsa_i31_sign_raw", "i31_raw", &br_ecdsa_i31_sign_raw }, + { "ecdsa_i15_vrfy_asn1", "i15_asn1", &br_ecdsa_i15_vrfy_asn1 }, + { "ecdsa_i15_vrfy_raw", "i15_raw", &br_ecdsa_i15_vrfy_raw }, + { "ecdsa_i31_vrfy_asn1", "i31_asn1", &br_ecdsa_i31_vrfy_asn1 }, + { "ecdsa_i31_vrfy_raw", "i31_raw", &br_ecdsa_i31_vrfy_raw }, + + { "rsa_i15_pkcs1_sign", "i15", &br_rsa_i15_pkcs1_sign }, + { "rsa_i31_pkcs1_sign", "i31", &br_rsa_i31_pkcs1_sign }, + { "rsa_i32_pkcs1_sign", "i32", &br_rsa_i32_pkcs1_sign }, + { "rsa_i15_pkcs1_vrfy", "i15", &br_rsa_i15_pkcs1_vrfy }, + { "rsa_i31_pkcs1_vrfy", "i31", &br_rsa_i31_pkcs1_vrfy }, + { "rsa_i32_pkcs1_vrfy", "i32", &br_rsa_i32_pkcs1_vrfy }, + + { 0, 0, 0 } +}; + +static const struct { + const char *long_name; + const char *short_name; + const void *(*get)(void); +} algo_names_dyn[] = { + { "aes_pwr8_cbcenc", "pwr8", + (const void *(*)(void))&br_aes_pwr8_cbcenc_get_vtable }, + { "aes_pwr8_cbcdec", "pwr8", + (const void *(*)(void))&br_aes_pwr8_cbcdec_get_vtable }, + { "aes_pwr8_ctr", "pwr8", + (const void *(*)(void))&br_aes_pwr8_ctr_get_vtable }, + { "aes_x86ni_cbcenc", "x86ni", + (const void *(*)(void))&br_aes_x86ni_cbcenc_get_vtable }, + { "aes_x86ni_cbcdec", "x86ni", + (const void *(*)(void))&br_aes_x86ni_cbcdec_get_vtable }, + { "aes_x86ni_ctr", "x86ni", + (const void *(*)(void))&br_aes_x86ni_ctr_get_vtable }, + { "aes_x86ni_ctrcbc", "x86ni", + (const void *(*)(void))&br_aes_x86ni_ctrcbc_get_vtable }, + { "chacha20_sse2", "sse2", + (const void *(*)(void))&br_chacha20_sse2_get }, + { "ghash_pclmul", "pclmul", + (const void *(*)(void))&br_ghash_pclmul_get }, + { "ghash_pwr8", "pwr8", + (const void *(*)(void))&br_ghash_pwr8_get }, + { "poly1305_ctmulq", "ctmulq", + (const void *(*)(void))&br_poly1305_ctmulq_get }, + { "rsa_i62_pkcs1_sign", "i62", + (const void *(*)(void))&br_rsa_i62_pkcs1_sign_get }, + { "rsa_i62_pkcs1_vrfy", "i62", + (const void *(*)(void))&br_rsa_i62_pkcs1_vrfy_get }, + { 0, 0, 0, } +}; + +/* see brssl.h */ +const char * +get_algo_name(const void *impl, int long_name) +{ + size_t u; + + for (u = 0; algo_names[u].long_name; u ++) { + if (impl == algo_names[u].impl) { + return long_name + ? algo_names[u].long_name + : algo_names[u].short_name; + } + } + for (u = 0; algo_names_dyn[u].long_name; u ++) { + if (impl == algo_names_dyn[u].get()) { + return long_name + ? algo_names_dyn[u].long_name + : algo_names_dyn[u].short_name; + } + } + return "UNKNOWN"; +} + /* see brssl.h */ const char * get_curve_name(int id)