OpenPGP Task

Overview

OpenPGP Task is SSIS Control Flow task for encryption and decryption using the OpenPGP (RFC 2440) standard.

Demonstration

Setup

Use the General page of the OpenPGP Task Editor dialog to configure the options needed to encrypt, decrypt, create or verify file signature.

Options

Name

Specify task name.

Description

Specify task description.

Action

Specify task action. This property has the options listed in the following table.

Value Description
Encrypt file Encrypts file. Selecting this value displays the dynamic options IsPublicKeyRingVariable, PublicKeyRing, PublicKeyRingVariable, Key, OutputASCII, OldFormat (1.3 SR-5), IsSourceVariable, Source, SourceVariable, RemoveSource, IsSourceSigned, IsTargetVariable, Target, TargetVariable, OverwriteExisting.
Decrypt file Encrypts file. Selecting this value displays the dynamic options IsSecretKeyRingVariable, SecretKeyRing, SecretKeyRingVariable, Password, IsSourceVariable, Source, SourceVariable, IsTargetVariable, Target, TargetVariable, OverwriteExisting, VerifySignature (1.3 SR-5).
Create file signature Creates file signature. Selecting this value displays the dynamic options IsSecretKeyRingVariable, SecretKeyRing, SecretKeyRingVariable, Key, Password, OutputASCII, IncludeData, IsSourceVariable, Source, SourceVariable, IsSignatureVariable, Signature, SignatureVariable, OverwriteExisting.
Verify file signature Verifies file signature. Selecting this value displays the dynamic options IsPublicKeyRingVariable, PublicKeyRing, PublicKeyRingVariable, ResultVariable, IsSourceVariable, Source, SourceVariable, IsSignatureVariable, Signature, SignatureVariable.
IsPublicKeyRingVariable

Indicates whether the public key ring path is stored in a variable. This property has the options listed in the following table.

Value Description
True The public key ring path is stored in a variable. Selecting the value displays the dynamic option PublicKeyRingVariable.
False The public key ring path is specified in a File connection manager. Selecting the value displays the dynamic option PublicKeyRing.
PublicKeyRing

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager Editor

PublicKeyRingVariable

Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

Key

Select key(s) from key ring.

OutputASCII

Select to output 7-bit ASCII data instead of binary data.

OldFormat (1.3 SR-5)

Specify to create PGP 2 compatible package. This property has the options listed in the following table.

Value Description
True Create package in PGP 2 format.
False Create package in OpenPGP format.
IsSourceVariable

Indicates whether the source path is stored in a variable. This property has the options listed in the following table.

Value Description
True The source path is stored in a variable. Selecting the value displays the dynamic option SourceVariable.
False The source path is specified in a File connection manager. Selecting the value displays the dynamic option Source.
Source

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager Editor

SourceVariable

Contains source path or input Stream object. Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

RemoveSource

Specify source file to be removed after encryption.

IsTargetVariable

Indicates whether the target path is stored in a variable. This property has the options listed in the following table.

Value Description
True The target path is stored in a variable. Selecting the value displays the dynamic option TargetVariable.
False The target path is specified in a File connection manager. Selecting the value displays the dynamic option Target.
Target

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager

TargetVariable

Contains target path or output Stream object. Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

OverwriteExisting

Specify to overwrite existing file.

IsSecretKeyRingVariable

Indicates whether the secret key ring path is stored in a variable. This property has the options listed in the following table.

Value Description
True The secret key ring path is stored in a variable. Selecting the value displays the dynamic option SecretKeyRingVariable.
False The secret key ring path is specified in a File connection manager. Selecting the value displays the dynamic option SecretKeyRing.
SecretKeyRing

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager

SecretKeyRingVariable

Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

IsSignatureVariable

Indicates whether the signature path is stored in a variable. This property has the options listed in the following table.

Value Description
True The signature path is stored in a variable. Selecting the value displays the dynamic option SignatureVariable.
False The signature path is specified in a File connection manager. Selecting the value displays the dynamic option Signature.
Signature

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager

SignatureVariable

Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

ResultVariable

Select an existing user-defined variable, or click <New variable...> to create a variable. The variable has to be type Boolean and it will contain the verificiation result.

Related Topics: Integration Services Variables, Add Variable

IncludeData (1.3 SR-2)

Select to include the data to be signed.

IsSourceSigned (1.3 SR-2)

Select if source data is OpenPGP signed. If true, the task will create signed and encrypted package.

VerifySignature (1.3 SR-5)

Specify to verify signature during decryption. This property has the options listed in the following table.

Value Description
True Verify signature during decryption. Selecting the value displays the dynamic options IsSignaturePublicKeyRingVariable, SignaturePublicKeyRing, SignaturePublicKeyRingVariable.
False Do not verify signature during decryption.
IsSignaturePublicKeyRingVariable (1.3 SR-5)

Indicates whether the signature public key ring path is stored in a variable. This property has the options listed in the following table.

Value Description
True The signature public key ring path is stored in a variable. Selecting the value displays the dynamic option SignaturePublicKeyRingVariable.
False The signature public key ring path is specified in a File connection manager. Selecting the value displays the dynamic option SignaturePublicKeyRing.
SignaturePublicKeyRing (1.3 SR-5)

Select an existing File connection manager, or click <New connection...> to create a connection manager.

Related topics: File Connection Manager

SignaturePublicKeyRingVariable (1.3 SR-5)

Select an existing user-defined variable, or click <New variable...> to create a variable.

Related Topics: Integration Services Variables, Add Variable

How to create signed and encrypted package?

Creating signed and encrypted package is a 2-step process:

  • Insert OpenPGP Task with action "Create file signature". Set IncludeData option to true.
  • Insert OpenPGP Task with action "Encrypt file". As a source file select the target file created in "Create file signature" step. Set IsSourceSigned option to true.

Samples

  • For a sample how to stream data without intermediate storage, check this package.
  • For a sample how create data in-memory in data flow, encrypt and stream without intermediate storage, check this package.