CryptographicKey Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents a symmetric key or an asymmetric key pair.
public ref class CryptographicKey sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class CryptographicKey final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class CryptographicKey
Public NotInheritable Class CryptographicKey
- Inheritance
- Attributes
Windows requirements
Device family |
Windows 10 (introduced in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduced in v1.0)
|
Examples
using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams;
namespace SampleCryptographicKey
{
sealed partial class CryptographicKeyApp : Application
{
static IBuffer buffKeyPair;
public CryptographicKeyApp()
{
// Initialize the application.
this.InitializeComponent();
// Create an asymmetric key pair.
String strAsymmetricAlgName = AsymmetricAlgorithmNames.RsaPkcs1;
UInt32 asymmetricKeyLength = 512;
IBuffer buffPublicKey = this.SampleCreateAsymmetricKeyPair(
strAsymmetricAlgName,
asymmetricKeyLength);
}
public IBuffer SampleCreateAsymmetricKeyPair(
String strAsymmetricAlgName,
UInt32 keyLength)
{
// Open the algorithm provider for the specified asymmetric algorithm.
AsymmetricKeyAlgorithmProvider objAlgProv = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(strAsymmetricAlgName);
// Create an asymmetric key pair.
CryptographicKey keyPair = objAlgProv.CreateKeyPair(keyLength);
// Export the public key to a buffer for use by others.
IBuffer buffPublicKey = keyPair.ExportPublicKey();
// You should keep your private key (embedded in the key pair) secure. For
// the purposes of this example, however, we're just copying it into a
// static class variable for later use during decryption.
CryptographicKeyApp.buffKeyPair = keyPair.Export();
// Retrieve the size of the key pair.
UInt32 lengthKeyPair = keyPair.KeySize;
// Return the public key.
return buffPublicKey;
}
}
}
Remarks
A CryptographicKey object is created when you use methods that create or import keys in the following classes:
- AsymmetricKeyAlgorithmProvider
- KeyDerivationAlgorithmProvider
- MacAlgorithmProvider
- SymmetricKeyAlgorithmProvider
Properties
KeySize |
Gets the size, in bits, of the key. |
Methods
Export() |
Exports the key pair to a buffer. |
Export(CryptographicPrivateKeyBlobType) |
Exports the key pair to a buffer given a specified format. |
ExportPublicKey() |
Exports a public key to a buffer. |
ExportPublicKey(CryptographicPublicKeyBlobType) |
Exports a public key to a buffer given a specified format. |