This repository was archived by the owner on Sep 10, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathREADME.md.tpl
More file actions
79 lines (53 loc) · 1.97 KB
/
README.md.tpl
File metadata and controls
79 lines (53 loc) · 1.97 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# MAC Daddy
[](https://godoc.org/github.com/bsm/macdaddy)
[](https://travis-ci.org/bsm/macdaddy)
[](https://goreportcard.com/report/github.com/bsm/macdaddy)
MAC Daddy is a [Go](https://golang.org) library for generating encrypted messages and verifying their authenticity using the [Poly1305](https://en.wikipedia.org/wiki/Poly1305) [message authentication code](https://en.wikipedia.org/wiki/Message_authentication_code) with a [ChaCha20](https://en.wikipedia.org/wiki/Salsa20#ChaCha_variant) cipher.
## Documentation
For documentation and examples, please see https://godoc.org/github.com/bsm/macdaddy.
## Install
```
go get -u github.com/bsm/macdaddy
```
## Basic Usage
```go
package main
import (
"fmt"
"github.com/bsm/macdaddy"
)
func main() {{ "ExampleMAC" | code }}
```
Output:
```go
{{ "ExampleMAC" | output }}
```
## Ring Usage
To simplify key rotation MAC Daddy comes with a Ring which can use a variety
of registered MACs. It always uses a primary MAC for encryption while capable
of decrypting messages created by MACs from previous epochs.
```go
package main
import (
"fmt"
"github.com/bsm/macdaddy"
)
func main() {{ "ExampleRing" | code }}
```
Output:
```go
{{ "ExampleRing" | output }}
```
## Licence
```
Copyright 2017 Black Square Media Ltd
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.
```