Как преобразовать номера ключей RSA в ключи, совместимые с OpenSSL? - PullRequest
1 голос
/ 27 августа 2010

Я хочу иметь возможность генерировать частные / публичные ключи RSA только с помощью javascript ...

Пока я обнаружил, http://www.hanewin.net/encrypt/rsa/rsa.htm,, что он включает в себя единственный генератор ключей Javascript RSA, который я нашел.Я создал обертки (изменяя код с демонстрационной страницы (см. Ссылку)), вот для ключей:

function genKeys() {
 rsaKeys(1024);
 var p=rsa_p;
 var q=rsa_q;
 var d=rsa_d;
 var u=rsa_u;
 var e=rsa_e;
 var pq=rsa_pq;

 return {"e": e, "p": p, "q": q, "pq": pq, "d": d, "u": u};
}

Проблема в том, что выходные данные даны как фактические числа (экспонента,модуль и т. д.), но мне нужен ключ в формате OpenSSL (вещь, закодированная в base64).Может кто-нибудь сказать мне, каков формат данных ключа OpenSSL, или даже лучше - как мне преобразовать ключ, сгенерированный с помощью кода с этого сайта, в ключ OpenSSL?

Я хочу использовать результат с pidcrypt(js crypto library) и ruby ​​/ openssl ...

Большое спасибо за любые предложения ...

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Оформить заказ на JavaScript с открытым исходным кодом проекта Forge. У него есть методы для генерации ключей RSA и их экспорта в PEM (формат DER в кодировке base64, о котором вы говорите, который использует OpenSSL).

http://github.com/digitalbazaar/forge/blob/master/README

1 голос
/ 30 августа 2010

Формат открытого ключа OpenSSL определен как PKCS # 1 . Версия в кодировке Base64 - это файл формата PEM, представляющий собой формат ASN.1 BER в кодировке Base64.

ASN.1 - не очень хороший формат для работы, но это должно быть возможно с достаточным количеством консистентной смазки ...

...