Platform SDK: Cryptography

BLOBHEADER

The BLOBHEADER structure indicates a key's BLOB type and the algorithm that the key uses. One of these structures is located at the beginning of the pbData member of every key BLOB.

This structure is not limited to the key BLOBs generated by the PROV_RSA_BASE and PROV_RSA_SIG provider types. The pbData member of any new key BLOB type must begin with this structure.

typedef struct _PUBLICKEYSTRUC {
    BYTE   bType;
    BYTE   bVersion;
    WORD   reserved;
    ALG_ID aiKeyAlg;
} BLOBHEADER, PUBLICKEYSTRUC;

Members

bType
Key BLOB type. The only BLOB types currently defined are PUBLICKEYBLOB, PRIVATEKEYBLOB, SIMPLEBLOB, and SYMMETRICWRAPKEYBLOB. Other key BLOB types will be defined as needed.

PUBLICKEYBLOBs are used to transport public keys, PRIVATEKEYBLOBs are used to transport public/private key pairs, SIMPLEBLOBs are used to transport session keys, and SYMMETRICWRAPKEYBLOBs are used to export and import a symmetric key wrapped with another symmetric key.

bVersion
Version number of the key BLOB format. This currently must always have a value of 0x02.
reserved
Reserved for future use. Must be set to zero.
aiKeyAlg
Algorithm identifier for the key contained by the key BLOB. Some examples are CALG_RSA_SIGN, CALG_RSA_KEYX, CALG_RC2, and CALG_RC4. Not all algorithm identifiers are valid with all BLOB types. For example, because an RC4 key is a session key, it cannot be exported into a PUBLICKEYBLOB.

Requirements

  Windows NT/2000: Requires Windows NT 4.0 SP3 or later (or Windows NT 4.0 with Internet Explorer 3.02 or later).
  Windows 95/98: Requires Windows 98 (or Windows 95 with Internet Explorer 3.02 or later).
  Header: Declared in Wincrypt.h.