public final class org.jasypt.encryption.pbe.StandardPBEByteEncryptor extends java.lang.Object implements org.jasypt.encryption.pbe.PBEByteCleanablePasswordEncryptor
{
public static final java.lang.String DEFAULT_ALGORITHM;
public static final int DEFAULT_KEY_OBTENTION_ITERATIONS;
public static final int DEFAULT_SALT_SIZE_BYTES;
public static final int DEFAULT_IV_SIZE_BYTES;
private java.lang.String algorithm;
private java.lang.String providerName;
private java.security.Provider provider;
private char[] password;
private int keyObtentionIterations;
private org.jasypt.salt.SaltGenerator saltGenerator;
private int saltSizeBytes;
private org.jasypt.iv.IvGenerator ivGenerator;
private int ivSizeBytes;
private org.jasypt.encryption.pbe.config.PBEConfig config;
private boolean algorithmSet;
private boolean passwordSet;
private boolean iterationsSet;
private boolean saltGeneratorSet;
private boolean ivGeneratorSet;
private boolean providerNameSet;
private boolean providerSet;
private boolean initialized;
private javax.crypto.SecretKey key;
private javax.crypto.Cipher encryptCipher;
private javax.crypto.Cipher decryptCipher;
private boolean optimizingDueFixedSalt;
private byte[] fixedSaltInUse;
public void <init>()
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm> = "PBEWithMD5AndDES";
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations> = 1000;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes> = 8;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes> = 16;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean algorithmSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean passwordSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean iterationsSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean saltGeneratorSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean ivGeneratorSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerNameSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerSet> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean initialized> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher> = null;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt> = 0;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: byte[] fixedSaltInUse> = null;
return;
}
public synchronized void setConfig(org.jasypt.encryption.pbe.config.PBEConfig)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
org.jasypt.encryption.pbe.config.PBEConfig v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: org.jasypt.encryption.pbe.config.PBEConfig;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotNull(java.lang.Object,java.lang.String)>(v, "Config cannot be set null");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config> = v;
return;
}
public synchronized void setAlgorithm(java.lang.String)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
java.lang.String v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: java.lang.String;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotEmpty(java.lang.String,java.lang.String)>(v, "Algorithm cannot be set empty");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean algorithmSet> = 1;
return;
}
public synchronized void setPassword(java.lang.String)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
char[] v, v, v;
java.lang.String v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: java.lang.String;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotEmpty(java.lang.String,java.lang.String)>(v, "Password cannot be set empty");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean passwordSet> = 1;
return;
}
public synchronized void setPasswordCharArray(char[])
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
int v, v, v;
char[] v, v, v, v, v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v, v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: char[];
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotNull(java.lang.Object,java.lang.String)>(v, "Password cannot be set null");
v = lengthof v;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.jasypt.commons.CommonUtils: void validateIsTrue(boolean,java.lang.String)>(v, "Password cannot be set empty");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
label:
v = lengthof v;
v = newarray (char)[v];
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean passwordSet> = 1;
return;
}
public synchronized void setKeyObtentionIterations(int)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
int v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v, v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: int;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.jasypt.commons.CommonUtils: void validateIsTrue(boolean,java.lang.String)>(v, "Number of iterations for key obtention must be greater than zero");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean iterationsSet> = 1;
return;
}
public synchronized void setSaltGenerator(org.jasypt.salt.SaltGenerator)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
org.jasypt.exceptions.AlreadyInitializedException v;
org.jasypt.salt.SaltGenerator v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: org.jasypt.salt.SaltGenerator;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotNull(java.lang.Object,java.lang.String)>(v, "Salt generator cannot be set null");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean saltGeneratorSet> = 1;
return;
}
public synchronized void setIvGenerator(org.jasypt.iv.IvGenerator)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
org.jasypt.iv.IvGenerator v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: org.jasypt.iv.IvGenerator;
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean ivGeneratorSet> = 1;
return;
}
public synchronized void setProviderName(java.lang.String)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
java.lang.String v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: java.lang.String;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotNull(java.lang.Object,java.lang.String)>(v, "Provider name cannot be set null");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerNameSet> = 1;
return;
}
public synchronized void setProvider(java.security.Provider)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
org.jasypt.exceptions.AlreadyInitializedException v;
boolean v;
java.security.Provider v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: java.security.Provider;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotNull(java.lang.Object,java.lang.String)>(v, "Provider cannot be set null");
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.AlreadyInitializedException;
specialinvoke v.<org.jasypt.exceptions.AlreadyInitializedException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerSet> = 1;
return;
}
synchronized org.jasypt.encryption.pbe.StandardPBEByteEncryptor[] cloneAndInitializeEncryptor(int)
{
org.jasypt.exceptions.EncryptionInitializationException v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor[] v;
int v, v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v, v;
org.jasypt.iv.IvGenerator v, v;
org.jasypt.salt.SaltGenerator v, v;
java.security.Provider v, v;
char[] v, v, v, v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: int;
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v == 0 goto label;
v = new org.jasypt.exceptions.EncryptionInitializationException;
specialinvoke v.<org.jasypt.exceptions.EncryptionInitializationException: void <init>(java.lang.String)>("Cannot clone encryptor if it has been already initialized");
throw v;
label:
specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void resolveConfigurationPassword()>();
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = lengthof v;
v = newarray (char)[v];
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void initialize()>();
v = newarray (org.jasypt.encryption.pbe.StandardPBEByteEncryptor)[v];
v[0] = v;
v = 1;
label:
if v >= v goto label;
v = new org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void <init>()>();
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setPasswordCharArray(char[])>(v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = staticinvoke <org.jasypt.commons.CommonUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setAlgorithm(java.lang.String)>(v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setKeyObtentionIterations(int)>(v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setProvider(java.security.Provider)>(v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setProviderName(java.lang.String)>(v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setSaltGenerator(org.jasypt.salt.SaltGenerator)>(v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void setIvGenerator(org.jasypt.iv.IvGenerator)>(v);
label:
v[v] = v;
v = v + 1;
goto label;
label:
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
return v;
}
public boolean isInitialized()
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
boolean v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean initialized>;
return v;
}
public synchronized void initialize()
{
byte[] v, v;
org.jasypt.exceptions.EncryptionInitializationException v, v, v;
java.lang.Integer v;
java.lang.Exception v;
javax.crypto.SecretKey v, v, v, v, v;
java.lang.Throwable v;
org.jasypt.encryption.pbe.config.PBEConfig v, v, v, v, v, v, v;
javax.crypto.SecretKeyFactory v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.jasypt.salt.SaltGenerator v, v, v, v, v;
char[] v, v, v, v;
org.jasypt.salt.RandomSaltGenerator v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.jasypt.iv.IvGenerator v, v, v, v;
javax.crypto.spec.PBEParameterSpec v;
java.security.Provider v, v, v, v, v, v;
org.jasypt.iv.NoIvGenerator v;
org.jasypt.exceptions.EncryptionOperationNotPossibleException v;
javax.crypto.Cipher v, v, v, v, v, v, v, v, v;
javax.crypto.spec.PBEKeySpec v;
int v, v, v, v, v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean initialized>;
if v != 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
if v == null goto label;
specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void resolveConfigurationPassword()>();
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: java.lang.String getAlgorithm()>();
if v == null goto label;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotEmpty(java.lang.String,java.lang.String)>(v, "Algorithm cannot be set empty");
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: java.lang.Integer getKeyObtentionIterations()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.jasypt.commons.CommonUtils: void validateIsTrue(boolean,java.lang.String)>(v, "Number of iterations for key obtention must be greater than zero");
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: org.jasypt.salt.SaltGenerator getSaltGenerator()>();
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: org.jasypt.iv.IvGenerator getIvGenerator()>();
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: java.lang.String getProviderName()>();
if v == null goto label;
staticinvoke <org.jasypt.commons.CommonUtils: void validateNotEmpty(java.lang.String,java.lang.String)>(v, "Provider name cannot be empty");
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: java.security.Provider getProvider()>();
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean algorithmSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
goto label;
label:
v = v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean iterationsSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations>;
goto label;
label:
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean saltGeneratorSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
goto label;
label:
v = v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean ivGeneratorSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
goto label;
label:
v = v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerNameSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
goto label;
label:
v = v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean providerSet>;
if v != 0 goto label;
if v != null goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
goto label;
label:
v = v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider> = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
if v != null goto label;
v = new org.jasypt.salt.RandomSaltGenerator;
specialinvoke v.<org.jasypt.salt.RandomSaltGenerator: void <init>()>();
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator> = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
if v != null goto label;
v = new org.jasypt.iv.NoIvGenerator;
specialinvoke v.<org.jasypt.iv.NoIvGenerator: void <init>()>();
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator> = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
if v != null goto label;
v = new org.jasypt.exceptions.EncryptionInitializationException;
specialinvoke v.<org.jasypt.exceptions.EncryptionInitializationException: void <init>(java.lang.String)>("Password not set for Password Based Encryptor");
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = staticinvoke <org.jasypt.normalization.Normalizer: char[] normalizeToNfc(char[])>(v);
v = new javax.crypto.spec.PBEKeySpec;
specialinvoke v.<javax.crypto.spec.PBEKeySpec: void <init>(char[])>(v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
v = staticinvoke <javax.crypto.SecretKeyFactory: javax.crypto.SecretKeyFactory getInstance(java.lang.String,java.security.Provider)>(v, v);
v = virtualinvoke v.<javax.crypto.SecretKeyFactory: javax.crypto.SecretKey generateSecret(java.security.spec.KeySpec)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>(v, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.security.Provider provider>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>(v, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher> = v;
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
v = staticinvoke <javax.crypto.SecretKeyFactory: javax.crypto.SecretKeyFactory getInstance(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<javax.crypto.SecretKeyFactory: javax.crypto.SecretKey generateSecret(java.security.spec.KeySpec)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>(v, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String providerName>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>(v, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher> = v;
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = staticinvoke <javax.crypto.SecretKeyFactory: javax.crypto.SecretKeyFactory getInstance(java.lang.String)>(v);
v = virtualinvoke v.<javax.crypto.SecretKeyFactory: javax.crypto.SecretKey generateSecret(java.security.spec.KeySpec)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: java.lang.String algorithm>;
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher> = v;
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new org.jasypt.exceptions.EncryptionInitializationException;
specialinvoke v.<org.jasypt.exceptions.EncryptionInitializationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
v = virtualinvoke v.<javax.crypto.Cipher: int getBlockSize()>();
if v <= 0 goto label;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes> = v;
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes> = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = v instanceof org.jasypt.salt.FixedSaltGenerator;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = v instanceof org.jasypt.iv.NoIvGenerator;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt>;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: byte[] generateSalt(int)>(v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: byte[] fixedSaltInUse> = v;
v = new javax.crypto.spec.PBEParameterSpec;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: byte[] fixedSaltInUse>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations>;
specialinvoke v.<javax.crypto.spec.PBEParameterSpec: void <init>(byte[],int)>(v, v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key>;
virtualinvoke v.<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>(1, v, v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key>;
virtualinvoke v.<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>(2, v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean initialized> = 1;
label:
return;
catch org.jasypt.exceptions.EncryptionInitializationException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
private synchronized void resolveConfigurationPassword()
{
org.jasypt.encryption.pbe.config.PBEConfig v, v, v, v, v, v;
int v, v, v;
java.lang.String v;
boolean v, v, v, v, v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
char[] v, v, v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean initialized>;
if v != 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
if v == null goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean passwordSet>;
if v != 0 goto label;
v = null;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = v instanceof org.jasypt.encryption.pbe.config.PBECleanablePasswordConfig;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBECleanablePasswordConfig: char[] getPasswordCharArray()>();
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBEConfig: java.lang.String getPassword()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
label:
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.jasypt.commons.CommonUtils: void validateIsTrue(boolean,java.lang.String)>(v, "Password cannot be set empty");
if v == null goto label;
v = lengthof v;
v = newarray (char)[v];
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password> = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: char[] password>;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean passwordSet> = 1;
staticinvoke <org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void cleanPassword(char[])>(v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
v = v instanceof org.jasypt.encryption.pbe.config.PBECleanablePasswordConfig;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.encryption.pbe.config.PBEConfig config>;
interfaceinvoke v.<org.jasypt.encryption.pbe.config.PBECleanablePasswordConfig: void cleanPassword()>();
label:
return;
}
private static void cleanPassword(char[])
{
java.lang.Throwable v;
int v, v;
char[] v;
v := @parameter: char[];
if v == null goto label;
entermonitor v;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v[v] = 0;
v = v + 1;
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public byte[] encrypt(byte[]) throws org.jasypt.exceptions.EncryptionOperationNotPossibleException
{
java.lang.Throwable v, v;
byte[] v, v, v, v;
javax.crypto.Cipher v, v, v, v, v;
int v, v;
boolean v, v, v, v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
org.jasypt.iv.IvGenerator v, v;
javax.crypto.spec.PBEParameterSpec v;
java.lang.Exception v;
org.jasypt.salt.SaltGenerator v, v;
java.security.InvalidKeyException v;
javax.crypto.SecretKey v;
org.jasypt.exceptions.EncryptionOperationNotPossibleException v, v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: byte[];
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v != 0 goto label;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void initialize()>();
label:
v = null;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt>;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: byte[] fixedSaltInUse>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
entermonitor v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
v = virtualinvoke v.<javax.crypto.Cipher: byte[] doFinal(byte[])>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: byte[] generateSalt(int)>(v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: byte[] generateIv(int)>(v);
v = specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.spec.PBEParameterSpec buildPBEParameterSpec(byte[],byte[])>(v, v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
entermonitor v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key>;
virtualinvoke v.<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>(1, v, v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher encryptCipher>;
v = virtualinvoke v.<javax.crypto.Cipher: byte[] doFinal(byte[])>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: boolean includePlainIvInEncryptionResults()>();
if v == 0 goto label;
v = staticinvoke <org.jasypt.commons.CommonUtils: byte[] appendArrays(byte[],byte[])>(v, v);
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: boolean includePlainSaltInEncryptionResults()>();
if v == 0 goto label;
v = staticinvoke <org.jasypt.commons.CommonUtils: byte[] appendArrays(byte[],byte[])>(v, v);
label:
return v;
label:
v := @caughtexception;
specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void handleInvalidKeyException(java.security.InvalidKeyException)>(v);
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v := @caughtexception;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public byte[] decrypt(byte[]) throws org.jasypt.exceptions.EncryptionOperationNotPossibleException
{
byte[] v, v, v, v, v, v;
java.lang.Exception v;
java.security.InvalidKeyException v;
javax.crypto.SecretKey v;
java.lang.Throwable v, v;
org.jasypt.salt.SaltGenerator v, v, v, v;
boolean v, v, v, v, v, v, v, v, v;
org.jasypt.iv.IvGenerator v, v, v, v;
javax.crypto.spec.PBEParameterSpec v;
org.jasypt.exceptions.EncryptionOperationNotPossibleException v, v, v, v, v;
javax.crypto.Cipher v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: byte[];
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean isInitialized()>();
if v != 0 goto label;
virtualinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void initialize()>();
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: boolean includePlainSaltInEncryptionResults()>();
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: boolean includePlainIvInEncryptionResults()>();
if v == 0 goto label;
v = lengthof v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = v + v;
if v > v goto label;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: boolean includePlainSaltInEncryptionResults()>();
if v == 0 goto label;
v = lengthof v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
if v > v goto label;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: boolean includePlainIvInEncryptionResults()>();
if v == 0 goto label;
v = lengthof v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
if v > v goto label;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: boolean includePlainSaltInEncryptionResults()>();
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
goto label;
label:
v = lengthof v;
label:
v = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
goto label;
label:
v = lengthof v;
label:
v = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = lengthof v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = v - v;
goto label;
label:
v = 0;
label:
v = newarray (byte)[v];
v = newarray (byte)[v];
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, 0, v);
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt>;
if v != 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.salt.SaltGenerator saltGenerator>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int saltSizeBytes>;
v = interfaceinvoke v.<org.jasypt.salt.SaltGenerator: byte[] generateSalt(int)>(v);
v = v;
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: byte[] fixedSaltInUse>;
v = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: boolean includePlainIvInEncryptionResults()>();
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
goto label;
label:
v = lengthof v;
label:
v = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
goto label;
label:
v = lengthof v;
label:
v = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = lengthof v;
if v >= v goto label;
v = lengthof v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = v - v;
goto label;
label:
v = 0;
label:
v = newarray (byte)[v];
v = newarray (byte)[v];
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, 0, v);
goto label;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: org.jasypt.iv.IvGenerator ivGenerator>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int ivSizeBytes>;
v = interfaceinvoke v.<org.jasypt.iv.IvGenerator: byte[] generateIv(int)>(v);
v = v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: boolean optimizingDueFixedSalt>;
if v == 0 goto label;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
entermonitor v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
v = virtualinvoke v.<javax.crypto.Cipher: byte[] doFinal(byte[])>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.spec.PBEParameterSpec buildPBEParameterSpec(byte[],byte[])>(v, v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
entermonitor v;
label:
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.SecretKey key>;
virtualinvoke v.<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>(2, v, v);
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: javax.crypto.Cipher decryptCipher>;
v = virtualinvoke v.<javax.crypto.Cipher: byte[] doFinal(byte[])>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
label:
v := @caughtexception;
specialinvoke v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: void handleInvalidKeyException(java.security.InvalidKeyException)>(v);
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
label:
v := @caughtexception;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>()>();
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.lang.Exception from label to label with label;
}
private javax.crypto.spec.PBEParameterSpec buildPBEParameterSpec(byte[], byte[])
{
byte[] v, v;
java.lang.Object[] v;
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
java.lang.Class[] v;
javax.crypto.spec.PBEParameterSpec v;
java.lang.Integer v;
java.lang.reflect.Constructor v;
java.lang.Exception v;
javax.crypto.spec.IvParameterSpec v;
int v, v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: byte[];
v := @parameter: byte[];
label:
v = newarray (java.lang.Class)[3];
v[0] = class "[B";
v = <java.lang.Integer: java.lang.Class TYPE>;
v[1] = v;
v[2] = class "Ljava/security/spec/AlgorithmParameterSpec;";
v = class "Ljavax/crypto/spec/PBEParameterSpec;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = new javax.crypto.spec.IvParameterSpec;
specialinvoke v.<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>(v);
v[2] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
goto label;
label:
v := @caughtexception;
v = new javax.crypto.spec.PBEParameterSpec;
v = v.<org.jasypt.encryption.pbe.StandardPBEByteEncryptor: int keyObtentionIterations>;
specialinvoke v.<javax.crypto.spec.PBEParameterSpec: void <init>(byte[],int)>(v, v);
v = v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
private void handleInvalidKeyException(java.security.InvalidKeyException)
{
org.jasypt.encryption.pbe.StandardPBEByteEncryptor v;
int v, v;
java.security.InvalidKeyException v;
java.lang.String v, v, v;
org.jasypt.exceptions.EncryptionOperationNotPossibleException v;
v := @this: org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
v := @parameter: java.security.InvalidKeyException;
v = virtualinvoke v.<java.security.InvalidKeyException: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.security.InvalidKeyException: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("KEY SIZE");
v = (int) -1;
if v == v goto label;
v = new org.jasypt.exceptions.EncryptionOperationNotPossibleException;
specialinvoke v.<org.jasypt.exceptions.EncryptionOperationNotPossibleException: void <init>(java.lang.String)>("Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine");
throw v;
label:
return;
}
}