Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Add Private Key to Java KeystoreAdds a private key to an existing Java keystore.
LOCAL loJks LOCAL lcJksPassword LOCAL lcJksPath LOCAL lnSuccess LOCAL loCert LOCAL loCertVault LOCAL loPrivKey LOCAL lcAlias LOCAL loPfx * This requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JavaKeyStore') loJks = CreateObject('Chilkat.JavaKeyStore') lcJksPassword = "myJksPassword" lcJksPath = "/someDir/keyStore.jks" * Load the Java keystore from a file. lnSuccess = loJks.LoadFile(lcJksPassword,lcJksPath) IF (lnSuccess <> 1) THEN ? loJks.LastErrorText RELEASE loJks CANCEL ENDIF * A JKS private key entry consists of both the private key, * it's associated certificate (which contains the matching public key * within the X.509 of the certificate), and the certificates in the * chain of authentication to the root. * * Therefore, to add a private key entry to a JKS requires * a Chilkat certificate object that has a private key and which also * has the certificate chain (up to the root) available. * There are many ways to get a Chilkat certificate object * that contains (within it) the private key and the certificate chain * This example will show two possibilities: * (1) Where the cert and issuing root are provided in PEM format in .crt files, * and the private key is also provided in unencrypted PEM format (.key file). * (2) Where the cert, private key, and issuing root are provided in a single PFX. * First for the .crt / .key files: * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Cert') loCert = CreateObject('Chilkat.Cert') * Chilkat will automatically determine the format of the cert file and load it correctly. lnSuccess = loCert.LoadFromFile("/mycerts/alice.crt") IF (lnSuccess <> 1) THEN ? loCert.LastErrorText RELEASE loJks RELEASE loCert CANCEL ENDIF * Certificates required for building the chain of authentication can be * added to an XML certificate vault object, and then provided as * a source for obtaining certs when building the chain. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.XmlCertVault') loCertVault = CreateObject('Chilkat.XmlCertVault') lnSuccess = loCertVault.AddCertFile("/mycerts/ca.crt") IF (lnSuccess <> 1) THEN ? loCertVault.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault CANCEL ENDIF lnSuccess = loCert.UseCertVault(loCertVault) IF (lnSuccess <> 1) THEN ? loCert.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault CANCEL ENDIF * Now provide the associated private key to the certificate object. * The Chilkat private key class provides methods for loading from many formats (both * encrypted and unencrypted). * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.PrivateKey') loPrivKey = CreateObject('Chilkat.PrivateKey') lnSuccess = loPrivKey.LoadPemFile("/mycerts/alice.key") IF (lnSuccess <> 1) THEN ? loPrivKey.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey CANCEL ENDIF * Provide the certificate object with the private key: lnSuccess = loCert.SetPrivateKey(loPrivKey) IF (lnSuccess <> 1) THEN ? loCert.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey CANCEL ENDIF * Our certificate object now contains all that we need to add it as a private key entry * to the Java keystore: lcAlias = "alice" lnSuccess = loJks.AddPrivateKey(loCert,lcAlias,lcJksPassword) IF (lnSuccess <> 1) THEN ? loJks.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey CANCEL ENDIF * Write the updated JKS, which contains the new private key entry w/ certificate chain. lnSuccess = loJks.ToFile(lcJksPassword,lcJksPath) IF (lnSuccess <> 1) THEN ? loJks.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey CANCEL ENDIF ? "Added new private key entry (from .crt and .key files) to the JKS!" * Now let's add a new private key entry from a PFX that contains a single * private key with associated cert and cert chain. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Pfx') loPfx = CreateObject('Chilkat.Pfx') lnSuccess = loPfx.LoadPfxFile("/myPfxFiles/my.pfx","pfxPassword") IF (lnSuccess <> 1) THEN ? loPfx.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey RELEASE loPfx CANCEL ENDIF * This is easy -- simply add the PFX to the JKS lcAlias = "bob" lnSuccess = loJks.AddPfx(loPfx,lcAlias,lcJksPassword) IF (lnSuccess <> 1) THEN ? loJks.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey RELEASE loPfx CANCEL ENDIF * Write the updated JKS, which contains the new private key entry w/ certificate chain * that came from the PFX. lnSuccess = loJks.ToFile(lcJksPassword,lcJksPath) IF (lnSuccess <> 1) THEN ? loJks.LastErrorText RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey RELEASE loPfx CANCEL ENDIF ? "Added new private key entry (from PFX) to the JKS!" RELEASE loJks RELEASE loCert RELEASE loCertVault RELEASE loPrivKey RELEASE loPfx |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.