2011-04-23 2 views
3

M2Crypto.RSA.RSA().save_key_der() 메서드는 DER 형식으로 키를 저장하는 데 사용할 수 있습니다. 그러나 나는 예상대로 해당 방법 M2Crypto.RSA.load_key_der()을 보지 못합니다.M2Crypto를 사용하여 DER로 인코딩 된 RSA 키로드

M2Crypto를 사용하여 DER로 인코딩 된 RSA 키를로드하는 방법이 있습니까?

답변

10

PEM 형식은 일부 추가 머리글과 바닥 글이있는 base64 인코딩 DER 데이터입니다. 당신은, 바이너리로 DER을 읽을 PEM로 변환하고 RSA.load_key_string에 그것을 전달할 수 있습니다

import base64 
from M2Crypto import RSA 

TEMPLATE = """ 
-----BEGIN RSA PRIVATE KEY----- 
%s 
-----END RSA PRIVATE KEY----- 
""" 
raw = open('key.der', 'rb').read() 
data = TEMPLATE % base64.encodestring(raw).rstrip() 
key = RSA.load_key_string(data) 
print key 

출력 : 후세를 들어

<M2Crypto.RSA.RSA instance at 0x10eb710> 
+2

는, 파이썬도있다 "ssl.DER_cert_to_PEM_cert()"와 "SSL을. PEM_cert_to_DER_cert() "를 사용하십시오. –

+0

@Dustin :하지만 DER_cert_to_PEM_cert는 "RSA PRIVATE KEY"대신 "CERTIFICATE"를 인쇄합니다. 이는 M2Crypto를 혼란스럽게합니다. –

+0

@DominiqueEav 공유해 주셔서 감사합니다. 나는 그것을 사용하지 않는다. 그래서 나는 이것을 몰랐다. –

관련 문제