PATH:
lib
/
python3.6
/
site-packages
/
josepy
"""Test utilities. .. warning:: This module is not part of the public API. """ import os import OpenSSL import pkg_resources from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization from josepy import ComparableRSAKey, ComparableX509 from josepy.util import ComparableECKey def vector_path(*names): """Path to a test vector.""" return pkg_resources.resource_filename( __name__, os.path.join('testdata', *names)) def load_vector(*names): """Load contents of a test vector.""" # luckily, resource_string opens file in binary mode return pkg_resources.resource_string( __name__, os.path.join('testdata', *names)) def _guess_loader(filename, loader_pem, loader_der): _, ext = os.path.splitext(filename) if ext.lower() == '.pem': return loader_pem elif ext.lower() == '.der': return loader_der else: # pragma: no cover raise ValueError("Loader could not be recognized based on extension") def load_cert(*names): """Load certificate.""" loader = _guess_loader( names[-1], OpenSSL.crypto.FILETYPE_PEM, OpenSSL.crypto.FILETYPE_ASN1) return OpenSSL.crypto.load_certificate(loader, load_vector(*names)) def load_comparable_cert(*names): """Load ComparableX509 cert.""" return ComparableX509(load_cert(*names)) def load_csr(*names): """Load certificate request.""" loader = _guess_loader( names[-1], OpenSSL.crypto.FILETYPE_PEM, OpenSSL.crypto.FILETYPE_ASN1) return OpenSSL.crypto.load_certificate_request(loader, load_vector(*names)) def load_comparable_csr(*names): """Load ComparableX509 certificate request.""" return ComparableX509(load_csr(*names)) def load_rsa_private_key(*names): """Load RSA private key.""" loader = _guess_loader(names[-1], serialization.load_pem_private_key, serialization.load_der_private_key) return ComparableRSAKey(loader( load_vector(*names), password=None, backend=default_backend())) def load_ec_private_key(*names): """Load EC private key.""" loader = _guess_loader(names[-1], serialization.load_pem_private_key, serialization.load_der_private_key) return ComparableECKey(loader( load_vector(*names), password=None, backend=default_backend())) def load_pyopenssl_private_key(*names): """Load pyOpenSSL private key.""" loader = _guess_loader( names[-1], OpenSSL.crypto.FILETYPE_PEM, OpenSSL.crypto.FILETYPE_ASN1) return OpenSSL.crypto.load_privatekey(loader, load_vector(*names))
[-] jwk.py
[edit]
[-] jwa.py
[edit]
[-] magic_typing_test.py
[edit]
[-] test_util.py
[edit]
[-] interfaces_test.py
[edit]
[-] interfaces.py
[edit]
[-] b64.py
[edit]
[+]
__pycache__
[-] util_test.py
[edit]
[-] json_util_test.py
[edit]
[-] jwk_test.py
[edit]
[-] jws.py
[edit]
[-] errors.py
[edit]
[-] util.py
[edit]
[-] __init__.py
[edit]
[-] errors_test.py
[edit]
[+]
testdata
[-] magic_typing.py
[edit]
[-] b64_test.py
[edit]
[+]
..
[-] jws_test.py
[edit]
[-] jwa_test.py
[edit]
[-] json_util.py
[edit]