CryptImportKey
を使用して、Windows暗号化サービスプロバイダにキーを取得できます。その後、MSDN example HMACコードに従ってください。キーをCSPに取り入れるための秘訣は、長さがBLOBHEADER
、DWORD
、キーがchar []の3つを保持する構造体を作ることです。
struct KeyData
{
BLOBHEADER hdr;
unsigned long keyLength;
unsigned char key[128];
};
void ComputeHash()
{
HCRYPTPROV cryptoProvider = 0;
HCRYPTKEY cryptKey = 0;
KeyData kd;
kd.hdr.aiKeyAlg = CALG_RC2;
kd.hdr.bType = PLAINTEXTKEYBLOB;
kd.hdr.bVersion = CUR_BLOB_VERSION;
kd.hdr.reserved = 0;
kd.keyLength = 128;
/* set your key data here */
/* get a crypto provider - See the microsoft references */
CryptImportKey(cryptoProvider, reinterpret_cast<BYTE*>(&kd), sizeof(kd),0, CRYPT_IPSEC_HMAC_KEY, &cryptKey);
/* use cryptKey in the call to CryptCreateHash when you create your CALG_HMAC */
}
あなたの鍵の実際の長さと長さを置き換えてください:それは次のようになりますので、私はあなたが生の鍵データを持っていると推定されます。
提案していただきありがとうございます。 opensslのslproweb urlには、opensslインストーラの多くの亜種があります。私の場合はどちらが適していますか? Win32 OpenSSL v1.0.0dバージョン? – sthustfo