Там, кажется, не существует формат для полного файла Bitcoin подписей, по крайней мере, я не нашел ни одного.
Это немного удивительно, что Bitcoin использует сигнатуры на основе ее функциональности,
но Bitcoin разработчики, похоже, используют подписи PGP для распределенного программного обеспечения вместо Bitcoin подписей.
Есть несколько форматов сообщений для Bitcoin подписей, но они, кажется, в основном используются для
подписи коротких сообщений, когда результат операции подписи является новым файлом, в котором включается сообщение.
Тем не менее, было бы очень полезно, чтобы иметь возможность подписать существующий файл, который может быть очень большим,
например ан EXE-файл или архив с исходным кодом.
Это позволило бы обеспечить PGP подобные функциональные возможности подписи с помощью Bitcoin эллиптической кривой.
Поэтому я создал и реализован такой формат подписи, который входит в состав пакета bitgen программного обеспечения:
http://bitcoin-gen.org/
Подпись может выглядеть следующим образом:
------ НАЧАТЬ Bitcoin SEPC256K1 ПОДПИСЬ ------
фе
14F0668D7FE8938F6A23F8FE1A4FB906C558A3FBDB967222B929158487F34183
6C50D34A304A3227035CEE1ADE006B5502CC41BF639609201F75919F1B3F560E
------ END Bitcoin SEPC256K1 ПОДПИСЬ ------
Подписи включают в себя значение г и х подписей, а также три логических значений.
Открытые ключи х и у значения не включено, поскольку кривая sepc256k1 позволяет восстановить открытый ключ
от значений г и с и хэш-суммы.
Три буквы в первой строке дать информацию о том, какие громкая должны быть выбраны, так как есть
восемь возможные публичные адреса, когда (г, s, хэш) приведены.
Первая буква может быть "е" или "s", Которая выступает за "первый" а также "второй",
С "е", Первое значение должно быть выбрано с "s" второе значение является правильным.
Вторая буква "е" или "о" для "странный" или "даже", И вместе с первым логическим значением дают правильный открытый ключ.
Эта функция может быть получена из сжатого или несжатого открытого ключа.
В третий символ указывает "U" для несжатых или "с" для сжатых.
Вторые и третьи строки являются значениями R и S в качестве шестнадцатеричных значений кодируются.
Двойной sha256 хэш файла осуществляется с помощью строки "Bitcoin Подписанный файл " сопровождаемый
Длина байт содержимого файла в десятичном формате ASCII, а затем " байт:" и, наконец, содержимое файла:
"Bitcoin Подписанный файл " + ASCII (длина) + " байт:" + file_content
Формат файла использует UNIX стиль новой строки с одним символом перевода строки.
Создание проекта даст два исполняемых файлов, один из которых является bitsig
Для того, чтобы создать и сохранить новый секретный ключ, используйте, например:
$ Bitsig случайный
Когда это будет сделано, подпись любого файла может быть создана:
$ эхо "тест bitgen" > btest.txt
$ Bitsig знак btest.txt
Это даст результат, похожий на следующий:
========================
Подписание файла сообщения: btest.txt
Ключ не указано, с помощью ключа по умолчанию: 17RjaCGZQbe2Cw984YdWcMcWDgM86kM7EN
Генерация 32 случайных байт.
Нажмите случайные клавиши или перемещать мышь, если это необходимо
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Подписание в ходе ...
Попытка даже ...
Паритет даже
Результат записывается: btest.txt.bitsig
========================
Для проверки подписи файла, дайте следующую команду:
$ Bitsig проверить btest.txt btest.txt.bitsig
Это даст:
========================
Подписанный файл: btest.txt
Файл подписи: btest.txt.bitsig
Расчетный адрес: 17RjaCGZQbe2Cw984YdWcMcWDgM86kM7EN
Ни один общественный адрес не задан, глядя в брелок для ключей
Это наш собственный адрес
Найдено адрес в брелка
Проверка подписи ....
Убедитесь, OK Адрес: 17RjaCGZQbe2Cw984YdWcMcWDgM86kM7EN
Адрес псевдоним: MY KEY
========================