Create a data vault for encrypted storage of application data.
public void testFunctionality()
{
try
{
DataVault oDataVault = null;
// If this dataVault already exists, then get it by calling getVault()
// Else create this new dataVault by calling createVault()
if ( DataVault.vaultExists( "DataVaultExample" ) )
oDataVault = DataVault.getVault( "DataVaultExample" );
else
oDataVault = DataVault.createVault( "DataVaultExample", "password!1A", "saltD#ddg#k05%gnd[!1A" );
// Call setLockTimeout(). This allows you to set the timeout of the vault in seconds
oDataVault.setLockTimeout( 1500 );
int iTimeout = oDataVault.getLockTimeout();
// Call setRetryLimit(). This allows you to set the number of retries before the vault is destroyed
oDataVault.setRetryLimit( 10 );
int iRetryLimit = oDataVault.getRetryLimit();
// Call setPasswordPolicy(). The passwordPolicy also includes the retryLimit and LockTimeout that we set above.
DataVault.DVPasswordPolicy oPasswordPolicy = new DataVault.DVPasswordPolicy();
oPasswordPolicy.bDefaultPasswordAllowed = true;
oPasswordPolicy.iMinLength = 4;
oPasswordPolicy.bHasDigits = true;
oPasswordPolicy.bHasUpper = true;
oPasswordPolicy.bHasLower = true;
oPasswordPolicy.bHasSpecial = true;
oPasswordPolicy.iExpirationDays = 20;
oPasswordPolicy.iMinUniqueChars = 3;
oPasswordPolicy.iLockTimeout = 1600;
oPasswordPolicy.iRetryLimit = 20;
// SetPasswordPolicy() will always lock the vault to ensure the old password
// conforms to the new password policy settings.
oDataVault.setPasswordPolicy( oPasswordPolicy );
// We are now locked and need to unlock before we can access the vault.
oDataVault.unlock( "password!1A", "saltD#ddg#k05%gnd[!1A" );
// Call getPasswordPolicy() to return the current password policy settings.
DataVault.DVPasswordPolicy oCurrentPolicy = oDataVault.getPasswordPolicy();
// Call setString() by giving it a name:value pair to encrypt and persist
// a string data type within your dataVault.
oDataVault.setString( "stringName", "stringValue" );
// Call getString to retrieve the string we just stored in our data vault!
String storedStringValue = oDataVault.getString( "stringName" );
// Call setValue() by giving it a name:value pair to encrypt and persist
// a binary data type within your dataVault.
byte[] binaryValue = { 1, 2, 3, 4, 5, 6, 7 };
oDataVault.setValue( "binaryName", binaryValue );
// Call getValue to retrieve the binary we just stored in our data vault!
byte[] storedBinaryValue = oDataVault.getValue( "binaryName" );
// Call getDataNames to retrieve all stored element names from our data vault.
DataVault.DVDataName[] dataNameArray = oDataVault.getDataNames();
for ( int i = 0; i < dataNameArray.length; i++ )
{
if ( dataNameArray[i].iType == DataVault.DV_DATA_TYPE_STRING )
{
String thisStringValue = oDataVault.getString( dataNameArray[i].sName );
}
else
{
byte[] thisBinaryValue = oDataVault.getValue( dataNameArray[i].sName );
}
}
// Call changePassword with 2 parameters. Vault must be unlocked.
// If you pass null parameters as your new password or your new salt,
// it will generate a default password or default salt, respectively.
oDataVault.changePassword( null, null );
// Call isDefaultPasswordused() to see if we are using an automatically
// generated password (which we are).
boolean isDefaultPasswordUsed = oDataVault.isDefaultPasswordUsed();
// Lock the vault.
oDataVault.lock();
// Call changePassword with 4 parameters even if the vault is locked.
// Here, we pass null for oldSalt and oldPassword because defaults were used.
oDataVault.changePassword( null, null, "password!1A", "saltD#ddg#k05%gnd[!1A" );
// Call isDefaultPasswordused() and we will see that the default password is NOT used anymore.
isDefaultPasswordUsed = oDataVault.isDefaultPasswordUsed();
}
catch( Exception exception )
{
}
finally
{
// Because this is a test example, we will delete our vault at the end.
// This means we will forever lose all data we persisted in our data vault.
if ( DataVault.vaultExists( "DataVaultExample" ) )
DataVault.deleteVault( "DataVaultExample" );
}
}