golang 加密/椭圆曲线与加密/ecdh 曲线的关系

问题描述 投票:0回答:1

有没有一种简单的方法可以从 ecdh.Curve 变为 elliptic.Curve? 具体来说,我对

Params
包暴露的
elliptic
感兴趣。

ecdh 接口似乎没有公开任何关系,尽管它在 nistCurve 的实现中肯定具有所有相同的信息。

go
1个回答
0
投票

大部分

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")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.