mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
net/tls: add CHACHA20-POLY1305 configuration
Add ChaCha-Poly specific configuration code. Signed-off-by: Vadim Fedorenko <vfedorenko@novek.ru> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a6acbe6235
commit
74ea610602
2 changed files with 19 additions and 0 deletions
|
@ -521,6 +521,9 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval,
|
|||
case TLS_CIPHER_AES_CCM_128:
|
||||
optsize = sizeof(struct tls12_crypto_info_aes_ccm_128);
|
||||
break;
|
||||
case TLS_CIPHER_CHACHA20_POLY1305:
|
||||
optsize = sizeof(struct tls12_crypto_info_chacha20_poly1305);
|
||||
break;
|
||||
default:
|
||||
rc = -EINVAL;
|
||||
goto err_crypto_info;
|
||||
|
|
|
@ -2290,6 +2290,7 @@ int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx)
|
|||
struct tls12_crypto_info_aes_gcm_128 *gcm_128_info;
|
||||
struct tls12_crypto_info_aes_gcm_256 *gcm_256_info;
|
||||
struct tls12_crypto_info_aes_ccm_128 *ccm_128_info;
|
||||
struct tls12_crypto_info_chacha20_poly1305 *chacha20_poly1305_info;
|
||||
struct tls_sw_context_tx *sw_ctx_tx = NULL;
|
||||
struct tls_sw_context_rx *sw_ctx_rx = NULL;
|
||||
struct cipher_context *cctx;
|
||||
|
@ -2402,6 +2403,21 @@ int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx)
|
|||
cipher_name = "ccm(aes)";
|
||||
break;
|
||||
}
|
||||
case TLS_CIPHER_CHACHA20_POLY1305: {
|
||||
chacha20_poly1305_info = (void *)crypto_info;
|
||||
nonce_size = 0;
|
||||
tag_size = TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE;
|
||||
iv_size = TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE;
|
||||
iv = chacha20_poly1305_info->iv;
|
||||
rec_seq_size = TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE;
|
||||
rec_seq = chacha20_poly1305_info->rec_seq;
|
||||
keysize = TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE;
|
||||
key = chacha20_poly1305_info->key;
|
||||
salt = chacha20_poly1305_info->salt;
|
||||
salt_size = TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE;
|
||||
cipher_name = "rfc7539(chacha20,poly1305)";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
rc = -EINVAL;
|
||||
goto free_priv;
|
||||
|
|
Loading…
Reference in a new issue