我使用绑定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的长度不对,所以我尝试了一些其他值,但没有成功。

最佳答案

您的密钥无效。我相信您希望密钥的第一个字节是0x03,但是密钥的第一个字节是字符“0”,即0x30。密钥的第二个字节是字符“3”(0x33)。
我相信你是想把它变成一个十六进制编码的版本。如果是,您需要先hex-decode it。你把它当作一个UTF-8编码的版本,而不是。

10-07 16:37