Deps update
This commit is contained in:
parent
97f604670c
commit
02888adff3
|
@ -143,12 +143,13 @@
|
||||||
"curve25519",
|
"curve25519",
|
||||||
"ed25519",
|
"ed25519",
|
||||||
"ed25519/internal/edwards25519",
|
"ed25519/internal/edwards25519",
|
||||||
|
"internal/subtle",
|
||||||
"nacl/box",
|
"nacl/box",
|
||||||
"nacl/secretbox",
|
"nacl/secretbox",
|
||||||
"poly1305",
|
"poly1305",
|
||||||
"salsa20/salsa"
|
"salsa20/salsa"
|
||||||
]
|
]
|
||||||
revision = "8ac0e0d97ce45cd83d1d7243c060cb8461dda5e9"
|
revision = "a49355c7e3f8fe157a85be2f77e6e269a0f89602"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
branch = "master"
|
branch = "master"
|
||||||
|
@ -166,7 +167,7 @@
|
||||||
"ipv6",
|
"ipv6",
|
||||||
"proxy"
|
"proxy"
|
||||||
]
|
]
|
||||||
revision = "db08ff08e8622530d9ed3a0e8ac279f6d4c02196"
|
revision = "afe8f62b1d6bbd81f31868121a50b06d8188e1f9"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
branch = "master"
|
branch = "master"
|
||||||
|
@ -179,7 +180,7 @@
|
||||||
"windows/svc/eventlog",
|
"windows/svc/eventlog",
|
||||||
"windows/svc/mgr"
|
"windows/svc/mgr"
|
||||||
]
|
]
|
||||||
revision = "8ee9f3e146b708d082f4bab861e5759d1edf8c00"
|
revision = "a200a19cb90b19de298170992778b1fda7217bd6"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "golang.org/x/text"
|
name = "golang.org/x/text"
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2018 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 !appengine
|
||||||
|
|
||||||
|
// Package subtle implements functions that are often useful in cryptographic
|
||||||
|
// code but require careful thought to use correctly.
|
||||||
|
package subtle // import "golang.org/x/crypto/internal/subtle"
|
||||||
|
|
||||||
|
import "unsafe"
|
||||||
|
|
||||||
|
// AnyOverlap reports whether x and y share memory at any (not necessarily
|
||||||
|
// corresponding) index. The memory beyond the slice length is ignored.
|
||||||
|
func AnyOverlap(x, y []byte) bool {
|
||||||
|
return len(x) > 0 && len(y) > 0 &&
|
||||||
|
uintptr(unsafe.Pointer(&x[0])) <= uintptr(unsafe.Pointer(&y[len(y)-1])) &&
|
||||||
|
uintptr(unsafe.Pointer(&y[0])) <= uintptr(unsafe.Pointer(&x[len(x)-1]))
|
||||||
|
}
|
||||||
|
|
||||||
|
// InexactOverlap reports whether x and y share memory at any non-corresponding
|
||||||
|
// index. The memory beyond the slice length is ignored. Note that x and y can
|
||||||
|
// have different lengths and still not have any inexact overlap.
|
||||||
|
//
|
||||||
|
// InexactOverlap can be used to implement the requirements of the crypto/cipher
|
||||||
|
// AEAD, Block, BlockMode and Stream interfaces.
|
||||||
|
func InexactOverlap(x, y []byte) bool {
|
||||||
|
if len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return AnyOverlap(x, y)
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2018 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 appengine
|
||||||
|
|
||||||
|
// Package subtle implements functions that are often useful in cryptographic
|
||||||
|
// code but require careful thought to use correctly.
|
||||||
|
package subtle // import "golang.org/x/crypto/internal/subtle"
|
||||||
|
|
||||||
|
// This is the Google App Engine standard variant based on reflect
|
||||||
|
// because the unsafe package and cgo are disallowed.
|
||||||
|
|
||||||
|
import "reflect"
|
||||||
|
|
||||||
|
// AnyOverlap reports whether x and y share memory at any (not necessarily
|
||||||
|
// corresponding) index. The memory beyond the slice length is ignored.
|
||||||
|
func AnyOverlap(x, y []byte) bool {
|
||||||
|
return len(x) > 0 && len(y) > 0 &&
|
||||||
|
reflect.ValueOf(&x[0]).Pointer() <= reflect.ValueOf(&y[len(y)-1]).Pointer() &&
|
||||||
|
reflect.ValueOf(&y[0]).Pointer() <= reflect.ValueOf(&x[len(x)-1]).Pointer()
|
||||||
|
}
|
||||||
|
|
||||||
|
// InexactOverlap reports whether x and y share memory at any non-corresponding
|
||||||
|
// index. The memory beyond the slice length is ignored. Note that x and y can
|
||||||
|
// have different lengths and still not have any inexact overlap.
|
||||||
|
//
|
||||||
|
// InexactOverlap can be used to implement the requirements of the crypto/cipher
|
||||||
|
// AEAD, Block, BlockMode and Stream interfaces.
|
||||||
|
func InexactOverlap(x, y []byte) bool {
|
||||||
|
if len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return AnyOverlap(x, y)
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
// Copyright 2018 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 subtle_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"golang.org/x/crypto/internal/subtle"
|
||||||
|
)
|
||||||
|
|
||||||
|
var a, b [100]byte
|
||||||
|
|
||||||
|
var aliasingTests = []struct {
|
||||||
|
x, y []byte
|
||||||
|
anyOverlap, inexactOverlap bool
|
||||||
|
}{
|
||||||
|
{a[:], b[:], false, false},
|
||||||
|
{a[:], b[:0], false, false},
|
||||||
|
{a[:], b[:50], false, false},
|
||||||
|
{a[40:50], a[50:60], false, false},
|
||||||
|
{a[40:50], a[60:70], false, false},
|
||||||
|
{a[:51], a[50:], true, true},
|
||||||
|
{a[:], a[:], true, false},
|
||||||
|
{a[:50], a[:60], true, false},
|
||||||
|
{a[:], nil, false, false},
|
||||||
|
{nil, nil, false, false},
|
||||||
|
{a[:], a[:0], false, false},
|
||||||
|
{a[:10], a[:10:20], true, false},
|
||||||
|
{a[:10], a[5:10:20], true, true},
|
||||||
|
}
|
||||||
|
|
||||||
|
func testAliasing(t *testing.T, i int, x, y []byte, anyOverlap, inexactOverlap bool) {
|
||||||
|
any := subtle.AnyOverlap(x, y)
|
||||||
|
if any != anyOverlap {
|
||||||
|
t.Errorf("%d: wrong AnyOverlap result, expected %v, got %v", i, anyOverlap, any)
|
||||||
|
}
|
||||||
|
inexact := subtle.InexactOverlap(x, y)
|
||||||
|
if inexact != inexactOverlap {
|
||||||
|
t.Errorf("%d: wrong InexactOverlap result, expected %v, got %v", i, inexactOverlap, any)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAliasing(t *testing.T) {
|
||||||
|
for i, tt := range aliasingTests {
|
||||||
|
testAliasing(t, i, tt.x, tt.y, tt.anyOverlap, tt.inexactOverlap)
|
||||||
|
testAliasing(t, i, tt.y, tt.x, tt.anyOverlap, tt.inexactOverlap)
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,6 +35,7 @@ This package is interoperable with NaCl: https://nacl.cr.yp.to/secretbox.html.
|
||||||
package secretbox // import "golang.org/x/crypto/nacl/secretbox"
|
package secretbox // import "golang.org/x/crypto/nacl/secretbox"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"golang.org/x/crypto/internal/subtle"
|
||||||
"golang.org/x/crypto/poly1305"
|
"golang.org/x/crypto/poly1305"
|
||||||
"golang.org/x/crypto/salsa20/salsa"
|
"golang.org/x/crypto/salsa20/salsa"
|
||||||
)
|
)
|
||||||
|
@ -87,6 +88,9 @@ func Seal(out, message []byte, nonce *[24]byte, key *[32]byte) []byte {
|
||||||
copy(poly1305Key[:], firstBlock[:])
|
copy(poly1305Key[:], firstBlock[:])
|
||||||
|
|
||||||
ret, out := sliceForAppend(out, len(message)+poly1305.TagSize)
|
ret, out := sliceForAppend(out, len(message)+poly1305.TagSize)
|
||||||
|
if subtle.AnyOverlap(out, message) {
|
||||||
|
panic("nacl: invalid buffer overlap")
|
||||||
|
}
|
||||||
|
|
||||||
// We XOR up to 32 bytes of message with the keystream generated from
|
// We XOR up to 32 bytes of message with the keystream generated from
|
||||||
// the first block.
|
// the first block.
|
||||||
|
@ -118,7 +122,7 @@ func Seal(out, message []byte, nonce *[24]byte, key *[32]byte) []byte {
|
||||||
// Open authenticates and decrypts a box produced by Seal and appends the
|
// Open authenticates and decrypts a box produced by Seal and appends the
|
||||||
// message to out, which must not overlap box. The output will be Overhead
|
// message to out, which must not overlap box. The output will be Overhead
|
||||||
// bytes smaller than box.
|
// bytes smaller than box.
|
||||||
func Open(out []byte, box []byte, nonce *[24]byte, key *[32]byte) ([]byte, bool) {
|
func Open(out, box []byte, nonce *[24]byte, key *[32]byte) ([]byte, bool) {
|
||||||
if len(box) < Overhead {
|
if len(box) < Overhead {
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
|
@ -143,6 +147,9 @@ func Open(out []byte, box []byte, nonce *[24]byte, key *[32]byte) ([]byte, bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret, out := sliceForAppend(out, len(box)-Overhead)
|
ret, out := sliceForAppend(out, len(box)-Overhead)
|
||||||
|
if subtle.AnyOverlap(out, box) {
|
||||||
|
panic("nacl: invalid buffer overlap")
|
||||||
|
}
|
||||||
|
|
||||||
// We XOR up to 32 bytes of box with the keystream generated from
|
// We XOR up to 32 bytes of box with the keystream generated from
|
||||||
// the first block.
|
// the first block.
|
||||||
|
|
|
@ -24,6 +24,7 @@ package salsa20 // import "golang.org/x/crypto/salsa20"
|
||||||
// TODO(agl): implement XORKeyStream12 and XORKeyStream8 - the reduced round variants of Salsa20.
|
// TODO(agl): implement XORKeyStream12 and XORKeyStream8 - the reduced round variants of Salsa20.
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"golang.org/x/crypto/internal/subtle"
|
||||||
"golang.org/x/crypto/salsa20/salsa"
|
"golang.org/x/crypto/salsa20/salsa"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -34,6 +35,9 @@ func XORKeyStream(out, in []byte, nonce []byte, key *[32]byte) {
|
||||||
if len(out) < len(in) {
|
if len(out) < len(in) {
|
||||||
panic("salsa20: output smaller than input")
|
panic("salsa20: output smaller than input")
|
||||||
}
|
}
|
||||||
|
if subtle.InexactOverlap(out[:len(in)], in) {
|
||||||
|
panic("salsa20: invalid buffer overlap")
|
||||||
|
}
|
||||||
|
|
||||||
var subNonce [16]byte
|
var subNonce [16]byte
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT
|
// Code generated by 'go generate'; DO NOT EDIT.
|
||||||
|
|
||||||
package registry
|
package registry
|
||||||
|
|
||||||
|
|
|
@ -312,6 +312,14 @@ var (
|
||||||
OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00")
|
OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Pointer represents a pointer to an arbitrary Windows type.
|
||||||
|
//
|
||||||
|
// Pointer-typed fields may point to one of many different types. It's
|
||||||
|
// up to the caller to provide a pointer to the appropriate type, cast
|
||||||
|
// to Pointer. The caller must obey the unsafe.Pointer rules while
|
||||||
|
// doing so.
|
||||||
|
type Pointer *struct{}
|
||||||
|
|
||||||
// Invented values to support what package os expects.
|
// Invented values to support what package os expects.
|
||||||
type Timeval struct {
|
type Timeval struct {
|
||||||
Sec int32
|
Sec int32
|
||||||
|
@ -880,11 +888,15 @@ type MibIfRow struct {
|
||||||
Descr [MAXLEN_IFDESCR]byte
|
Descr [MAXLEN_IFDESCR]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CertInfo struct {
|
||||||
|
// Not implemented
|
||||||
|
}
|
||||||
|
|
||||||
type CertContext struct {
|
type CertContext struct {
|
||||||
EncodingType uint32
|
EncodingType uint32
|
||||||
EncodedCert *byte
|
EncodedCert *byte
|
||||||
Length uint32
|
Length uint32
|
||||||
CertInfo uintptr
|
CertInfo *CertInfo
|
||||||
Store Handle
|
Store Handle
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -899,12 +911,16 @@ type CertChainContext struct {
|
||||||
RevocationFreshnessTime uint32
|
RevocationFreshnessTime uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CertTrustListInfo struct {
|
||||||
|
// Not implemented
|
||||||
|
}
|
||||||
|
|
||||||
type CertSimpleChain struct {
|
type CertSimpleChain struct {
|
||||||
Size uint32
|
Size uint32
|
||||||
TrustStatus CertTrustStatus
|
TrustStatus CertTrustStatus
|
||||||
NumElements uint32
|
NumElements uint32
|
||||||
Elements **CertChainElement
|
Elements **CertChainElement
|
||||||
TrustListInfo uintptr
|
TrustListInfo *CertTrustListInfo
|
||||||
HasRevocationFreshnessTime uint32
|
HasRevocationFreshnessTime uint32
|
||||||
RevocationFreshnessTime uint32
|
RevocationFreshnessTime uint32
|
||||||
}
|
}
|
||||||
|
@ -919,14 +935,18 @@ type CertChainElement struct {
|
||||||
ExtendedErrorInfo *uint16
|
ExtendedErrorInfo *uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CertRevocationCrlInfo struct {
|
||||||
|
// Not implemented
|
||||||
|
}
|
||||||
|
|
||||||
type CertRevocationInfo struct {
|
type CertRevocationInfo struct {
|
||||||
Size uint32
|
Size uint32
|
||||||
RevocationResult uint32
|
RevocationResult uint32
|
||||||
RevocationOid *byte
|
RevocationOid *byte
|
||||||
OidSpecificInfo uintptr
|
OidSpecificInfo Pointer
|
||||||
HasFreshnessTime uint32
|
HasFreshnessTime uint32
|
||||||
FreshnessTime uint32
|
FreshnessTime uint32
|
||||||
CrlInfo uintptr // *CertRevocationCrlInfo
|
CrlInfo *CertRevocationCrlInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type CertTrustStatus struct {
|
type CertTrustStatus struct {
|
||||||
|
@ -957,7 +977,7 @@ type CertChainPara struct {
|
||||||
type CertChainPolicyPara struct {
|
type CertChainPolicyPara struct {
|
||||||
Size uint32
|
Size uint32
|
||||||
Flags uint32
|
Flags uint32
|
||||||
ExtraPolicyPara uintptr
|
ExtraPolicyPara Pointer
|
||||||
}
|
}
|
||||||
|
|
||||||
type SSLExtraCertChainPolicyPara struct {
|
type SSLExtraCertChainPolicyPara struct {
|
||||||
|
@ -972,7 +992,7 @@ type CertChainPolicyStatus struct {
|
||||||
Error uint32
|
Error uint32
|
||||||
ChainIndex uint32
|
ChainIndex uint32
|
||||||
ElementIndex uint32
|
ElementIndex uint32
|
||||||
ExtraPolicyStatus uintptr
|
ExtraPolicyStatus Pointer
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT
|
// Code generated by 'go generate'; DO NOT EDIT.
|
||||||
|
|
||||||
package windows
|
package windows
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue