JFIF$        dd7 

Viewing File: /usr/share/crypto-policies/python/policygenerators/__pycache__/sequoia.cpython-39.opt-1.pyc

a

C�h��@s<ddlZddlZddlmZddlmZGdd�de�ZdS)�N)�mkstemp�)�ConfigGeneratorc@s�eZdZdZddhZddgZddgZddd	d
ddd
ddd�	Zddd	d	dddd	dddd�Zddddddddd�Z	d d!ddd"�Z
d#Zd$d%hd&d'hd(d)hd*�Zd+d,d"d-d.�Z
ed/d0��Zed1d2��Zed3d4��Zd	S)5�RPMSequoiaGeneratorzrpm-sequoiaZrpmzMLKEM768-X25519zMLKEM1024-X448zMLDSA65-ED25519z
MLDSA87-ED448ZMD5ZSHA1NzSHA2-224zSHA2-256zSHA2-384zSHA2-512zSHA3-256zSHA3-512)	Zmd5Zsha1Z	ripemd160Zsha224Zsha256Zsha384Zsha512�sha3-256�sha3-512zIDEA-CFBz3DES-CFBzAES-128-CFBzAES-192-CFBzAES-256-CFBzCAMELLIA-128-CFBzCAMELLIA-192-CFBzCAMELLIA-256-CFB)ZideaZ	tripledesZcast5ZblowfishZaes128Zaes192Zaes256ZtwofishZcamellia128Zcamellia192Zcamellia256Z	SECP256R1Z	SECP384R1Z	SECP521R1ZX25519ZX448)Znistp256Znistp384Znistp521Zcv25519�x25519�x448�mlkem768-x25519�mlkem1024-x448z
EDDSA-ED25519zEDDSA-ED448)Zed25519Zed448zmldsa65-ed25519z
mldsa87-ed448)Zelgamal1024Zelgamal2048Zelgamal3072Zelgamal4096Z
brainpoolp256Z
brainpoolp512zAES-256-EAXzAES-128-EAXzAES-256-OCBzAES-128-OCBzAES-256-GCMzAES-128-GCM)ZeaxZocb�gcm)rr)rr	r
r)r)�hash�group�sign�aeadcs:�fdd�|D�}|r6d�dd�|D��}d|�d�SdS)	Ncs$g|]}�j�|g�D]}|�qqS�)�ignore_invalid�get)�.0�k�v��clsr�=/usr/share/crypto-policies/python/policygenerators/sequoia.py�
<listcomp>e�z@RPMSequoiaGenerator._generate_ignore_invalid.<locals>.<listcomp>z, css|]}d|�d�VqdS)�"Nr)rrrrr�	<genexpr>grz?RPMSequoiaGenerator._generate_ignore_invalid.<locals>.<genexpr>zignore_invalid = [ z ]
�)�join)rZkinds�valuesrrr�_generate_ignore_invalidcs
z,RPMSequoiaGenerator._generate_ignore_invalidcCs�|j}d}||�d�7}|j��D]D\}}||dvr:dnd}||�d|�d�7}||�d|�d�7}q"|d7}|d	7}||�d
�7}|j��D]0\}}||d
vr�dnd}||�d|�d�7}q�|d7}|d7}||�d
d�7}tdd�|dD��}tdd�|dD��}|jd}	dD]4}
|
|	k�r4|�r4dnd}|d|
�d|�d�7}�q|jd}dD]4}
|
|k�rx|�rxdnd}|d|
�d|�d�7}�q`|j��D]D\}}
|
|d
v�r�dnd}|
|jv�r�d}||�d|�d�7}�q�|j	��D]D\}}||dv�r
dnd}||j
v�rd}||�d|�d�7}�q�|jD]}||�d�7}�q<|d7}|d7}|d7}||�d�7}|j��D]6\}}|�
|d
��r�dnd}||�d|�d�7}�q�|S)Nz[hash_algorithms]
r
�always�neverz.collision_resistance = "z"
z.second_preimage_resistance = "zdefault_disposition = "never"

z[symmetric_algorithms]
Zcipherz = "z[asymmetric_algorithms]
rrcss|]}|�d�VqdS)zRSA-N��
startswith�r�srrrr�rz6RPMSequoiaGenerator.generate_config.<locals>.<genexpr>css|]}|�d�VqdS)zDSA-Nr$r&rrrr�rZmin_rsa_size)iiiiZrsaZmin_dsa_sizeZdsaz = "never"
zdefault_disposition = "never"
z
[aead_algorithms]
r)Zenabledr!�hash_backwards_map�items�symmetric_backwards_map�anyZintegers�asymmetric_group_backwards_map�force_on_group�asymmetric_sign_backwards_map�
force_on_sign�asymmetric_always_disabled�aead_backwards_map�intersection)rZpolicy�pZcfgZseqoia_nameZc_p_namerZany_rsaZany_dsaZmin_rsa�lZmin_dsaZseq_namerrZ	c_p_namesrrr�generate_configks\


z#RPMSequoiaGenerator.generate_configc	Cs^d�dd�|�d�D��}||k}|}t�d�dkr8dSt�\}}�zz�t�|d��}|�|�Wd�n1st0Ytjd|gd	d
tj	tj
d�}|�d|j�|j
r�d
|j
dnd���|j|j
fdkr�WWt�|�dS|�d|r�dndd�|�d|���Wn,t�y>|�d�YWt�|�dS0Wt�|�nt�|�0d	S)N�
css|]}|�d�s|VqdS)zignore_invalid = Nr$)rr4rrrr�s
�z2RPMSequoiaGenerator.test_config.<locals>.<genexpr>ZOLD_SEQUOIA�1T�wzsequoia-policy-config-checkFzutf-8)�check�encoding�stdout�stderrz$sequoia-policy-config-check returns z `�`r)rrzThere is an error in a �	tightenedZ	generatedz sequoia policyzPolicy:
z,sequoia-policy-config not found, skipping...)r�split�os�getenvr�fdopen�write�
subprocess�run�PIPEZSTDOUTZeprint�
returncoder;�unlink�FileNotFoundError)rZconfigZstricter_configr>�fd�path�f�rrrr�test_config�sR
�
(����	
�
��

�zRPMSequoiaGenerator.test_config)�__name__�
__module__�__qualname__ZCONFIG_NAMEZSCOPESr-r/r(r*r,r.r0r1r�classmethodr!r5rNrrrrrsp�
����	�

:r)r@rDZtempfilerZconfiggeneratorrrrrrr�<module>s
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg