o
    �)%aÞ  ã                   @   sâ   d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 e je
jeje	jf Z	ddede je de je je e jej e jej f fd	d
„Zde je de je de jej de je jej  dejdefdd„ZdS )é    N)Úx509)Ú_get_backend)Úserialization)ÚdsaÚecÚrsaÚdataÚpasswordÚreturnc                 C   s   t |ƒ}| | |¡S ©N)r   Ú%load_key_and_certificates_from_pkcs12)r   r	   Úbackend© r   úU/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/pkcs12.pyÚload_key_and_certificates   s   r   ÚnameÚkeyÚcertÚcasÚencryption_algorithmc                 C   s¶   |d urt |tjtjtjfƒstdƒ‚|d ur!t |tj	ƒs!tdƒ‚|d ur6t
|ƒ}tdd„ |D ƒƒs6tdƒ‚t |tjƒs@tdƒ‚|d u rN|d u rN|sNtdƒ‚td ƒ}| | ||||¡S )Nz3Key must be RSA, DSA, or EllipticCurve private key.zcert must be a certificatec                 s   s   � | ]	}t |tjƒV  qd S r   )Ú
isinstancer   ÚCertificate)Ú.0Úvalr   r   r   Ú	<genexpr>4   s   € z1serialize_key_and_certificates.<locals>.<genexpr>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)r   r   ÚRSAPrivateKeyr   ÚDSAPrivateKeyr   ÚEllipticCurvePrivateKeyÚ	TypeErrorr   r   ÚlistÚallr   ÚKeySerializationEncryptionÚ
ValueErrorr   Ú(serialize_key_and_certificates_to_pkcs12)r   r   r   r   r   r   r   r   r   Úserialize_key_and_certificates   s4   
ýþÿÿ
ÿr$   r   )ÚtypingÚcryptographyr   Úcryptography.hazmat.backendsr   Úcryptography.hazmat.primitivesr   Ú)cryptography.hazmat.primitives.asymmetricr   r   r   ÚUnionr   r   r   Ú_ALLOWED_PKCS12_TYPESÚbytesÚOptionalÚTupler   ÚListr   ÚIterabler!   r$   r   r   r   r   Ú<module>   sJ   þÿÿÿÿ

þÿ
þÿþ
ýüûú