У меня есть ключевая пара RSA в десятичном формате:
N: 131380300130444423689465024460852313971098730922811994958210650530501686748132880102503190365296216968351535889369502651601697016994057094307459860310817213533755054007252477133258682280599098830508996183566745393684789271087614478241425320061726198137426426490142200235611844869472546908487777450913733956847 E: 65537 D: 80297204963989065579466889768824319637950465647088430322583084471355799970954766200860052948440422519604509972209521777162610037317804551817832746460011635684494412969232268215156141089492528372187753214602862715747188949826914338588271329247689858629892142371556575928454002581316958535707202236560574870513 P: 1224584489781086541356110467036625215751324632060784958572680296867401248241071907258999049522896850209985495153134079568147009917335592949603533318035603 Q: 10728561502026755927334064184961854822182870744919733441933716834397978727498603128211162084788541605856166966893670172798846339557261092973389679407794073
Хотя OpenSSL (для PHP) требует, чтобы ключ находился в формате PEM. Как мне их преобразовать? Очень важно, чтобы открытый и закрытый ключ «остался прежним» (под этим я подразумеваю, что я не могу просто создать новую пару ключей).
РЕДАКТИРОВАТЬ: Или проще сделать карточный сборщик и извлечь все эти значения в десятичном формате? И если да, то как?
Если вы не сделаете это самостоятельно (написав небольшую программу utitlity для преобразования ключа в формат PEM), вы можете использовать инструмент Java по этому URL-адресу: http://www.platanus.cz/blog/converting-rsa-xml-key-to -pem
Он требует, чтобы входные данные находились в файле XML, но для вас должно быть тривиально.
Попробуйте ssh2openpgp в проекте monkeyspehere .
ОБНОВЛЕНИЕ: попробуйте также это . В нем объясняется, как перейти, в два этапа, OpenSSH → OpenSSL → GnuPG.