U
    .e                     @   sZ   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ dZG d	d
 d
ZdS )z)Private keys for the security serializer.    )default_backend)serialization)paddingrsa)ensure_bytes   )reraise_errors)
PrivateKeyc                   @   s"   e Zd ZdZdddZdd ZdS )r	   zRepresents a private key.Nc              	   C   sP   t dtfd8 tjt|t|t d| _t| jtj	sBtdW 5 Q R X d S )NzInvalid private key: {0!r})errors)passwordbackendzNon-RSA keys are not supported.)
r   
ValueErrorr   Zload_pem_private_keyr   r   _key
isinstancer   ZRSAPrivateKey)selfkeyr    r   7/tmp/pip-unpacked-wheel-f4liivr4/celery/security/key.py__init__   s     zPrivateKey.__init__c              
   C   sL   t d: tjt|tjjd}| jt|||W  5 Q R  S Q R X dS )zSign string containing data.zUnable to sign data: {0!r})ZmgfZsalt_lengthN)r   r   ZPSSZMGF1Z
MAX_LENGTHr   signr   )r   datadigestpadr   r   r   r      s    
zPrivateKey.sign)N)__name__
__module____qualname____doc__r   r   r   r   r   r   r	      s   
r	   N)r   Zcryptography.hazmat.backendsr   Zcryptography.hazmat.primitivesr   Z)cryptography.hazmat.primitives.asymmetricr   r   Zkombu.utils.encodingr   utilsr   __all__r	   r   r   r   r   <module>   s   