mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net/tls: support SM4 GCM/CCM algorithm
The RFC8998 specification defines the use of the ShangMi algorithm cipher suites in TLS 1.3, and also supports the GCM/CCM mode using the SM4 algorithm. Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com> Acked-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d1ab2647de
commit
227b9644ab
3 changed files with 110 additions and 0 deletions
|
@ -84,6 +84,20 @@
|
|||
#define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
|
||||
#define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
|
||||
|
||||
#define TLS_CIPHER_SM4_GCM 55
|
||||
#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
|
||||
#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
|
||||
#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
|
||||
#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
|
||||
#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
|
||||
|
||||
#define TLS_CIPHER_SM4_CCM 56
|
||||
#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
|
||||
#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
|
||||
#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
|
||||
#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
|
||||
#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
|
||||
|
||||
#define TLS_SET_RECORD_TYPE 1
|
||||
#define TLS_GET_RECORD_TYPE 2
|
||||
|
||||
|
@ -124,6 +138,22 @@ struct tls12_crypto_info_chacha20_poly1305 {
|
|||
unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
|
||||
};
|
||||
|
||||
struct tls12_crypto_info_sm4_gcm {
|
||||
struct tls_crypto_info info;
|
||||
unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
|
||||
unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
|
||||
unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
|
||||
unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
|
||||
};
|
||||
|
||||
struct tls12_crypto_info_sm4_ccm {
|
||||
struct tls_crypto_info info;
|
||||
unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
|
||||
unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
|
||||
unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
|
||||
unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
|
||||
};
|
||||
|
||||
enum {
|
||||
TLS_INFO_UNSPEC,
|
||||
TLS_INFO_VERSION,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue