diff options
author | Jhon Honce <jhonce@redhat.com> | 2020-01-14 15:34:15 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2020-01-15 09:13:45 -0700 |
commit | 89678ab0edb0429adc515b7abfedb69db7323bde (patch) | |
tree | 58eb1065d53f5d90a6cb4185d9b0b960f8316907 /vendor/golang.org/x/crypto/poly1305/sum_amd64.go | |
parent | ad5137bc7b346ef2e28eb85c872728b6748bc629 (diff) | |
download | podman-89678ab0edb0429adc515b7abfedb69db7323bde.tar.gz podman-89678ab0edb0429adc515b7abfedb69db7323bde.tar.bz2 podman-89678ab0edb0429adc515b7abfedb69db7323bde.zip |
Add APIv2 CLI example POC
* Add ReadMe, CLI and unit files to support socket activation, both for
system and rootless
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'vendor/golang.org/x/crypto/poly1305/sum_amd64.go')
-rw-r--r-- | vendor/golang.org/x/crypto/poly1305/sum_amd64.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.go b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go new file mode 100644 index 000000000..df56a652f --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go @@ -0,0 +1,58 @@ +// 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. + +// +build amd64,!gccgo,!appengine + +package poly1305 + +//go:noescape +func update(state *macState, msg []byte) + +func sum(out *[16]byte, m []byte, key *[32]byte) { + h := newMAC(key) + h.Write(m) + h.Sum(out) +} + +func newMAC(key *[32]byte) (h mac) { + initialize(key, &h.r, &h.s) + return +} + +// mac is a wrapper for macGeneric that redirects calls that would have gone to +// updateGeneric to update. +// +// Its Write and Sum methods are otherwise identical to the macGeneric ones, but +// using function pointers would carry a major performance cost. +type mac struct{ macGeneric } + +func (h *mac) Write(p []byte) (int, error) { + nn := len(p) + if h.offset > 0 { + n := copy(h.buffer[h.offset:], p) + if h.offset+n < TagSize { + h.offset += n + return nn, nil + } + p = p[n:] + h.offset = 0 + update(&h.macState, h.buffer[:]) + } + if n := len(p) - (len(p) % TagSize); n > 0 { + update(&h.macState, p[:n]) + p = p[n:] + } + if len(p) > 0 { + h.offset += copy(h.buffer[h.offset:], p) + } + return nn, nil +} + +func (h *mac) Sum(out *[16]byte) { + state := h.macState + if h.offset > 0 { + update(&state, h.buffer[:h.offset]) + } + finalize(out, &state.h, &state.s) +} |