From ecb6f2e76ce7fb67c55dff31fc29d8a029fe3c8b Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Mon, 9 Dec 2019 14:26:15 +0100 Subject: [PATCH] Fix bug in format handling. (#65642) --- lib/ansible/modules/crypto/openssl_privatekey.py | 3 ++- test/integration/targets/openssl_privatekey/tasks/impl.yml | 6 ++++-- test/integration/targets/openssl_privatekey/tasks/main.yml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/ansible/modules/crypto/openssl_privatekey.py b/lib/ansible/modules/crypto/openssl_privatekey.py index ba3d334b6c3..00c715eb04f 100644 --- a/lib/ansible/modules/crypto/openssl_privatekey.py +++ b/lib/ansible/modules/crypto/openssl_privatekey.py @@ -377,7 +377,7 @@ class PrivateKeyBase(crypto_utils.OpenSSLObject): return False if not self._check_format(): - if ignore_conversion or self.format_mismatch != 'convert': + if not ignore_conversion or self.format_mismatch != 'convert': return False return True @@ -678,6 +678,7 @@ class PrivateKeyCryptography(PrivateKeyBase): def _check_size_and_type(self): privatekey = self._load_privatekey() + self.privatekey = privatekey if isinstance(privatekey, cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey): return self.type == 'RSA' and self.size == privatekey.key_size diff --git a/test/integration/targets/openssl_privatekey/tasks/impl.yml b/test/integration/targets/openssl_privatekey/tasks/impl.yml index 900fec9c0f5..8197b4cfac3 100644 --- a/test/integration/targets/openssl_privatekey/tasks/impl.yml +++ b/test/integration/targets/openssl_privatekey/tasks/impl.yml @@ -394,15 +394,17 @@ - name: Generate privatekey_fmt_2 - auto format (ignore) openssl_privatekey: path: '{{ output_dir }}/privatekey_fmt_2.pem' + type: X448 format: auto_ignore select_crypto_backend: '{{ select_crypto_backend }}' - register: privatekey_fmt_1_step_5 + register: privatekey_fmt_2_step_5 - name: Generate privatekey_fmt_2 - auto format (no ignore) openssl_privatekey: path: '{{ output_dir }}/privatekey_fmt_2.pem' + type: X448 format: auto select_crypto_backend: '{{ select_crypto_backend }}' - register: privatekey_fmt_1_step_6 + register: privatekey_fmt_2_step_6 when: 'select_crypto_backend == "cryptography" and cryptography_version.stdout is version("2.6", ">=")' diff --git a/test/integration/targets/openssl_privatekey/tasks/main.yml b/test/integration/targets/openssl_privatekey/tasks/main.yml index 2126bddff68..f0a8e32bf76 100644 --- a/test/integration/targets/openssl_privatekey/tasks/main.yml +++ b/test/integration/targets/openssl_privatekey/tasks/main.yml @@ -61,7 +61,7 @@ - import_tasks: ../tests/validate.yml vars: - select_crypto_backend: pyopenssl + select_crypto_backend: cryptography when: cryptography_version.stdout is version('0.5', '>=')