der 형식 인증서 내의 키를 사용하여 m2crypto로 메시지에 디지털로 서명하는 방법

StackOverflow https://stackoverflow.com/questions/2401397

문제

나가는 메시지의 디지털 서명을 구현하기위한 프로젝트를 진행하고 있으며 M2Crypto를 사용하기로 결정했습니다.

메시지에 서명하기 위해 키를 추출하는 인증서 (DER 형식)가 있습니다. 어떤 이유로 "sign_update"메소드를 호출 할 때 추악한 분할 오류 오류가 계속됩니다.

내가 여기서 읽은 이전의 예를 감안할 때, 나는 분명히 무언가를 놓치고 있습니다.

다음은 다음과 같이 작업하는 예입니다.

from M2Crypto.X509 import *

cert = load_cert( 'certificate.cer', format=1 )
Pub_key = cert.get_pubkey()
Pub_key.reset_context(md='sha1')
Pub_key.sign_init()
Pub_key.sign_update( "This should be good." )

print Pub_key.sign_final()

도움을 주셔서 감사합니다.

파블로

도움이 되었습니까?

해결책

명백한 것이 나에게 점프합니다 : 당신은 당신의 인증서가 der 형식이라고 말하지만 당신은 지나가고 있습니다. format=0 에게 load_cert() PEM을 의미합니다. 보다 x509 모듈 변수. 어쩌면 문제를 일으키는 원인이 아닐 수도 있습니다.

업데이트 더 많은 생각을 한 후에, 나는 당신이 여기서 잘못된 일을하려고한다고 생각합니다. 그래서 그것이 충돌하는 이유입니다 (물론 충돌하지는 않지만 예외를 제기해야합니다). 인증서에서 공개 키를 사용하여 메시지에 서명 할 수 없습니다. 그것은 디지털 위조를하는 것과 같습니다.

이런 식으로 생각하십시오. 내 공개 키가 포함 된 내 인증서를받습니다. 공개 키를 사용하여 메시지를 암호화 할 수 있습니다. 개인 키를 사용하여 해독 할 수 있습니다. 사용한 메시지에 서명 할 수 있습니다 개인 키, 그리고 나는 사용할 수 있습니다 당신의 공개 키 서명을 확인합니다.

다른 팁

개인 키 파일이 없으므로 충돌이 발생하고 서명 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top