🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334514

CAPICOM - gdzie wstawić PIN?

#334514
From: AbiX
Date: Thu, 29 Dec 2011 13:46
49 lines
2265 bytes
Witam.
Mam taki kawałek kodu który tekst z memo powinien podpisać wybranym 
certyfikatem. Jednak przy wywołaniu Sing wypada błąd "Podana para kluczy 
nie istnieje". Grzebię po MSDN'ie już drugi dzień i nie mogę namierzyć 
jak podpisać dane certyfikatem kwalifikowanym.

var
     store: TStore;
     signer: TSigner;
     sData: TSignedData;
     certificates: ICertificates2;
     certificate: ICertificate2;
     I: integer;
begin
   store := TStore.Create(nil);
   store.Open(CAPICOM_CURRENT_USER_STORE, 'My', 
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED or 
CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED or CAPICOM_STORE_OPEN_EXISTING_ONLY);

   certificates := (store.Certificates as ICertificates2).Select('Podpis 
danych', 'wybierz certyfikat', false);
   if certificates.Count=0 then
   begin
      Application.MessageBox('Nie znaleziono odpowiedniego 
certyfikatu.', '', MB_OK + MB_ICONWARNING);
      Exit;
   end;
   certificate:=IInterface(certificates.Item[1]) as ICertificate2;
   signer:=TSigner.Create(self);
   signer.Certificate:=Certificate;

   mmo1.Lines.Add('');
   mmo1.Lines.Add(certificate.SubjectName);

   sData:=TSignedData.Create(self);
   sData.Connect;
   sData.Content:=mmo1.Text;
   mmo1.Text:=sData.Sign(signer.DefaultInterface, true, 
CAPICOM_ENCODE_BASE64);
   sData.Disconnect;
   sData.Free;
   signer.Free;
   store.close();
   store.Free;
end;

-- 
Pozdrawiam
AbiX
Technical Details
Message-ID: <jdhr16$gla$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!not-for-mail
From: AbiX <abix_usun_ten_tekst@poczta.del.fm>
Newsgroups: pl.comp.lang.delphi
Subject: CAPICOM - gdzie wstawić PIN?
Date: Thu, 29 Dec 2011 14:46:49 +0100
Organization: Netia S.A.
Lines: 49
Message-ID: <jdhr16$gla$1@mx1.internetia.pl>
NNTP-Posting-Host: 77.253.231.6
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1325166438 17066 77.253.231.6 (29 Dec 2011 13:47:18 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Thu, 29 Dec 2011 13:47:18 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20111105 Thunderbird/8.0
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit