вопрос по CryptoAPI через провайдера КриптоПро.
hSystemStore := CertOpenSystemStore(0, 'MY');
var
hProv: HCRYPTPROV;
hSystemStore: HCERTSTORE;
myCert, test: PWideChar;
SERT_NAME: LPCTSTR;
pCert: PCCERT_CONTEXT;
msgPara: CRYPT_ENCRYPT_MESSAGE_PARA;
count, encType: DWORD;
begin
encType := PKCS_7_ASN_ENCODING or X509_ASN_ENCODING;
myCert := 'Makushev';
pCert := CertFindCertificateInStore(hSystemStore,
encType,
0,
CERT_FIND_SUBJECT_STR,
myCert,
nil);
ZeroMemory(@msgPara, SizeOf(msgPara));
with msgPara do
begin
cbSize := SizeOf(msgPara);
dwMsgEncodingType := encType;
ContentEncryptionAlgorithm.pszObjId := CertAlgIdToOID(CALG_RC4);
hCryptProv := hProv;
end;
test := 'Test';
ret := CryptEncryptMessage(@msgPara, 1, pCert, PByte(test), length(test), nil, @count);
Если честно то не понимаю почему когда доходит до CryptEncryptMessage и пытается его выполнить вылезает "Access Violation"? Где я наступаю на грабли?