diff options
Diffstat (limited to 'types/namespace.go')
-rw-r--r-- | types/namespace.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/types/namespace.go b/types/namespace.go index 8a2ad17..f221960 100644 --- a/types/namespace.go +++ b/types/namespace.go @@ -14,6 +14,8 @@ type NamespaceFormat tls.Enum const ( NamespaceFormatReserved NamespaceFormat = 0 NamespaceFormatEd25519V1 NamespaceFormat = 1 + + NamespaceFingerprintSize = 32 ) // Namespace references a versioned namespace based on a given format specifier @@ -50,6 +52,16 @@ func (n Namespace) String() string { } } +// Fingerprint returns a fixed-size namespace fingerprint that is unique. +func (n *Namespace) Fingerprint() (*[NamespaceFingerprintSize]byte, error) { + switch n.Format { + case NamespaceFormatEd25519V1: + return &n.Ed25519V1.Namespace, nil + default: + return nil, fmt.Errorf("unsupported NamespaceFormat: %v", n.Format) + } +} + // NewNamespaceEd25519V1 returns an new Ed25519V1 namespace based on a // verification key. func NewNamespaceEd25519V1(vk []byte) (*Namespace, error) { |