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
(PureBasic) Get the Certificate with Private Key from a Java KeyStoreSee more Java KeyStore (JKS) ExamplesLoad a Chilkat certificate object from a Java KeyStore.
IncludeFile "CkCert.pb" IncludeFile "CkCertChain.pb" IncludeFile "CkJavaKeyStore.pb" IncludeFile "CkCrypt2.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; Most of the time a .jks contains one certificate with it's associated private key. ; (Similar to how a .pfx/.p12 usually contains a particular certificate with private key.) ; This example demonstrates how to get the certificate with private key such that it can be used ; by other Chilkat classes wherever a cert w/ private key is needed. jks.i = CkJavaKeyStore::ckCreate() If jks.i = 0 Debug "Failed to create object." ProcedureReturn EndIf password.s = "secret" success.i = CkJavaKeyStore::ckLoadFile(jks,password,"qa_data/jks/test_secret.jks") If success <> 1 Debug CkJavaKeyStore::ckLastErrorText(jks) CkJavaKeyStore::ckDispose(jks) ProcedureReturn EndIf ; Make sure we have a private key. If CkJavaKeyStore::ckNumPrivateKeys(jks) < 1 Debug "No private key available." CkJavaKeyStore::ckDispose(jks) ProcedureReturn EndIf ; ------------------------------------------------------------------------- ; Get the certificate chain associated with the 1st (and probably only) private key in the JKS. chain.i = CkJavaKeyStore::ckGetCertChain(jks,0) If CkJavaKeyStore::ckLastMethodSuccess(jks) <> 1 Debug CkJavaKeyStore::ckLastErrorText(jks) CkJavaKeyStore::ckDispose(jks) ProcedureReturn EndIf cert.i = CkCertChain::ckGetCert(chain,0) If CkCertChain::ckLastMethodSuccess(chain) <> 1 Debug CkCertChain::ckLastErrorText(chain) CkCertChain::ckDispose(chain) CkJavaKeyStore::ckDispose(jks) ProcedureReturn EndIf CkCertChain::ckDispose(chain) ; Verify again that this cert has a private key. If CkCert::ckHasPrivateKey(cert) <> 1 Debug "Certificate has no associated private key." CkCert::ckDispose(cert) CkJavaKeyStore::ckDispose(jks) ProcedureReturn EndIf ; We now have the cert object with it's associated private key, and it can be used in other Chilkat classes where needed. ; For example.. crypt.i = CkCrypt2::ckCreate() If crypt.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkCrypt2::ckSetSigningCert(crypt,cert) If success = 0 Debug CkCrypt2::ckLastErrorText(crypt) CkJavaKeyStore::ckDispose(jks) CkCrypt2::ckDispose(crypt) ProcedureReturn EndIf ; ... ; ... CkCert::ckDispose(cert) CkJavaKeyStore::ckDispose(jks) CkCrypt2::ckDispose(crypt) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.