PRIVATEKEYBLOB到OpenSSL的RSA结构

时间:2010-11-29 09:01:35

标签: winapi openssl

如何将privatekeyblob中的Microsoft导出密钥转换为struct RSA,可以与openSSL一起使用?

1 个答案:

答案 0 :(得分:0)

在检查文档时,看起来这些字段非常直观,一对一地映射。您是否尝试使用此信息实现映射代码?如果没有,我会给你一个去。

以下是Microsoft blob(链接到RSAPUBKEY):

typedef struct _RSAPUBKEY {
  DWORD magic;
  DWORD bitlen;
  DWORD pubexp;
} RSAPUBKEY;

BLOBHEADER blobheader;
RSAPUBKEY rsapubkey;
BYTE modulus[rsapubkey.bitlen/8];
BYTE prime1[rsapubkey.bitlen/16];
BYTE prime2[rsapubkey.bitlen/16];
BYTE exponent1[rsapubkey.bitlen/16];
BYTE exponent2[rsapubkey.bitlen/16];
BYTE coefficient[rsapubkey.bitlen/16];
BYTE privateExponent[rsapubkey.bitlen/8];

以下是RSA struct

 struct
        {
        BIGNUM *n;              // public modulus
        BIGNUM *e;              // public exponent
        BIGNUM *d;              // private exponent
        BIGNUM *p;              // secret prime factor
        BIGNUM *q;              // secret prime factor
        BIGNUM *dmp1;           // d mod (p-1)
        BIGNUM *dmq1;           // d mod (q-1)
        BIGNUM *iqmp;           // q^-1 mod p
        // ...
        };
 RSA