| // 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)) |
| } |