Ë
    ”Âi¸
  ã                   ób   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ ddlmZ dZ G d	„ d
e«      Z	y)é    N)Úto_bytes)Ú
to_unicode)Úurlsafe_b64decode)Úurlsafe_b64encodeé   )ÚKey)s   -----BEGIN s   ---- BEGIN s   ssh-rsa s   ssh-dss s   ssh-ed25519 s   ecdsa-sha2-c                   óŒ   ‡ — e Zd ZdZdZdgZdˆ fd„	Zed„ «       Zd„ Z	d„ Z
d„ Zdd	„Zed
„ «       Zedd„«       Zedd„«       Zˆ xZS )ÚOctKeyz"Key class of the ``oct`` key type.ÚoctÚkc                 ó2   •— t         ‰| �  |«       || _        y ©N)ÚsuperÚ__init__Úraw_key)Úselfr   ÚoptionsÚ	__class__s      €úT/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/jose/rfc7518/oct_key.pyr   zOctKey.__init__   s   ø€ Ü‰Ñ˜Ô!Øˆ�ó    c                  ó   — y)NF© ©r   s    r   Úpublic_onlyzOctKey.public_only   s   € àr   c                 ót   — | j                  |«       | j                  s| j                  «        | j                  S )zäGet the raw key for the given key_op. This method will also
        check if the given key_op is supported by this key.

        :param operation: key operation value, such as "sign", "encrypt".
        :return: raw key
        )Úcheck_key_opr   Úload_raw_key)r   Ú	operations     r   Ú
get_op_keyzOctKey.get_op_key"   s/   € ð 	×Ñ˜)Ô$Ø�|Š|Ø×ÑÔØ�|‰|Ðr   c                 óP   — t        t        | j                  d   «      «      | _        y )Nr   )r   r   Útokensr   r   s    r   r   zOctKey.load_raw_key.   s   € Ü(¬°$·+±+¸cÑ2BÓ)CÓDˆ�r   c                 óh   — t        t        | j                  «      «      }| j                  |dœ| _        y )N)Úktyr   )r   r   r   r#   Ú
_dict_data)r   r   s     r   Úload_dict_keyzOctKey.load_dict_key1   s&   € ÜÔ(¨¯©Ó6Ó7ˆØ"&§(¡(°Ñ3ˆ�r   c                 ón   — | j                   }d|vr| j                  «       |d<   |j                  |«       |S )NÚkid)r!   Ú
thumbprintÚupdate)r   Ú
is_privateÚparamsr!   s       r   Úas_dictzOctKey.as_dict5   s4   € Ø—‘ˆØ˜ÑØ ŸO™OÓ-ˆF�5‰Mà�‰�fÔØˆr   c                 ó"   — t        |t        «      S r   )Ú
isinstanceÚbytes)ÚclsÚkeys     r   Úvalidate_raw_keyzOctKey.validate_raw_key=   s   € ä˜#œuÓ%Ð%r   c                 ó,  — t        || «      r|�|j                  j                  |«       |S t        |t        «      r#| j	                  |«        | |¬«      }||_        |S t        |«      }|j                  t        «      rt        d«      ‚ | ||¬«      }|S )z.Import a key from bytes, string, or dict data.)r   z"This key may not be safe to import)r   r   )
r.   r   r)   ÚdictÚcheck_required_fieldsr$   r   Ú
startswithÚPOSSIBLE_UNSAFE_KEYSÚ
ValueError)r0   Úrawr   r1   r   s        r   Ú
import_keyzOctKey.import_keyA   s”   € ô �c˜3ÔØÐ"Ø—‘×"Ñ" 7Ô+ØˆJä�cœ4Ô Ø×%Ñ% cÔ*Ù˜gÔ&ˆCØ ˆCŒNð ˆ
ô ˜s“mˆGð ×!Ñ!Ô"6Ô7Ü Ð!EÓFÐFá˜g¨wÔ7ˆCØˆ
r   c                 ó¤   — |st        d«      ‚|dz  dk7  rt        d«      ‚| j                  t        j                  t	        |dz  «      «      |«      S )z.Generate a ``OctKey`` with the given bit size.z&oct key can not be generated as publicé   r   zInvalid bit size for oct key)r8   r:   ÚsecretsÚtoken_bytesÚint)r0   Úkey_sizer   r*   s       r   Úgenerate_keyzOctKey.generate_keyW   sP   € ñ ÜÐEÓFÐFà�a‰<˜1ÒÜÐ;Ó<Ð<à�~‰~œg×1Ñ1´#°hÀ±lÓ2CÓDÀgÓNÐNr   )NN)Fr   )é   NT)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   ÚREQUIRED_JSON_FIELDSr   Úpropertyr   r   r   r%   r,   Úclassmethodr2   r:   rA   Ú__classcell__)r   s   @r   r
   r
      s   ø„ Ù,à
€CØ˜5Ðõð ñó ðò
òEò4óð ñ&ó ð&ð òó ðð* òOó ôOr   r
   )
r=   Úauthlib.common.encodingr   r   r   r   Úrfc7517r   r7   r
   r   r   r   ú<module>rM      s/   ðÛ å ,Ý .Ý 5Ý 5å ðÐ ôLOˆSõ LOr   