我正在使用绑定(bind) 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 是函数的错误长度,所以我尝试了一些其他值,但没有成功。
最佳答案
您的 key 无效。我相信您期望 key 的第一个字节是 0x03,但 key 的第一个字节是字符“0”,即 0x30。 key 的第二个字节是字符“3”(0x33)。
我相信您希望这是您实际 key 的十六进制编码版本。如果是这样,您需要 hex-decode it第一的。您已将其视为 UTF-8 编码版本,但事实并非如此。
关于swift - Swift 中的 secp256k1 公钥解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285470/