2.2.2.9.2 BCRYPT RSA Private Key BLOB
The following is the diagram of elements in the RSA private key BLOB that MUST be passed to the CA.










1 









2 









3 


Magic 

BitLength 

PubExpLength 

ModulusLength 

PLength 

QLength 

PubExp (variable) 

... 

Modulus (variable) 

... 

P (variable) 

... 

Q (variable) 

... 
Magic (4 bytes): Length MUST be 4 bytes.

This field MUST be present as an unsigned long in bigendian format.

The value of this field MUST be 0x32415352 (RSA2).
BitLength (4 bytes): Length MUST be 4 bytes.

This field MUST be present as an unsigned long in bigendian format.

The value of this field is the size, in bits, of the RSA key.
PubExpLength (4 bytes): Length MUST be 4 bytes.

This field MUST be present as an unsigned long in bigendian format.

The value of this field is the size, in bytes, of the RSA key exponent.
ModulusLength (4 bytes): Length MUST be 4 bytes.

The field MUST be present as an unsigned long in bigendian format.

The value of this field is the size, in bytes, of the modulus of the key.
PLength (4 bytes): Length MUST be 4 bytes.

This field MUST be present as an unsigned long in bigendian format.

The value of this field is the size, in bytes, of the first prime number of the private key.
QLength (4 bytes): Length MUST be 4 bytes.

This field MUST be present as an unsigned long in bigendian format.

The value of this field is the size, in bytes, of the second prime number of the private key.
PubExp (variable): The exponent of the key with a length defined by PubExpLength.

This field MUST be present as a byte string in bigendian format.
Modulus (variable): The modulus of the key with a length defined by ModulusLength.

This field MUST be present as a byte string in bigendian format.
P (variable): The first prime number of the private key with a length defined by PLength.

This field MUST be present as a byte string in bigendian format.
Q (variable): The second prime number of the private key with a length defined by QLength.

This field MUST be present as a byte string in bigendian format.