diff options
author | Fluf <36822577+flufmonster@users.noreply.github.com> | 2018-08-21 09:56:50 -0400 |
---|---|---|
committer | techknowlogick <techknowlogick@users.noreply.github.com> | 2018-08-21 09:56:50 -0400 |
commit | b82c14b3d2259912b47fa292b85772ba1d2493d0 (patch) | |
tree | e4cca15b19a1549961543779f9a11c9127e7475c /vendor/golang.org/x/crypto/poly1305/poly1305.go | |
parent | 6c1a31ffaaddf8ced7c30bf5b1e6e82d66f8c6ee (diff) | |
download | gitea-b82c14b3d2259912b47fa292b85772ba1d2493d0.tar.gz gitea-b82c14b3d2259912b47fa292b85772ba1d2493d0.zip |
add letsencrypt to Gitea (#4189)
Diffstat (limited to 'vendor/golang.org/x/crypto/poly1305/poly1305.go')
-rw-r--r-- | vendor/golang.org/x/crypto/poly1305/poly1305.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305.go b/vendor/golang.org/x/crypto/poly1305/poly1305.go new file mode 100644 index 0000000000..f562fa5712 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305.go @@ -0,0 +1,33 @@ +// Copyright 2012 The Go 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 poly1305 implements Poly1305 one-time message authentication code as +specified in https://cr.yp.to/mac/poly1305-20050329.pdf. + +Poly1305 is a fast, one-time authentication function. It is infeasible for an +attacker to generate an authenticator for a message without the key. However, a +key must only be used for a single message. Authenticating two different +messages with the same key allows an attacker to forge authenticators for other +messages with the same key. + +Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was +used with a fixed key in order to generate one-time keys from an nonce. +However, in this package AES isn't used and the one-time key is specified +directly. +*/ +package poly1305 // import "golang.org/x/crypto/poly1305" + +import "crypto/subtle" + +// TagSize is the size, in bytes, of a poly1305 authenticator. +const TagSize = 16 + +// Verify returns true if mac is a valid authenticator for m with the given +// key. +func Verify(mac *[16]byte, m []byte, key *[32]byte) bool { + var tmp [16]byte + Sum(&tmp, m, key) + return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1 +} |