Struct DataEncryptionBinding
- Namespace
- MailFathom.Infrastructure.DataEncryption
- Assembly
- MailFathom.Infrastructure.dll
What a sealed value belongs to, authenticated into the value so that it cannot belong to anything else.
public readonly record struct DataEncryptionBinding : IEquatable<DataEncryptionBinding>
- Implements
- Inherited Members
Remarks
A binding is a purpose and a subject: what the value is, and whose it is. Both are authenticated but not encrypted, which is what makes a sealed value refuse to open anywhere other than where it was written. A row copied between accounts fails to open rather than opening as the wrong owner's credential, a value moved into a column that means something else fails the same way, and so does a row restored from another deployment.
The identifier of the key that sealed the value joins the binding when the associated data is composed. Binding the key identifier as well means a value cannot be presented as though another key had sealed it, so an attacker holding one retired key cannot make a value appear current by rewriting the identifier beside it.
Properties
- Purpose
Gets what the sealed value is.
- Subject
Gets whose the sealed value is, in MailFathom's own naming rather than the remote system's.
Methods
- Create(DataEncryptionPurpose, string)
Creates a binding.
- ToString()
Returns the fully qualified type name of this instance.