signature: add 0:'none' to _public_key_algorithm_enum.
authorW. Trevor King <wking@tremily.us>
Wed, 26 Sep 2012 19:38:22 +0000 (15:38 -0400)
committerW. Trevor King <wking@tremily.us>
Wed, 26 Sep 2012 19:38:22 +0000 (15:38 -0400)
This avoids crashing with:

  Exception raised:
    Traceback (most recent call last):
      ...
      File "/home/wking/src/pgp-mime/pgp_mime/signature.py", line 264, in set_public_key_algorithm
        self.public_key_algorithm = self._public_key_algorithm_enum[value]
    KeyError: 0

When `gpgme-tool` responds with signatures like:

  <gpgme>
    <verify-result>
      <signatures>
        <signature>
          ...
          <pubkey-algo value="0x0">(null)</pubkey-algo>
          ...
        </signature>
      </signatures>
    </verify-result>
  </gpgme>

which I was coming up in the test suite (I'm not sure why).

pgp_mime/signature.py

index 1f7a1d2e5c97a569b211e1a02d32dcfdfb71b4cb..23a0128071145d4198e27978c308b1d00c331dff 100644 (file)
@@ -158,6 +158,7 @@ class Signature (object):
     _validity_enum_inv = dict((v,k) for k,v in _validity_enum.items())
 
     _public_key_algorithm_enum = {  # GPGME_PK_* in gpgme.h
+        0: 'none',
         1: 'RSA',      # Rivest, Shamir, Adleman
         2: 'RSA for encryption and decryption only',
         3: 'RSA for signing and verification only',