community.crypto.openssl_publickey_info (2.18.0) — filter

Retrieve information from OpenSSL public keys in PEM format

| "added in version" 2.10.0 of community.crypto"

Authors: Felix Fontein (@felixfontein)

Install collection

Install with ansible-galaxy collection install community.crypto:==2.18.0


Add to requirements.yml

  collections:
    - name: community.crypto
      version: 2.18.0

Description

Provided a public key in OpenSSL PEM format, retrieve information.

This is a filter version of the M(community.crypto.openssl_publickey_info) module.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Show the type of a public key
  ansible.builtin.debug:
    msg: >-
      {{
        (
          lookup('ansible.builtin.file', '/path/to/public-key.pem')
          | community.crypto.openssl_publickey_info
        ).type
      }}

Inputs

    
_input:
    description:
    - The content of the OpenSSL PEM public key.
    required: true
    type: string

Outputs

_value:
  contains:
    fingerprints:
      description:
      - Fingerprints of public key.
      - For every hash algorithm available, the fingerprint is computed.
      returned: success
      sample: '{''sha256'': ''d4:b3:aa:6d:c8:04:ce:4e:ba:f6:29:4d:92:a3:94:b0:c2:ff:bd:bf:33:63:11:43:34:0f:51:b0:95:09:2f:63'',
        ''sha512'': ''f7:07:4a:f0:b0:f0:e6:8b:95:5f:f9:e6:61:0a:32:68:f1...'
      type: dict
    public_data:
      contains:
        curve:
          description:
          - The curve's name for ECC.
          returned: When RV(_value.type=ECC)
          type: str
        exponent:
          description:
          - The RSA key's public exponent.
          returned: When RV(_value.type=RSA)
          type: int
        exponent_size:
          description:
          - The maximum number of bits of a private key. This is basically the bit
            size of the subgroup used.
          returned: When RV(_value.type=ECC)
          type: int
        g:
          description:
          - The C(g) value for DSA.
          - This is the element spanning the subgroup of the multiplicative group
            of the prime field used.
          returned: When RV(_value.type=DSA)
          type: int
        modulus:
          description:
          - The RSA key's modulus.
          returned: When RV(_value.type=RSA)
          type: int
        p:
          description:
          - The C(p) value for DSA.
          - This is the prime modulus upon which arithmetic takes place.
          returned: When RV(_value.type=DSA)
          type: int
        q:
          description:
          - The C(q) value for DSA.
          - This is a prime that divides C(p - 1), and at the same time the order
            of the subgroup of the multiplicative group of the prime field used.
          returned: When RV(_value.type=DSA)
          type: int
        size:
          description:
          - Bit size of modulus (RSA) or prime number (DSA).
          returned: When RV(_value.type=RSA) or RV(_value.type=DSA)
          type: int
        x:
          description:
          - The C(x) coordinate for the public point on the elliptic curve.
          returned: When RV(_value.type=ECC)
          type: int
        y:
          description:
          - For RV(_value.type=ECC), this is the C(y) coordinate for the public point
            on the elliptic curve.
          - For RV(_value.type=DSA), this is the publicly known group element whose
            discrete logarithm with respect to C(g) is the private key.
          returned: When RV(_value.type=DSA) or RV(_value.type=ECC)
          type: int
      description:
      - Public key data. Depends on key type.
      returned: success
      type: dict
    type:
      description:
      - The key's type.
      - One of V(RSA), V(DSA), V(ECC), V(Ed25519), V(X25519), V(Ed448), or V(X448).
      - Will start with V(unknown) if the key type cannot be determined.
      returned: success
      sample: RSA
      type: str
  description:
  - Information on the public key.
  type: dict

See also