我需要使用256位签名来传递标题以调用Jenga api。
下面是我尝试过的代码,它正在工作,但是它给出的签名长度为71位而不是256位。
public static string GetSignature(byte[] privateKey, string message)
{
string str = null;
try
{
var curve = SecNamedCurves.GetByName("secp256k1");
var domain = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H);
var keyParameters = new
ECPrivateKeyParameters(new Org.BouncyCastle.Math.BigInteger(privateKey),
domain);
ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA");
signer.Init(true, keyParameters);
signer.BlockUpdate(Encoding.ASCII.GetBytes(message), 0, message.Length);
var signature = signer.GenerateSignature();
str = Convert.ToBase64String(signature);
}
catch (Exception ex)
{
throw ex;
}
return str;
}
我希望签名长度为256位,但实际输出为71位,这是错误的。