secp256k1 public 密钥解析 Swift

secp256k1 public key parsing in Swift

我正在使用绑定 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
        }

不断打印无法解析 public 键。我不知道出了什么问题。我的直觉是 pubArray.count 是函数的错误长度,所以我尝试了一些其他值,但没有成功。

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

我相信您希望它成为实际密钥的十六进制编码版本。如果是这样,您需要先hex-decode it。您已将其视为 UTF-8 编码版本,但事实并非如此。