Swift中secp256k1公钥解析

时间:2018-09-11 23:33:09

标签: swift cryptography public-key

我正在使用绑定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是函数的错误长度,因此我尝试了其他一些值,但是没有运气。

1 个答案:

答案 0 :(得分:1)

您的密钥无效。我相信您期望键的第一个字节为0x03,但是键的第一个字节为字符“ 0”,即0x30。密钥的第二个字节是字符“ 3”(0x33)。

我相信您打算将其作为实际密钥的十六进制编码版本。如果是这样,则需要先hex-decode it。您已经将其视为UTF-8编码的版本,不是。