RSA Bean
Properties Methods Events Configuration Settings Errors
Implements RSA public-key cryptography to encrypt/decrypt and sign/verify messages.
Syntax
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:- SetOutputStream
- OutputFile
- OutputMessage: The output data is written to this property if no other destination is specified.
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 bean with short descriptions. Click on the links for further details.
Certificate | The certificate used for signing and decryption. |
HashAlgorithm | The hash algorithm used for signing and signature verification. |
HashSignature | The hash signature. |
HashValue | The hash value of the data. |
InputFile | The file to process. |
InputMessage | The message to process. |
Key | The RSA key. |
OutputFile | The output file. |
OutputMessage | The output message after processing. |
Overwrite | Indicates whether or not the component should overwrite files. |
RecipientCert | The certificate used for encryption. |
RecipientKey | The recipient's public key used when encrypting. |
SignerCert | The certificate used for signature verification. |
SignerKey | The public key used to verify the signature. |
UseHex | Whether input or output is hex encoded. |
Method List
The following is the full list of the methods of the bean with short descriptions. Click on the links for further details.
config | Sets or retrieves a configuration setting . |
createKey | Creates a new key. |
decrypt | Decrypts the input data using the specified private key. |
encrypt | Encrypts the input data using the recipient's public key. |
reset | Resets the component. |
setInputStream | Sets the stream from which the component will read data to encrypt or decrypt. |
setOutputStream | Sets the stream to which the component will write encrypted or decrypted data. |
sign | Creates a hash signature. |
verifySignature | Verifies the signature for the specified data. |
Event List
The following is the full list of the events fired by the bean with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
Progress | Fired as progress is made. |
Configuration Settings
The following is a list of configuration settings for the bean with short descriptions. Click on the links for further details.
UseOAEP | Whether to use Optimal Asymmetric Encryption Padding (OAEP). |
OAEPParams | The hex encoded OAEP parameters. |
MGF1HashAlgorithm | The MGF1 hash algorithm used with OAEP. |
KeySize | The size, in bits, of the secret key. |
KeyFormat | How the public and private key are formatted. |
CodePage | The system code page used for Unicode to Multibyte translations. |