BCRYPT_DSA_KEY_BLOB structure (bcrypt.h)

The BCRYPT_DSA_KEY_BLOB structure is used as a header for a Digital Signature Algorithm (DSA) public key or private key BLOB in memory.

Syntax

typedef struct _BCRYPT_DSA_KEY_BLOB {
  ULONG dwMagic;
  ULONG cbKey;
  UCHAR Count[4];
  UCHAR Seed[20];
  UCHAR q[20];
} BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB;

Members

dwMagic

Determines the type of key this structure represents. This can be one of the following values.

Value Meaning
BCRYPT_DSA_PUBLIC_MAGIC
0x42505344
The structure represents a DSA public key.
BCRYPT_DSA_PRIVATE_MAGIC
0x56505344
The structure represents a DSA private key.

cbKey

The length, in bytes, of the key.

Count[4]

The number of iterations, in big-endian format, used to generate q.

Seed[20]

The seed value, in big-endian format, used to generate q.

q[20]

The 160-bit prime factor, in big-endian format.

Remarks

The structure applies to DSA keys that equal or exceed 512 bits in length but are less than or equal to 1024 bits.

This structure is used as a header for a larger buffer. A DSA public key BLOB (BCRYPT_DSA_PUBLIC_BLOB) has the following format in contiguous memory. The Modulus, Generator, and Public numbers are in big-endian format.


BCRYPT_DSA_KEY_BLOB
Modulus[cbKey]    // Big-endian.
Generator[cbKey]  // Big-endian.
Public[cbKey]     // Big-endian.

A DSA private key BLOB (BCRYPT_DSA_PRIVATE_BLOB) has the following format in contiguous memory. The Modulus, Generator, Public, and PrivateExponent numbers are in big-endian format.


BCRYPT_DSA_KEY_BLOB
Modulus[cbKey]        // Big-endian.
Generator[cbKey]      // Big-endian.
Public[cbKey]         // Big-endian.
PrivateExponent[20]   // Big-endian.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Header bcrypt.h

See also

BCryptExportKey

BCryptImportKeyPair