blob: e18457b75714d920b95bfe62ec8041ad24f4007e [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package discovery
import (
"github.com/pborman/uuid"
)
var (
// UUID of Vanadium namespace.
// Generated from UUID5("00000000-0000-0000-0000-000000000000", "v.io").
v23UUID uuid.UUID = uuid.UUID{0x3d, 0xd1, 0xd5, 0xa8, 0x2e, 0xef, 0x58, 0x16, 0xa7, 0x20, 0xf8, 0x8b, 0x9b, 0xcf, 0x6e, 0xe4}
// Generated from UUID5("00000000-0000-0000-0000-000000000000", "v.io/attrs").
v23AttrUUID uuid.UUID = uuid.UUID{0x94, 0x2b, 0x61, 0x64, 0x12, 0x79, 0x5e, 0xb6, 0xb6, 0x43, 0xc9, 0x0c, 0x4c, 0xcc, 0x8a, 0x72}
)
// NewServiceUUID returns a version 5 UUID for the given interface name.
func NewServiceUUID(interfaceName string) uuid.UUID {
return uuid.NewSHA1(v23UUID, []byte(interfaceName))
}
// NewInstanceUUID returns a version 4 (random) UUID. Mostly used for
// uniquely identifying the discovery service instance.
func NewInstanceUUID() uuid.UUID {
return uuid.NewRandom()
}
// NewAttributeUUID returns a version 5 UUID for the given key.
func NewAttributeUUID(key string) uuid.UUID {
return uuid.NewSHA1(v23AttrUUID, []byte(key))
}