go如何对由椭圆曲线参数`sm2p256v1`生成密钥文件进行sm2加解密
1. 运行环境
开发环境: Kubuntu22.04
GO: go version go1.22.1 linux/amd64
2. 问题描述?
和java有部分接口交互,所以需要用到由java生成的密钥对 (目前已知java的椭圆曲线参数是sm2p256v1
这种的).
我在go这里找了几个包都不行
pkg.go.dev/github.com/tjfoc/gmsm/s...
pkg.go.dev/github.com/emmansun/gms...
github.com/deatil/go-cryptobin 这个包来自这个大佬的文章 分享:go 国密招商银行对接
希望大佬们指点一下用哪个包的哪个方法去做加解密?
非常感谢
java密钥对
"prikey": "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQg6rgCft6jHsmv5YnpZaWrk7fQQY9R2VoWyJ9d87XSfv6gCgYIKoEcz1UBgi2hRANCAAQRvBC+7ApOlK7fKzDb/XBCw7CrWZkC8orgyKbBbGxZRwVbCYmjygAUF6no4c1/g2lsxc+LiDUGXcAv1gr7+fGq"
"pubkey": "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEEbwQvuwKTpSu3ysw2/1wQsOwq1mZAvKK4MimwWxsWUcFWwmJo8oAFBep6OHNf4NpbMXPi4g1Bl3AL9YK+/nxqg=="
go密钥对(由java生成)
"prikey": "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgUrsLxV86AjpYVYuIZdocV5v+1yHU+KO5U73If/Pe5fmgCgYIKoEcz1UBgi2hRANCAASpHt92CMRA92RyBfXQ1LzOPTjq1qOf/0Z7KVdyc/zmsbeCKmwaGQeXn9IU5R7khb5V8DQcl+n1kr5Z8DM1fIUW"
"pubkey": "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEqR7fdgjEQPdkcgX10NS8zj046tajn/9GeylXcnP85rG3gipsGhkHl5/SFOUe5IW+VfA0HJfp9ZK+WfAzNXyFFg=="
然后双方交换公钥, 下面是有java公钥生成的密文
密文(原始数据是"LoveLive!TypeMoon!Idoly-Pride!"): "BPkRkx6Wl4KlHajh+V5znPxxpAFkZhQlxXFlaJxd/wRPHqxvnEaR/NI2d6+pa7CKXVHoJQ1Z6bAsXYEDYnKVJyNeIqhqQxxrNGl5rURnL0kDdwGJiEGQ54FRprdMIY0YEIngqw7fkorKk+6SLiTSDjuAr//z+VK4JoA6jEvuIy1l"
sign: "MEQCICAyzvt0lGp8TmErHdiQ4Ovkso0Ji8edFif04yhPuOY3AiBKeSzegV8Wh2KSHXt4AmXnoo8ELzF8PNLRgkzfbBhpmw=="
公钥和私钥不是明文最好还是发 PEM 格式化后的,容易解析
测试了下,暂时可以,不过发的用来签名的数据不清楚,只能测试出来,最好把怎么加密和怎么签名的发出来