public void RewrapMasterKey(IDerivedKey keyEncryptingKey, long keyWrapIterations) { if (keyEncryptingKey == null) { throw new ArgumentNullException("keyEncryptingKey"); } V1KeyWrap1HeaderBlock keyHeaderBlock = _headers.FindHeaderBlock <V1KeyWrap1HeaderBlock>(); keyHeaderBlock.RewrapMasterKey(GetMasterKey(), keyEncryptingKey.DerivedKey, keyWrapIterations); _keyEncryptingKey = keyEncryptingKey; }
private SymmetricKey GetMasterKey() { V1KeyWrap1HeaderBlock keyHeaderBlock = _headers.FindHeaderBlock <V1KeyWrap1HeaderBlock>(); VersionHeaderBlock versionHeaderBlock = _headers.FindHeaderBlock <VersionHeaderBlock>(); byte[] unwrappedKeyData = keyHeaderBlock.UnwrapMasterKey(_keyEncryptingKey.DerivedKey, versionHeaderBlock.FileVersionMajor); if (unwrappedKeyData.Length == 0) { return(null); } return(new SymmetricKey(unwrappedKeyData)); }
public override object Clone() { V1KeyWrap1HeaderBlock block = new V1KeyWrap1HeaderBlock((byte[])GetDataBlockBytesReference().Clone()); return(block); }