aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-01-04 16:44:41 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-01-17 15:47:39 -0600
commit170f1da651bcd97a05f3876953e04a6e7f44c06e (patch)
treeca8e765f88170b46f692a0c2f7514bbdd22b3d5f /src
parent2dcdf87195b9bbe3be8abd5439ebc14a4e8bfe36 (diff)
downloadcryptography-170f1da651bcd97a05f3876953e04a6e7f44c06e.tar.gz
cryptography-170f1da651bcd97a05f3876953e04a6e7f44c06e.tar.bz2
cryptography-170f1da651bcd97a05f3876953e04a6e7f44c06e.zip
add multibackend support for DERSerializationBackend
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/multibackend.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/cryptography/hazmat/backends/multibackend.py b/src/cryptography/hazmat/backends/multibackend.py
index 27ee8e7f..9bda76c8 100644
--- a/src/cryptography/hazmat/backends/multibackend.py
+++ b/src/cryptography/hazmat/backends/multibackend.py
@@ -7,14 +7,15 @@ from __future__ import absolute_import, division, print_function
from cryptography import utils
from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
from cryptography.hazmat.backends.interfaces import (
- CMACBackend, CipherBackend, DSABackend, EllipticCurveBackend, HMACBackend,
- HashBackend, PBKDF2HMACBackend, PEMSerializationBackend,
- RSABackend, X509Backend
+ CMACBackend, CipherBackend, DERSerializationBackend, DSABackend,
+ EllipticCurveBackend, HMACBackend, HashBackend, PBKDF2HMACBackend,
+ PEMSerializationBackend, RSABackend, X509Backend
)
@utils.register_interface(CMACBackend)
@utils.register_interface(CipherBackend)
+@utils.register_interface(DERSerializationBackend)
@utils.register_interface(HashBackend)
@utils.register_interface(HMACBackend)
@utils.register_interface(PBKDF2HMACBackend)
@@ -288,6 +289,24 @@ class MultiBackend(object):
_Reasons.UNSUPPORTED_SERIALIZATION
)
+ def load_der_private_key(self, data, password):
+ for b in self._filtered_backends(DERSerializationBackend):
+ return b.load_der_private_key(data, password)
+
+ raise UnsupportedAlgorithm(
+ "This backend does not support this key serialization.",
+ _Reasons.UNSUPPORTED_SERIALIZATION
+ )
+
+ def load_der_public_key(self, data):
+ for b in self._filtered_backends(DERSerializationBackend):
+ return b.load_der_public_key(data)
+
+ raise UnsupportedAlgorithm(
+ "This backend does not support this key serialization.",
+ _Reasons.UNSUPPORTED_SERIALIZATION
+ )
+
def load_pem_x509_certificate(self, data):
for b in self._filtered_backends(
X509Backend