2010-08-27 3 views
1

Я хочу, чтобы иметь возможность создавать частные/государственные ключи RSA только с JavaScript ...Как преобразовать номера ключей RSA в ключи, совместимые с OpenSSL?

До сих пор я нашел 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 криптография библиотека) и рубина/OpenSSL ...

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

ответ

1

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

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

1

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

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