Create a data vault for encrypted storage of application data.
public void DataVaultSampleCode()
{
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.PasswordPolicy oPasswordPolicy = new DataVault.PasswordPolicy();
oPasswordPolicy.defaultPasswordAllowed = true;
oPasswordPolicy.minimumLength = 4;
oPasswordPolicy.hasDigits = true;
oPasswordPolicy.hasUpper = true;
oPasswordPolicy.hasLower = true;
oPasswordPolicy.hasSpecial = true;
oPasswordPolicy.expirationDays = 20;
oPasswordPolicy.minUniqueChars = 3;
oPasswordPolicy.lockTimeout = 1600;
oPasswordPolicy.retryLimit = 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.PasswordPolicy 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.GetLength( 0 ); i++ )
{
if ( dataNameArray[ i ].type == DataVault.DVDataType.String )
{
String thisStringValue = oDataVault.GetString( dataNameArray[ i ].name );
}
else if ( dataNameArray[ i ].type == DataVault.DVDataType.Binary )
{
byte[] thisBinaryValue = oDataVault.GetValue( dataNameArray[ i ].name );
}
}
// 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).
bool 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 ( DataVaultException dvex )
{
// Handle datavault exception.
}
catch ( Exception ex )
{
// Handle 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" );
}
}