Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Add Trusted Certificate to JKS
See more Java KeyStore (JKS) Examples
Adds a trusted certificate to a Java keystore file.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Cert,
Chilkat.JavaKeyStore;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
jks: TJavaKeyStore;
jksPassword: string;
jksPath: string;
cert: TCert;
alias: string;
begin
success := False;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
jks := TJavaKeyStore.Create;
jksPassword := 'secret';
jksPath := '/myJksTrustedCerts/cacerts.jks';
// Load the Java keystore from a file.
success := jks.LoadFile(jksPassword,jksPath);
if (success <> True) then
begin
WriteLn(jks.LastErrorText);
Exit;
end;
cert := TCert.Create;
// The cert's LoadFrommFile method can load a certificate from
// virtually any format. It will automatically determine the format
// and load appropriately.
success := cert.LoadFromFile('/certFiles/myNewTrustedCert.pem');
if (success <> True) then
begin
WriteLn(cert.LastErrorText);
Exit;
end;
// The alias can be anything. It's basically just a label
// used within the JKS associated with the entry. It should
// be unique among aliases within the JKS file.
alias := 'habanero';
success := jks.AddTrustedCert(cert,alias);
if (success <> True) then
begin
WriteLn(jks.LastErrorText);
Exit;
end;
// Write the JKS containing the new certificate.
success := jks.ToFile(jksPassword,jksPath);
if (success <> True) then
begin
WriteLn(jks.LastErrorText);
Exit;
end;
WriteLn('Added a trusted certificate to the JKS.');
jks.Free;
cert.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.