1

私は送信メッセージのデジタル署名を実装するプロジェクトに取り組んでおり、そのために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()

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

パブロ

4

2 に答える 2

2

明らかなことが1つあります。証明書はDER形式であると言いますが、これはPEMを意味format=0します。X509モジュール変数load_cert()を参照してください。ただし、問題の原因ではない可能性があります(証明書の種類を混在させると、例外が発生する可能性があります)。

更新もう少し考えた後、あなたはここで間違ったことをしようとしていると思います。それがクラッシュしている理由です(もちろん、クラッシュするべきではなく、例外を発生させるはずですが)。証明書の公開鍵を使用してメッセージに署名することはできません。それはデジタル偽造をするようなものです。

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

于 2010-03-08T23:48:39.880 に答える
0

秘密鍵ファイルがないため、クラッシュして署名できません。

于 2010-03-10T16:23:07.483 に答える