Show / Hide Table of Contents

StaticKeys Class

Namespace: Yubico.YubiKey.Scp03 Assembly: Yubico.YubiKey.dll

Represents a triple of SCP03 static keys shared with the device.

C#
[Obsolete("Use new Static Keys")]
public class StaticKeys
Inheritance object StaticKeys

Remarks

See also the User's Manual entry on SCP03.

These are the three secret keys that only the device and remote user know. Clients must supply these to communicate securely with a remote device.

Systems often derive and assign these keys using a diversification function keyed with a 'master key' and run on the 'DivData' of each device.

Constructors

Name Description
StaticKeys()

Constructs an instance using the well-known default values; using these provides no security. This class will consider these keys to be the key set with the Key Version Number of 255 (0xFF).

StaticKeys(ReadOnlyMemory<byte>, ReadOnlyMemory<byte>, ReadOnlyMemory<byte>)

Constructs an instance given the supplied keys. This class will consider these keys to be the key set with the Key Version Number of

  1. If the key version number should be something else, set the KeyVersionNumber property after calling the constructor.

Properties

Name Description
ChannelEncryptionKey

AES128 shared secret key used to calculate the Session-ENC key. Also called the 'DAK' or 'Key-ENC' in some specifications.

ChannelMacKey

AES128 shared secret key used to calculate the Session-MAC key. Also called the 'DMK' or 'Key-MAC' in some specifications.

DataEncryptionKey

AES128 shared secret key used to wrap secrets. Also called the 'DEK' in some specifications.

KeyVersionNumber

The number that identifies the key set. Unless specified by the caller, this class will assume the Key Version Number is 1, or else 255 if the default keys are used.

Methods

Name Description
AreKeysSame(StaticKeys?)

Determine if the contents of each key is the same for both objects. If so, this method will return true.

Dispose()

Releases any unmanaged resources and overwrites any sensitive data.

Dispose(bool)

Releases any unmanaged resources and overwrites any sensitive data.

In this article
Back to top Generated by DocFX