DER形式の証明書内でキーを使用してM2CRYPTOを使用してメッセージをデジタル的に署名する方法

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

質問

私は、発信メッセージのデジタル署名を実装するプロジェクトに取り組んでおり、そのためにM2Cryptoを使用することにしました。

キーを抽出してメッセージに署名する証明書(der形式)があります。何らかの理由で、「sign_update」メソッドを呼び出すときに、ugいセグメンテーション障害エラーを取得し続けます。

ここで読んだ以前の例を考えると、私は明らかに何かが欠けています。

これが私が取り組んでいる例です。

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()

助けてくれてありがとう、

パブロ

役に立ちましたか?

解決

1つの明らかなことが私にジャンプします:あなたはあなたの証明書がder形式であると言いますが、あなたは合格しています format=0load_cert() それはpemを意味します。見る X509モジュール変数. 。ただし、問題を引き起こしているものではないかもしれませんが、証明書の種類を組み合わせると例外が得られると思います)。

アップデート さらに考えた後、私はあなたがここで間違ったことをしようとしていると思います。だからこそ、それはクラッシュしています(もちろんクラッシュするのではなく、例外を提起するはずです)。証明書から公開キーを使用してメッセージに署名することはできません。それはデジタル偽造をするようなものです。

このように考えてください。あなたは私の公開鍵を含む私の証明書を受け取ります。公開キーを使用して、メッセージを暗号化できます。秘密鍵を使用して復号化できるのは私だけです。使用してメッセージに署名できます あなたの秘密鍵, 、そして私は使用することができます あなたの公開鍵 署名を確認します。

他のヒント

秘密のキーファイルはありません。そのため、クラッシュして署名できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top