From 1316d8825b78bb094fe5c39490c25e35d320e5b8 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 28 Feb 2025 17:31:58 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20=E5=85=B3=E4=BA=8E=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E5=92=8CTLS=E6=94=AF=E6=8C=81=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 关于证书和TLS支持.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/关于证书和TLS支持.md b/关于证书和TLS支持.md index 1836c89..b7265ae 100644 --- a/关于证书和TLS支持.md +++ b/关于证书和TLS支持.md @@ -1,3 +1,24 @@ * 证书支持:smx509 * http tls支持(tlcp):第三方实现[gotlcp](https://github.com/Trisia/gotlcp),该实现ECC_SM4_GCM_SM3、ECC_SM4_CBC_SM3经过互操作测试,其它ECDHE_SM4_GCM_SM3、ECDHE_SM4_CBC_SM3没有通过互操作测试,目前没有可信的互操作测试目标,规范也描述不清。 -* [ShangMi (SM) Cipher Suites for TLS 1.3](https://www.rfc-editor.org/rfc/rfc8998),实现了和golang 1.19.x类似的ecdh,能融入golang sdk就比较好实现,单独维护成本太大,而且使用范围不广。 \ No newline at end of file +* [ShangMi (SM) Cipher Suites for TLS 1.3](https://www.rfc-editor.org/rfc/rfc8998),实现了和golang 1.19.x类似的ecdh,能融入golang sdk就比较好实现,单独维护成本太大,而且使用范围不广。 + +## smx509实现中的问题: +现有smx509实现中,我们定义了以下结构(非别名),用于覆盖x509中的实现或者添加新方法: +```go +// A Certificate represents an X.509 certificate. +type Certificate x509.Certificate + +// CertificateRequest represents a PKCS #10, certificate signature request. +type CertificateRequest x509.CertificateRequest + +type RevocationList x509.RevocationList +``` +它的优点是: +* 新的类型,可以覆盖旧方法、添加新方法; +* 无需复制`x509`中相关结构的完整定义和方法; + +它的缺点是: +* 需要显示转换才能在这些类型和`x509`相应类型之间进行转换。 +* 如果`x509`中相应类型有私有字段(不管是直接的还是间接的),并且我们的扩展实现必须访问,则会引发可访问性问题。 +* 如果有其它类型中定义了该类型的字段,那这个类型必须完整重定义(复制完整实现),代码改动量、维护工作量也比较大。 +