有没有一种简单的方法可以从 ecdh.Curve 变为 elliptic.Curve? 具体来说,我对
Params
包暴露的 elliptic
感兴趣。
ecdh 接口似乎没有公开任何关系,尽管它在 nistCurve 的实现中肯定具有所有相同的信息。
大部分
crypto/elliptic
已弃用,但根据 ecdh
文档,您可以编写 switch
语句来进行转换:
import (
"crypto/ecdh"
"crypto/elliptic"
"errors"
)
func ECDHToElliptic(curve ecdh.Curve) (elliptic.Curve, error) {
switch curve {
case ecdh.P256():
return elliptic.P256(), nil
case ecdh.P384():
return elliptic.P384(), nil
case ecdh.P521():
return elliptic.P521(), nil
default:
return nil, errors.New("non-NIST curve")
}
}