| Server IP : 173.249.148.11 / Your IP : 216.73.216.179 Web Server : Apache/2.4.68 (AlmaLinux) System : Linux developmentwebsite.ca 4.18.0-553.168.1.el8_10.x86_64 #1 SMP Thu Sep 24 18:05:46 UTC 2026 x86_64 User : devinter ( 1006) PHP Version : 8.3.35 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /snap/certbot/5781/lib64/python3.12/site-packages/certbot/__pycache__/ |
Upload File : |
�
�hXjU^ � �j � d Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddlm Z ddl
Z
ddlmZ ddl
mZ ddl
mZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl!m"Z" ddl!m#Z# ddl!m$Z$ ddl%m&Z& ddl'm(Z) ddl*m+Z+ ddl*m,Z, ddl*m-Z- ddl.m/Z/ erddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ejp e9� Z: d[d e;d!ee< d"e<d#e<d$e<d%e=d&e-j| fd'�Z? d\d(e-j| d)e e@e< eAe< f d*ee< d+e=d%e=d,e@ej� ej� z dz d&e-j� fd-�ZEd.eFd&e=fd/�ZGd.eFd(eFd&e=fd0�ZHd1e<d2eFd&e-j� fd3�ZId1e<d2eFd&eJd4e-j� e@e< f fd5�ZK d]d6e;d"e<d#ee< d&eFfd7�ZLd(e e<eFf d&e=fd8�ZMd9e,j� d&dfd:�ZOd9e,j� d&dfd;�ZPd<e ed=d>ee d?d@f dAeFdBeFdCej� d&df
dD�ZRdEe<dFe<d&dfdG�ZSd9e,j� d&dfdH�ZT d^dIeFdJdKd&e@e< fdL�ZU d^dIeFdJdKd&e@e< fdM�ZV d^d.eFdJdKd&e@e< fdN�ZWdEe<d&ej fdO�ZXdEe<d&ej fdP�ZYdQe<d&e<fdR�ZZ ej� dSej� � Z]dTe<d&eJe<e<f fdU�Z^dEe<d&e;fdV�Z_ d_dWe@e< dXe<dYe=d&e<fdZ�Z`y)`z�Certbot client crypto utility functions.
.. todo:: Make the transition to use PSS rather than PKCS1_v1_5 when the server
is capable of handling the signatures.
� N)�Optional)�
TYPE_CHECKING)�Union)�x509)�InvalidSignature)�UnsupportedAlgorithm)�default_backend)�hashes)�
serialization)�ec)�rsa)�DSAPublicKey)�ECDSA)�EllipticCurvePublicKey)�PKCS1v15)�RSAPublicKey)�Encoding)�NoEncryption)�
PrivateFormat)�SSL)�crypto_util)�errors)�
interfaces)�util)�os)�Ed448PublicKey)�Ed25519PublicKey)�
X448PublicKey)�X25519PublicKey�key_size�key_dir�key_type�elliptic_curve�keyname�strict_permissions�returnc �D � t | |xs d|�� }d}|r�t
j |d|� t
j t j j ||� d d
� \ } }| 5 | j |� ddd� |dk( rt j d| |� nt j d
| |� t
j ||� S # t $ r=}t j dd�� t j dt |� � |�d}~ww xY w# 1 sw Y ��xY w)a$ Initializes and saves a privkey.
Inits key and saves it in PEM format on the filesystem.
.. note:: keyname is the attempted filename, it may be different if a file
already exists at the path.
:param int key_size: key size in bits if key size is rsa.
:param str key_dir: Optional key save directory.
:param str key_type: Key Type [rsa, ecdsa]
:param str elliptic_curve: Name of the elliptic curve if key type is ecdsa.
:param str keyname: Filename of key
:param bool strict_permissions: If true and key_dir exists, an exception is raised if
the directory doesn't have 0700 permissions or isn't owned by the current user.
:returns: Key
:rtype: :class:`certbot.util.Key`
:raises ValueError: If unable to generate the key given key_size.
� secp256r1)�bitsr# r"