| // 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 ( |
| "v.io/v23/discovery" |
| ) |
| |
| type Uuid []byte |
| |
| type EncryptionAlgorithm int32 |
| type EncryptionKey []byte |
| |
| const ( |
| NoEncryption = EncryptionAlgorithm(0) |
| TestEncryption = EncryptionAlgorithm(1) |
| IbeEncryption = EncryptionAlgorithm(2) |
| ) |
| |
| type AdStatus byte |
| |
| const ( |
| AdReady = AdStatus(0) // All information is available |
| AdNotReady = AdStatus(1) // Not all information is available for querying against it |
| AdPartiallyReady = AdStatus(2) // All information except attachments is available |
| ) |
| |
| // AdInfo represents advertisement information for discovery. |
| type AdInfo struct { |
| Ad discovery.Advertisement |
| |
| // Type of encryption applied to the advertisement so that it can |
| // only be decoded by authorized principals. |
| EncryptionAlgorithm EncryptionAlgorithm |
| // If the advertisement is encrypted, then the data required to |
| // decrypt it. The format of this data is a function of the algorithm. |
| EncryptionKeys []EncryptionKey |
| |
| // Hash of the current advertisement. This does not include the fields below. |
| Hash AdHash |
| |
| // Unix time in nanoseconds at which the advertisement was created. |
| TimestampNs int64 |
| |
| // The addresses (vanadium object names) that the advertisement directory service |
| // is served on. See directory.vdl. |
| DirAddrs []string |
| |
| // Status of the current advertisement. Valid for scanned advertisements. |
| Status AdStatus |
| |
| // TODO(jhahn): Add proximity. |
| // TODO(jhahn): Use proximity for Lost. |
| Lost bool |
| } |
| |
| // An AdHash is a hash of an advertisement. |
| type AdHash [8]byte |