Winapi PRIVATEKEYBLOB到OpenSSL的RSA结构
如何将privatekeyblob中的Microsoft导出密钥转换为可与openSSL一起使用的struct RSA?查看文档时,看起来字段很直观地一一对应。您是否尝试过使用此信息实现映射代码?如果不是的话,我会试一试 以下是(链接到): 以下是:Winapi PRIVATEKEYBLOB到OpenSSL的RSA结构,winapi,openssl,Winapi,Openssl,如何将privatekeyblob中的Microsoft导出密钥转换为可与openSSL一起使用的struct RSA?查看文档时,看起来字段很直观地一一对应。您是否尝试过使用此信息实现映射代码?如果不是的话,我会试一试 以下是(链接到): 以下是: 是的,我试过了,但是,在那个microsoft结构中没有找到BIGNUM*e,我试着从RSAPubkey获取它,但是没有成功。那不是RSAPubkey中的xp吗?嗯,也许,我如何验证创建的结果是正确的密钥?对于私钥,内容大部分是加密的。您是否有测试
是的,我试过了,但是,在那个microsoft结构中没有找到BIGNUM*e,我试着从RSAPubkey获取它,但是没有成功。那不是RSAPubkey中的
xp
吗?嗯,也许,我如何验证创建的结果是正确的密钥?对于私钥,内容大部分是加密的。您是否有测试代码,可以用来传入构造的RSA结构以打开SSL(或使用私钥blob传递到Win32,具体取决于从哪个结构开始)?我需要将blob转换为RSA密钥。当我使用带有key null param的win export函数导出密钥时,blob不应加密。我无法确保转换的密钥与blob中的密钥相同
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];
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