은 MSDN 문서 here있다,하지만 난 아주 멀리받지 못했습니다 :P & G - Diffie-Hellman 키 쌍을 생성하는 데 Wincrypt API를 어떻게 사용합니까?
p = 139;
g = 5;
CRYPT_DATA_BLOB pblob;
pblob.cbData = sizeof(ULONG);
pblob.pbData = (LPBYTE) &p;
CRYPT_DATA_BLOB gblob;
gblob.cbData = sizeof(ULONG);
gblob.pbData = (LPBYTE) &g;
HCRYPTKEY hKey;
if (::CryptGenKey(m_hCryptoProvider, CALG_DH_SF,
CRYPT_PREGEN, &hKey))
{
::CryptSetKeyParam(hKey, KP_P, (LPBYTE) &pblob, 0);
는 NTE_BAD_DATA
여기 실패. 나는 MS_DEF_DSS_DH_PROV
을 사용하고 있습니다. 뭐라 구요?
고마워요, 마이크 - 나는 당신의 레퍼런스에서 2 가지 *라는 것을 발견했습니다. CryptGenKey에게 길이를 16 비트 씩 비트 단위로 or'ing하여 플래그 매개 변수에 알려 주어야합니다 (물론 문서화되지 않았습니다. 샘플을 읽어야합니다). * 또한 *, 키 길이는 적어도 512 비트 여야합니다. –