パイソンパイム:ユーザーの介入なしで簡単に復号化
質問
私は GPGME とのインターフェースに Pyme を使用していますが、署名/暗号化に問題はありませんでした。ただし、復号化しようとすると、パスフレーズを設定したにもかかわらず、常にパスフレーズの入力を求めるプロンプトが表示されます。 c.set_passphrase_cb
折り返し電話。私は何か間違ったことをしているでしょうか?
解決
パスフレーズのコールバックを設定する前に、
"c.set_armor(1)" を追加します。
他のヒント
私も同様の問題を抱えています。私のコードは次のようになります:
def passphrase_callback(hint=''、desc=''、prev_bad=''):「パスワード」を返す
クラス暗号エンジン:クラス NoSignKeys(例外):確かに 初期化(自分自身、文字列):例外。初期化(自分自身、str)
def __init__(self, user_id, passphrase):
"Initialize with ID (e-mail)"
self.user_id = user_id
self.passphrase = passphrase
def verify(self, data):
c = core.Context()
sig = core.Data(string = data)
file = None
plain = core.Data()
c.op_verify(sig, file, plain)
result = c.op_verify_result()
plain.seek(0, 0)
plaintext = plain.read()
sig = result.signatures
status = False
for s in sig:
status = (s.status == 0)
return status, plaintext
def sign(self, data):
c = core.Context()
for sigkey in c.op_keylist_all(self.user_id, 1):
if sigkey.can_sign:
c.signers_add(sigkey)
if not c.signers_enum(0):
raise CryptoEngine.NoSignKeys("No secret %s's keys suitable for signing" % self.user_id)
plain = core.Data(data)
sig = core.Data()
c.set_passphrase_cb(passphrase_callback)
c.op_sign(plain, sig, mode.CLEAR)
sig.seek(0, 0)
return sig.read()
パスフレーズコールバックを設定したにもかかわらず、 パスフレーズ、または不正なパスワードを通知する例外。誰かがこの問題を解決し、知識を共有できる人はいますか?感謝 ヤン
所属していません StackOverflow