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;
PUBLICKEYBLOBs are used to transport public keys, PRIVATEKEYBLOBs are used to transport public/private key pairs, and SIMPLEBLOBs are used to transport session keys.
Not all algorithm identifiers are valid with all blob types. For example, you would never export an RC4 key into a PUBLICKEYBLOB.