Step 0 – Know the Environment

my $key_store = $NX_ROOT . "/pdmconf/nx.keystore";
my $nx_env = $NX_ROOT . "/NX.env";
my $pdm_options_mgr = $NX_ROOT . "/bin/pdm_options_mgr";
my $java_lib = $NX_ROOT . "/java/lib";
my $key_tool = $NX_JRE_INSTALL_DIR . "/bin/keytool";
my $jre = $NX_JRE_INSTALL_DIR . "/bin/java";
SDM Environment

Step 1 – Get encrytped string from NX.env

open(NX, '<', "$nx_env") or die "$!\n\tCannot access $nx_env for reading.\n";
my $keystore_str;
while (<NX>) {
  chomp;
  if (index($_, "NX_KEYSTORE_REF") == 1) {
    $keystore_str = substr $_, indes($_, '=')+1;
    last;
  }
}
close(NX);
return $keystore_str;
Get NX.env – NX_KEYSTORE_REF

Step 2 – Decrypt NX_KEYSTORE_REF

push my @jars, qw(sd-utils.jar bc-fips-1.0.2.1.jar bctls-fips-1.0.12.2.jar log4j-api-2.17.1.jar log4j-core-2.17.1.jar);
if ($is_nt) {
  map { $_ = '"' . $java_lib . "\\" . $_ . '"' ] } @jars;
  $get_cmd = "\"$jre\"" . " -cp " . join($sep, @jars) . "$sep\. com.ca.ServicePlus.util.NXEncryption $incoming $nul";
} else {
  $get_cmd = $jre . " -cp " . join($sep, @jars) . "$sep\. com.ca.ServicePlus.util.Encryption $incoming $nul;";
}

my $secret = map { split /\'/ } grep { /Output =/ } \'$get_cmd\';
Decrypt NX_KEYSTORE_REF

Step 3 – List Certificates in keystore

if ($is_nt) {
  map { $_ = '"' . $java_lib . "\\" . $_ . '"' ] } @jars;
  $get_cmd = "\"$key_tool\" -list -keystore \"$key_store\" -storepass $store_pass -v";
} else {
  $get_cmd = "$key_tool -list -keystore $key_store -storepass $store_pass -v";
}
keytool -list
NX_KEYSTORE_REF=84188bfa-99f9-4995-993f-d002729d1cea
"E:\CA\SC\JRE\11.0.18\bin\keytool.exe" -list -keystore "E:\CA\SDM\pdmconf\nx.keystore" -storepass zQfYon3aSK