
    g                     r    d dl Z d dlmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
  G d d      Zded	efd
Zd Zy)    N)BinaryIOOptional)crypt)
AuthStatus)IncrementalPdfFileWriterc                   .    e Zd ZdedefdZdefdZd Zy)OpenForSigninginfile_pathlenientc                 .    || _         || _        d | _        y N)r
   r   handle)selfr
   r   s      Z/var/www/html/Beni/venv/lib/python3.12/site-packages/pyhanko/cli/commands/signing/utils.py__init__zOpenForSigning.__init__   s    &*.    returnc                 T   t        | j                  d      x| _        }t        || j                         }|j
                  j                  r|j
                  j                  }t        |t        j                        rht        j                  d| j                  z        }|j                  |      }|j                  t        j                  k(  rt!        j"                  d      |S t        |t        j$                        rt!        j"                  d      t!        j"                  d      |S )Nrb)strictz"Password for encrypted file '%s': )promptz#Invalid password for encrypted filez:Public-key document encryption is not supported in the CLIzRInput file appears to be encrypted, but appropriate credentials are not available.)openr
   r   r   r   prev	encryptedsecurity_handler
isinstancer   StandardSecurityHandlergetpassencryptstatusr   FAILEDclickClickExceptionPubKeySecurityHandler)r   infilewritershpdf_passauths         r   	__enter__zOpenForSigning.__enter__   s   #D$4$4d;;f)&T\\9IJ ;;  --B"e;;<"??A&&' ~~h/;;*"3"33..=   B ; ;<**P  **5  r   c                 R    | j                   r| j                   j                          y y r   )r   close)r   exc_typeexc_valexc_tbs       r   __exit__zOpenForSigning.__exit__-   s    ;;KK r   N)	__name__
__module____qualname__strboolr   r   r*   r0    r   r   r	   r	      s'    /C /$ /
3 8 r   r	   r
   r   c                     t        | |      S r   )r	   )r
   r   s     r   open_for_signingr8   2   s    +w//r   c                 B    d }| j                   j                  }|d|i}|S )Nurl)obj	stamp_url)ctxtext_paramsr<   s      r   get_text_paramsr?   6   s,    K!!Ii(r   )r   typingr   r   r"   pyhanko.pdf_utilsr   pyhanko.pdf_utils.cryptr   $pyhanko.pdf_utils.incremental_writerr   r	   r4   r5   r8   r?   r6   r   r   <module>rD      s:     %  # . I$  $ N0# 0 0r   