public CryptographicKey GetDerivedValidationKey(IMasterKeyProvider masterKeyProvider, KeyDerivationFunction keyDerivationFunction) { CryptographicKey cryptographicKey = this.DerivedValidationKey; if (cryptographicKey == null) { CryptographicKey validationKey = masterKeyProvider.GetValidationKey(); cryptographicKey = keyDerivationFunction(validationKey, this); if (this.SaveDerivedKeys) { this.DerivedValidationKey = cryptographicKey; } } return(cryptographicKey); }
private NetFXCryptoService GetNetFXCryptoService() { if (_encryptionKey == null) { _encryptionKey = DeriveKey(_masterKeyProvider.GetEncryptionKey()); } if (_validationKey == null) { _validationKey = DeriveKey(_masterKeyProvider.GetValidationKey()); } // and return the ICryptoService // (predictable IV turned on if the caller requested cacheable output) return(new NetFXCryptoService(_cryptoAlgorithmFactory, _encryptionKey, _validationKey)); }
public CryptographicKey GetDerivedValidationKey(IMasterKeyProvider masterKeyProvider, KeyDerivationFunction keyDerivationFunction) { // has a key already been stored? CryptographicKey actualDerivedKey = DerivedValidationKey; if (actualDerivedKey == null) { CryptographicKey masterKey = masterKeyProvider.GetValidationKey(); actualDerivedKey = keyDerivationFunction(masterKey, this); // only save the key back to storage if this Purpose is configured to do so if (SaveDerivedKeys) { DerivedValidationKey = actualDerivedKey; } } return(actualDerivedKey); }
public CryptographicKey GetDerivedValidationKey(IMasterKeyProvider masterKeyProvider, KeyDerivationFunction keyDerivationFunction) { // has a key already been stored? CryptographicKey actualDerivedKey = DerivedValidationKey; if (actualDerivedKey == null) { CryptographicKey masterKey = masterKeyProvider.GetValidationKey(); actualDerivedKey = keyDerivationFunction(masterKey, this); // only save the key back to storage if this Purpose is configured to do so if (SaveDerivedKeys) { DerivedValidationKey = actualDerivedKey; } } return actualDerivedKey; }