D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
lib
/
python3.9
/
site-packages
/
ipapython
/
__pycache__
/
Filename :
certdb.cpython-39.pyc
back
Copy
a ��i�� � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Z d dlZd dlZd dl mZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d d lmZ d d lmZ e�e�Z dZ!dZ"d Z#e"e# d Z$e�%dd�Z&e&dddd�Z'e&ddde(ej)ej*ej+ej,ej-ej.h��Z/e&ddde(ej)h��Z0e&ddde(ej)h��Z1dd� Z2e!fdd�Z3d)dd�Z4dd� Z5dd� Z6dd� Z7e �8d�Z9e �8d �Z:G d!d"� d"e;�Z<G d#d$� d$e;�Z=G d%d&� d&e;�Z>G d'd(� d(�Z?dS )*� )�absolute_importN)�find_library)�NamedTemporaryFile)�paths)�tasks)�DN)� Principal)�ipautil)�x509z %s IPA CA)�cert8.db�key3.db� secmod.db)�cert9.db�key4.db� pkcs11.txt)�pwdfile.txt� TrustFlagszhas_key trusted ca usagesFTc C s t td��S )NZnssdbm3)�boolr � r r �4/usr/lib/python3.9/site-packages/ipapython/certdb.py�nss_supports_dbmM s r c C s || S �Nr )�realm�formatr r r �get_ca_nicknameQ s r c C s` | � d|�}| � d|�}|dkr(|d }|dk s8|dk r@td��t�| ||� �d��} | |fS )z� Given a cert blob (str) which may or may not contian leading and trailing text, pull out just the certificate part. This will return the FIRST cert in a stream of data. :returns: a tuple (IPACertificate, last position in cert) z-----BEGIN CERTIFICATE-----z-----END CERTIFICATE-----r � zUnable to find certificatezutf-8)�find�RuntimeErrorr �load_pem_x509_certificate�encode)�cert�start�s�er r r �find_cert_from_txtU s r$ c C s� d| v }d| v r4d| v s(d| v s(d| v r0t d��dS d| v sDd| v rZd| v rTt d��d }nd| v rhd }nt|ddt� �S | �d�} t� }ttjtjtj f�D ]*\}}d| | v s�d| | v r�|� |� q�d| d v r�|� tj� t|d |t|��S )z< Convert certutil trust flags to TrustFlags object. �u�p�C�P�Tz&cannot be both trusted and not trusted)FNNzcannot be both CA and not CATFN�,r )� ValueErrorr � frozenset�split�set� enumerater �EKU_SERVER_AUTH�EKU_EMAIL_PROTECTION�EKU_CODE_SIGNING�add�EKU_CLIENT_AUTH)�trust_flags�has_key�ca� ext_key_usage�i�kpr r r �parse_trust_flagsi s. �r; c C s� | \}}}}|du r"|rdS dS nD|du s2|du r@|r:dS dS n&|du rf|rZ|rTdS dS n|rbd S d S g d�} t tjtjtjf�D ](\}}||v r�| | |r�dnd 7 <