05.03.2003 10:22:42Длинный путь Ответов: 0
Вячеслав
Wincrypt.h - непомогла так и выдает ошибки. Придется идти длинным путем :-(
Почему то выдает ошибку при выполнении
Code:87 - Параметр задан неверно.

Flags:= 0;
name:=’my’;
FCertStore:= CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,ConvStoreType(StoreType), PWideChar(Name));
if not Assigned(FCertStore) then RaiseLastOSError;

str:=’user99’;
Context:= CertFindCertificateInStore(FCertStore, MyEncodingType,0, CERT_FIND_SUBJECT_STR, PWideChar(Str), nil);
if not Assigned(Context) then RaiseLastOSError;

InFile:=TMemoryStream.Create;
InFile.LoadFromFile(’c:\aa.txt’);

tbenc_len:=InFile.Size;
SetLength(tbenc, tbenc_len);

New(EncryptAlgorithm);
EncryptAlgorithm^.pszObjId:=PChar(’1.2.643.2.2.21’); //szOID_CP_GOST_28147;

Size:=SizeOf(EncryptParams^);

New(EncryptParams);
EncryptParams^.cbSize:=Size;
EncryptParams^.dwMsgEncodingType:=MyEncodingType;
EncryptParams^.hCryptProv:=FProvider;
EncryptParams^.ContentEncryptionAlgorithm:=EncryptAlgorithm^;
Win32Check(CryptEncryptMessage(EncryptParams, 1, @Context, PBYTE(tbenc) , tbenc_len, nil, size));

ошибку выдает на последней строчке.
Может кто уже переписывал криптование для для дельфей.