aboutsummaryrefslogtreecommitdiff
path: root/types/namespace.go
diff options
context:
space:
mode:
authorRasmus Dahlberg <rasmus.dahlberg@kau.se>2021-02-23 11:07:00 +0100
committerRasmus Dahlberg <rasmus.dahlberg@kau.se>2021-02-23 11:07:00 +0100
commit666e41811bdd46e24ced8ddd3448243ecb2f45c3 (patch)
tree57780b15196277896a5f143921caac8b70295850 /types/namespace.go
parent5358bb2f03202245b64d512c54170982da6ddc27 (diff)
added namespace fingerprint
Diffstat (limited to 'types/namespace.go')
-rw-r--r--types/namespace.go12
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) {