AsymmetricKey
Private key that can be used to sign messages or used for key agreement, optionally with some kind of identification.
A private key can either be a software key EcPrivateKey or reside in a SecureArea. Keys can either be anonymous or identified either by a certificate chain or using a key id. When reading a key from settings, all six possible variants are potentially useful, yet it makes very little difference for the rest of the code which variant is actually used. AsymmetricKey class encapsulates these variants so the code can be written in more generic way.
Although strictly speaking not a signing operation, AsymmetricKey can also be used for key exchange operation, provided it was created with that capability.
Inheritors
Types
Key without identification, typically used when it is clear from the context which key must be employed.
AsymmetricKey which is both AsymmetricKey.Anonymous and AsymmetricKey.Explicit.
AsymmetricKey which is both AsymmetricKey.Anonymous and AsymmetricKey.SecureAreaBased.
Implemented by AsymmetricKey where the private key is explicitly given.
Key identified by a key id which is somehow known to other parties.
AsymmetricKey which is both AsymmetricKey.Named and AsymmetricKey.Explicit.
AsymmetricKey which is both AsymmetricKey.Named and AsymmetricKey.SecureAreaBased.
Implemented by AsymmetricKey where the private key resides in SecureArea
A key which is identified by a X509 certificate chain.
AsymmetricKey which is both AsymmetricKey.X509Certified and AsymmetricKey.Explicit.
AsymmetricKey which is both AsymmetricKey.X509Certified and AsymmetricKey.SecureAreaBased.
Keys that are (potentially) compatible with X509-certificate-based workflows.