Protocol Adapter 协议适配器
协议适配器用于适配标准TLS与TLCP协议的自动切换,在适配选择完成后支持双协议同时工作。
若需要使用GoTLCP PA您需要同时提供TLCP的连接配置对象tlcp.Config
以及TLS的连接配置对象tls.Config
除此之外无需任何额外配置,
若您需要双向身份认证以及其它特性只需按照标准的tls.Config
或tlcp.Config
配置对应对象即可。
实例代码如下:
package main
import (
"crypto/tls"
"gitee.com/Trisia/gotlcp/pa"
"gitee.com/Trisia/gotlcp/tlcp"
)
func main() {
var err error
tlcpCfg := &tlcp.Config{
Certificates: []tlcp.Certificate{sigCert, encCert},
}
tlsCfg := &tls.Config{
Certificates: []tls.Certificate{rsaCert},
}
listen, err := pa.Listen("tcp", ":9443", tlcpCfg, tlsCfg)
if err != nil {
panic(err)
}
defer listen.Close()
for {
conn, err := listen.Accept()
if err != nil {
panic(err)
}
// do something
}
}
GoTLCP PA利用TLS/TLCP协议具有相同的记录层头的特征,在连接建立后首先对连接进行检测。
net.Conn
接口,然后根据协议的主版本号进入对应的协议栈实现TLS/TLCP。实现原理如下:
见代码:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )