| Server IP : 3.96.16.70 / Your IP : 216.73.216.15 Web Server : Apache System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python3.9/site-packages/certbot/__pycache__/ |
Upload File : |
a
�]e` � @ s
d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlmZ ddlm Z ddlm
Z
ddlmZ dd lmZ dd
l
mZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl!m"Z" ddl!m#Z# ddl!m$Z$ ddl%Z%ddl&m'Z' ddl&m(Z( ddl)Z)ddl*m+Z, ddl-m.Z. ddl-m/Z/ ddl-m0Z0 ddl1m2Z2 e�r�ddl3m4Z4 dd l5m6Z6 dd!l7m8Z8 dd"l9m:Z: e�;e<�Z=d|e>ee? e?e?e?e@e0jAd'�d(d)�ZBd}e0jAeee? e e? f ee? e@e@e0jCd+�d,d-�ZDeEe@d.�d/d0�ZFeEeEe@d1�d2d3�ZGe?eEe
e>e0jCee? f d4�d5d6�ZHd~e>e?ee? eEd8�d9d:�ZIee?eEf e@d;�d<d=�ZJe/jKdd>�d?d@�ZLe/jKdd>�dAdB�ZMeedCdDee dEdFf eEeEejNddG�dHdI�ZOe?e?ddJ�dKdL�ZPe/jKdd>�dMdN�ZQeEe
e'jRe>f dO�dPdQ�ZSe'jTfeEee>eEgee'jRe'jUf f e>ee'jRe'jUf dR�dSdT�ZVe'jTfeEee>eEgee'jRe'jUf f e>ee? dR�dUdV�ZWe'jTfeEe>ee? dW�dXdY�ZXeEee>eEgee'jRe'jUf f e>ee? dZ�d[d\�ZYee'jRe'jUf ee? d]�d^d_�ZZe'jTfeEe>ee? dW�d`da�Z[e'jTfeEe>ee? db�dcdd�Z\e'jTfeee'jR ee%j] f e>eEde�dfdg�Z^e?ejdh�didj�Z_e?ejdh�dkdl�Z`e?ee'jRgeeE f ejdm�dndo�Zae?e?dp�dqdr�Zbe�cdsejd�Zee?e
e?e?f dt�dudv�Zfe?e>dh�dwdx�Zgdee? e?e@e?dy�dzd{�ZhdS )�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)�Callable)�List)�Optional)�Set)�Tuple)�
TYPE_CHECKING)�Union)�x509)�InvalidSignature)�UnsupportedAlgorithm)�default_backend)�hashes)�ec)�DSAPublicKey)�ECDSA)�EllipticCurvePublicKey)�PKCS1v15)�RSAPublicKey)�Encoding)�NoEncryption)�
PrivateFormat)�crypto)�SSL)�crypto_util)�errors)�
interfaces)�util)�os)�Ed448PublicKey)�Ed25519PublicKey)�
X448PublicKey)�X25519PublicKey�rsa� secp256r1�key-certbot.pemT)�key_size�key_dir�key_type�elliptic_curve�keyname�strict_permissions�returnc
C s� zt | |pd|d�}W nF ty\ } z.tjddd� t�dt|�� |�W Y d}~n
d}~0 0 d}|r�t�|d|� t�t j
�||�d d
�\} }| � | �|� W d � n1 s�0 Y |dkr�t�d| |� nt�d
| |� t�
||�S )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.
r# )�bitsr( r'