~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/gpg.py

(vila) Forbid more operations on ReadonlyTransportDecorator (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2011 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2009, 2011, 2012, 2013, 2016 Canonical Ltd
2
2
#   Authors: Robert Collins <robert.collins@canonical.com>
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
322
322
                return SIGNATURE_NOT_VALID, None
323
323
        # A signature from a revoked key gets this.
324
324
        # test_verify_revoked_signature()
325
 
        if result[0].summary & gpgme.SIGSUM_SYS_ERROR:
 
325
        if ((result[0].summary & gpgme.SIGSUM_SYS_ERROR
 
326
             or result[0].status.strerror == 'Certificate revoked')):
326
327
            return SIGNATURE_NOT_VALID, None
327
328
        # Other error types such as revoked keys should (I think) be caught by
328
329
        # SIGSUM_RED so anything else means something is buggy.
329
 
        raise errors.SignatureVerificationFailed("Unknown GnuPG key "\
330
 
                                                 "verification result")
 
330
        raise errors.SignatureVerificationFailed(
 
331
            "Unknown GnuPG key verification result")
331
332
 
332
333
    def set_acceptable_keys(self, command_line_input):
333
334
        """Set the acceptable keys for verifying with this GPGStrategy.
336
337
                                command line
337
338
        :return: nothing
338
339
        """
339
 
        key_patterns = None
 
340
        patterns = None
340
341
        acceptable_keys_config = self._config_stack.get('acceptable_keys')
341
 
        try:
342
 
            if isinstance(acceptable_keys_config, unicode):
343
 
                acceptable_keys_config = str(acceptable_keys_config)
344
 
        except UnicodeEncodeError:
345
 
            # gpg Context.keylist(pattern) does not like unicode
346
 
            raise errors.BzrCommandError(
347
 
                gettext('Only ASCII permitted in option names'))
348
 
 
349
342
        if acceptable_keys_config is not None:
350
 
            key_patterns = acceptable_keys_config
 
343
            patterns = acceptable_keys_config
351
344
        if command_line_input is not None: # command line overrides config
352
 
            key_patterns = command_line_input
353
 
        if key_patterns is not None:
354
 
            patterns = key_patterns.split(",")
 
345
            patterns = command_line_input.split(',')
355
346
 
 
347
        if patterns:
356
348
            self.acceptable_keys = []
357
349
            for pattern in patterns:
358
350
                result = self.context.keylist(pattern)