o xnh @sNddlZddlZddlZddlZddlZGdddeZdddZddZdS) Nc@s,eZdZddZddZddZddZd S) AnsibleVaultExecutorcCs&ddl}td|jdddS)Nr.)ansiblefloatjoin __version__split)selfrr @/usr/local/lib/python3.10/dist-packages/ansible_vault/testing.py get_versionsz AnsibleVaultExecutor.get_versioncCstjtjtjdS)Nz ansible-vault)ospathrdirnamesys executable)r r r r get_executorsz!AnsibleVaultExecutor.get_executorcCFd}|dkr d}dj|||d}ttd||gdS)Nvault-password-file333333@vault-idz.encrypt --{pass_opt}={pass_path} {plain_fpath})pass_opt pass_path plain_fpath r format subprocess check_outputshlexr rr)r rrrargsr r r encrypt  zAnsibleVaultExecutor.encryptcCr)Nrrrz.decrypt --{pass_opt}={pass_path} {vault_fpath})rr vault_fpathrr)r rr$rr!r r r decrypt,r#zAnsibleVaultExecutor.decryptN)__name__ __module__ __qualname__r rr"r%r r r r rs  rc Cst\}}t|d }||Wdn1swYt\}}t|d }||Wdn1s;wYz7t||t|}|WdWt|t|S1sfwYWt|t|dSt|t|w)Nw) tempfilemkstempopenwriterr"readrremove) plaintextsecretvault_id_rfprr r r encrypt_text9s(           r5c Cst\}}t|d}t|tr|d}||Wdn1s%wYt\}}t|d }||Wdn1sEwYz7t||t|}| WdWt |t |S1spwYWt |t |dSt |t |w)Nr)zutf-8) r*r+r, isinstancebytesdecoder-rr%r.rr/) vaulttextr1r3r$r4rr r r decrypt_textMs,             r:)N) rrr rr*objectrr5r:r r r r s !