0
Microsoft CryptoAPI 용 테스트 응용 프로그램을 작성 중입니다. 두 번째 당사자의 공개 키를 사용하여 한 당사자의 비밀 키를 내 보낸 다음 두 번째 당사자의 비밀 키로이 비밀 키를 가져 오려고합니다. 이렇게하면 통신용 공유 비밀 키가 설정됩니다. 여기 내 코드입니다 :CryptoAPI에서 키를 내보내는 동안 BAD_UID 오류가 발생했습니다.
if(!CryptExportKey(encryptT->hSymKey, decryptT->hPubKey, SIMPLEBLOB, 0, keyExBuf, &bufLen)) {
FormattedDebugPrint(NULL, GetLastError(), "could not export secret key", TRUE);
return -1;
}
if(!CryptImportKey(decryptT->hCryptProv, keyExBuf, bufLen, decryptT->hPubKey, 0, &(decryptT->hSymKey))) {
FormattedDebugPrint(NULL, GetLastError(), "could not import secret key", TRUE);
return -1;
}
그리고이 오류 제공합니다
공개 키 쌍은 encryptT 및 decryptT (발신자, 수신자) 모두에 대해 생성되는80090001: Bad UID.
호출하여 :
CryptGenKey(encryptT->hCryptProv, CALG_RSA_KEYX, CRYPT_EXPORTABLE, &(encryptT->hPubKey))
을
오류의 원인은 무엇입니까?
감사합니다.
encryptT-> hSymKey를 만들고 decryptT-> hPubKey를 가져 오는 방법으로 더 많은 코드를 게시 할 수 있습니까? 인증서에서 hPubKey를 가져 옵니까? 귀하의 오류는이 두 부분의 어딘가에 있습니다. – Oleg
안녕하세요, 응답 주셔서 감사합니다! 예, 공개 키를 PUBLICKEYBLOB에 먼저 내 보낸 다음 수신자의 CSP를 사용하여 가져 오는 일없이 ("발신자"와 "수신자"가 같은 응용 프로그램에 있음) 직접 송신자로부터 공개 키를 가져 왔습니다. – mindthief