登录
首页 >  Golang >  Go问答

加密/椭圆:尝试处理无效点

来源:stackoverflow

时间:2024-02-08 09:18:23 147浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《加密/椭圆:尝试处理无效点》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我在签署有效负载后使用 rs 值,然后将其解码回签名。 首先,我将字符串值转换为 bigint

mybigint := new(big.int)
mybigint.setstring(bytevalue, 16)

然后我将其转换为签名

65bda7c292费

当我在本地执行此操作时,没有任何问题。然后我将其推送到 github,然后 render.com 接收到它。但是在服务器上,我得到:

我收到:

mar 15 05:36:31 pm  2023/03/15 17:36:31 http: panic serving : crypto/elliptic: attempted operation on invalid point
mar 15 05:36:31 pm  goroutine 1252 [running]:
mar 15 05:36:31 pm  net/http.(*conn).serve.func1()
mar 15 05:36:31 pm      /usr/local/go/src/net/http/server.go:1854 +0xbf
mar 15 05:36:31 pm  panic({0xc5ff40, 0xfaae70})
mar 15 05:36:31 pm      /usr/local/go/src/runtime/panic.go:890 +0x263
mar 15 05:36:31 pm  crypto/elliptic.panicifnotoncurve({0xfbc088?, 0x15d3950?}, 0x40?, 0xc000100400?)
mar 15 05:36:31 pm      /usr/local/go/src/crypto/elliptic/elliptic.go:215 +0xa5
mar 15 05:36:31 pm  crypto/elliptic.marshal({0xfbc088, 0x15d3950}, 0x15d3950?, 0xc0002c2020?)
mar 15 05:36:31 pm      /usr/local/go/src/crypto/elliptic/elliptic.go:105 +0x31

我无法弄清楚服务器版本和本地版本之间可能有什么不同。 有没有人遇到过这个。对于我可能提出的明显问题,google 并没有太多的建议。

使用 sigr 和 sigs 值:

    v2signature := new(refs.Signature)
    v2signature.SetScheme(refs.ECDSA_SHA512)

    signatureData := elliptic.Marshal(elliptic.P256(), &sigR, &sigS)
    v2signature.SetSign(signatureData)
    v2signature.SetKey(containerOwnerKey.Bytes()) //1. this should be the container owner

    var bearerV2 acl.BearerToken
    bearerToken.WriteToV2(&bearerV2)
    bearerV2.SetSignature(v2signature)

这是来自使用不记名令牌访问远程服务器上的资产的 sdk。 我正在使用两个值 r 和 s 创建一个新签名,方案为 ecdsa_sha512,然后将其附加到不记名令牌


正确答案


我最终将所有内容粘贴在 Docker 映像中,以便我可以在本地和远程控制所有内容的版本。这解决了我的问题。我怀疑云服务正在使用一些不同的 Go 版本或其他东西。感谢那些提供帮助的人!

以上就是《加密/椭圆:尝试处理无效点》的详细内容,更多关于的资料请关注golang学习网公众号!

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