DeriveKey
(Engine-Level Function)
| Description: | Generates a cryptographic session key from a seed value. |
| Returns: | Handle |
Usage: ![]() |
Script Only. |
| Function Groups: | Cryptography |
| Related to: | Decrypt | Encrypt | ExportKey | GenerateKey | GetKeyParam | ImportKey | SetKeyParam |
Format: ![]() |
DeriveKey(CSPHandle, AlgID, Seed [, Flags, Error]) |
| Parameters: |
| CSPHandle | ||||||||
| Required. The handle of a CSP |
||||||||
| AlgID | ||||||||
| Required. Identifies the algorithm for which the key is to be generated. Values for this parameter vary depending on the CSP used, and are defined in WinCrypt.h | ||||||||
| Seed | ||||||||
| Required. A text string to use as a seed. | ||||||||
| Flags | ||||||||
| Optional. Specifies the flags to be passed to CryptGenKey. If omitted or invalid, then the value "0" is used. | ||||||||
| Error | ||||||||
Optional. A variable in which the error code for the function is returned. The error codes are as follows
|
| Comments: |
DeriveKey guarantees that when the same CSP and algorithms are used, the keys generated from the same seed are identical. The base data can be a password or any other user data. A handle to the key or key pair is returned. This handle can then be used as needed with any Crypto API function requiring a key handle. It is the VTScada analog of the Crypto API CryptDeriveKey call. Does not support CNG (Cryptography New Generation). |
Example:
[
Key1;
Constant CALG_RC4 = 0x6801;
Constant KEY_SIZE = 40;
Constant Password = "A secret password";
]
Init [
If 1 Main;
[
{ Make a key }
Key1 = DeriveKey(CSP, CALG_RC4, Password, KEY_SIZE << 16);
]
]
