我正在使用绑定here在Swift中执行secp256k1函数。我有以下代码:
let pubkeyTxt = "036c1495224d8b6245ca35df958127dc3d587ff7e9d8e1e5f964b312dc5ea3aac9"
let pubArray: [UInt8] = Array(pubkeyTxt.utf8)
var pubkey = secp256k1_pubkey()
let pubBool = secp256k1_ec_pubkey_parse(ctx!, &pubkey, pubArray, pubArray.count)
if pubBool == 0 {
print("Could not parse the public key")
return
}
一直打印,无法解析公钥。我不知道怎么了。我的直觉是pubArray.count是函数的错误长度,因此我尝试了其他一些值,但是没有运气。
答案 0 :(得分:1)
您的密钥无效。我相信您期望键的第一个字节为0x03,但是键的第一个字节为字符“ 0”,即0x30。密钥的第二个字节是字符“ 3”(0x33)。
我相信您打算将其作为实际密钥的十六进制编码版本。如果是这样,则需要先hex-decode it。您已经将其视为UTF-8编码的版本,不是。