BLOBHEADER

The BLOBHEADER structure is located at the front 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. Any additional key blob types that are defined should also specify that each key blob start with this structure.

This structure contains fields that indicate the key blob type and the algorithm that the key uses.

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

Members

bType
Key blob type. The only blob types currently defined are the PUBLICKEYBLOB, PRIVATEKEYBLOB, and SIMPLEBLOB blob types. 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, and SIMPLEBLOBs are used to transport session keys.

bversion
Version number of the key blob format. This currently must always have a value of "0x02".
reserved
These 2 bytes are reserved for future use, and should be 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, you would never export an RC4 key into a PUBLICKEYBLOB.

See Also

DSSPUBKEY, DSSSEED, RSAPUBKEY