o
     `=                     @   sb   d dl mZmZm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 dddZd	d
 ZdS )    )absolute_importdivisionprint_function)x509)_get_backend)serialization)dsaecrsaNc                 C   s   t |}|| |S N)r   Z%load_key_and_certificates_from_pkcs12)datapasswordbackend r   home/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.pyload_key_and_certificates   s   r   c                 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>!   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
   ZRSAPrivateKeyWithSerializationr   ZDSAPrivateKeyWithSerializationr	   Z(EllipticCurvePrivateKeyWithSerialization	TypeErrorr   r   listallr   ZKeySerializationEncryption
ValueErrorr   Z(serialize_key_and_certificates_to_pkcs12)namekeyZcertZcasZencryption_algorithmr   r   r   r   serialize_key_and_certificates   s4   

r   r   )
__future__r   r   r   cryptographyr   Zcryptography.hazmat.backendsr   Zcryptography.hazmat.primitivesr   Z)cryptography.hazmat.primitives.asymmetricr   r	   r
   r   r   r   r   r   r   <module>   s   
