Tcl
Tcl
Convert Java KeyStore to PEM
See more Java KeyStore (JKS) Examples
Loads a Java keystore file and saves the trusted certificate entries to a PEM file.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set jks [new_CkJavaKeyStore]
set jksPassword "myJksPassword"
# Load the Java keystore from a file. The JKS file password is used
# to verify the keyed digest that is found at the very end of the keystore.
# It verifies that the keystore has not been modified.
set success [CkJavaKeyStore_LoadFile $jks $jksPassword "/someDir/keyStore.jks"]
if {$success == 0} then {
puts [CkJavaKeyStore_lastErrorText $jks]
delete_CkJavaKeyStore $jks
exit
}
# Open/create the output PEM file.
# This example uses Chilkat's file access class for writing the output file.
# You may replace the file I/O lines of code with whatever is most convenient for you.
set fac [new_CkFileAccess]
set success [CkFileAccess_OpenForWrite $fac "/pemFiles/caCerts.pem"]
if {$success == 0} then {
puts [CkFileAccess_lastErrorText $fac]
delete_CkJavaKeyStore $jks
delete_CkFileAccess $fac
exit
}
set numCerts [CkJavaKeyStore_get_NumTrustedCerts $jks]
set cert [new_CkCert]
# Iterate over the trusted certs, get the PEM for each,
# and append it to the output file.
set i 0
while {$i < $numCerts} {
CkJavaKeyStore_TrustedCertAt $jks $i $cert
# Get the certificate in PEM format.
set pem [CkCert_exportCertPem $cert]
# Append the PEM string to the open file.
set success [CkFileAccess_AppendText $fac $pem "utf-8"]
if {$success != 1} then {
puts [CkFileAccess_lastErrorText $fac]
delete_CkJavaKeyStore $jks
delete_CkFileAccess $fac
delete_CkCert $cert
exit
}
set i [expr $i + 1]
}
# Close the output file.
CkFileAccess_FileClose $fac
puts "Trusted certificates saved to PEM."
delete_CkJavaKeyStore $jks
delete_CkFileAccess $fac
delete_CkCert $cert