# Counter import fails for 2.0.1, requires >= 2.6.1 from pip
try:
fromCrypto.UtilimportCounter
HAS_COUNTER=True
exceptImportError:
HAS_COUNTER=False
# KDF import fails for 2.0.1, requires >= 2.6.1 from pip
try:
fromCrypto.Protocol.KDFimportPBKDF2
HAS_PBKDF2=True
exceptImportError:
HAS_PBKDF2=False
# AES IMPORTS
# AES IMPORTS
try:
try:
fromCrypto.CipherimportAESasAES
fromCrypto.CipherimportAESasAES
...
@@ -37,15 +53,17 @@ try:
...
@@ -37,15 +53,17 @@ try:
exceptImportError:
exceptImportError:
HAS_AES=False
HAS_AES=False
CRYPTO_UPGRADE="ansible-vault requires a newer version of pycrypto than the one installed on your platform. You may fix this with OS-specific commands such as: rpm -e --nodeps python-crypto; pip install pycrypto"
HEADER='$ANSIBLE_VAULT'
HEADER='$ANSIBLE_VAULT'
CIPHER_WHITELIST=['AES']
CIPHER_WHITELIST=['AES','AES256']
classVaultLib(object):
classVaultLib(object):
def__init__(self,password):
def__init__(self,password):
self.password=password
self.password=password
self.cipher_name=None
self.cipher_name=None
self.version='1.0'
self.version='1.1'
defis_encrypted(self,data):
defis_encrypted(self,data):
ifdata.startswith(HEADER):
ifdata.startswith(HEADER):
...
@@ -59,7 +77,8 @@ class VaultLib(object):
...
@@ -59,7 +77,8 @@ class VaultLib(object):
raiseerrors.AnsibleError("data is already encrypted")
raiseerrors.AnsibleError("data is already encrypted")
ifnotself.cipher_name:
ifnotself.cipher_name:
raiseerrors.AnsibleError("the cipher must be set before encrypting data")
self.cipher_name="AES256"
#raise errors.AnsibleError("the cipher must be set before encrypting data")