• Страница:
  • 1

ТЕМА: KalkanCryptCOM_Test BASE64

KalkanCryptCOM_Test BASE64 1 год назад #4399

  • slawa061983
  • Новый участник
  • Постов: 6
  • Репутация: 0
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.


Объясните что делается не так и почему ?

Re: KalkanCryptCOM_Test BASE64 11 мес., 2 нед. назад #4457

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

Выходной формат для CMS только PEM либо DER.
Модератор
Спасибо сказали: slawa061983
  • Страница:
  • 1
FaLang translation system by Faboba