Introduction | Quick References | How Do I ... Topics | Built-in Tools | Scripting and Programming
There are two types of cryptographic keys: session keys and public/private key pairs. Session keys are used primarily for data encryption/decryption and are used with symmetric encryption algorithms. A public/private key pair is composed of two components: the public key and the private key. The public key is made available (via an Internet server, e-mail, or some other means) to whomever needs or wants it, while the private key, on the other hand, is kept secret. Only the owner of the key pair is allowed to possess the private key.
Each user generally has two public/private key pairs. One key pair is used to encrypt session keys and the other to create digital signatures. These are known as the key exchange key pair and the signature key pair, respectively.
There are some situations where you must export keys from the secure environment of the cryptographic service provider (CSP) and into your application's data space. Keys that have been exported are stored in encrypted data structures known as key blobs.
Key blobs are created by exporting an existing key out of the provider. Later, the key blob can be imported into a provider (often a different CSP on a different computer). This will create a key in the CSP that is a duplicate of the one that was exported. In this way, key blobs are used as the medium for securely transferring keys from one CSP to another.
To export a public/private key pair, a derived key can be used instead of storing a random session key blob. Derived session keys are created with a Base Message (password). In this way, to import the public/private key pair into another provider, a derived key can be created with the same password. For the purpose, the Hpmbcalc supplies the dialog to export key pairs from your CSPs and save the Key blobs to files. As the private key is extremely confidential and its stored key blob is totally dependent on the strength of your password, it is recommended that you use the function only for the purpose of testing.
