Разбор открытого ключа secp256k1 в Swift - PullRequest
0 голосов
/ 12 сентября 2018

Я использую привязки здесь для выполнения функций secp256k1 в Swift.У меня есть следующий код:

        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 голосов
/ 12 сентября 2018

Ваш ключ недействителен.Я полагаю, что вы ожидаете, что первый байт ключа будет 0x03, но первый байт вашего ключа - это символ «0», который равен 0x30.Второй байт вашего ключа - это символ «3» (0x33).

Я полагаю, вы предполагали, что это версия вашего фактического ключа в шестнадцатеричном коде.Если это так, вам нужно сначала hex-декодировать .Вы рассматривали его как версию в кодировке UTF-8, а это не так.

...