String pinStr = System.getProperty(propertyName);
if (pinStr == null) {
Message message = ERR_PKCS11_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(
String.valueOf(propertyName), String.valueOf(configEntryDN));
throw new InitializationException(message);
}
keyStorePIN = pinStr.toCharArray();
} else if (configuration.getKeyStorePinEnvironmentVariable() != null) {
String enVarName = configuration
.getKeyStorePinEnvironmentVariable();
String pinStr = System.getenv(enVarName);
if (pinStr == null) {
Message message = ERR_PKCS11_KEYMANAGER_PIN_ENVAR_NOT_SET.get(
String.valueOf(enVarName), String.valueOf(configEntryDN));
throw new InitializationException(message);
}
keyStorePIN = pinStr.toCharArray();
} else if (configuration.getKeyStorePinFile() != null) {
String fileName = configuration.getKeyStorePinFile();
File pinFile = getFileForPath(fileName);
if (!pinFile.exists()) {
Message message = ERR_PKCS11_KEYMANAGER_PIN_NO_SUCH_FILE.get(
String.valueOf(fileName), String.valueOf(configEntryDN));
throw new InitializationException(message);
}
String pinStr;
try {
BufferedReader br = new BufferedReader(
new FileReader(pinFile));
pinStr = br.readLine();
br.close();
} catch (IOException ioe) {
if (debugEnabled())
{
TRACER.debugCaught(DebugLogLevel.ERROR, ioe);
}
Message message = ERR_PKCS11_KEYMANAGER_PIN_FILE_CANNOT_READ.
get(String.valueOf(fileName), String.valueOf(configEntryDN),
getExceptionMessage(ioe));
throw new InitializationException(message, ioe);
}
if (pinStr == null) {
Message message = ERR_PKCS11_KEYMANAGER_PIN_FILE_EMPTY.get(
String.valueOf(fileName), String.valueOf(configEntryDN));
throw new InitializationException(message);
}
keyStorePIN = pinStr.toCharArray();
} else if (configuration.getKeyStorePin() != null) {
keyStorePIN = configuration.getKeyStorePin().toCharArray();