o
    ›¨Êh¥  ã                   @   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   sf   t dtfd��" tjt|ƒt|ƒtƒ d�| _t| jtj	ƒs!tdƒ‚W d   ƒ d S 1 s,w   Y  d S )NzInvalid private key: {0!r})Úerrors)ÚpasswordÚbackendzNon-RSA keys are not supported.)
r   Ú
ValueErrorr   Úload_pem_private_keyr   r   Ú_keyÚ
isinstancer   ÚRSAPrivateKey)ÚselfÚkeyr   © r   úE/var/www/html/env/lib/python3.10/site-packages/celery/security/key.pyÚ__init__   s   ÿýÿ"øzPrivateKey.__init__c                 C   sX   t dƒ� tjt |¡tjjd�}| j t|ƒ||¡W  d  ƒ S 1 s%w   Y  dS )zSign string containing data.zUnable to sign data: {0!r})ÚmgfÚsalt_lengthN)r   r   ÚPSSÚMGF1Ú
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#   Úcryptography.hazmat.backendsr   Úcryptography.hazmat.primitivesr   Ú)cryptography.hazmat.primitives.asymmetricr   r   Úkombu.utils.encodingr   Úutilsr   Ú__all__r	   r   r   r   r   Ú<module>   s    