D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.9
/
site-packages
/
ipapython
/
__pycache__
/
Filename :
kerberos.cpython-39.opt-1.pyc
back
Copy
a }�f� � @ sl d Z ddlZddlZddlmZmZ ejr.eZe� d�Z e� d�Zddd�Zdd � Z ejG d d� d��ZdS ) zC classes/utils for Kerberos principal name validation/manipulation � N)� escape_seq�unescape_seqz(?<!\\)@z(?<!\\)/c C s^ t �| �}t|�dkrtd��|d }z|d }W n" tyT |du rLdn|}Y n0 ||fS )aS split principal to the <principal_name>, <realm> components :param principal: unicode representation of principal :param realm: if not None, replace the parsed realm with the specified one :returns: tuple containing the principal name and realm realm will be `None` if no realm was found in the input string � z)Principal is not in <name>@<realm> formatr � N)�REALM_SPLIT_RE�split�len� ValueError� IndexError)� principal�realmZrealm_and_name�principal_name�parsed_realm� r �6/usr/lib/python3.9/site-packages/ipapython/kerberos.py�parse_princ_name_and_realm s �r c C s t t�| ��S )a� Split principal name (without realm) into the components NOTE: operates on the following RFC 1510 types: * NT-PRINCIPAL * NT-SRV-INST * NT-SRV-HST Enterprise principals (NT-ENTERPRISE, see RFC 6806) are also handled :param principal_name: unicode representation of principal name :returns: tuple of individual components (i.e. primary name for NT-PRINCIPAL and NT-ENTERPRISE, primary name and instance for others) )�tuple�COMPONENT_SPLIT_REr )r r r r �split_principal_name- s r c @ s� e Zd ZdZd)dd�Zdd� Zdd� Zd d � Zdd� Zd d� Z dd� Z dd� Zd*dd�Ze dd� �Ze dd� �Ze dd� �Ze dd� �Ze dd� �Ze dd � �Ze d!d"� �Ze d#d$� �Zd%d&� Zd'd(� ZdS )+� PrincipalzJ Container for the principal name and realm according to RFC 1510 Nc C sv t |t�rtd�|���nXt |t�r:| �||�\| _| _n8t |t�rb|j| _|d u rZ|jn|| _nt |�| _|| _d S )Nz1Cannot create a principal object from bytes: {!r}) � isinstance�bytes� TypeError�format�str�_parse_from_text� componentsr r r )�selfr r r r r �__init__D s �� � zPrincipal.__init__c C s&