登录
首页 >  Golang >  Go问答

简化调试步骤的Golang TLS密钥协商测试

来源:stackoverflow

时间:2024-02-05 21:39:47 395浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《简化调试步骤的Golang TLS密钥协商测试》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我有一个 golang 项目的测试用例,它使用 crypto/tls 来启动 TLS 客户端和服务器。我的测试访问客户端和服务器交换的密文来运行断言。

我正在寻找一种方法来在连续执行的测试中获得相同的密文。

协商密钥的值和服务器返回的明文与测试无关。


正确答案


tls sample的测试样本可以帮助您,为tls.configrand定义一个zerosource实现的read接口。

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.
            },
        },
    }

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>