/
consts.go
64 lines (53 loc) · 1.64 KB
/
consts.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright (c) 2016, Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package mixnet
import (
"errors"
"time"
"golang.org/x/crypto/nacl/box"
)
const (
// CellBytes specifies the length of a cell.
CellBytes = 1 << 10
// MaxMsgBytes specifies the maximum length of a message.
MaxMsgBytes = 1 << 16
)
const (
// Update directory every x amount of time
DefaultUpdateFrequency = 3600 * time.Second
DefaultHopCount = 2
DefaultTimeout = 10 * time.Second
)
const (
msgCell = iota
dirCell
)
const (
ID_SIZE = 8
LEN_SIZE = 8
BODY_SIZE = CellBytes - BODY - box.Overhead - 24
)
const (
ID = 0
TYPE = ID + ID_SIZE
BODY = 9
)
var errCellLength = errors.New("incorrect cell length")
var errCellType = errors.New("incorrect cell type")
var errBadCellType = errors.New("unrecognized cell type")
var errBadDirective = errors.New("received bad directive")
var errMsgLength = errors.New("message too long")
var dirCreated = &Directive{Type: DirectiveType_CREATED.Enum()}
var dirDestroy = &Directive{Type: DirectiveType_DESTROY.Enum()}
var dirDestroyed = &Directive{Type: DirectiveType_DESTROYED.Enum()}