Table of Contents

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.