/**
* Se l'istanza del message digest, hash usato per mapping, e' nulla
* allora si e' verificato un errore fatale.
*/
if (message_digest == null) {
throw new BaseApplicationException(
"Fatal Error, no such algorithm for message digest.")
.setErrorType(BaseApplicationException.ErrorType.FATAL);
}
try {
// Per ovviare a differinti platform decodifico in UTF-8
byte[] b_password = passwd;
// Uso hash per tagliare i bytes AES (16 bytes)
b_password = message_digest.digest(b_password);
System.arraycopy(b_password, 0, b_password, 0, DEFAULT_AES_DIV_SIZE);
SecretKeySpec sks = new SecretKeySpec(b_password, DEFAULT_ALGORITHM_CRY);
return sks;
} catch (Exception exc) {
throw new BaseApplicationException(
"Fatal Error, impossible to generate key.\n"
+ "Please check your Java installation.")
.setErrorType(BaseApplicationException.ErrorType.FATAL)
.setException(exc);
}