swift - Swift 中的 secp256k1 公钥解析

标签 swift cryptography public-key

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

相关文章:

objective-c - 将 tabelview indexPath.row 作为字符串传递给 VC WebView

java - RSA 使用 Pycrypto OAEP 加密并使用普通旧 Java 解密

c# - 我如何在 C# 中使用 bouncycaSTLe 将 pem 公钥转换为 rsa 公钥?

ssl - 我在哪里可以获得所有流行的证书颁发机构的公钥

swift - 无法将类型 'Int' 的值转换为预期的参数类型 '[CChar]'(又名 'Array<Int8>')

ios - 我如何根据以下需求对 NSArray 进行排序/过滤?

ios - 使 tableview 单元格以 textView 文本大小扩展

python - python加密的基础知识w/hashlib sha1

c# - RSACryptoServiceProvider.Encrypt(byte[] rgb, bool fOAEP) 中的 rgb 是什么

java - 如何将十六进制公钥转换为 ASN.1SubjectPublicKeyInfo 结构以进行 Diffie-Hellman key 交换?