2014-03-28 13 views
0

爲了執行不對稱加密,Common的Lisp Ironclad庫需要使用指數和模數對密鑰進行初始化。考慮到我可能不想生成密鑰自己,所以站在OpenSSL的巨人的密鑰生成的肩膀我做如何從PEM獲得指數和模數

ssh-keygen -t rsa -C "[email protected]"

檢查生成的文件的費爾我看到它是在PEM格式。

file ~/.id_rsa 
=> ~/.ssh/id_rsa: PEM RSA private key 

以下一些其他的SO問題,我得到這個

openssl asn1parse -i -in ~/.ssh/id_rsa 
    0:d=0 hl=4 l=1187 cons: SEQUENCE   
    4:d=1 hl=2 l= 1 prim: INTEGER   :00 
    7:d=1 hl=4 l= 257 prim: INTEGER   :BBFB9E... 
    268:d=1 hl=2 l= 3 prim: INTEGER   :010001 
    273:d=1 hl=4 l= 256 prim: INTEGER   :769BE9... 
    533:d=1 hl=3 l= 129 prim: INTEGER   :ECCB14004... 
    665:d=1 hl=3 l= 129 prim: INTEGER   :CB3B02... 
    797:d=1 hl=3 l= 128 prim: INTEGER   :78054EF... 
    928:d=1 hl=3 l= 128 prim: INTEGER   :0D474BC43.... 
1059:d=1 hl=3 l= 129 prim: INTEGER   :D71D75FF.... 

現在從有一些帖子說的去做添加-strparse 19(18人)的選項獲取指數和模量。這是我在以下行中出現錯誤的地方:

openssl asn1parse -i -in ~/.ssh/id_rsa -strparse 19 
Error parsing structure 
140334635108032:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:142: 
140334635108032:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1306: 
140334635108032:error:0D06A03A:asn1 encoding routines:ASN1_COLLECT:nested asn1 error:tasn_dec.c:1190: 

因此,可能是PEM不處於隔離格式。我也試着用-inform DER。所以問題是我如何從生成密鑰到獲得PEM證書的模數和指數。

回答

1

也許適用?

% openssl rsa -text -noout < id_rsa 
Private-Key: (2048 bit) 
modulus: 
00:ad:03: ... 
... 
publicExponent: 35 (0x23) 
privateExponent: 
94:12:aa: ...