为了账号安全,请及时绑定邮箱和手机立即绑定

Golang TLS 测试服务器和客户端在每次执行时协商相同的密钥以方便调试

Golang TLS 测试服务器和客户端在每次执行时协商相同的密钥以方便调试

Go
弑天下 2023-03-07 14:05:58
我有一个 golang 项目的测试用例,该项目使用 crypto/tls 启动 TLS 客户端和服务器。我的测试访问客户端和服务器交换的密文以运行断言。我正在寻找一种方法来在测试的连续执行中获得相同的密文。协商密钥的值和服务器返回的明文与测试无关。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

tls 示例的测试示例可以帮助您,为of定义一个zeroSource已实现的Read接口。Randtls.config


type zeroSource struct{}


func (zeroSource) Read(b []byte) (n int, err error) {

    for i := range b {

        b[i] = 0

    }

    // assign the same key to b


    return len(b), nil

}


// server side

    server.TLS = &tls.Config{

        Rand: zeroSource{}, // for example only; don't do this.

    }


// client side

    client := &http.Client{

        Transport: &http.Transport{

            TLSClientConfig: &tls.Config{

                Rand:               zeroSource{}, // for reproducible output; don't do this.

            },

        },

    }


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信