U
    ]                     @   s   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
 dd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZdS )zJTest utilities.

.. warning:: This module is not part of the public API.

    N)default_backend)serialization)ComparableRSAKeyComparableX509c                  G   s   t ttjjd|  S )zPath to a test vector.testdata)r   )pkg_resourcesZresource_filename__name__ospathjoinnames r   2/usr/lib/python3/dist-packages/josepy/test_util.pyvector_path   s     r   c                  G   s   t ttjjd|  S )zLoad contents of a test vector.r   )r   )r   Zresource_stringr   r	   r
   r   r   r   r   r   load_vector   s     r   c                 C   s<   t j| \}}| dkr |S | dkr0|S tdd S )Nz.pemz.derz1Loader could not be recognized based on extension)r	   r
   splitextlower
ValueError)filenameZ
loader_pemZ
loader_der_Zextr   r   r   _guess_loader   s    r   c                  G   s*   t | d tjjtjj}tj|t|  S )zLoad certificate.)r   OpenSSLcryptoFILETYPE_PEMFILETYPE_ASN1Zload_certificater   r   loaderr   r   r   	load_cert'   s      r   c                  G   s   t t|  S )zLoad ComparableX509 cert.)r   r   r   r   r   r   load_comparable_cert.   s    r    c                  G   s*   t | d tjjtjj}tj|t|  S )zLoad certificate request.r   )r   r   r   r   r   Zload_certificate_requestr   r   r   r   r   load_csr3   s      r!   c                  G   s   t t|  S )z(Load ComparableX509 certificate request.)r   r!   r   r   r   r   load_comparable_csr:   s    r"   c                  G   s,   t | d tjtj}t|t|  dt dS )zLoad RSA private key.r   N)ZpasswordZbackend)r   r   Zload_pem_private_keyZload_der_private_keyr   r   r   r   r   r   r   load_rsa_private_key?   s      r#   c                  G   s*   t | d tjjtjj}tj|t|  S )zLoad pyOpenSSL private key.r   )r   r   r   r   r   Zload_privatekeyr   r   r   r   r   load_pyopenssl_private_keyG   s      r$   )__doc__r	   r   r   Zcryptography.hazmat.backendsr   Zcryptography.hazmat.primitivesr   Zjosepyr   r   r   r   r   r   r    r!   r"   r#   r$   r   r   r   r   <module>   s   
