var
f : TFileStream;
b : RawByteString;
indata, outsign : WideString;
ilng : Integer;
rv : Cardinal;
fSing : TIdBytes;
fFile : THandle;
function EncodeFile(const FileName: string): AnsiString;
var
LStream: TMemoryStream;
Bytes: TIdBytes;
Base64String: String;
l : Integer;
begin
LStream := TMemoryStream.Create;
try
LStream.LoadFromFile(Filename);
l:= LStream.Size;
SetLength(Bytes, l);
if L > 0 then
LStream.ReadBuffer(PChar(bytes)^, L);
Base64String := TIdEncoderMIME.EncodeBytes(Bytes);
Result := Base64String;
redt_data.Text:= Base64String;
finally
LStream.Free;
end;
end;
begin
indata:= EncodeFile('d:\test\test_1.txt');
if (((KalkanFlags and KC_SIGN_CMS) = KC_SIGN_CMS) and (
(KalkanFlags and KC_WITH_TIMESTAMP) = KC_WITH_TIMESTAMP)) then
begin
KalkanCOMTest.TSASetUrl('http://tsp.pki.gov.kz:80');
end;
rv:= KalkanCOMTest.SignData(ComboBox1.Items[ComboBox1.ItemIndex], KalkanFlags, indata, outsign);
if (rv > 0) then
begin
KalkanCOMTest.GetLastError(rv);
RichEdit1.Text := 'Error: 0x' + IntToHex(rv, 8);
Exit;
end;
redt_SignedData.Text := outSign;
DeleteFile('d:\test\tstSing.txt');
fFile:= FileCreate('d:\test\tstSing.txt', fmShareExclusive or fmOpenReadWrite);
fSing:= TIdDecoderMIME.DecodeBytes(outsign);//StringToBytes(outsign);
FileWrite(fFile, fSing[0], Length(fSing));
FileClose(fFile);
if outSign <> '' then
SysFreeString(PWideChar(outSign));
end;
flags = KC_IN_BASE64 or KC_OUT_BASE64 or KC_SIGN_CMS
возврат ошибки KCR_UNKNOWN_CMS_FORMAT 0x08F0001e Неизвестный формат CMS
сам текст BASE64
0KPRh9C10YLQvdCw0Y8g0LfQsNC/0LjRgdGMINC00LvRjyDQstCw0YEg0LHRi9C70LAg0YHQvtC30LTQsNC90LAuIA0K0J3QsCDRg9C60LDQt9Cw0L3QvdGL0Lkg0L/RgNC4INGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0Ysg0LHRi9C70LAg0L7RgtC/0YDQsNCy0LvQtdC90LAg0YHRgdGL0LvQutCwINC00LvRjyDQtdGRINCw0LrRgtC40LLQsNGG0LjQuC4gDQrQntCx0YDQsNGC0LjRgtC1INCy0L3QuNC80LDQvdC40LUsINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQsNC60YLQuNCy0LjRgNC+0LLQsNGC0Ywg0YPRh9C10YLQvdGD0Y4g0LfQsNC/0LjRgdGMLCDQv9C10YDQtdC50LTRjyDQv9C+INGB0L7QtNC10YDQttCw0YnQtdC50YHRjyDQsiDQv9C40YHRjNC80LUg0YHRgdGL0LvQutC1LiANCtCi0L7Qu9GM0LrQviDQv9C+0YHQu9C1INGN0YLQvtCz0L4g0LLRiyDRgdC80L7QttC10YLQtSDQv9GA0L7RhdC+0LTQuNGC0Ywg0LDQstGC0L7RgNC40LfQsNGG0LjRjiDQvdCwINGB0LDQudGC0LUg0L/QvtC0INCy0LDRiNC40Lwg0LvQvtCz0LjQvdC+0Lwg0Lgg0L/QsNGA0L7Qu9C10Lwu
Ключи все что идут с SDK.
Объясните что делается не так и почему ?