
    <[j                         d dl Z d dlZd dlmZ 	 d dlmZ n# e$ r Y nw xY wd dlZ e            j        Zed             Z	 G d dej
        j                  Z G d de          Z G d	 d
e          ZdS )    N)ExceptionTrap)keyczarc                      t           j         d S N)r   __name__     \/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/keyrings/alt/keyczar.pyhas_keyczarr      s    r	   c                   t    e Zd ZdZej        d             Zej        d             Zed             Z	d Z
d ZdS )BaseCrypterzmBase Keyczar keyset encryption and decryption.
    The keyset initialisation is deferred until required.
    c                     dS )z9Location for the main keyset that may be encrypted or notNr   selfs    r
   keyset_locationzBaseCrypter.keyset_location   s	     	r	   c                     dS )zoLocation for the encrypting keyset.
        Use None to indicate that the main keyset is not encrypted
        Nr   r   s    r
   encrypting_keyset_locationz&BaseCrypter.encrypting_keyset_location!   s	    
 	r	   c                 l   t          | d          s| j        st          d          t          j                            | j                  }| j        rDt          j                            | j                  }t          j        	                    ||          }t          j        |          | _
        | j
        S )zThe actual keyczar crypter_crypterzNo encrypted keyset location!)hasattrr   
ValueErrorr   readersCreateReaderr   CrypterReadEncryptedReaderr   )r   readerencrypting_keyczars      r
   crypterzBaseCrypter.crypter(   s     tZ(( 
	4' B !@AAA_11$2FGGF. U%,_%9%93& &" !88ASTT#OF33DM}r	   c                 >    |sdS | j                             |          S )zEncrypt the value. )r   Encryptr   values     r
   encryptzBaseCrypter.encrypt8   %     	2|##E***r	   c                 >    |sdS | j                             |          S )zDecrypt the value.r!   )r   Decryptr#   s     r
   decryptzBaseCrypter.decrypt>   r&   r	   N)r   
__module____qualname____doc__abcabstractpropertyr   r   propertyr   r%   r)   r   r	   r
   r   r      s          	   	     X+ + ++ + + + +r	   r   c                   F    e Zd ZdZddZed             Zed             ZdS )r   z>A Keyczar crypter using locations specified in the constructorNc                 "    || _         || _        d S r   )_keyset_location_encrypting_keyset_location)r   r   r   s      r
   __init__zCrypter.__init__H   s     /+E(((r	   c                     | j         S r   )r2   r   s    r
   r   zCrypter.keyset_locationL   s    $$r	   c                     | j         S r   )r3   r   s    r
   r   z"Crypter.encrypting_keyset_locationP   s    //r	   r   )r   r*   r+   r,   r4   r/   r   r   r   r	   r
   r   r   E   sh        HHF F F F % % X% 0 0 X0 0 0r	   r   c                   F    e Zd ZdZdZdZed             Zed             ZdS )EnvironCrypterz?A Keyczar crypter using locations specified by environment vars"KEYRING_KEYCZAR_ENCRYPTED_LOCATION#KEYRING_KEYCZAR_ENCRYPTING_LOCATIONc                     t           j                            | j                  }|st	          d| j        z            |S )Nz%s environment value not set)osenvirongetKEYSET_ENV_VARr   )r   vals     r
   r   zEnvironCrypter.keyset_location[   s=    jnnT011 	S;d>QQRRR
r	   c                 J    t           j                            | j                  S r   )r<   r=   r>   ENC_KEYSET_ENV_VARr   s    r
   r   z)EnvironCrypter.encrypting_keyset_locationb   s    z~~d5666r	   N)	r   r*   r+   r,   r?   rB   r/   r   r   r   r	   r
   r8   r8   U   sY        II9N>  X 7 7 X7 7 7r	   r8   )r-   r<   jaraco.contextr   r   ImportErrorkeyring.backendkeyringpassesr   backendr   r   r8   r   r	   r
   <module>rI      s*   



 				 ( ( ( ( ( (	 	 	 	D	     
	   ++ ++ ++ ++ ++'/) ++ ++ ++\0 0 0 0 0k 0 0 0 7 7 7 7 7[ 7 7 7 7 7s    