Cryptography Decrypt

Cryptography Decrypt

Certified

Decrypt and optionally verify OpenPGP files

Streams an ASCII-armored PGP message from Kestra storage, decrypts it with the provided secret key and optional passphrase, and returns the cleartext URI. When signer public keys are supplied, verifies a one-pass signature and can enforce specific signer user IDs.

yaml
type: io.kestra.plugin.crypto.openpgp.Decrypt

Decrypt a file

yaml
id: crypto_decrypt
namespace: company.team

inputs:
  - id: file
    type: FILE

tasks:
  - id: decrypt
    type: io.kestra.plugin.crypto.openpgp.Decrypt
    from: "{{ inputs.file }}"
    privateKey: "{{ secret('PGP_PRIVATE_KEY') }}"
    privateKeyPassphrase: "{{ secret('PGP_PRIVATE_KEY_PASSPHRASE') }}"

Decrypt a file and verify signature

yaml
id: crypto_decrypt
namespace: company.team

inputs:
  - id: file
    type: FILE

tasks:
  - id: decrypt
    type: io.kestra.plugin.crypto.openpgp.Decrypt
    from: "{{ inputs.file }}"
    privateKey: "{{ secret('PGP_PRIVATE_KEY') }}"
    privateKeyPassphrase: "{{ secret('PGP_PRIVATE_KEY_PASSPHRASE') }}"
    signUsersKey:
      - |
        -----BEGIN PGP PUBLIC KEY BLOCK-----
    requiredSignerUsers:
      - signer@kestra.io
Properties

Source file to decrypt

Kestra internal storage URI or templated path to the encrypted message.

Reference (ref) of the pluginDefaults to apply to this task.

Private key for decryption

ASCII-armored secret key export such as gpg --export-secret-key -a; the first key ring found is used.

Passphrase for private key

Leave empty for unprotected keys; required for most secret keys.

SubTypestring

Required signer user IDs

If set, verification fails unless the signature user ID matches one of these values; ignored when no signature is present.

SubTypestring

Allowed signer public keys

Optional list of ASCII-armored public keys used to verify one-pass signatures.

Formaturi

URI of decrypted file