Added ChaCha20+Poly1305 support (stand-alone, cipher suites).
This commit is contained in:
parent
9e71c0673a
commit
b42bd5972f
26 changed files with 1952 additions and 523 deletions
|
|
@ -235,11 +235,12 @@ extern const cipher_suite cipher_suites[];
|
|||
#define REQ_SHA384 0x0008 /* suite needs SHA-384 */
|
||||
#define REQ_AESCBC 0x0010 /* suite needs AES/CBC encryption */
|
||||
#define REQ_AESGCM 0x0020 /* suite needs AES/GCM encryption */
|
||||
#define REQ_3DESCBC 0x0040 /* suite needs 3DES/CBC encryption */
|
||||
#define REQ_RSAKEYX 0x0080 /* suite uses RSA key exchange */
|
||||
#define REQ_ECDHE_RSA 0x0100 /* suite uses ECDHE_RSA key exchange */
|
||||
#define REQ_ECDHE_ECDSA 0x0200 /* suite uses ECDHE_ECDSA key exchange */
|
||||
#define REQ_ECDH 0x0400 /* suite uses static ECDH key exchange */
|
||||
#define REQ_CHAPOL 0x0040 /* suite needs ChaCha20+Poly1305 */
|
||||
#define REQ_3DESCBC 0x0080 /* suite needs 3DES/CBC encryption */
|
||||
#define REQ_RSAKEYX 0x0100 /* suite uses RSA key exchange */
|
||||
#define REQ_ECDHE_RSA 0x0200 /* suite uses ECDHE_RSA key exchange */
|
||||
#define REQ_ECDHE_ECDSA 0x0400 /* suite uses ECDHE_ECDSA key exchange */
|
||||
#define REQ_ECDH 0x0800 /* suite uses static ECDH key exchange */
|
||||
|
||||
/*
|
||||
* Parse a list of cipher suite names. The names are comma-separated. If
|
||||
|
|
|
|||
|
|
@ -915,6 +915,15 @@ do_client(int argc, char *argv[])
|
|||
&br_sslrec_in_gcm_vtable,
|
||||
&br_sslrec_out_gcm_vtable);
|
||||
}
|
||||
if ((req & REQ_CHAPOL) != 0) {
|
||||
br_ssl_engine_set_chacha20(&cc.eng,
|
||||
&br_chacha20_ct_run);
|
||||
br_ssl_engine_set_poly1305(&cc.eng,
|
||||
&br_poly1305_ctmul_run);
|
||||
br_ssl_engine_set_chapol(&cc.eng,
|
||||
&br_sslrec_in_chapol_vtable,
|
||||
&br_sslrec_out_chapol_vtable);
|
||||
}
|
||||
if ((req & REQ_3DESCBC) != 0) {
|
||||
br_ssl_engine_set_des_cbc(&cc.eng,
|
||||
&br_des_ct_cbcenc_vtable,
|
||||
|
|
|
|||
|
|
@ -46,6 +46,18 @@ const hash_function hash_functions[] = {
|
|||
|
||||
/* see brssl.h */
|
||||
const cipher_suite cipher_suites[] = {
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
||||
REQ_ECDHE_ECDSA | REQ_CHAPOL | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, ChaCha20+Poly1305 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
|
||||
BR_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
|
||||
REQ_ECDHE_RSA | REQ_CHAPOL | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, ChaCha20+Poly1305 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
|
||||
|
|
|
|||
|
|
@ -947,6 +947,15 @@ do_server(int argc, char *argv[])
|
|||
&br_sslrec_in_gcm_vtable,
|
||||
&br_sslrec_out_gcm_vtable);
|
||||
}
|
||||
if ((req & REQ_CHAPOL) != 0) {
|
||||
br_ssl_engine_set_chacha20(&cc.eng,
|
||||
&br_chacha20_ct_run);
|
||||
br_ssl_engine_set_poly1305(&cc.eng,
|
||||
&br_poly1305_ctmul_run);
|
||||
br_ssl_engine_set_chapol(&cc.eng,
|
||||
&br_sslrec_in_chapol_vtable,
|
||||
&br_sslrec_out_chapol_vtable);
|
||||
}
|
||||
if ((req & REQ_3DESCBC) != 0) {
|
||||
br_ssl_engine_set_des_cbc(&cc.eng,
|
||||
&br_des_ct_cbcenc_vtable,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue