gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/gmtls/0gmtls改造思路.md (about) 1 # 基本思路 2 3 ## 思路1: 4 在tls1.2或tls1.3的实现中添加国密套件的实现。 5 6 ## 思路2: 7 单独添加一个GMSSL的握手过程。 8 9 # 实际国密改造工作内容 10 11 1. 在tls1.3中添加国密密码套件`TLS_SM4_128_GCM_SM3`,实现相关代码,并让tls1.3默认最优先选择国密密码套件。此外,tls1.3的会话恢复机制中对sessionTicket的加密与认证改用sm4与sm3。 12 13 2. 添加了GMSSL协议版本定义,但并未遵循国密标准`GB/T 38636-2020 信息安全技术 传输层密码协议(TLCP)`的定义,而是让其实现与国密改造后的tls1.3相同的握手过程。 14 15 ## 20220620修改 16 将密码套件`TLS_SM4_128_GCM_SM3`名称改为`TLS_SM4_GCM_SM3`,以匹配`RFC8998`标准。 17 > `RFC8998`标准中的国密密码套件有两个:TLS_SM4_GCM_SM3和TLS_SM4_CCM_SM3,这里只匹配了`TLS_SM4_GCM_SM3`,原因是golang的crypto库中并没有实现CCM分组模式,core-gm中也没有单独实现CCM模式。 18 19