06.06.2003 17:56:40CAPICOM и Delphi Ответов: 1
Ильшат Абшарипов
Плюнул на эти непонятки с типами и решил поработать при помощи CAPICOM. Все очень просто и понятно, только вот незадача: беру файл, оборачиваю в конверт. При обратном преобразовании исходный файл ну никак не получается :(

var
Inner: TMemoryStream;
begin
CertStore := CreateOleObject(’Capicom.Store’);
EnvelopedData := CreateOleObject(’Capicom.EnvelopedData’);

//открыли хранилище сертификатов
CertStore.Open(CAPICOM_CURRENT_USER_STORE, ’MY’, CAPICOM_STORE_OPEN_READ_ONLY);
Cert := CertStore.Certificates[1];
//взяли файл
Inner := TMemoryStream.Create;
Inner.LoadFromFile(’d:\file.txt’);
//загрузили его в блок памяти
GetMem(Buf, Inner.Size);
Inner.Position := 0;
Inner.ReadBuffer(Buf[0], Inner.Size);
//параметы для конверта
EnvelopedData.Content := Buf[0];
EnvelopedData.Recipients.Clear;
EnvelopedData.Recipients.Add(Cert);
//упаковываем в конверт
sRes := EnvelopedData.Encrypt(CAPICOM_ENCODE_BASE64);

//расшифровываем то, что получилось
EnvelopedData.Decrypt(sRes);
sRes := EnvelopedData.Content;

В результате в переменной sRes какая-то непонятная строка. :( Помогите! :)
 
Ответы:
09.06.2003 15:01:02Снова я
Уже разобрался. Причина в кривых ручках :) В качестве контента для шифрования я передавал первый байт строки :)