summaryrefslogtreecommitdiffstats
path: root/ansible_collections/community/crypto/plugins/doc_fragments
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:03:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:03:42 +0000
commit66cec45960ce1d9c794e9399de15c138acb18aed (patch)
tree59cd19d69e9d56b7989b080da7c20ef1a3fe2a5a /ansible_collections/community/crypto/plugins/doc_fragments
parentInitial commit. (diff)
downloadansible-66cec45960ce1d9c794e9399de15c138acb18aed.tar.xz
ansible-66cec45960ce1d9c794e9399de15c138acb18aed.zip
Adding upstream version 7.3.0+dfsg.upstream/7.3.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/community/crypto/plugins/doc_fragments')
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/acme.py139
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/attributes.py85
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/ecs_credential.py44
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/module_certificate.py404
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/module_csr.py325
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey.py151
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey_convert.py48
-rw-r--r--ansible_collections/community/crypto/plugins/doc_fragments/name_encoding.py31
8 files changed, 1227 insertions, 0 deletions
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/acme.py b/ansible_collections/community/crypto/plugins/doc_fragments/acme.py
new file mode 100644
index 00000000..a50cedd6
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/acme.py
@@ -0,0 +1,139 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Michael Gruener <michael.gruener@chaosmoon.net>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+notes:
+ - "If a new enough version of the C(cryptography) library
+ is available (see Requirements for details), it will be used
+ instead of the C(openssl) binary. This can be explicitly disabled
+ or enabled with the C(select_crypto_backend) option. Note that using
+ the C(openssl) binary will be slower and less secure, as private key
+ contents always have to be stored on disk (see
+ C(account_key_content))."
+ - "Although the defaults are chosen so that the module can be used with
+ the L(Let's Encrypt,https://letsencrypt.org/) CA, the module can in
+ principle be used with any CA providing an ACME endpoint, such as
+ L(Buypass Go SSL,https://www.buypass.com/ssl/products/acme)."
+ - "So far, the ACME modules have only been tested by the developers against
+ Let's Encrypt (staging and production), Buypass (staging and production), ZeroSSL (production),
+ and L(Pebble testing server,https://github.com/letsencrypt/Pebble). We have got
+ community feedback that they also work with Sectigo ACME Service for InCommon.
+ If you experience problems with another ACME server, please
+ L(create an issue,https://github.com/ansible-collections/community.crypto/issues/new/choose)
+ to help us supporting it. Feedback that an ACME server not mentioned does work
+ is also appreciated."
+requirements:
+ - either openssl or L(cryptography,https://cryptography.io/) >= 1.5
+ - ipaddress
+options:
+ account_key_src:
+ description:
+ - "Path to a file containing the ACME account RSA or Elliptic Curve
+ key."
+ - "Private keys can be created with the
+ M(community.crypto.openssl_privatekey) or M(community.crypto.openssl_privatekey_pipe)
+ modules. If the requisite (cryptography) is not available,
+ keys can also be created directly with the C(openssl) command line tool:
+ RSA keys can be created with C(openssl genrsa ...). Elliptic curve keys
+ can be created with C(openssl ecparam -genkey ...). Any other tool creating
+ private keys in PEM format can be used as well."
+ - "Mutually exclusive with C(account_key_content)."
+ - "Required if C(account_key_content) is not used."
+ type: path
+ aliases: [ account_key ]
+ account_key_content:
+ description:
+ - "Content of the ACME account RSA or Elliptic Curve key."
+ - "Mutually exclusive with C(account_key_src)."
+ - "Required if C(account_key_src) is not used."
+ - "B(Warning:) the content will be written into a temporary file, which will
+ be deleted by Ansible when the module completes. Since this is an
+ important private key — it can be used to change the account key,
+ or to revoke your certificates without knowing their private keys
+ —, this might not be acceptable."
+ - "In case C(cryptography) is used, the content is not written into a
+ temporary file. It can still happen that it is written to disk by
+ Ansible in the process of moving the module with its argument to
+ the node where it is executed."
+ type: str
+ account_key_passphrase:
+ description:
+ - Phassphrase to use to decode the account key.
+ - "B(Note:) this is not supported by the C(openssl) backend, only by the C(cryptography) backend."
+ type: str
+ version_added: 1.6.0
+ account_uri:
+ description:
+ - "If specified, assumes that the account URI is as given. If the
+ account key does not match this account, or an account with this
+ URI does not exist, the module fails."
+ type: str
+ acme_version:
+ description:
+ - "The ACME version of the endpoint."
+ - "Must be C(1) for the classic Let's Encrypt and Buypass ACME endpoints,
+ or C(2) for standardized ACME v2 endpoints."
+ - "The value C(1) is deprecated since community.crypto 2.0.0 and will be
+ removed from community.crypto 3.0.0."
+ required: true
+ type: int
+ choices: [ 1, 2 ]
+ acme_directory:
+ description:
+ - "The ACME directory to use. This is the entry point URL to access
+ the ACME CA server API."
+ - "For safety reasons the default is set to the Let's Encrypt staging
+ server (for the ACME v1 protocol). This will create technically correct,
+ but untrusted certificates."
+ - "For Let's Encrypt, all staging endpoints can be found here:
+ U(https://letsencrypt.org/docs/staging-environment/). For Buypass, all
+ endpoints can be found here:
+ U(https://community.buypass.com/t/63d4ay/buypass-go-ssl-endpoints)"
+ - "For B(Let's Encrypt), the production directory URL for ACME v2 is
+ U(https://acme-v02.api.letsencrypt.org/directory)."
+ - "For B(Buypass), the production directory URL for ACME v2 and v1 is
+ U(https://api.buypass.com/acme/directory)."
+ - "For B(ZeroSSL), the production directory URL for ACME v2 is
+ U(https://acme.zerossl.com/v2/DV90)."
+ - "For B(Sectigo), the production directory URL for ACME v2 is
+ U(https://acme-qa.secure.trust-provider.com/v2/DV)."
+ - The notes for this module contain a list of ACME services this module has
+ been tested against.
+ required: true
+ type: str
+ validate_certs:
+ description:
+ - Whether calls to the ACME directory will validate TLS certificates.
+ - "B(Warning:) Should B(only ever) be set to C(false) for testing purposes,
+ for example when testing against a local Pebble server."
+ type: bool
+ default: true
+ select_crypto_backend:
+ description:
+ - Determines which crypto backend to use.
+ - The default choice is C(auto), which tries to use C(cryptography) if available, and falls back to
+ C(openssl).
+ - If set to C(openssl), will try to use the C(openssl) binary.
+ - If set to C(cryptography), will try to use the
+ L(cryptography,https://cryptography.io/) library.
+ type: str
+ default: auto
+ choices: [ auto, cryptography, openssl ]
+ request_timeout:
+ description:
+ - The time Ansible should wait for a response from the ACME API.
+ - This timeout is applied to all HTTP(S) requests (HEAD, GET, POST).
+ type: int
+ default: 10
+ version_added: 2.3.0
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/attributes.py b/ansible_collections/community/crypto/plugins/doc_fragments/attributes.py
new file mode 100644
index 00000000..11f6b575
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/attributes.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) Ansible Project
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard documentation fragment
+ DOCUMENTATION = r'''
+options: {}
+attributes:
+ check_mode:
+ description: Can run in C(check_mode) and return changed status prediction without modifying target.
+ diff_mode:
+ description: Will return details on what has changed (or possibly needs changing in C(check_mode)), when in diff mode.
+'''
+
+ # Should be used together with the standard fragment
+ INFO_MODULE = r'''
+options: {}
+attributes:
+ check_mode:
+ support: full
+ details:
+ - This action does not modify state.
+ diff_mode:
+ support: N/A
+ details:
+ - This action does not modify state.
+'''
+
+ ACTIONGROUP_ACME = r'''
+options: {}
+attributes:
+ action_group:
+ description: Use C(group/acme) or C(group/community.crypto.acme) in C(module_defaults) to set defaults for this module.
+ support: full
+ membership:
+ - community.crypto.acme
+ - acme
+'''
+
+ FACTS = r'''
+options: {}
+attributes:
+ facts:
+ description: Action returns an C(ansible_facts) dictionary that will update existing host facts.
+'''
+
+ # Should be used together with the standard fragment and the FACTS fragment
+ FACTS_MODULE = r'''
+options: {}
+attributes:
+ check_mode:
+ support: full
+ details:
+ - This action does not modify state.
+ diff_mode:
+ support: N/A
+ details:
+ - This action does not modify state.
+ facts:
+ support: full
+'''
+
+ FILES = r'''
+options: {}
+attributes:
+ safe_file_operations:
+ description: Uses Ansible's strict file operation functions to ensure proper permissions and avoid data corruption.
+'''
+
+ FLOW = r'''
+options: {}
+attributes:
+ action:
+ description: Indicates this has a corresponding action plugin so some parts of the options can be executed on the controller.
+ async:
+ description: Supports being used with the C(async) keyword.
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/ecs_credential.py b/ansible_collections/community/crypto/plugins/doc_fragments/ecs_credential.py
new file mode 100644
index 00000000..0b6d4037
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/ecs_credential.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c), Entrust Datacard Corporation, 2019
+# 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
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Plugin options for Entrust Certificate Services (ECS) credentials
+ DOCUMENTATION = r'''
+options:
+ entrust_api_user:
+ description:
+ - The username for authentication to the Entrust Certificate Services (ECS) API.
+ type: str
+ required: true
+ entrust_api_key:
+ description:
+ - The key (password) for authentication to the Entrust Certificate Services (ECS) API.
+ type: str
+ required: true
+ entrust_api_client_cert_path:
+ description:
+ - The path to the client certificate used to authenticate to the Entrust Certificate Services (ECS) API.
+ type: path
+ required: true
+ entrust_api_client_cert_key_path:
+ description:
+ - The path to the key for the client certificate used to authenticate to the Entrust Certificate Services (ECS) API.
+ type: path
+ required: true
+ entrust_api_specification_path:
+ description:
+ - The path to the specification file defining the Entrust Certificate Services (ECS) API configuration.
+ - You can use this to keep a local copy of the specification to avoid downloading it every time the module is used.
+ type: path
+ default: https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml
+requirements:
+ - "PyYAML >= 3.11"
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/module_certificate.py b/ansible_collections/community/crypto/plugins/doc_fragments/module_certificate.py
new file mode 100644
index 00000000..e277edfa
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/module_certificate.py
@@ -0,0 +1,404 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016-2017, Yanis Guenane <yanis+ansible@guenane.org>
+# Copyright (c) 2017, Markus Teufelberger <mteufelberger+ansible@mgit.at>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+description:
+ - This module allows one to (re)generate OpenSSL certificates.
+ - It uses the cryptography python library to interact with OpenSSL.
+requirements:
+ - cryptography >= 1.6 (if using C(selfsigned) or C(ownca) provider)
+options:
+ force:
+ description:
+ - Generate the certificate, even if it already exists.
+ type: bool
+ default: false
+
+ csr_path:
+ description:
+ - Path to the Certificate Signing Request (CSR) used to generate this certificate.
+ - This is mutually exclusive with I(csr_content).
+ type: path
+ csr_content:
+ description:
+ - Content of the Certificate Signing Request (CSR) used to generate this certificate.
+ - This is mutually exclusive with I(csr_path).
+ type: str
+
+ privatekey_path:
+ description:
+ - Path to the private key to use when signing the certificate.
+ - This is mutually exclusive with I(privatekey_content).
+ type: path
+ privatekey_content:
+ description:
+ - Path to the private key to use when signing the certificate.
+ - This is mutually exclusive with I(privatekey_path).
+ type: str
+
+ privatekey_passphrase:
+ description:
+ - The passphrase for the I(privatekey_path) resp. I(privatekey_content).
+ - This is required if the private key is password protected.
+ type: str
+
+ ignore_timestamps:
+ description:
+ - Whether the "not before" and "not after" timestamps should be ignored for idempotency checks.
+ - It is better to keep the default value C(true) when using relative timestamps (like C(+0s) for now).
+ type: bool
+ default: true
+ version_added: 2.0.0
+
+ select_crypto_backend:
+ description:
+ - Determines which crypto backend to use.
+ - The default choice is C(auto), which tries to use C(cryptography) if available.
+ - If set to C(cryptography), will try to use the L(cryptography,https://cryptography.io/) library.
+ type: str
+ default: auto
+ choices: [ auto, cryptography ]
+
+notes:
+ - All ASN.1 TIME values should be specified following the YYYYMMDDHHMMSSZ pattern.
+ - Date specified should be UTC. Minutes and seconds are mandatory.
+ - For security reason, when you use C(ownca) provider, you should NOT run
+ M(community.crypto.x509_certificate) on a target machine, but on a dedicated CA machine. It
+ is recommended not to store the CA private key on the target machine. Once signed, the
+ certificate can be moved to the target machine.
+seealso:
+- module: community.crypto.openssl_csr
+- module: community.crypto.openssl_csr_pipe
+- module: community.crypto.openssl_dhparam
+- module: community.crypto.openssl_pkcs12
+- module: community.crypto.openssl_privatekey
+- module: community.crypto.openssl_privatekey_pipe
+- module: community.crypto.openssl_publickey
+'''
+
+ BACKEND_ACME_DOCUMENTATION = r'''
+description:
+ - This module allows one to (re)generate OpenSSL certificates.
+requirements:
+ - acme-tiny >= 4.0.0 (if using the C(acme) provider)
+options:
+ acme_accountkey_path:
+ description:
+ - The path to the accountkey for the C(acme) provider.
+ - This is only used by the C(acme) provider.
+ type: path
+
+ acme_challenge_path:
+ description:
+ - The path to the ACME challenge directory that is served on U(http://<HOST>:80/.well-known/acme-challenge/)
+ - This is only used by the C(acme) provider.
+ type: path
+
+ acme_chain:
+ description:
+ - Include the intermediate certificate to the generated certificate
+ - This is only used by the C(acme) provider.
+ - Note that this is only available for older versions of C(acme-tiny).
+ New versions include the chain automatically, and setting I(acme_chain) to C(true) results in an error.
+ type: bool
+ default: false
+
+ acme_directory:
+ description:
+ - "The ACME directory to use. You can use any directory that supports the ACME protocol, such as Buypass or Let's Encrypt."
+ - "Let's Encrypt recommends using their staging server while developing jobs. U(https://letsencrypt.org/docs/staging-environment/)."
+ type: str
+ default: https://acme-v02.api.letsencrypt.org/directory
+'''
+
+ BACKEND_ENTRUST_DOCUMENTATION = r'''
+options:
+ entrust_cert_type:
+ description:
+ - Specify the type of certificate requested.
+ - This is only used by the C(entrust) provider.
+ type: str
+ default: STANDARD_SSL
+ choices: [ 'STANDARD_SSL', 'ADVANTAGE_SSL', 'UC_SSL', 'EV_SSL', 'WILDCARD_SSL', 'PRIVATE_SSL', 'PD_SSL', 'CDS_ENT_LITE', 'CDS_ENT_PRO', 'SMIME_ENT' ]
+
+ entrust_requester_email:
+ description:
+ - The email of the requester of the certificate (for tracking purposes).
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: str
+
+ entrust_requester_name:
+ description:
+ - The name of the requester of the certificate (for tracking purposes).
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: str
+
+ entrust_requester_phone:
+ description:
+ - The phone number of the requester of the certificate (for tracking purposes).
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: str
+
+ entrust_api_user:
+ description:
+ - The username for authentication to the Entrust Certificate Services (ECS) API.
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: str
+
+ entrust_api_key:
+ description:
+ - The key (password) for authentication to the Entrust Certificate Services (ECS) API.
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: str
+
+ entrust_api_client_cert_path:
+ description:
+ - The path to the client certificate used to authenticate to the Entrust Certificate Services (ECS) API.
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: path
+
+ entrust_api_client_cert_key_path:
+ description:
+ - The path to the private key of the client certificate used to authenticate to the Entrust Certificate Services (ECS) API.
+ - This is only used by the C(entrust) provider.
+ - This is required if the provider is C(entrust).
+ type: path
+
+ entrust_not_after:
+ description:
+ - The point in time at which the certificate stops being valid.
+ - Time can be specified either as relative time or as an absolute timestamp.
+ - A valid absolute time format is C(ASN.1 TIME) such as C(2019-06-18).
+ - A valid relative time format is C([+-]timespec) where timespec can be an integer + C([w | d | h | m | s]), such as C(+365d) or C(+32w1d2h)).
+ - Time will always be interpreted as UTC.
+ - Note that only the date (day, month, year) is supported for specifying the expiry date of the issued certificate.
+ - The full date-time is adjusted to EST (GMT -5:00) before issuance, which may result in a certificate with an expiration date one day
+ earlier than expected if a relative time is used.
+ - The minimum certificate lifetime is 90 days, and maximum is three years.
+ - If this value is not specified, the certificate will stop being valid 365 days the date of issue.
+ - This is only used by the C(entrust) provider.
+ - Please note that this value is B(not) covered by the I(ignore_timestamps) option.
+ type: str
+ default: +365d
+
+ entrust_api_specification_path:
+ description:
+ - The path to the specification file defining the Entrust Certificate Services (ECS) API configuration.
+ - You can use this to keep a local copy of the specification to avoid downloading it every time the module is used.
+ - This is only used by the C(entrust) provider.
+ type: path
+ default: https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml
+'''
+
+ BACKEND_OWNCA_DOCUMENTATION = r'''
+description:
+ - The C(ownca) provider is intended for generating an OpenSSL certificate signed with your own
+ CA (Certificate Authority) certificate (self-signed certificate).
+options:
+ ownca_path:
+ description:
+ - Remote absolute path of the CA (Certificate Authority) certificate.
+ - This is only used by the C(ownca) provider.
+ - This is mutually exclusive with I(ownca_content).
+ type: path
+ ownca_content:
+ description:
+ - Content of the CA (Certificate Authority) certificate.
+ - This is only used by the C(ownca) provider.
+ - This is mutually exclusive with I(ownca_path).
+ type: str
+
+ ownca_privatekey_path:
+ description:
+ - Path to the CA (Certificate Authority) private key to use when signing the certificate.
+ - This is only used by the C(ownca) provider.
+ - This is mutually exclusive with I(ownca_privatekey_content).
+ type: path
+ ownca_privatekey_content:
+ description:
+ - Content of the CA (Certificate Authority) private key to use when signing the certificate.
+ - This is only used by the C(ownca) provider.
+ - This is mutually exclusive with I(ownca_privatekey_path).
+ type: str
+
+ ownca_privatekey_passphrase:
+ description:
+ - The passphrase for the I(ownca_privatekey_path) resp. I(ownca_privatekey_content).
+ - This is only used by the C(ownca) provider.
+ type: str
+
+ ownca_digest:
+ description:
+ - The digest algorithm to be used for the C(ownca) certificate.
+ - This is only used by the C(ownca) provider.
+ type: str
+ default: sha256
+
+ ownca_version:
+ description:
+ - The version of the C(ownca) certificate.
+ - Nowadays it should almost always be C(3).
+ - This is only used by the C(ownca) provider.
+ type: int
+ default: 3
+
+ ownca_not_before:
+ description:
+ - The point in time the certificate is valid from.
+ - Time can be specified either as relative time or as absolute timestamp.
+ - Time will always be interpreted as UTC.
+ - Valid format is C([+-]timespec | ASN.1 TIME) where timespec can be an integer
+ + C([w | d | h | m | s]) (for example C(+32w1d2h)).
+ - If this value is not specified, the certificate will start being valid from now.
+ - Note that this value is B(not used to determine whether an existing certificate should be regenerated).
+ This can be changed by setting the I(ignore_timestamps) option to C(false). Please note that you should
+ avoid relative timestamps when setting I(ignore_timestamps=false).
+ - This is only used by the C(ownca) provider.
+ type: str
+ default: +0s
+
+ ownca_not_after:
+ description:
+ - The point in time at which the certificate stops being valid.
+ - Time can be specified either as relative time or as absolute timestamp.
+ - Time will always be interpreted as UTC.
+ - Valid format is C([+-]timespec | ASN.1 TIME) where timespec can be an integer
+ + C([w | d | h | m | s]) (for example C(+32w1d2h)).
+ - If this value is not specified, the certificate will stop being valid 10 years from now.
+ - Note that this value is B(not used to determine whether an existing certificate should be regenerated).
+ This can be changed by setting the I(ignore_timestamps) option to C(false). Please note that you should
+ avoid relative timestamps when setting I(ignore_timestamps=false).
+ - This is only used by the C(ownca) provider.
+ - On macOS 10.15 and onwards, TLS server certificates must have a validity period of 825 days or fewer.
+ Please see U(https://support.apple.com/en-us/HT210176) for more details.
+ type: str
+ default: +3650d
+
+ ownca_create_subject_key_identifier:
+ description:
+ - Whether to create the Subject Key Identifier (SKI) from the public key.
+ - A value of C(create_if_not_provided) (default) only creates a SKI when the CSR does not
+ provide one.
+ - A value of C(always_create) always creates a SKI. If the CSR provides one, that one is
+ ignored.
+ - A value of C(never_create) never creates a SKI. If the CSR provides one, that one is used.
+ - This is only used by the C(ownca) provider.
+ - Note that this is only supported if the C(cryptography) backend is used!
+ type: str
+ choices: [create_if_not_provided, always_create, never_create]
+ default: create_if_not_provided
+
+ ownca_create_authority_key_identifier:
+ description:
+ - Create a Authority Key Identifier from the CA's certificate. If the CSR provided
+ a authority key identifier, it is ignored.
+ - The Authority Key Identifier is generated from the CA certificate's Subject Key Identifier,
+ if available. If it is not available, the CA certificate's public key will be used.
+ - This is only used by the C(ownca) provider.
+ - Note that this is only supported if the C(cryptography) backend is used!
+ type: bool
+ default: true
+'''
+
+ BACKEND_SELFSIGNED_DOCUMENTATION = r'''
+notes:
+ - For the C(selfsigned) provider, I(csr_path) and I(csr_content) are optional. If not provided, a
+ certificate without any information (Subject, Subject Alternative Names, Key Usage, etc.) is created.
+
+options:
+ # NOTE: descriptions in options are overwritten, not appended. For that reason, the texts provided
+ # here for csr_path and csr_content are not visible to the user. That's why this information is
+ # added to the notes (see above).
+
+ # csr_path:
+ # description:
+ # - This is optional for the C(selfsigned) provider. If not provided, a certificate
+ # without any information (Subject, Subject Alternative Names, Key Usage, etc.) is
+ # created.
+
+ # csr_content:
+ # description:
+ # - This is optional for the C(selfsigned) provider. If not provided, a certificate
+ # without any information (Subject, Subject Alternative Names, Key Usage, etc.) is
+ # created.
+
+ selfsigned_version:
+ description:
+ - Version of the C(selfsigned) certificate.
+ - Nowadays it should almost always be C(3).
+ - This is only used by the C(selfsigned) provider.
+ type: int
+ default: 3
+
+ selfsigned_digest:
+ description:
+ - Digest algorithm to be used when self-signing the certificate.
+ - This is only used by the C(selfsigned) provider.
+ type: str
+ default: sha256
+
+ selfsigned_not_before:
+ description:
+ - The point in time the certificate is valid from.
+ - Time can be specified either as relative time or as absolute timestamp.
+ - Time will always be interpreted as UTC.
+ - Valid format is C([+-]timespec | ASN.1 TIME) where timespec can be an integer
+ + C([w | d | h | m | s]) (for example C(+32w1d2h)).
+ - If this value is not specified, the certificate will start being valid from now.
+ - Note that this value is B(not used to determine whether an existing certificate should be regenerated).
+ This can be changed by setting the I(ignore_timestamps) option to C(false). Please note that you should
+ avoid relative timestamps when setting I(ignore_timestamps=false).
+ - This is only used by the C(selfsigned) provider.
+ type: str
+ default: +0s
+ aliases: [ selfsigned_notBefore ]
+
+ selfsigned_not_after:
+ description:
+ - The point in time at which the certificate stops being valid.
+ - Time can be specified either as relative time or as absolute timestamp.
+ - Time will always be interpreted as UTC.
+ - Valid format is C([+-]timespec | ASN.1 TIME) where timespec can be an integer
+ + C([w | d | h | m | s]) (for example C(+32w1d2h)).
+ - If this value is not specified, the certificate will stop being valid 10 years from now.
+ - Note that this value is B(not used to determine whether an existing certificate should be regenerated).
+ This can be changed by setting the I(ignore_timestamps) option to C(false). Please note that you should
+ avoid relative timestamps when setting I(ignore_timestamps=false).
+ - This is only used by the C(selfsigned) provider.
+ - On macOS 10.15 and onwards, TLS server certificates must have a validity period of 825 days or fewer.
+ Please see U(https://support.apple.com/en-us/HT210176) for more details.
+ type: str
+ default: +3650d
+ aliases: [ selfsigned_notAfter ]
+
+ selfsigned_create_subject_key_identifier:
+ description:
+ - Whether to create the Subject Key Identifier (SKI) from the public key.
+ - A value of C(create_if_not_provided) (default) only creates a SKI when the CSR does not
+ provide one.
+ - A value of C(always_create) always creates a SKI. If the CSR provides one, that one is
+ ignored.
+ - A value of C(never_create) never creates a SKI. If the CSR provides one, that one is used.
+ - This is only used by the C(selfsigned) provider.
+ - Note that this is only supported if the C(cryptography) backend is used!
+ type: str
+ choices: [create_if_not_provided, always_create, never_create]
+ default: create_if_not_provided
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/module_csr.py b/ansible_collections/community/crypto/plugins/doc_fragments/module_csr.py
new file mode 100644
index 00000000..81c4318a
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/module_csr.py
@@ -0,0 +1,325 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017, Yanis Guenane <yanis+ansible@guenane.org>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+description:
+ - This module allows one to (re)generate OpenSSL certificate signing requests.
+ - This module supports the subjectAltName, keyUsage, extendedKeyUsage, basicConstraints and OCSP Must Staple
+ extensions.
+requirements:
+ - cryptography >= 1.3
+options:
+ digest:
+ description:
+ - The digest used when signing the certificate signing request with the private key.
+ type: str
+ default: sha256
+ privatekey_path:
+ description:
+ - The path to the private key to use when signing the certificate signing request.
+ - Either I(privatekey_path) or I(privatekey_content) must be specified if I(state) is C(present), but not both.
+ type: path
+ privatekey_content:
+ description:
+ - The content of the private key to use when signing the certificate signing request.
+ - Either I(privatekey_path) or I(privatekey_content) must be specified if I(state) is C(present), but not both.
+ type: str
+ privatekey_passphrase:
+ description:
+ - The passphrase for the private key.
+ - This is required if the private key is password protected.
+ type: str
+ version:
+ description:
+ - The version of the certificate signing request.
+ - "The only allowed value according to L(RFC 2986,https://tools.ietf.org/html/rfc2986#section-4.1)
+ is 1."
+ - This option no longer accepts unsupported values since community.crypto 2.0.0.
+ type: int
+ default: 1
+ choices:
+ - 1
+ subject:
+ description:
+ - Key/value pairs that will be present in the subject name field of the certificate signing request.
+ - If you need to specify more than one value with the same key, use a list as value.
+ - If the order of the components is important, use I(subject_ordered).
+ - Mutually exclusive with I(subject_ordered).
+ type: dict
+ subject_ordered:
+ description:
+ - A list of dictionaries, where every dictionary must contain one key/value pair. This key/value pair
+ will be present in the subject name field of the certificate signing request.
+ - If you want to specify more than one value with the same key in a row, you can use a list as value.
+ - Mutually exclusive with I(subject), and any other subject field option, such as I(country_name),
+ I(state_or_province_name), I(locality_name), I(organization_name), I(organizational_unit_name),
+ I(common_name), or I(email_address).
+ type: list
+ elements: dict
+ version_added: 2.0.0
+ country_name:
+ description:
+ - The countryName field of the certificate signing request subject.
+ type: str
+ aliases: [ C, countryName ]
+ state_or_province_name:
+ description:
+ - The stateOrProvinceName field of the certificate signing request subject.
+ type: str
+ aliases: [ ST, stateOrProvinceName ]
+ locality_name:
+ description:
+ - The localityName field of the certificate signing request subject.
+ type: str
+ aliases: [ L, localityName ]
+ organization_name:
+ description:
+ - The organizationName field of the certificate signing request subject.
+ type: str
+ aliases: [ O, organizationName ]
+ organizational_unit_name:
+ description:
+ - The organizationalUnitName field of the certificate signing request subject.
+ type: str
+ aliases: [ OU, organizationalUnitName ]
+ common_name:
+ description:
+ - The commonName field of the certificate signing request subject.
+ type: str
+ aliases: [ CN, commonName ]
+ email_address:
+ description:
+ - The emailAddress field of the certificate signing request subject.
+ type: str
+ aliases: [ E, emailAddress ]
+ subject_alt_name:
+ description:
+ - Subject Alternative Name (SAN) extension to attach to the certificate signing request.
+ - Values must be prefixed by their options. (These are C(email), C(URI), C(DNS), C(RID), C(IP), C(dirName),
+ C(otherName), and the ones specific to your CA).
+ - Note that if no SAN is specified, but a common name, the common
+ name will be added as a SAN except if C(useCommonNameForSAN) is
+ set to I(false).
+ - More at U(https://tools.ietf.org/html/rfc5280#section-4.2.1.6).
+ type: list
+ elements: str
+ aliases: [ subjectAltName ]
+ subject_alt_name_critical:
+ description:
+ - Should the subjectAltName extension be considered as critical.
+ type: bool
+ default: false
+ aliases: [ subjectAltName_critical ]
+ use_common_name_for_san:
+ description:
+ - If set to C(true), the module will fill the common name in for
+ C(subject_alt_name) with C(DNS:) prefix if no SAN is specified.
+ type: bool
+ default: true
+ aliases: [ useCommonNameForSAN ]
+ key_usage:
+ description:
+ - This defines the purpose (for example encipherment, signature, certificate signing)
+ of the key contained in the certificate.
+ type: list
+ elements: str
+ aliases: [ keyUsage ]
+ key_usage_critical:
+ description:
+ - Should the keyUsage extension be considered as critical.
+ type: bool
+ default: false
+ aliases: [ keyUsage_critical ]
+ extended_key_usage:
+ description:
+ - Additional restrictions (for example client authentication, server authentication)
+ on the allowed purposes for which the public key may be used.
+ type: list
+ elements: str
+ aliases: [ extKeyUsage, extendedKeyUsage ]
+ extended_key_usage_critical:
+ description:
+ - Should the extkeyUsage extension be considered as critical.
+ type: bool
+ default: false
+ aliases: [ extKeyUsage_critical, extendedKeyUsage_critical ]
+ basic_constraints:
+ description:
+ - Indicates basic constraints, such as if the certificate is a CA.
+ type: list
+ elements: str
+ aliases: [ basicConstraints ]
+ basic_constraints_critical:
+ description:
+ - Should the basicConstraints extension be considered as critical.
+ type: bool
+ default: false
+ aliases: [ basicConstraints_critical ]
+ ocsp_must_staple:
+ description:
+ - Indicates that the certificate should contain the OCSP Must Staple
+ extension (U(https://tools.ietf.org/html/rfc7633)).
+ type: bool
+ default: false
+ aliases: [ ocspMustStaple ]
+ ocsp_must_staple_critical:
+ description:
+ - Should the OCSP Must Staple extension be considered as critical.
+ - Note that according to the RFC, this extension should not be marked
+ as critical, as old clients not knowing about OCSP Must Staple
+ are required to reject such certificates
+ (see U(https://tools.ietf.org/html/rfc7633#section-4)).
+ type: bool
+ default: false
+ aliases: [ ocspMustStaple_critical ]
+ name_constraints_permitted:
+ description:
+ - For CA certificates, this specifies a list of identifiers which describe
+ subtrees of names that this CA is allowed to issue certificates for.
+ - Values must be prefixed by their options. (i.e., C(email), C(URI), C(DNS), C(RID), C(IP), C(dirName),
+ C(otherName) and the ones specific to your CA).
+ type: list
+ elements: str
+ name_constraints_excluded:
+ description:
+ - For CA certificates, this specifies a list of identifiers which describe
+ subtrees of names that this CA is B(not) allowed to issue certificates for.
+ - Values must be prefixed by their options. (i.e., C(email), C(URI), C(DNS), C(RID), C(IP), C(dirName),
+ C(otherName) and the ones specific to your CA).
+ type: list
+ elements: str
+ name_constraints_critical:
+ description:
+ - Should the Name Constraints extension be considered as critical.
+ type: bool
+ default: false
+ select_crypto_backend:
+ description:
+ - Determines which crypto backend to use.
+ - The default choice is C(auto), which tries to use C(cryptography) if available.
+ - If set to C(cryptography), will try to use the L(cryptography,https://cryptography.io/) library.
+ type: str
+ default: auto
+ choices: [ auto, cryptography ]
+ create_subject_key_identifier:
+ description:
+ - Create the Subject Key Identifier from the public key.
+ - "Please note that commercial CAs can ignore the value, respectively use a value of
+ their own choice instead. Specifying this option is mostly useful for self-signed
+ certificates or for own CAs."
+ - Note that this is only supported if the C(cryptography) backend is used!
+ type: bool
+ default: false
+ subject_key_identifier:
+ description:
+ - The subject key identifier as a hex string, where two bytes are separated by colons.
+ - "Example: C(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33)"
+ - "Please note that commercial CAs ignore this value, respectively use a value of their
+ own choice. Specifying this option is mostly useful for self-signed certificates
+ or for own CAs."
+ - Note that this option can only be used if I(create_subject_key_identifier) is C(false).
+ - Note that this is only supported if the C(cryptography) backend is used!
+ type: str
+ authority_key_identifier:
+ description:
+ - The authority key identifier as a hex string, where two bytes are separated by colons.
+ - "Example: C(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33)"
+ - "Please note that commercial CAs ignore this value, respectively use a value of their
+ own choice. Specifying this option is mostly useful for self-signed certificates
+ or for own CAs."
+ - Note that this is only supported if the C(cryptography) backend is used!
+ - The C(AuthorityKeyIdentifier) extension will only be added if at least one of I(authority_key_identifier),
+ I(authority_cert_issuer) and I(authority_cert_serial_number) is specified.
+ type: str
+ authority_cert_issuer:
+ description:
+ - Names that will be present in the authority cert issuer field of the certificate signing request.
+ - Values must be prefixed by their options. (i.e., C(email), C(URI), C(DNS), C(RID), C(IP), C(dirName),
+ C(otherName) and the ones specific to your CA)
+ - "Example: C(DNS:ca.example.org)"
+ - If specified, I(authority_cert_serial_number) must also be specified.
+ - "Please note that commercial CAs ignore this value, respectively use a value of their
+ own choice. Specifying this option is mostly useful for self-signed certificates
+ or for own CAs."
+ - Note that this is only supported if the C(cryptography) backend is used!
+ - The C(AuthorityKeyIdentifier) extension will only be added if at least one of I(authority_key_identifier),
+ I(authority_cert_issuer) and I(authority_cert_serial_number) is specified.
+ type: list
+ elements: str
+ authority_cert_serial_number:
+ description:
+ - The authority cert serial number.
+ - If specified, I(authority_cert_issuer) must also be specified.
+ - Note that this is only supported if the C(cryptography) backend is used!
+ - "Please note that commercial CAs ignore this value, respectively use a value of their
+ own choice. Specifying this option is mostly useful for self-signed certificates
+ or for own CAs."
+ - The C(AuthorityKeyIdentifier) extension will only be added if at least one of I(authority_key_identifier),
+ I(authority_cert_issuer) and I(authority_cert_serial_number) is specified.
+ type: int
+ crl_distribution_points:
+ description:
+ - Allows to specify one or multiple CRL distribution points.
+ - Only supported by the C(cryptography) backend.
+ type: list
+ elements: dict
+ suboptions:
+ full_name:
+ description:
+ - Describes how the CRL can be retrieved.
+ - Mutually exclusive with I(relative_name).
+ - "Example: C(URI:https://ca.example.com/revocations.crl)."
+ type: list
+ elements: str
+ relative_name:
+ description:
+ - Describes how the CRL can be retrieved relative to the CRL issuer.
+ - Mutually exclusive with I(full_name).
+ - "Example: C(/CN=example.com)."
+ - Can only be used when cryptography >= 1.6 is installed.
+ type: list
+ elements: str
+ crl_issuer:
+ description:
+ - Information about the issuer of the CRL.
+ type: list
+ elements: str
+ reasons:
+ description:
+ - List of reasons that this distribution point can be used for when performing revocation checks.
+ type: list
+ elements: str
+ choices:
+ - key_compromise
+ - ca_compromise
+ - affiliation_changed
+ - superseded
+ - cessation_of_operation
+ - certificate_hold
+ - privilege_withdrawn
+ - aa_compromise
+ version_added: 1.4.0
+notes:
+ - If the certificate signing request already exists it will be checked whether subjectAltName,
+ keyUsage, extendedKeyUsage and basicConstraints only contain the requested values, whether
+ OCSP Must Staple is as requested, and if the request was signed by the given private key.
+seealso:
+- module: community.crypto.x509_certificate
+- module: community.crypto.x509_certificate_pipe
+- module: community.crypto.openssl_dhparam
+- module: community.crypto.openssl_pkcs12
+- module: community.crypto.openssl_privatekey
+- module: community.crypto.openssl_privatekey_pipe
+- module: community.crypto.openssl_publickey
+- module: community.crypto.openssl_csr_info
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey.py b/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey.py
new file mode 100644
index 00000000..a27b26c7
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey.py
@@ -0,0 +1,151 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016, Yanis Guenane <yanis+ansible@guenane.org>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+description:
+ - One can generate L(RSA,https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29),
+ L(DSA,https://en.wikipedia.org/wiki/Digital_Signature_Algorithm),
+ L(ECC,https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) or
+ L(EdDSA,https://en.wikipedia.org/wiki/EdDSA) private keys.
+ - Keys are generated in PEM format.
+ - "Please note that the module regenerates private keys if they do not match
+ the module's options. In particular, if you provide another passphrase
+ (or specify none), change the keysize, etc., the private key will be
+ regenerated. If you are concerned that this could B(overwrite your private key),
+ consider using the I(backup) option."
+requirements:
+ - cryptography >= 1.2.3 (older versions might work as well)
+options:
+ size:
+ description:
+ - Size (in bits) of the TLS/SSL key to generate.
+ type: int
+ default: 4096
+ type:
+ description:
+ - The algorithm used to generate the TLS/SSL private key.
+ - Note that C(ECC), C(X25519), C(X448), C(Ed25519) and C(Ed448) require the C(cryptography) backend.
+ C(X25519) needs cryptography 2.5 or newer, while C(X448), C(Ed25519) and C(Ed448) require
+ cryptography 2.6 or newer. For C(ECC), the minimal cryptography version required depends on the
+ I(curve) option.
+ type: str
+ default: RSA
+ choices: [ DSA, ECC, Ed25519, Ed448, RSA, X25519, X448 ]
+ curve:
+ description:
+ - Note that not all curves are supported by all versions of C(cryptography).
+ - For maximal interoperability, C(secp384r1) or C(secp256r1) should be used.
+ - We use the curve names as defined in the
+ L(IANA registry for TLS,https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8).
+ - Please note that all curves except C(secp224r1), C(secp256k1), C(secp256r1), C(secp384r1) and C(secp521r1)
+ are discouraged for new private keys.
+ type: str
+ choices:
+ - secp224r1
+ - secp256k1
+ - secp256r1
+ - secp384r1
+ - secp521r1
+ - secp192r1
+ - brainpoolP256r1
+ - brainpoolP384r1
+ - brainpoolP512r1
+ - sect163k1
+ - sect163r2
+ - sect233k1
+ - sect233r1
+ - sect283k1
+ - sect283r1
+ - sect409k1
+ - sect409r1
+ - sect571k1
+ - sect571r1
+ passphrase:
+ description:
+ - The passphrase for the private key.
+ type: str
+ cipher:
+ description:
+ - The cipher to encrypt the private key. Must be C(auto).
+ type: str
+ select_crypto_backend:
+ description:
+ - Determines which crypto backend to use.
+ - The default choice is C(auto), which tries to use C(cryptography) if available.
+ - If set to C(cryptography), will try to use the L(cryptography,https://cryptography.io/) library.
+ type: str
+ default: auto
+ choices: [ auto, cryptography ]
+ format:
+ description:
+ - Determines which format the private key is written in. By default, PKCS1 (traditional OpenSSL format)
+ is used for all keys which support it. Please note that not every key can be exported in any format.
+ - The value C(auto) selects a format based on the key format. The value C(auto_ignore) does the same,
+ but for existing private key files, it will not force a regenerate when its format is not the automatically
+ selected one for generation.
+ - Note that if the format for an existing private key mismatches, the key is B(regenerated) by default.
+ To change this behavior, use the I(format_mismatch) option.
+ type: str
+ default: auto_ignore
+ choices: [ pkcs1, pkcs8, raw, auto, auto_ignore ]
+ format_mismatch:
+ description:
+ - Determines behavior of the module if the format of a private key does not match the expected format, but all
+ other parameters are as expected.
+ - If set to C(regenerate) (default), generates a new private key.
+ - If set to C(convert), the key will be converted to the new format instead.
+ - Only supported by the C(cryptography) backend.
+ type: str
+ default: regenerate
+ choices: [ regenerate, convert ]
+ regenerate:
+ description:
+ - Allows to configure in which situations the module is allowed to regenerate private keys.
+ The module will always generate a new key if the destination file does not exist.
+ - By default, the key will be regenerated when it does not match the module's options,
+ except when the key cannot be read or the passphrase does not match. Please note that
+ this B(changed) for Ansible 2.10. For Ansible 2.9, the behavior was as if C(full_idempotence)
+ is specified.
+ - If set to C(never), the module will fail if the key cannot be read or the passphrase
+ is not matching, and will never regenerate an existing key.
+ - If set to C(fail), the module will fail if the key does not correspond to the module's
+ options.
+ - If set to C(partial_idempotence), the key will be regenerated if it does not conform to
+ the module's options. The key is B(not) regenerated if it cannot be read (broken file),
+ the key is protected by an unknown passphrase, or when they key is not protected by a
+ passphrase, but a passphrase is specified.
+ - If set to C(full_idempotence), the key will be regenerated if it does not conform to the
+ module's options. This is also the case if the key cannot be read (broken file), the key
+ is protected by an unknown passphrase, or when they key is not protected by a passphrase,
+ but a passphrase is specified. Make sure you have a B(backup) when using this option!
+ - If set to C(always), the module will always regenerate the key. This is equivalent to
+ setting I(force) to C(true).
+ - Note that if I(format_mismatch) is set to C(convert) and everything matches except the
+ format, the key will always be converted, except if I(regenerate) is set to C(always).
+ type: str
+ choices:
+ - never
+ - fail
+ - partial_idempotence
+ - full_idempotence
+ - always
+ default: full_idempotence
+seealso:
+- module: community.crypto.x509_certificate
+- module: community.crypto.x509_certificate_pipe
+- module: community.crypto.openssl_csr
+- module: community.crypto.openssl_csr_pipe
+- module: community.crypto.openssl_dhparam
+- module: community.crypto.openssl_pkcs12
+- module: community.crypto.openssl_publickey
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey_convert.py b/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey_convert.py
new file mode 100644
index 00000000..f1c6f70e
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/module_privatekey_convert.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2022, Felix Fontein <felix@fontein.de>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+requirements:
+ - cryptography >= 1.2.3 (older versions might work as well)
+options:
+ src_path:
+ description:
+ - Name of the file containing the OpenSSL private key to convert.
+ - Exactly one of I(src_path) or I(src_content) must be specified.
+ type: path
+ src_content:
+ description:
+ - The content of the file containing the OpenSSL private key to convert.
+ - Exactly one of I(src_path) or I(src_content) must be specified.
+ type: str
+ src_passphrase:
+ description:
+ - The passphrase for the private key to load.
+ type: str
+ dest_passphrase:
+ description:
+ - The passphrase for the private key to store.
+ type: str
+ format:
+ description:
+ - Determines which format the destination private key should be written in.
+ - Please note that not every key can be exported in any format, and that not every
+ format supports encryption.
+ type: str
+ choices: [ pkcs1, pkcs8, raw ]
+ required: true
+seealso:
+ - module: community.crypto.openssl_privatekey
+ - module: community.crypto.openssl_privatekey_pipe
+ - module: community.crypto.openssl_publickey
+'''
diff --git a/ansible_collections/community/crypto/plugins/doc_fragments/name_encoding.py b/ansible_collections/community/crypto/plugins/doc_fragments/name_encoding.py
new file mode 100644
index 00000000..fec94380
--- /dev/null
+++ b/ansible_collections/community/crypto/plugins/doc_fragments/name_encoding.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2022, Felix Fontein <felix@fontein.de>
+# 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
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+ DOCUMENTATION = r'''
+options:
+ name_encoding:
+ description:
+ - How to encode names (DNS names, URIs, email addresses) in return values.
+ - C(ignore) will use the encoding returned by the backend.
+ - C(idna) will convert all labels of domain names to IDNA encoding.
+ IDNA2008 will be preferred, and IDNA2003 will be used if IDNA2008 encoding fails.
+ - C(unicode) will convert all labels of domain names to Unicode.
+ IDNA2008 will be preferred, and IDNA2003 will be used if IDNA2008 decoding fails.
+ - B(Note) that C(idna) and C(unicode) require the L(idna Python library,https://pypi.org/project/idna/) to be installed.
+ type: str
+ default: ignore
+ choices:
+ - ignore
+ - idna
+ - unicode
+requirements:
+ - If I(name_encoding) is set to another value than C(ignore), the L(idna Python library,https://pypi.org/project/idna/) needs to be installed.
+'''