/usr/lib/python3/dist-packages/twisted/conch/client/__pycache__
Edit: /usr/lib/python3/dist-packages/twisted/conch/client/__pycache__/knownhosts.cpython-310.pyc (20162B)
o
bM @ sP d Z ddlZddlZddlmZmZmZ ddlm Z ddl
mZ ddlm
Z
ddlmZmZmZ ddlmZ dd lmZmZmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddl m!Z! e Z"dd Z#dd Z$G dd dZ%e
eG dd de%Z&e
eG dd dZ'dd Z(e
eG dd de%e!Z)G dd dZ*G dd d Z+dS )!zE
An implementation of the OpenSSH known_hosts database.
@since: 8.2
N)Error
a2b_base64
b2a_base64)closing)sha1)implementer)HostKeyChangedInvalidEntryUserRejectedKey)IKnownHostEntry)BadKeyErrorFingerprintFormatsKey)defer)Logger)nativeString)secureRandom)FancyEqMixinc C s t | S )z
Encode a binary string as base64 with no trailing newline.
@param s: The string to encode.
@type s: L{bytes}
@return: The base64-encoded string.
@rtype: L{bytes}
)r strip)s r A/usr/lib/python3/dist-packages/twisted/conch/client/knownhosts.py
_b64encode s
r c C sz | dd}t|dkrt |\}}}| dd}t|dkr*|\}}|d}n|d }d}tt|}||||fS )a
Extract common elements of base64 keys from an entry in a hosts file.
@param string: A known hosts file entry (a single line).
@type string: L{bytes}
@return: a 4-tuple of hostname data (L{bytes}), ssh key type (L{bytes}), key
(L{Key}), and comment (L{bytes} or L{None}). The hostname data is
simply the beginning of the line up to the first occurrence of
whitespace.
@rtype: L{tuple}
N
r )splitlenr rstripr
fromStringr ) stringelements hostnameskeyType
keyAndCommentsplitkey keyStringcommentkeyr r r _extractCommon- s
r* c @ s e Zd ZdZdd Zdd ZdS )
_BaseEntrya
Abstract base of both hashed and non-hashed entry objects, since they
represent keys and key types the same way.
@ivar keyType: The type of the key; either ssh-dss or ssh-rsa.
@type keyType: L{bytes}
@ivar publicKey: The server public key indicated by this line.
@type publicKey: L{twisted.conch.ssh.keys.Key}
@ivar comment: Trailing garbage after the key line.
@type comment: L{bytes}
c C s || _ || _|| _d S N)r$ publicKeyr( )selfr$ r- r( r r r __init__X s
z_BaseEntry.__init__c C s
| j |kS )a
Check to see if this entry matches a given key object.
@param keyObject: A public key object to check.
@type keyObject: L{Key}
@return: C{True} if this entry's key matches C{keyObject}, C{False}
otherwise.
@rtype: L{bool}
)r- )r. keyObjectr r r
matchesKey] s
z_BaseEntry.matchesKeyN)__name__
__module____qualname____doc__r/ r1 r r r r r+ I s r+ c s<