3 l�_=�@sbddlmZmZmZddlmZddlmZddlm Z ddl m Z m Z m Z d dd�Zd d �ZdS) �)�absolute_import�division�print_function)�x509)� _get_backend)� serialization)�dsa�ec�rsaNcCst|�}|j||�S)N)rZ%load_key_and_certificates_from_pkcs12)�dataZpassword�backend�r �/usr/lib64/python3.6/pkcs12.py�load_key_and_certificates srcCs�|dk r(t|tjtjtjf� r(td��|dk rFt|tj � rFtd��|dk rpt |�}t dd�|D��sptd��t|t j �s�td��|dkr�|dkr�| r�td��td�}|j|||||�S)Nz3Key must be RSA, DSA, or EllipticCurve private key.zcert must be a certificatecss|]}t|tj�VqdS)N)� isinstancer� Certificate)�.0�valr r r� !sz1serialize_key_and_certificates..z&all values in cas must be certificateszFKey encryption algorithm must be a KeySerializationEncryption instancez1You must supply at least one of key, cert, or cas)rr ZRSAPrivateKeyWithSerializationrZDSAPrivateKeyWithSerializationr Z(EllipticCurvePrivateKeyWithSerialization� TypeErrorrr�list�allrZKeySerializationEncryption� ValueErrorrZ(serialize_key_and_certificates_to_pkcs12)�name�keyZcertZcasZencryption_algorithmr r r r�serialize_key_and_certificatess*   r)N)Z __future__rrrZ cryptographyrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesrZ)cryptography.hazmat.primitives.asymmetricrr r rrr r r r�s