Updated cryptography to 0.5.4 - closes #91

Slightly reorganized the default imports in pgpy/__init__.py
First pass at updating the ascii_unarmor regex to support cleartext signatures - #102, #27, #28
Added pypy3 to the test matrix as an allowed failure
This commit is contained in:
Michael Greene
2014-08-22 13:00:40 -07:00
parent fe5ed49241
commit 43bc7bf7f6
7 changed files with 26 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ python:
- "3.2"
- "2.7"
- "pypy"
- "pypy3"
env:
matrix:
# test all versions against OpenSSL 0.9.8
@@ -25,6 +26,7 @@ matrix:
allow_failures:
- env: TOXENV=pep8
- python: "pypy"
- python: "pypy3"
# install requirements
install:
# add the lucid repo for if we need OpenSSL 0.9.8

View File

@@ -98,6 +98,7 @@ PGPy is focused on eventually reaching complete OpenPGP implementation, adhering
.. comment::
RFC 3156 (PGP in MIME security)?
.. progress:: RFC 4398
:text: :rfc:`4398` covers publishing and retrieving PGP public keys via DNS CERT records.
@@ -105,6 +106,7 @@ PGPy is focused on eventually reaching complete OpenPGP implementation, adhering
- DNS CERT, False, Look up and retrieve keys stored in Content-based DNS CERT records
- DNS CERT, False, Look up and retrieve keys stored in Purpose-based DNS CERT records
.. progress:: RFC 5581
:text: :rfc:`5881` extends RFC 4880 to officially add support for the Camellia cipher
@@ -112,6 +114,7 @@ PGPy is focused on eventually reaching complete OpenPGP implementation, adhering
- Unprotect, True, Camellia*
- Protect, False, Camellia*
.. progress:: RFC 6637
:text: :rfc:`6637` extends OpenPGP to officially add support for elliptic curve cryptography
@@ -132,6 +135,7 @@ PGPy is focused on eventually reaching complete OpenPGP implementation, adhering
:DNS:
- DNS PKA, False, Look up and retrieve keys stored in DNS PKA records.
.. note::
\* Cipher depends on the currently installed OpenSSL being compiled with support for it

View File

@@ -5,15 +5,20 @@ from ._author import __copyright__
from ._author import __license__
from ._author import __version__
from .errors import PGPError
from .errors import PGPKeyDecryptionError
from .errors import PGPOpenSSLCipherNotSupported
from . import errors
from .pgp import PGPKey
from .pgp import PGPKeyring
from .pgp import PGPMessage
from .pgp import PGPSignature
__all__ = [__author__,
__copyright__,
__license__,
__version__,
PGPError,
PGPKeyDecryptionError,
PGPOpenSSLCipherNotSupported,
errors,
PGPKey,
PGPKeyring,
PGPMessage,
PGPSignature
]

View File

@@ -197,7 +197,13 @@ class Exportable(six.with_metaclass(abc.ABCMeta, FileLoader)):
# the re.VERBOSE flag allows for:
# - whitespace is ignored except when in a character class or escaped
# - anything after a '#' that is not escaped or in a character class is ignored, allowing for comments
m = re.match(r"""# armor header line; capture the variable part of the magic text
##TODO: add methods to Exportable for dash-(un)escaping strings
m = re.match(r"""# This capture group is optional because it will only be present in signed cleartext messages
(^-{5}BEGIN\ PGP\ SIGNED\ MESSAGE-{5}\n
(?P<hashes>(Hash:\ [A-Za-z0-9\-]+\n)*\n)
(?P<cleartext>(.*\n)+)\n
)?
# armor header line; capture the variable part of the magic text
^-{5}BEGIN\ PGP\ (?P<magic>[A-Z0-9 ,]+)-{5}$\n
# try to capture all the headers into one capture group
# if this doesn't match, m['headers'] will be None

View File

@@ -1,4 +1,4 @@
cryptography==0.4
cryptography==0.5.4
requests
enum34
six

View File

@@ -1,7 +1,6 @@
import pytest
import functools
import keyword
import os
import re
import subprocess

View File

@@ -1,5 +1,5 @@
[tox]
envlist = pypy, py27, py32, py33, py34, pep8, setup, setup27
envlist = pypy, pypy3, py27, py32, py33, py34, pep8, setup, setup27
skipsdist = True
[pytest]