Sample code for 30+ languages & platforms
Delphi DLL

Validate a Smartcard PIN

See more Certificates Examples

Validates a smartcard PIN. This example only runs on Windows and requires Chilkat v9.5.0.77 or greater.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Cert;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
cert: HCkCert;
pinValid: Integer;

begin
success := False;

// Note: Requires Chilkat v9.5.0.77 or greater.

cert := CkCert_Create();

CkCert_putSmartCardPin(cert,'000000');

// Load the certificate on the smartcard currently in the reader (or on the USB token).
// Pass an empty string to allow Chilkat to automatically choose the CSP (Cryptographi Service Provider).
// See Load Certificate on Smartcard for information about explicitly selecting a particular CSP.
success := CkCert_LoadFromSmartcard(cert,'');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkCert__lastErrorText(cert));
    Exit;
  end;

// Check to see if the SmartCardPin property contains the valid PIN for the smartcard.
pinValid := CkCert_CheckSmartCardPin(cert);
if (pinValid < 0) then
  begin
    Memo1.Lines.Add('Unable to check the PIN validity.');
    Memo1.Lines.Add(CkCert__lastErrorText(cert));
    Exit;
  end;

if (pinValid = 1) then
  begin
    Memo1.Lines.Add('PIN is valid.');
  end
else
  begin
    Memo1.Lines.Add('PIN is invalid.');
  end;

CkCert_Dispose(cert);

end;