IPWorks Encrypt 2020 .NET Edition

Questions / Feedback?

RSA Component

Properties   Methods   Events   Configuration Settings   Errors  

Implements RSA public-key cryptography to encrypt/decrypt and sign/verify messages.

Syntax

nsoftware.IPWorksEncrypt.Rsa

Remarks

The RSA component implements RSA public-key cryptography to encrypt/decrypt messages and sign/verify hash signatures.

To begin you must either specify an existing key or create a new key. Existing private keys may be specified by setting Key. To create a new key call CreateKey. Alternatively an existing certificate may be specified by setting Certificate

Signing

To sign data first set Key or Certificate. Specify the input data using InputFile or InputMessage. Next call Sign. The component will populate HashValue and HashSignature. After calling Sign the public key must be sent to the recipient along with HashSignature.

Encrypting

To encrypt data set RecipientKey or RecipientCert. Specify the input data using InputFile or InputMessage. Next call Encrypt. The component will populate OutputMessage, or write to the file specified by OutputFile.

Signature Verification

To verify a signature specify the input data using InputFile or InputMessage. Set SignerKey or SignerCert. Next set HashSignature and call VerifySignature. The VerifySignature method will return True if the signature was successfully verified.

Decrypting

To decrypt data first set Key or Certificate. Specify the input data using InputFile or InputMessage. Next call Decrypt. The component will populate OutputMessage, or write to the file specified by OutputFile.

Input and Output Properties

The component will determine the source and destination of the input and output based on which properties are set.

The order in which the input properties are checked is as follows:

When a valid source is found the search stops. The order in which the output properties are checked is as follows:

When using streams you may need to additionally set CloseInputStreamAfterProcessing or CloseOutputStreamAfterProcessing.

RSA Keys

A RSA key is made up of a number of individual parameters.

The public key consists of the following parameters:

The component also includes the PublicKey field which holds the PEM formatted public key for ease of use. This is helpful if you are in control of both sides of the encryption/signing and decryption/signature verification process. When sending the public key to a recipient note that not all implementations will support using the PEM formatted value in PublicKey in which case the individual parameters must be sent.

The private key may be represented in one of two ways. Both are mathematically equivalent. Private key format 1:

Private key format 2 is simpler but has decreased performance when decrypting and signing. This format is: The component also include the PrivateKey field which holds the PEM formatted private key for ease of use. This is helpful for storing the private key more easily.

Property List


The following is the full list of the properties of the component with short descriptions. Click on the links for further details.

CertificateThe certificate used for signing and decryption.
HashAlgorithmThe hash algorithm used for signing and signature verification.
HashSignatureThe hash signature.
HashValueThe hash value of the data.
InputFileThe file to process.
InputMessageThe message to process.
KeyThe RSA key.
OutputFileThe output file when encrypting or decrypting.
OutputMessageThe output message after processing.
OverwriteIndicates whether or not the component should overwrite files.
RecipientCertThe certificate used for encryption.
RecipientKeyThe recipient's public key used when encrypting.
SignerCertThe certificate used for signature verification.
SignerKeyThe public key used to verify the signature.
UseHexWhether input or output is hex encoded.
UseOAEPWhether to use Optimal Asymmetric Encryption Padding (OAEP).
UsePSSWhether to use RSA-PSS during signing and verification.

Method List


The following is the full list of the methods of the component with short descriptions. Click on the links for further details.

ConfigSets or retrieves a configuration setting.
CreateKeyCreates a new key.
DecryptDecrypts the input data using the specified private key.
EncryptEncrypts the input data using the recipient's public key.
ResetResets the component.
SetInputStreamSets the stream from which the component will read data to encrypt or decrypt.
SetOutputStreamSets the stream to which the component will write encrypted or decrypted data.
SignCreates a hash signature.
VerifySignatureVerifies the signature for the specified data.

Event List


The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.

ErrorInformation about errors during data delivery.
ProgressFired as progress is made.

Configuration Settings


The following is a list of configuration settings for the component with short descriptions. Click on the links for further details.

CloseInputStreamAfterProcessingDetermines whether or not the input stream is closed after processing.
CloseOutputStreamAfterProcessingDetermines whether or not the output stream is closed after processing.
KeyFormatHow the public and private key are formatted.
KeySizeThe size, in bits, of the secret key.
OAEPMGF1HashAlgorithmThe MGF1 hash algorithm used with OAEP.
OAEPParamsThe hex encoded OAEP parameters.
OAEPRSAHashAlgorithmThe RSA hash algorithm used with OAEP.
BuildInfoInformation about the product's build.
GUIAvailableTells the component whether or not a message loop is available for processing events.
LicenseInfoInformation about the current license.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks Encrypt 2020 .NET Edition - Version 20.0 [Build 8286]