o
    cR                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd dej	Z
G dd dej	ZG d	d
 d
ej	ZG dd de jdZeej dS )    N)utils)x509)HashAlgorithmc                   @   s   e Zd ZdZdZdS )LogEntryTyper      N)__name__
__module____qualname__ZX509_CERTIFICATEZPRE_CERTIFICATE r
   r
   Nusr/lib/python3.10/site-packages/cryptography/x509/certificate_transparency.pyr      s    r   c                   @   s   e Zd ZdZdS )Versionr   N)r   r   r	   v1r
   r
   r
   r   r      s    r   c                   @   s    e Zd ZdZdZdZdZdZdS )SignatureAlgorithmz
    Signature algorithms that are valid for SCTs.

    These are exactly the same as SignatureAlgorithm in RFC 5246 (TLS 1.2).

    See: <https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.1.4.1>
    r   r         N)r   r   r	   __doc__Z	ANONYMOUSZRSAZDSAZECDSAr
   r
   r
   r   r      s    r   c                   @   s   e Zd ZejdefddZejdefddZejde	j	fddZ
ejdefdd	Zejdefd
dZejdefddZejdefddZejdefddZdS )SignedCertificateTimestampreturnc                 C      dS )z*
        Returns the SCT version.
        Nr
   selfr
   r
   r   version'       z"SignedCertificateTimestamp.versionc                 C   r   )zM
        Returns an identifier indicating which log this SCT is for.
        Nr
   r   r
   r
   r   log_id-   r   z!SignedCertificateTimestamp.log_idc                 C   r   )z5
        Returns the timestamp for this SCT.
        Nr
   r   r
   r
   r   	timestamp3   r   z$SignedCertificateTimestamp.timestampc                 C   r   )zV
        Returns whether this is an SCT for a certificate or pre-certificate.
        Nr
   r   r
   r
   r   
entry_type9   r   z%SignedCertificateTimestamp.entry_typec                 C   r   )zJ
        Returns the hash algorithm used for the SCT's signature.
        Nr
   r   r
   r
   r   signature_hash_algorithm?   r   z3SignedCertificateTimestamp.signature_hash_algorithmc                 C   r   )zM
        Returns the signing algorithm used for the SCT's signature.
        Nr
   r   r
   r
   r   signature_algorithmE   r   z.SignedCertificateTimestamp.signature_algorithmc                 C   r   )z5
        Returns the signature for this SCT.
        Nr
   r   r
   r
   r   	signatureK   r   z$SignedCertificateTimestamp.signaturec                 C   r   )zG
        Returns the raw bytes of any extensions for this SCT.
        Nr
   r   r
   r
   r   extension_bytesQ   r   z*SignedCertificateTimestamp.extension_bytesN)r   r   r	   abcabstractpropertyr   r   bytesr   datetimer   r   r   r   r   r   r   r   r   r
   r
   r
   r   r   &   s"    r   )	metaclass)r    r#   cryptographyr   Z"cryptography.hazmat.bindings._rustr   Z	rust_x509Z%cryptography.hazmat.primitives.hashesr   Enumr   r   r   ABCMetar   registerZSctr
   r
   r
   r   <module>   s   2