#node.js #cryptography #ed25519
#node.js #криптография #ed25519
Вопрос:
Я использую NodeJS для генерации пар ключей Ed25519. Мне нужно преобразовать открытый ключ в пользовательскую кодировку символов. Однако, похоже, нет способа преобразовать KeyObject
s, возвращаемые crypto.generateKeyPair()
буферами to .
Предлагает ли стандартная библиотека способ прямой генерации ключей в виде буферов вместо KeyObject
s?
Комментарии:
1. Мне просто интересно, как вы анализируете асимметричный ключ в буфер
Ответ №1:
KeyObject предлагает .export()
метод, который предоставит вам строку или буфер. Кажется, вы можете использовать этот метод для преобразования ваших ключевых объектов, а затем применить свою пользовательскую кодировку.
https://nodejs.org/api/crypto.html#crypto_keyobject_export_options
Вы можете заставить его напрямую генерироваться как буфер / строка, только если вы укажете publicKeyEncoding
and / or privateKeyEncoding
. Но, если вы используете не поддерживаемую пользовательскую кодировку, вы не сможете заставить ее это сделать. Вы можете экспортировать его в буфер / строку, а затем применить к нему свою пользовательскую кодировку.
Из документа для API:
Если было указано publicKeyEncoding или privateKeyEncoding, эта функция ведет себя так, как если бы для ее результата был вызван keyObject.export() . В противном случае соответствующая часть ключа возвращается как KeyObject.
Комментарии:
1. К сожалению, кажется, что для асимметричных ключей
.export()
можно выводить только PEM или DER. Мое текущее решение — проанализировать выведенный ключ, что довольно неэлегантно, но работает