2022-01-10 20:01:52 +00:00
|
|
|
---
|
2022-07-21 05:27:26 +00:00
|
|
|
# Copyright (c) Ansible Project
|
|
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2022-01-10 20:01:52 +00:00
|
|
|
####################################################################
|
|
|
|
# WARNING: These are designed specifically for Ansible tests #
|
|
|
|
# and should not be used as examples of how to write Ansible roles #
|
|
|
|
####################################################################
|
|
|
|
|
|
|
|
- name: Determine capabilities
|
|
|
|
set_fact:
|
|
|
|
supports_x25519: '{{ cryptography_version.stdout is version("2.5", ">=") }}'
|
|
|
|
supports_ed25519: >-
|
|
|
|
{{
|
|
|
|
cryptography_version.stdout is version("2.6", ">=")
|
|
|
|
and not (
|
|
|
|
ansible_os_family == "FreeBSD" and
|
|
|
|
ansible_facts.distribution_version is version("12.1", ">=") and
|
|
|
|
ansible_facts.distribution_version is version("12.2", "<")
|
|
|
|
)
|
|
|
|
}}
|
|
|
|
|
|
|
|
- name: Create keys
|
|
|
|
openssl_privatekey:
|
|
|
|
size: '{{ item.size | default(omit) }}'
|
|
|
|
path: '{{ remote_tmp_dir }}/privatekey_{{ item.name }}.pem'
|
|
|
|
type: '{{ item.type | default(omit) }}'
|
|
|
|
curve: '{{ item.curve | default(omit) }}'
|
|
|
|
passphrase: '{{ item.passphrase | default(omit) }}'
|
|
|
|
format: '{{ item.format }}'
|
|
|
|
when: item.condition | default(true)
|
|
|
|
loop:
|
|
|
|
- name: rsa_pass1
|
|
|
|
format: pkcs1
|
|
|
|
type: RSA
|
|
|
|
size: '{{ default_rsa_key_size }}'
|
|
|
|
passphrase: secret
|
|
|
|
- name: ed25519
|
|
|
|
format: pkcs8
|
|
|
|
type: Ed25519
|
|
|
|
size: '{{ default_rsa_key_size }}'
|
|
|
|
condition: '{{ supports_ed25519 }}'
|
|
|
|
- name: x25519
|
|
|
|
format: pkcs8
|
|
|
|
type: X25519
|
|
|
|
size: '{{ default_rsa_key_size }}'
|
|
|
|
condition: '{{ supports_x25519 }}'
|
|
|
|
|
|
|
|
- name: Run module with backend autodetection
|
|
|
|
openssl_privatekey_convert:
|
|
|
|
src_path: '{{ remote_tmp_dir }}/privatekey_rsa_pass1.pem'
|
|
|
|
src_passphrase: secret
|
|
|
|
dest_path: '{{ remote_tmp_dir }}/output_backend_selection.pem'
|
|
|
|
dest_passphrase: hunter2
|
|
|
|
format: pkcs8
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: Running tests with cryptography backend
|
|
|
|
include_tasks: impl.yml
|
|
|
|
vars:
|
|
|
|
select_crypto_backend: cryptography
|
|
|
|
|
|
|
|
when: cryptography_version.stdout is version('1.2.3', '>=')
|