如何在python-gnupg中选择加密/解密密钥?

时间:2012-05-21 08:09:05

标签: python gnupg

我正在尝试在python-gnupg中使用备用密钥,相当于命令的-u switch:

gpg --encrypt --armor -r <<theirkeyid>> -u <<my_nondefault_key_id>>
gpg --decrypt -r <<theirkeyid>> -u <<my_nondefault_key_id>>

但无法弄清楚,python-gnupg总是使用我的默认私钥。我唯一想到的可能是使用另一个密钥环,还是有办法?或者另一个py库是否支持多个私钥?

1 个答案:

答案 0 :(得分:0)

  • --encrypt仅使用对方的公钥时,在这种情况下忽略-u选项
  • 可以在options.recipients列表中设置收件人的密钥。
  • 同样忽略--decrypt -r选项时。通常,用于解密的密钥是从消息中的密钥id自动确定的。除非您的消息使用多个公钥加密,并且您的密钥库中有多个匹配的私钥。
  • 您可以在options.default_key
  • 上设置默认密钥
  • 如果要使用其他密钥库文件,可以将其添加到额外参数中,也可以在call参数列表中使用它:

    gpg = GnuPGIntreface.GnuPG()
    #    ...
    gpg.options.recipients += ['spam', 'eggs']
    gpg.options.extra_args += ['--keyring', 'keyringfile']
    #    ...
    #    or:
    gpg.call(['--encrypt', '--keyring', 'keyringfile'])
    #    ...