我已经设置了一个最小的代码库repo来复制错误并尽可能清楚地解释这个错误:https://github.com/soroushjp/go_wrapper_c_err我目前正在做一个使用Go包进行ECDSA签名的项目go-secp256k1包装Csecp256k1library.如果我通过导入直接使用go-secp256k1中的函数(如在main.go中所见),它工作正常。所以在repo中,运行main.go效果很好,并打印出一个公钥。所以这是一个奇怪的错误:如果我尝试使用go-secp256k1为一个包编写一个测试,我会收到一个奇怪的错误。要复制,请运行:gotestgithub.co
我已经设置了一个最小的代码库repo来复制错误并尽可能清楚地解释这个错误:https://github.com/soroushjp/go_wrapper_c_err我目前正在做一个使用Go包进行ECDSA签名的项目go-secp256k1包装Csecp256k1library.如果我通过导入直接使用go-secp256k1中的函数(如在main.go中所见),它工作正常。所以在repo中,运行main.go效果很好,并打印出一个公钥。所以这是一个奇怪的错误:如果我尝试使用go-secp256k1为一个包编写一个测试,我会收到一个奇怪的错误。要复制,请运行:gotestgithub.co
我有一个来自X.509证书的x509证书的主题专有名称(DN)。我想从中提取通用名称(CN)。有没有办法通过crypto/x509或Go中的任何其他库来实现?例如,如果主题的专有名称是:CN=AMAAMISAAPBMDEMADBMDSLE.AXVD-04954-19-17.,OU=Abc,O=DA.CB.AcbDinema.com,dnQualifier=PY0aT8abfcQeUyquTe4w5RVasfY=然后我想从中提取公用名(CN)部分(AMAAMISAAPBMDEMADBMDSLE.AXVD-04954-19-17.)。 最佳答案
我有一个来自X.509证书的x509证书的主题专有名称(DN)。我想从中提取通用名称(CN)。有没有办法通过crypto/x509或Go中的任何其他库来实现?例如,如果主题的专有名称是:CN=AMAAMISAAPBMDEMADBMDSLE.AXVD-04954-19-17.,OU=Abc,O=DA.CB.AcbDinema.com,dnQualifier=PY0aT8abfcQeUyquTe4w5RVasfY=然后我想从中提取公用名(CN)部分(AMAAMISAAPBMDEMADBMDSLE.AXVD-04954-19-17.)。 最佳答案
我试图找到椭圆点的Y坐标。我知道公式是y^2≡x^3+ax+bmodp。但是我不确定我将如何在Go中实际对此进行编程。xCubed.Exp(X,3,nil)AX.Mul(A,X)N.Add(XPow3,AX)//x^3+axN.Mod(N,P)//modpN.Add(N,B)//(x^3+ax)+bN.Mod(N,P)//modpreturnN其中xCubed,X,N,P,B是*big.Int并且N代表y^2我是模运算的新手,所以我的假设modP应用于每个操作;这是计算x^3+ax+bmodp的正确方法吗?编辑:我应该添加AX.Mod(p)吗? 最佳答案
我试图找到椭圆点的Y坐标。我知道公式是y^2≡x^3+ax+bmodp。但是我不确定我将如何在Go中实际对此进行编程。xCubed.Exp(X,3,nil)AX.Mul(A,X)N.Add(XPow3,AX)//x^3+axN.Mod(N,P)//modpN.Add(N,B)//(x^3+ax)+bN.Mod(N,P)//modpreturnN其中xCubed,X,N,P,B是*big.Int并且N代表y^2我是模运算的新手,所以我的假设modP应用于每个操作;这是计算x^3+ax+bmodp的正确方法吗?编辑:我应该添加AX.Mod(p)吗? 最佳答案
我在cipher.NewOFB中使用IV,但我的加密文件从未使用它作为前缀。我遵循了https://golang.org/pkg/crypto/cipher/的golang示例,但似乎无法弄清楚为什么不考虑前缀。有人知道问题出在哪里吗?funcgenerateRandomIV(lengthint)[]byte{iv:=make([]byte,aes.BlockSize)if_,err:=io.ReadFull(rand.Reader,iv);err!=nil{panic(err)}returniv}funcencryptFile(filename,keystringstring)err
我在cipher.NewOFB中使用IV,但我的加密文件从未使用它作为前缀。我遵循了https://golang.org/pkg/crypto/cipher/的golang示例,但似乎无法弄清楚为什么不考虑前缀。有人知道问题出在哪里吗?funcgenerateRandomIV(lengthint)[]byte{iv:=make([]byte,aes.BlockSize)if_,err:=io.ReadFull(rand.Reader,iv);err!=nil{panic(err)}returniv}funcencryptFile(filename,keystringstring)err
可以举例说明crypto/rand[1]的使用吗?Read函数的参数是一个字节数组。为什么?如果它访问/dev/urandom来获取随机数据。funcRead(b[]byte)(nint,erros.Error)[1]http://golang.org/pkg/crypto/rand/ 最佳答案 funcRead(b[]byte)(nint,erros.Error)Read是一个调用Reader.Read的辅助函数.Reader定义为:varReaderio.Reader.crypto/rand/io.Reader是包装基本Read
可以举例说明crypto/rand[1]的使用吗?Read函数的参数是一个字节数组。为什么?如果它访问/dev/urandom来获取随机数据。funcRead(b[]byte)(nint,erros.Error)[1]http://golang.org/pkg/crypto/rand/ 最佳答案 funcRead(b[]byte)(nint,erros.Error)Read是一个调用Reader.Read的辅助函数.Reader定义为:varReaderio.Reader.crypto/rand/io.Reader是包装基本Read