403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib/python3.11/site-packages/ansible/cli/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib/python3.11/site-packages/ansible/cli/__pycache__/vault.cpython-311.pyc
�

���c�W���ddlmZmZmZeZddlmZddlZddl	Z	ddl
mZddl
m
Z
ddlmZddlmZddlmZmZdd	lmZdd
lmZmZmZddlmZe��ZGd�d
e��Zdd�Z e!dkre ��dSdS)�)�absolute_import�division�print_function)�CLIN)�	constants)�context)�option_helpers)�AnsibleOptionsError)�to_text�to_bytes)�
DataLoader)�VaultEditor�VaultLib�match_encrypt_secret)�Displayc���eZdZdZdZdZdZdZ�fd�Z�fd�Z	�fd�Z
�fd	�Zd
�Ze
dd���Zd
�Zdd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�VaultCLIa9 can encrypt any structured data file used by Ansible.
    This can include *group_vars/* or *host_vars/* inventory variables,
    variables loaded by *include_vars* or *vars_files*, or variable files
    passed on the ansible-playbook command line with *-e @file.yml* or *-e @file.json*.
    Role variables and defaults are also included!

    Because Ansible tasks, handlers, and other objects are data, these can also be encrypted with vault.
    If you'd like to not expose what variables you are using, you can keep an individual task file entirely encrypted.
    z
ansible-vault�stdinzthe command line argszthe interactive promptc���d|_d|_d|_d|_d|_d|_d|_tt|���	|��dS)NF)
�b_vault_pass�b_new_vault_pass�encrypt_string_read_stdin�encrypt_secret�encrypt_vault_id�new_encrypt_secret�new_encrypt_vault_id�superr�__init__)�self�args�	__class__s  ��6/usr/lib/python3.11/site-packages/ansible/cli/vault.pyrzVaultCLI.__init__-s_��� ��� $���).��&�"��� $���"&���$(��!�
�h����&�&�t�,�,�,�,�,�c�v��tt|���ddtj�tjd��z���tj	�
d���}tj|��tj|��|j
�d���}d	|_tj	�
d���}|�d
dddtj���
��tj	�
d���}|�dgddt$d���|�dd||g���}|�|j���|�dddd���|�dd||g���}|�|j���|�dddd���|�dd||g���}|�|j���|�dddd���|�d d!|g���}|�|j���|�dddd���|�d"d#|||g���}	|	�|j���|	�dddd���|�d$d%|||g���}
|
�|j���|
�dd&d'd���|
�d(d)d*d+d,�-��|
�d.d/dd+d0�1��|
�d2d3d4d5d6�-��|
�d7d8dd9�:��|�d;d<||g���}|�|j���|���}|�d=dd>d?tj���
��|�d@ddAt$dB�C��|�dddd���dS)DNz4encryption/decryption utility for Ansible data fileszH
See '%s <command> --help' for more information on a specific command.

r)�desc�epilogF)�add_help�action)�destTz--output�output_filez9output file name for encrypt or decrypt; use - for stdout)�defaultr)�help�typez--encrypt-vault-idr�storezMthe vault id used to encrypt (required if more than one vault-id is provided))r+r)r(r-r,�createzCreate new vault encrypted file)r,�parents)�funcr �Filename�	file_name�*)r,�metavar�nargs�decryptzDecrypt vault encrypted file�editzEdit vault encrypted file�viewzView vault encrypted file�encryptzEncrypt YAML file�encrypt_stringzEncrypt a stringzString to encrypt�string_to_encryptz-pz--prompt�encrypt_string_prompt�
store_truez Prompt for the string to encrypt)r)r(r,z--show-input�show_string_inputz9Do not hide input when prompted for the string to encrypt)r)r+r(r,z-nz--name�encrypt_string_names�appendzSpecify the variable namez--stdin-name�encrypt_string_stdin_namez#Specify the variable name for stdin)r)r+r,�rekeyzRe-key a vault encrypted filez--new-vault-password-file�new_vault_password_filez!new vault password file for rekeyz--new-vault-id�new_vault_idz'the new vault identity to use for rekey)r+r)r-r,)rr�init_parser�os�path�basename�sys�argv�opt_help�argparse�ArgumentParser�add_vault_options�add_verbosity_options�parser�add_subparsers�required�add_argument�unfrack_path�str�
add_parser�set_defaults�execute_create�execute_decrypt�execute_edit�execute_view�execute_encrypt�execute_encrypt_string�
execute_rekey�add_mutually_exclusive_group)r�common�
subparsers�output�vault_id�
create_parser�decrypt_parser�edit_parser�view_parser�encrypt_parser�enc_str_parser�rekey_parser�rekey_new_groupr!s             �r"rFzVaultCLI.init_parser:s���
�h����)�)�G�`�ce�cj�cs�cs�tw�t|�}~�t�dA�dA�A�	*�	
�	
�	
�
�"�1�1�5�1�A�A���"�6�*�*�*��&�v�.�.�.��[�/�/�X�/�>�>�
�"�
���"�1�1�5�1�A�A�����J��=�!\�!)�!6�!8�!8�	�	:�	:�	:�
�$�3�3�U�3�C�C�����2�B�EW�%,�3�#r�	�	t�	t�	t�#�-�-�h�=^�iq�sy�hz�-�{�{�
��"�"��(;�"�<�<�<��"�"�6�
�K�WZ�"�[�[�[�#�.�.�y�?]�hn�pv�gw�.�x�x���#�#��)=�#�>�>�>��#�#�F��[�X[�#�\�\�\� �+�+�F�9T�_g�io�^p�+�q�q��� � �d�&7� �8�8�8�� � ��j�+�UX� �Y�Y�Y� �+�+�F�9T�_e�^f�+�g�g��� � �d�&7� �8�8�8�� � ��j�+�UX� �Y�Y�Y�#�.�.�y�?R�]c�ek�mu�\v�.�w�w���#�#��)=�#�>�>�>��#�#�F��[�X[�#�\�\�\�#�.�.�/?�FX�ci�kq�s{�b|�.�}�}���#�#��)D�#�E�E�E��#�#�F�1D�Na�il�#�m�m�m��#�#�D�*�;R�+7�)K�	$�	M�	M�	M�	�#�#�N�9L�V[�dp�)d�	$�	f�	f�	f��#�#�D�(�9O�+3�)D�	$�	F�	F�	F�	�#�#�N�9T�,0�)N�	$�	P�	P�	P�"�,�,�W�;Z�ek�mu�dv�,�w�w���!�!�t�'9�!�:�:�:�&�C�C�E�E���$�$�%@�$�Un�*M�T\�Ti�Tk�Tk�	%�	m�	m�	m��$�$�%5�t�.�_b�*S�	%�	U�	U�	U��!�!�&�z�;�VY�!�Z�Z�Z�Z�Zr#c����tt|���|��}|jt_|jr |jD]}d|vrt
d|z����t|dd��r't|j	��dkrt
d���|j
dkr;d|j	vs|j	r|jrd|_|j
r|jrt
d	���|S)
N�;zK'%s' is not a valid vault id. The character ';' is not allowed in vault idsr*�z;At most one input file may be used with the --output optionr;�-TzEThe --prompt option is not supported if also reading input from stdin)rr�post_process_args�	verbosity�display�	vault_idsr
�getattr�lenr r(rBrr=)r�optionsrdr!s   �r"rqzVaultCLI.post_process_args~s�����$�'�'�9�9�'�B�B��#�-�����	H�#�-�
H�
H���8�#�#�-�.{�G�/G�H�H�H�$��7�M�4�0�0�	e�S���5F�5F��5J�5J�%�&c�d�d�d��>�-�-�-��g�l�"�"�'�,�"�'�:[�"�15��.��,�
s��1O�
s�)�*q�r�r�r��r#c�|��tt|�����t��}t	jd��}t
tjd��}tj
}||z}tjd}|dvrW|�||t
tjd��tjd���}|std���|d	vr�d}|d
vrtjdptj
}d}|�||t
tjd��tjdd�
��}t|��dkr1|s/tdd�d�|D����z���|std���t!||���}|d|_|d|_|dvr�tjdptj
}g}	|r|}	tjdr%|	�tjd��g}
tjdr%|
�tjd��|�||	|
tjdd�
��}|std���t!||���}|d|_|d|_|�|��t/|��}
t1|
��|_tjd��t	j|��dS)N�?rtr()r7r9rCr8�vault_password_files�ask_vault_pass)rtrzr{z3A vault password is required to use Ansible's Vault)r:r;r/)r8rT)rtrzr{�create_new_passwordrozbThe vault-ids %s are available to encrypt. Specify the vault-id to encrypt with --encrypt-vault-id�,c��g|]
}|d��S)r���.0�xs  r"�
<listcomp>z VaultCLI.run.<locals>.<listcomp>�s��3P�3P�3P�Q�A�a�D�3P�3P�3Pr#)rr)rCrErDz=A new vault password is required to use Ansible's Vault rekeyr1)rr�runr
rG�umask�listr�CLIARGS�C�DEFAULT_VAULT_IDENTITY_LIST�setup_vault_secretsr
�DEFAULT_VAULT_ENCRYPT_IDENTITYrv�joinrrrrArr�set_vault_secretsrr�editor)r�loader�	old_umaskrt�default_vault_idsr(�
vault_secretsrr�
new_vault_ids�new_vault_password_files�new_vault_secretsr�vaultr!s              �r"r�zVaultCLI.run�sx���
�h����!�!�#�#�#������H�U�O�O�	�����5�6�6�	��9��%�	�1�	����*���9�9�9� �4�4�V�y�JN�w��_u�Ov�Jw�Jw�DK�O�Td�De�5�g�g�M�!�
a�)�*_�`�`�`��<�<�<�#���X�%�%�#*�?�3E�#F�#j�!�Jj� � �M��(�(��3<�>B�7�?�Si�Cj�>k�>k�8?��HX�8Y�=A�	)�C�C�
��=�!�!�A�%�%�.>�%�)�+O�*-�(�(�3P�3P�-�3P�3P�3P�*Q�*Q�+R�S�S�S�!�
a�)�*_�`�`�`�1�-�CS�U�U�U�N�
%3�1�$5�D�!�"0��"3�D���Y���&��/A�B�f�a�Ff���M��
2� 1�
���~�.�
F��$�$�W�_�^�%D�E�E�E�')�$���8�9�
\�(�/�/���@Y�0Z�[�[�[��(�(��3@�>V�8?��HX�8Y�=A�	)�C�C�
�%�
k�)�*i�j�j�j�"6�6G�GW�"Y�"Y�"Y��);�1�(=�D�%�&8��&;�D�#�� � ��/�/�/���'�'��!�%�(�(�������!�!�!�	�������r#c��tjds:tj���rt
�dd���tjdpdgD]:}|j�||j|j	tjd����;tj
���rt
�dd���d	Sd	S)
z; encrypt the supplied file using the provided vault secret r z"Reading plaintext input from stdinT��stderrrpr*)rdr*�Encryption successfulN)rr�rJr�isattyrsr��encrypt_filerr�stdout�r�fs  r"r]zVaultCLI.execute_encrypt�s�����v�&�	O�3�9�+;�+;�+=�+=�	O��O�O�@��O�N�N�N����(�1�S�E�	Q�	Q�A��K�$�$�Q��(;�.2�.C�18���1O�
%�
Q�
Q�
Q�
Q��:�����	B��O�O�3�D�O�A�A�A�A�A�	B�	Br#Nc��|pd}d}|rd|z}d|z}g}t|��}|�|��|���D]}|�d|z�|�����d�|��}|S)N�
�z%s: z
%s!vault |� �
)rrA�
splitlinesr�)	�b_ciphertext�indent�name�block_format_var_name�block_format_header�lines�vault_ciphertext�line�yaml_ciphertexts	         r"�format_ciphertext_yamlzVaultCLI.format_ciphertext_yamls�����2�� "���	2�$*�T�M�!�*�-B�B����"�<�0�0��
���(�)�)�)�$�/�/�1�1�	8�	8�D��L�L�3��<�<���6�7�7�7�7��)�)�E�*�*���r#c�L�d}g}d�tjdD��}tjdr�d}d}t�d��}|dkr|}tjd}|rd	}nd
}t�||���}|dkrt	d���t|��}|�||j|f��|jr�tj
���rt�d
d���tj�
��}	|	dkrt	d���tj
���r/|	�d��st�d��t|	��}tjd}|�||j|f��tj�dd��r�t#t%tjd|����}
t'|��t'|
��krQt�dd���t�dtjddzd���|t'|
��d�D]}|
�d|f���nd�|D��}
|
D]H}|\}}
|
dkrt	d���t|
��}|�||j|f���I|�||j���}g}|D]q}|�dd��}|�dd��}|rtj�|��|�t|�����r|j�d�|��tjdpd��tj
���rt�d d���dSdS)!z= encrypt the supplied string using the provided vault secret Nc��g|]
}|dk�|��S)rprr�s  r"r�z3VaultCLI.execute_encrypt_string.<locals>.<listcomp>(s��?�?�?�a�a�3�h�h��h�h�hr#r r=zString to encrypt: z#Variable name (enter for no name): r�r?zString to encrypt (hidden): zString to encrypt:)�privatez@The plaintext provided from the prompt was empty, not encryptingzpReading plaintext input from stdin. (ctrl-d to end input, twice if your content does not already have a newline)Tr�zstdin was empty, not encryptingr�rBr@Fz=The number of --name options do not match the number of args.zCThe last named variable will be "%s". The rest will not have names.���c��g|]}d|f��S�Nrr�s  r"r�z3VaultCLI.execute_encrypt_string.<locals>.<listcomp>ks��!:�!:�!:��4��)�!:�!:�!:r#zKThe plaintext provided from the command line args was empty, not encrypting�rd�err�out�
r*rpr�)rr�rs�promptr
rrA�FROM_PROMPTrrJr�r�r�read�endswith�
FROM_STDIN�getr��ziprv�	FROM_ARGS�_format_output_vault_stringsrr��writer��
write_datar�)r�b_plaintext�b_plaintext_listr �msgr��name_prompt_response�
hide_input�prompt_response�
stdin_text�name_and_text_list�	extra_arg�
name_and_text�	plaintext�outputs�b_outsrcr�r�s                   r"r^zVaultCLI.execute_encrypt_stringsP������@�?�7�?�6�2�?�?�?���?�2�3�	K�'�C��D�#*�>�>�2W�#X�#X� �$�r�)�)�+��%�_�-@�A�A�J��
+�4���*��%�n�n�S�*�n�E�E�O��"�$�$�)�*l�m�m�m�"�?�3�3�K��#�#�[�$�2B�D�$I�J�J�J��)�	J��z� � �"�"�
a����!S�\`��a�a�a�����)�)�J��R���)�*K�L�L�L��z� � �"�"�
&�:�+>�+>�t�+D�+D�
&�����%�%�%�"�:�.�.�K��?�#>�?�D��#�#�[�$�/�4�$H�I�I�I��?���5�u�=�=�	;�!%�c�'�/�:P�*Q�SW�&X�&X�!Y�!Y���4�y�y�3�1�2�2�2�2���� _�'+� �-�-�-����!*�,3�O�<R�,S�TV�,W�!X�'+� �-�-�-�
"�#�&8�"9�"9�":�":�;�
=�
=�	�"�)�)�4��*;�<�<�<�<�
=�
";�!:�T�!:�!:�!:��0�	I�	I�M�+�O�D�)��B���)�*w�x�x�x�"�9�-�-�K��#�#�[�$�.�$�$G�H�H�H�H��3�3�4D�t�Od�3�e�e�����	)�	)�F��*�*�U�D�)�)�C��*�*�U�B�'�'�C��
&��
� � ��%�%�%��M�M�(�3�-�-�(�(�(�(�����u�z�z�&�1�1�7�?�=�3Q�3X�UX�Y�Y�Y��:�����	B��O�O�3�D�O�A�A�A�A�A�	B�	Br#c�F�d}t|��dkrd}g}t|��D]w\}}|\}}}	|j�||j|���}
|�|
|	���}d}|r|dz}
|	r	d|	|
|fz}nd|
|fz}|�||d����x|S)	NFroTr�)r�zD# The encrypted version of variable ("%s", the string #%d from %s).
z4# The encrypted version of the string #%d from %s.)
)r�r�)rv�	enumerater��
encrypt_bytesrr�rA)rr�rd�show_delimiterrc�index�b_plaintext_infor��srcr�r��	yaml_text�err_msg�human_indexs              r"r�z%VaultCLI._format_output_vault_strings�s������� � �1�$�$�!�N���
(1�1A�'B�'B�	>�	>�#�E�#�%5�"�K��d��;�4�4�[�$�BU�`h�4�i�i�L��3�3�L�t�3�L�L�I��G��
k�#�a�i���k�e�im�oz�|�iA�A�G�G�U�Yd�fi�Xj�j�G��M�M�)�G�<�<�=�=�=�=��
r#c��tjds:tj���rt
�dd���tjdpdgD].}|j�|tjd����/tj���rt
�dd���d	Sd	S)
z; decrypt the supplied file using the provided vault secret r z#Reading ciphertext input from stdinTr�rpr*)r*zDecryption successfulN)	rr�rJrr�rsr��decrypt_filer�r�s  r"rZzVaultCLI.execute_decrypt�s�����v�&�	P�3�9�+;�+;�+=�+=�	P��O�O�A�$�O�O�O�O����(�1�S�E�	T�	T�A��K�$�$�Q�G�O�M�4R�$�S�S�S�S��:�����	B��O�O�3�D�O�A�A�A�A�A�	B�	Br#c���ttjd��dkrtd���|j�tjdd|j|j���dS)zf create and open a file in an editor that will be encrypted with the provided vault secret when closedr roz8ansible-vault create can take only one filename argumentrr�N)rvrr�r
r��create_filerr)rs r"rYzVaultCLI.execute_create�st���w��v�&�'�'�1�,�,�%�&`�a�a�a�������� 7�� :�D�<O�)-�)>�	 �	@�	@�	@�	@�	@r#c�d�tjdD]}|j�|���dS)za open and decrypt an existing vaulted file in an editor, that will be encrypted again when closedr N)rr�r��	edit_filer�s  r"r[zVaultCLI.execute_edit�s;�����(�	%�	%�A��K�!�!�!�$�$�$�$�	%�	%r#c��tjdD]>}|j�|��}|�t|�����?dS)z_ open, decrypt and view an existing vaulted file using a pager using the supplied vault secret r N)rr�r�r��pagerr)rr�r�s   r"r\zVaultCLI.execute_view�sX�����(�	+�	+�A���-�-�a�0�0�I��J�J�w�y�)�)�*�*�*�*�	+�	+r#c��tjdD](}|j�||j|j���)t�dd���dS)zN re-encrypt a vaulted file with a new secret, the previous secret is required r zRekey successfulTr�N)rr�r��
rekey_filerrrsr�s  r"r_zVaultCLI.execute_rekey�sc�����(�	>�	>�A��K�"�"�1�d�&=�#'�#<�
>�
>�
>�
>�	���*�4��8�8�8�8�8r#)NNr�)�__name__�
__module__�__qualname__�__doc__r�r�r�r�rrFrqr�r]�staticmethodr�r^r�rZrYr[r\r_�
__classcell__)r!s@r"rrsb����������D��J�'�I�*�K�-�-�-�-�-�B[�B[�B[�B[�B[�H�����.f�f�f�f�f�P
B�
B�
B������\��$gB�gB�gB�V����B
B�
B�
B�@�@�@�%�%�%�

+�
+�
+�9�9�9�9�9�9�9r#rc�:�t�|��dSr�)r�cli_executor)r s r"�mainr��s�����$�����r#�__main__r�)"�
__future__rrrr-�
__metaclass__�ansible.clirrGrJ�ansiblerr�r�ansible.cli.argumentsr	rL�ansible.errorsr
�ansible.module_utils._textrr�ansible.parsing.dataloaderr
�ansible.parsing.vaultrrr�ansible.utils.displayrrsrr�r�rr#r"�<module>r�si��C�B�B�B�B�B�B�B�B�B��
�������	�	�	�	�
�
�
�
�"�"�"�"�"�"�������<�<�<�<�<�<�.�.�.�.�.�.�8�8�8�8�8�8�8�8�1�1�1�1�1�1�M�M�M�M�M�M�M�M�M�M�)�)�)�)�)�)�
�'�)�)��|9�|9�|9�|9�|9�s�|9�|9�|9�~
 � � � ��z����D�F�F�F�F�F��r#

Youez - 2016 - github.com/yon3zu
LinuXploit