mirror of
https://github.com/redhat-developer/odo.git
synced 2025-10-19 03:06:19 +03:00
Go: Bump github.com/zalando/go-keyring from 0.2.1 to 0.2.3 (#7006)
Bumps [github.com/zalando/go-keyring](https://github.com/zalando/go-keyring) from 0.2.1 to 0.2.3. - [Release notes](https://github.com/zalando/go-keyring/releases) - [Commits](https://github.com/zalando/go-keyring/compare/v0.2.1...v0.2.3) --- updated-dependencies: - dependency-name: github.com/zalando/go-keyring dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
2
vendor/github.com/danieljoos/wincred/README.md
generated
vendored
2
vendor/github.com/danieljoos/wincred/README.md
generated
vendored
@@ -4,7 +4,7 @@ wincred
|
||||
Go wrapper around the Windows Credential Manager API functions.
|
||||
|
||||
[](https://github.com/danieljoos/wincred/releases/latest)
|
||||
[](https://github.com/danieljoos/wincred/actions?query=workflow%3Atest)
|
||||
[](https://github.com/danieljoos/wincred/actions?query=workflow%3Atest)
|
||||
[](https://goreportcard.com/report/github.com/danieljoos/wincred)
|
||||
[](https://codecov.io/gh/danieljoos/wincred)
|
||||
[](https://pkg.go.dev/github.com/danieljoos/wincred)
|
||||
|
||||
28
vendor/github.com/danieljoos/wincred/sys.go
generated
vendored
28
vendor/github.com/danieljoos/wincred/sys.go
generated
vendored
@@ -1,21 +1,23 @@
|
||||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package wincred
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
syscall "golang.org/x/sys/windows"
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
var (
|
||||
modadvapi32 = syscall.NewLazyDLL("advapi32.dll")
|
||||
procCredRead proc = modadvapi32.NewProc("CredReadW")
|
||||
modadvapi32 = windows.NewLazySystemDLL("advapi32.dll")
|
||||
procCredRead = modadvapi32.NewProc("CredReadW")
|
||||
procCredWrite proc = modadvapi32.NewProc("CredWriteW")
|
||||
procCredDelete proc = modadvapi32.NewProc("CredDeleteW")
|
||||
procCredFree proc = modadvapi32.NewProc("CredFree")
|
||||
procCredEnumerate proc = modadvapi32.NewProc("CredEnumerateW")
|
||||
procCredEnumerate = modadvapi32.NewProc("CredEnumerateW")
|
||||
)
|
||||
|
||||
// Interface for syscall.Proc: helps testing
|
||||
@@ -29,7 +31,7 @@ type sysCREDENTIAL struct {
|
||||
Type uint32
|
||||
TargetName *uint16
|
||||
Comment *uint16
|
||||
LastWritten syscall.Filetime
|
||||
LastWritten windows.Filetime
|
||||
CredentialBlobSize uint32
|
||||
CredentialBlob uintptr
|
||||
Persist uint32
|
||||
@@ -59,15 +61,16 @@ const (
|
||||
sysCRED_TYPE_DOMAIN_EXTENDED sysCRED_TYPE = 0x6
|
||||
|
||||
// https://docs.microsoft.com/en-us/windows/desktop/Debug/system-error-codes
|
||||
sysERROR_NOT_FOUND = syscall.Errno(1168)
|
||||
sysERROR_INVALID_PARAMETER = syscall.Errno(87)
|
||||
sysERROR_NOT_FOUND = windows.Errno(1168)
|
||||
sysERROR_INVALID_PARAMETER = windows.Errno(87)
|
||||
)
|
||||
|
||||
// https://docs.microsoft.com/en-us/windows/desktop/api/wincred/nf-wincred-credreadw
|
||||
func sysCredRead(targetName string, typ sysCRED_TYPE) (*Credential, error) {
|
||||
var pcred *sysCREDENTIAL
|
||||
targetNamePtr, _ := syscall.UTF16PtrFromString(targetName)
|
||||
ret, _, err := procCredRead.Call(
|
||||
targetNamePtr, _ := windows.UTF16PtrFromString(targetName)
|
||||
ret, _, err := syscall.SyscallN(
|
||||
procCredRead.Addr(),
|
||||
uintptr(unsafe.Pointer(targetNamePtr)),
|
||||
uintptr(typ),
|
||||
0,
|
||||
@@ -98,7 +101,7 @@ func sysCredWrite(cred *Credential, typ sysCRED_TYPE) error {
|
||||
|
||||
// https://docs.microsoft.com/en-us/windows/desktop/api/wincred/nf-wincred-creddeletew
|
||||
func sysCredDelete(cred *Credential, typ sysCRED_TYPE) error {
|
||||
targetNamePtr, _ := syscall.UTF16PtrFromString(cred.TargetName)
|
||||
targetNamePtr, _ := windows.UTF16PtrFromString(cred.TargetName)
|
||||
ret, _, err := procCredDelete.Call(
|
||||
uintptr(unsafe.Pointer(targetNamePtr)),
|
||||
uintptr(typ),
|
||||
@@ -117,9 +120,10 @@ func sysCredEnumerate(filter string, all bool) ([]*Credential, error) {
|
||||
var pcreds uintptr
|
||||
var filterPtr *uint16
|
||||
if !all {
|
||||
filterPtr, _ = syscall.UTF16PtrFromString(filter)
|
||||
filterPtr, _ = windows.UTF16PtrFromString(filter)
|
||||
}
|
||||
ret, _, err := procCredEnumerate.Call(
|
||||
ret, _, err := syscall.SyscallN(
|
||||
procCredEnumerate.Addr(),
|
||||
uintptr(unsafe.Pointer(filterPtr)),
|
||||
0,
|
||||
uintptr(unsafe.Pointer(&count)),
|
||||
|
||||
10
vendor/github.com/godbus/dbus/v5/auth.go
generated
vendored
10
vendor/github.com/godbus/dbus/v5/auth.go
generated
vendored
@@ -176,9 +176,10 @@ func (conn *Conn) tryAuth(m Auth, state authState, in *bufio.Reader) (error, boo
|
||||
return err, false
|
||||
}
|
||||
state = waitingForReject
|
||||
} else {
|
||||
conn.uuid = string(s[1])
|
||||
return nil, true
|
||||
}
|
||||
conn.uuid = string(s[1])
|
||||
return nil, true
|
||||
case state == waitingForData:
|
||||
err = authWriteLine(conn.transport, []byte("ERROR"))
|
||||
if err != nil {
|
||||
@@ -191,9 +192,10 @@ func (conn *Conn) tryAuth(m Auth, state authState, in *bufio.Reader) (error, boo
|
||||
return err, false
|
||||
}
|
||||
state = waitingForReject
|
||||
} else {
|
||||
conn.uuid = string(s[1])
|
||||
return nil, true
|
||||
}
|
||||
conn.uuid = string(s[1])
|
||||
return nil, true
|
||||
case state == waitingForOk && string(s[0]) == "DATA":
|
||||
err = authWriteLine(conn.transport, []byte("DATA"))
|
||||
if err != nil {
|
||||
|
||||
27
vendor/github.com/godbus/dbus/v5/conn.go
generated
vendored
27
vendor/github.com/godbus/dbus/v5/conn.go
generated
vendored
@@ -169,7 +169,7 @@ func Connect(address string, opts ...ConnOption) (*Conn, error) {
|
||||
|
||||
// SystemBusPrivate returns a new private connection to the system bus.
|
||||
// Note: this connection is not ready to use. One must perform Auth and Hello
|
||||
// on the connection before it is useable.
|
||||
// on the connection before it is usable.
|
||||
func SystemBusPrivate(opts ...ConnOption) (*Conn, error) {
|
||||
return Dial(getSystemBusPlatformAddress(), opts...)
|
||||
}
|
||||
@@ -284,10 +284,6 @@ func newConn(tr transport, opts ...ConnOption) (*Conn, error) {
|
||||
conn.ctx = context.Background()
|
||||
}
|
||||
conn.ctx, conn.cancelCtx = context.WithCancel(conn.ctx)
|
||||
go func() {
|
||||
<-conn.ctx.Done()
|
||||
conn.Close()
|
||||
}()
|
||||
|
||||
conn.calls = newCallTracker()
|
||||
if conn.handler == nil {
|
||||
@@ -302,6 +298,11 @@ func newConn(tr transport, opts ...ConnOption) (*Conn, error) {
|
||||
conn.outHandler = &outputHandler{conn: conn}
|
||||
conn.names = newNameTracker()
|
||||
conn.busObj = conn.Object("org.freedesktop.DBus", "/org/freedesktop/DBus")
|
||||
|
||||
go func() {
|
||||
<-conn.ctx.Done()
|
||||
conn.Close()
|
||||
}()
|
||||
return conn, nil
|
||||
}
|
||||
|
||||
@@ -550,6 +551,11 @@ func (conn *Conn) send(ctx context.Context, msg *Message, ch chan *Call) *Call {
|
||||
call.ctx = ctx
|
||||
call.ctxCanceler = canceler
|
||||
conn.calls.track(msg.serial, call)
|
||||
if ctx.Err() != nil {
|
||||
// short path: don't even send the message if context already cancelled
|
||||
conn.calls.handleSendError(msg, ctx.Err())
|
||||
return call
|
||||
}
|
||||
go func() {
|
||||
<-ctx.Done()
|
||||
conn.calls.handleSendError(msg, ctx.Err())
|
||||
@@ -649,7 +655,9 @@ func (conn *Conn) RemoveMatchSignalContext(ctx context.Context, options ...Match
|
||||
|
||||
// Signal registers the given channel to be passed all received signal messages.
|
||||
//
|
||||
// Multiple of these channels can be registered at the same time.
|
||||
// Multiple of these channels can be registered at the same time. The channel is
|
||||
// closed if the Conn is closed; it should not be closed by the caller before
|
||||
// RemoveSignal was called on it.
|
||||
//
|
||||
// These channels are "overwritten" by Eavesdrop; i.e., if there currently is a
|
||||
// channel for eavesdropped messages, this channel receives all signals, and
|
||||
@@ -765,7 +773,12 @@ func getKey(s, key string) string {
|
||||
for _, keyEqualsValue := range strings.Split(s, ",") {
|
||||
keyValue := strings.SplitN(keyEqualsValue, "=", 2)
|
||||
if len(keyValue) == 2 && keyValue[0] == key {
|
||||
return keyValue[1]
|
||||
val, err := UnescapeBusAddressValue(keyValue[1])
|
||||
if err != nil {
|
||||
// No way to return an error.
|
||||
return ""
|
||||
}
|
||||
return val
|
||||
}
|
||||
}
|
||||
return ""
|
||||
|
||||
9
vendor/github.com/godbus/dbus/v5/conn_other.go
generated
vendored
9
vendor/github.com/godbus/dbus/v5/conn_other.go
generated
vendored
@@ -54,7 +54,7 @@ func tryDiscoverDbusSessionBusAddress() string {
|
||||
if runUserBusFile := path.Join(runtimeDirectory, "bus"); fileExists(runUserBusFile) {
|
||||
// if /run/user/<uid>/bus exists, that file itself
|
||||
// *is* the unix socket, so return its path
|
||||
return fmt.Sprintf("unix:path=%s", runUserBusFile)
|
||||
return fmt.Sprintf("unix:path=%s", EscapeBusAddressValue(runUserBusFile))
|
||||
}
|
||||
if runUserSessionDbusFile := path.Join(runtimeDirectory, "dbus-session"); fileExists(runUserSessionDbusFile) {
|
||||
// if /run/user/<uid>/dbus-session exists, it's a
|
||||
@@ -85,9 +85,6 @@ func getRuntimeDirectory() (string, error) {
|
||||
}
|
||||
|
||||
func fileExists(filename string) bool {
|
||||
if _, err := os.Stat(filename); !os.IsNotExist(err) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
_, err := os.Stat(filename)
|
||||
return !os.IsNotExist(err)
|
||||
}
|
||||
|
||||
14
vendor/github.com/godbus/dbus/v5/dbus.go
generated
vendored
14
vendor/github.com/godbus/dbus/v5/dbus.go
generated
vendored
@@ -122,8 +122,11 @@ func isConvertibleTo(dest, src reflect.Type) bool {
|
||||
case dest.Kind() == reflect.Slice:
|
||||
return src.Kind() == reflect.Slice &&
|
||||
isConvertibleTo(dest.Elem(), src.Elem())
|
||||
case dest.Kind() == reflect.Ptr:
|
||||
dest = dest.Elem()
|
||||
return isConvertibleTo(dest, src)
|
||||
case dest.Kind() == reflect.Struct:
|
||||
return src == interfacesType
|
||||
return src == interfacesType || dest.Kind() == src.Kind()
|
||||
default:
|
||||
return src.ConvertibleTo(dest)
|
||||
}
|
||||
@@ -274,13 +277,8 @@ func storeSliceIntoInterface(dest, src reflect.Value) error {
|
||||
func storeSliceIntoSlice(dest, src reflect.Value) error {
|
||||
if dest.IsNil() || dest.Len() < src.Len() {
|
||||
dest.Set(reflect.MakeSlice(dest.Type(), src.Len(), src.Cap()))
|
||||
}
|
||||
if dest.Len() != src.Len() {
|
||||
return fmt.Errorf(
|
||||
"dbus.Store: type mismatch: "+
|
||||
"slices are different lengths "+
|
||||
"need: %d have: %d",
|
||||
src.Len(), dest.Len())
|
||||
} else if dest.Len() > src.Len() {
|
||||
dest.Set(dest.Slice(0, src.Len()))
|
||||
}
|
||||
for i := 0; i < src.Len(); i++ {
|
||||
err := store(dest.Index(i), getVariantValue(src.Index(i)))
|
||||
|
||||
10
vendor/github.com/godbus/dbus/v5/doc.go
generated
vendored
10
vendor/github.com/godbus/dbus/v5/doc.go
generated
vendored
@@ -10,8 +10,10 @@ value.
|
||||
Conversion Rules
|
||||
|
||||
For outgoing messages, Go types are automatically converted to the
|
||||
corresponding D-Bus types. The following types are directly encoded as their
|
||||
respective D-Bus equivalents:
|
||||
corresponding D-Bus types. See the official specification at
|
||||
https://dbus.freedesktop.org/doc/dbus-specification.html#type-system for more
|
||||
information on the D-Bus type system. The following types are directly encoded
|
||||
as their respective D-Bus equivalents:
|
||||
|
||||
Go type | D-Bus type
|
||||
------------+-----------
|
||||
@@ -39,8 +41,8 @@ Maps encode as DICTs, provided that their key type can be used as a key for
|
||||
a DICT.
|
||||
|
||||
Structs other than Variant and Signature encode as a STRUCT containing their
|
||||
exported fields. Fields whose tags contain `dbus:"-"` and unexported fields will
|
||||
be skipped.
|
||||
exported fields in order. Fields whose tags contain `dbus:"-"` and unexported
|
||||
fields will be skipped.
|
||||
|
||||
Pointers encode as the value they're pointed to.
|
||||
|
||||
|
||||
84
vendor/github.com/godbus/dbus/v5/escape.go
generated
vendored
Normal file
84
vendor/github.com/godbus/dbus/v5/escape.go
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
package dbus
|
||||
|
||||
import "net/url"
|
||||
|
||||
// EscapeBusAddressValue implements a requirement to escape the values
|
||||
// in D-Bus server addresses, as defined by the D-Bus specification at
|
||||
// https://dbus.freedesktop.org/doc/dbus-specification.html#addresses.
|
||||
func EscapeBusAddressValue(val string) string {
|
||||
toEsc := strNeedsEscape(val)
|
||||
if toEsc == 0 {
|
||||
// Avoid unneeded allocation/copying.
|
||||
return val
|
||||
}
|
||||
|
||||
// Avoid allocation for short paths.
|
||||
var buf [64]byte
|
||||
var out []byte
|
||||
// Every to-be-escaped byte needs 2 extra bytes.
|
||||
required := len(val) + 2*toEsc
|
||||
if required <= len(buf) {
|
||||
out = buf[:required]
|
||||
} else {
|
||||
out = make([]byte, required)
|
||||
}
|
||||
|
||||
j := 0
|
||||
for i := 0; i < len(val); i++ {
|
||||
if ch := val[i]; needsEscape(ch) {
|
||||
// Convert ch to %xx, where xx is hex value.
|
||||
out[j] = '%'
|
||||
out[j+1] = hexchar(ch >> 4)
|
||||
out[j+2] = hexchar(ch & 0x0F)
|
||||
j += 3
|
||||
} else {
|
||||
out[j] = ch
|
||||
j++
|
||||
}
|
||||
}
|
||||
|
||||
return string(out)
|
||||
}
|
||||
|
||||
// UnescapeBusAddressValue unescapes values in D-Bus server addresses,
|
||||
// as defined by the D-Bus specification at
|
||||
// https://dbus.freedesktop.org/doc/dbus-specification.html#addresses.
|
||||
func UnescapeBusAddressValue(val string) (string, error) {
|
||||
// Looks like url.PathUnescape does exactly what is required.
|
||||
return url.PathUnescape(val)
|
||||
}
|
||||
|
||||
// hexchar returns an octal representation of a n, where n < 16.
|
||||
// For invalid values of n, the function panics.
|
||||
func hexchar(n byte) byte {
|
||||
const hex = "0123456789abcdef"
|
||||
|
||||
// For n >= len(hex), runtime will panic.
|
||||
return hex[n]
|
||||
}
|
||||
|
||||
// needsEscape tells if a byte is NOT one of optionally-escaped bytes.
|
||||
func needsEscape(c byte) bool {
|
||||
if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {
|
||||
return false
|
||||
}
|
||||
switch c {
|
||||
case '-', '_', '/', '\\', '.', '*':
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// strNeedsEscape tells how many bytes in the string need escaping.
|
||||
func strNeedsEscape(val string) int {
|
||||
count := 0
|
||||
|
||||
for i := 0; i < len(val); i++ {
|
||||
if needsEscape(val[i]) {
|
||||
count++
|
||||
}
|
||||
}
|
||||
|
||||
return count
|
||||
}
|
||||
19
vendor/github.com/godbus/dbus/v5/export.go
generated
vendored
19
vendor/github.com/godbus/dbus/v5/export.go
generated
vendored
@@ -3,6 +3,7 @@ package dbus
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
@@ -209,28 +210,23 @@ func (conn *Conn) handleCall(msg *Message) {
|
||||
}
|
||||
reply.Headers[FieldSignature] = MakeVariant(SignatureOf(reply.Body...))
|
||||
|
||||
conn.sendMessageAndIfClosed(reply, nil)
|
||||
if err := reply.IsValid(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "dbus: dropping invalid reply to %s.%s on obj %s: %s\n", ifaceName, name, path, err)
|
||||
} else {
|
||||
conn.sendMessageAndIfClosed(reply, nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Emit emits the given signal on the message bus. The name parameter must be
|
||||
// formatted as "interface.member", e.g., "org.freedesktop.DBus.NameLost".
|
||||
func (conn *Conn) Emit(path ObjectPath, name string, values ...interface{}) error {
|
||||
if !path.IsValid() {
|
||||
return errors.New("dbus: invalid object path")
|
||||
}
|
||||
i := strings.LastIndex(name, ".")
|
||||
if i == -1 {
|
||||
return errors.New("dbus: invalid method name")
|
||||
}
|
||||
iface := name[:i]
|
||||
member := name[i+1:]
|
||||
if !isValidMember(member) {
|
||||
return errors.New("dbus: invalid method name")
|
||||
}
|
||||
if !isValidInterface(iface) {
|
||||
return errors.New("dbus: invalid interface name")
|
||||
}
|
||||
msg := new(Message)
|
||||
msg.Type = TypeSignal
|
||||
msg.Headers = make(map[HeaderField]Variant)
|
||||
@@ -241,6 +237,9 @@ func (conn *Conn) Emit(path ObjectPath, name string, values ...interface{}) erro
|
||||
if len(values) > 0 {
|
||||
msg.Headers[FieldSignature] = MakeVariant(SignatureOf(values...))
|
||||
}
|
||||
if err := msg.IsValid(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var closed bool
|
||||
conn.sendMessageAndIfClosed(msg, func() {
|
||||
|
||||
29
vendor/github.com/godbus/dbus/v5/homedir.go
generated
vendored
29
vendor/github.com/godbus/dbus/v5/homedir.go
generated
vendored
@@ -2,27 +2,24 @@ package dbus
|
||||
|
||||
import (
|
||||
"os"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var (
|
||||
homeDir string
|
||||
homeDirLock sync.Mutex
|
||||
"os/user"
|
||||
)
|
||||
|
||||
// Get returns the home directory of the current user, which is usually the
|
||||
// value of HOME environment variable. In case it is not set or empty, os/user
|
||||
// package is used.
|
||||
//
|
||||
// If linking statically with cgo enabled against glibc, make sure the
|
||||
// osusergo build tag is used.
|
||||
//
|
||||
// If needing to do nss lookups, do not disable cgo or set osusergo.
|
||||
func getHomeDir() string {
|
||||
homeDirLock.Lock()
|
||||
defer homeDirLock.Unlock()
|
||||
|
||||
homeDir := os.Getenv("HOME")
|
||||
if homeDir != "" {
|
||||
return homeDir
|
||||
}
|
||||
|
||||
homeDir = os.Getenv("HOME")
|
||||
if homeDir != "" {
|
||||
return homeDir
|
||||
if u, err := user.Current(); err == nil {
|
||||
return u.HomeDir
|
||||
}
|
||||
|
||||
homeDir = lookupHomeDir()
|
||||
return homeDir
|
||||
return "/"
|
||||
}
|
||||
|
||||
15
vendor/github.com/godbus/dbus/v5/homedir_dynamic.go
generated
vendored
15
vendor/github.com/godbus/dbus/v5/homedir_dynamic.go
generated
vendored
@@ -1,15 +0,0 @@
|
||||
// +build !static_build
|
||||
|
||||
package dbus
|
||||
|
||||
import (
|
||||
"os/user"
|
||||
)
|
||||
|
||||
func lookupHomeDir() string {
|
||||
u, err := user.Current()
|
||||
if err != nil {
|
||||
return "/"
|
||||
}
|
||||
return u.HomeDir
|
||||
}
|
||||
45
vendor/github.com/godbus/dbus/v5/homedir_static.go
generated
vendored
45
vendor/github.com/godbus/dbus/v5/homedir_static.go
generated
vendored
@@ -1,45 +0,0 @@
|
||||
// +build static_build
|
||||
|
||||
package dbus
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func lookupHomeDir() string {
|
||||
myUid := os.Getuid()
|
||||
|
||||
f, err := os.Open("/etc/passwd")
|
||||
if err != nil {
|
||||
return "/"
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
s := bufio.NewScanner(f)
|
||||
|
||||
for s.Scan() {
|
||||
if err := s.Err(); err != nil {
|
||||
break
|
||||
}
|
||||
|
||||
line := strings.TrimSpace(s.Text())
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
parts := strings.Split(line, ":")
|
||||
|
||||
if len(parts) >= 6 {
|
||||
uid, err := strconv.Atoi(parts[2])
|
||||
if err == nil && uid == myUid {
|
||||
return parts[5]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Default to / if we can't get a better value
|
||||
return "/"
|
||||
}
|
||||
16
vendor/github.com/godbus/dbus/v5/message.go
generated
vendored
16
vendor/github.com/godbus/dbus/v5/message.go
generated
vendored
@@ -208,7 +208,7 @@ func DecodeMessageWithFDs(rd io.Reader, fds []int) (msg *Message, err error) {
|
||||
// The possibly returned error can be an error of the underlying reader, an
|
||||
// InvalidMessageError or a FormatError.
|
||||
func DecodeMessage(rd io.Reader) (msg *Message, err error) {
|
||||
return DecodeMessageWithFDs(rd, make([]int, 0));
|
||||
return DecodeMessageWithFDs(rd, make([]int, 0))
|
||||
}
|
||||
|
||||
type nullwriter struct{}
|
||||
@@ -227,8 +227,8 @@ func (msg *Message) CountFds() (int, error) {
|
||||
}
|
||||
|
||||
func (msg *Message) EncodeToWithFDs(out io.Writer, order binary.ByteOrder) (fds []int, err error) {
|
||||
if err := msg.IsValid(); err != nil {
|
||||
return make([]int, 0), err
|
||||
if err := msg.validateHeader(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var vs [7]interface{}
|
||||
switch order {
|
||||
@@ -237,7 +237,7 @@ func (msg *Message) EncodeToWithFDs(out io.Writer, order binary.ByteOrder) (fds
|
||||
case binary.BigEndian:
|
||||
vs[0] = byte('B')
|
||||
default:
|
||||
return make([]int, 0), errors.New("dbus: invalid byte order")
|
||||
return nil, errors.New("dbus: invalid byte order")
|
||||
}
|
||||
body := new(bytes.Buffer)
|
||||
fds = make([]int, 0)
|
||||
@@ -284,8 +284,13 @@ func (msg *Message) EncodeTo(out io.Writer, order binary.ByteOrder) (err error)
|
||||
}
|
||||
|
||||
// IsValid checks whether msg is a valid message and returns an
|
||||
// InvalidMessageError if it is not.
|
||||
// InvalidMessageError or FormatError if it is not.
|
||||
func (msg *Message) IsValid() error {
|
||||
var b bytes.Buffer
|
||||
return msg.EncodeTo(&b, nativeEndian)
|
||||
}
|
||||
|
||||
func (msg *Message) validateHeader() error {
|
||||
if msg.Flags & ^(FlagNoAutoStart|FlagNoReplyExpected|FlagAllowInteractiveAuthorization) != 0 {
|
||||
return InvalidMessageError("invalid flags")
|
||||
}
|
||||
@@ -330,6 +335,7 @@ func (msg *Message) IsValid() error {
|
||||
return InvalidMessageError("missing signature")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
2
vendor/github.com/godbus/dbus/v5/server_interfaces.go
generated
vendored
2
vendor/github.com/godbus/dbus/v5/server_interfaces.go
generated
vendored
@@ -63,7 +63,7 @@ type Method interface {
|
||||
// any other decoding scheme.
|
||||
type ArgumentDecoder interface {
|
||||
// To decode the arguments of a method the sender and message are
|
||||
// provided incase the semantics of the implementer provides access
|
||||
// provided in case the semantics of the implementer provides access
|
||||
// to these as part of the method invocation.
|
||||
DecodeArguments(conn *Conn, sender string, msg *Message, args []interface{}) ([]interface{}, error)
|
||||
}
|
||||
|
||||
2
vendor/github.com/godbus/dbus/v5/sig.go
generated
vendored
2
vendor/github.com/godbus/dbus/v5/sig.go
generated
vendored
@@ -102,7 +102,7 @@ func getSignature(t reflect.Type, depth *depthCounter) (sig string) {
|
||||
}
|
||||
}
|
||||
if len(s) == 0 {
|
||||
panic("empty struct")
|
||||
panic(InvalidTypeError{t})
|
||||
}
|
||||
return "(" + s + ")"
|
||||
case reflect.Array, reflect.Slice:
|
||||
|
||||
12
vendor/github.com/godbus/dbus/v5/transport_unix.go
generated
vendored
12
vendor/github.com/godbus/dbus/v5/transport_unix.go
generated
vendored
@@ -154,17 +154,15 @@ func (t *unixTransport) ReadMessage() (*Message, error) {
|
||||
// substitute the values in the message body (which are indices for the
|
||||
// array receiver via OOB) with the actual values
|
||||
for i, v := range msg.Body {
|
||||
switch v.(type) {
|
||||
switch index := v.(type) {
|
||||
case UnixFDIndex:
|
||||
j := v.(UnixFDIndex)
|
||||
if uint32(j) >= unixfds {
|
||||
if uint32(index) >= unixfds {
|
||||
return nil, InvalidMessageError("invalid index for unix fd")
|
||||
}
|
||||
msg.Body[i] = UnixFD(fds[j])
|
||||
msg.Body[i] = UnixFD(fds[index])
|
||||
case []UnixFDIndex:
|
||||
idxArray := v.([]UnixFDIndex)
|
||||
fdArray := make([]UnixFD, len(idxArray))
|
||||
for k, j := range idxArray {
|
||||
fdArray := make([]UnixFD, len(index))
|
||||
for k, j := range index {
|
||||
if uint32(j) >= unixfds {
|
||||
return nil, InvalidMessageError("invalid index for unix fd")
|
||||
}
|
||||
|
||||
6
vendor/github.com/godbus/dbus/v5/transport_zos.go
generated
vendored
Normal file
6
vendor/github.com/godbus/dbus/v5/transport_zos.go
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
package dbus
|
||||
|
||||
func (t *unixTransport) SendNullByte() error {
|
||||
_, err := t.Write([]byte{0})
|
||||
return err
|
||||
}
|
||||
2
vendor/github.com/godbus/dbus/v5/variant.go
generated
vendored
2
vendor/github.com/godbus/dbus/v5/variant.go
generated
vendored
@@ -49,7 +49,7 @@ func ParseVariant(s string, sig Signature) (Variant, error) {
|
||||
}
|
||||
|
||||
// format returns a formatted version of v and whether this string can be parsed
|
||||
// unambigously.
|
||||
// unambiguously.
|
||||
func (v Variant) format() (string, bool) {
|
||||
switch v.sig.str[0] {
|
||||
case 'b', 'i':
|
||||
|
||||
23
vendor/github.com/zalando/go-keyring/.gitignore
generated
vendored
Normal file
23
vendor/github.com/zalando/go-keyring/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# https://github.com/github/gitignore
|
||||
|
||||
######################### Go ###################################################
|
||||
# https://raw.githubusercontent.com/github/gitignore/master/Go.gitignore
|
||||
################################################################################
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, built with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
vendor/
|
||||
|
||||
# Go workspace file
|
||||
go.work
|
||||
2
vendor/github.com/zalando/go-keyring/README.md
generated
vendored
2
vendor/github.com/zalando/go-keyring/README.md
generated
vendored
@@ -1,6 +1,4 @@
|
||||
# Go Keyring library
|
||||
[](https://travis-ci.org/zalando/go-keyring)
|
||||
[](https://ci.appveyor.com/project/mikkeloscar/go-keyring/branch/master)
|
||||
[](https://goreportcard.com/report/github.com/zalando/go-keyring)
|
||||
[](https://godoc.org/github.com/zalando/go-keyring)
|
||||
|
||||
|
||||
11
vendor/github.com/zalando/go-keyring/appveyor.yml
generated
vendored
11
vendor/github.com/zalando/go-keyring/appveyor.yml
generated
vendored
@@ -1,11 +0,0 @@
|
||||
version: "{build}"
|
||||
clone_folder: c:\gopath\src\github.com\zalando\go-keyring
|
||||
environment:
|
||||
GOPATH: c:\gopath
|
||||
install:
|
||||
- go version
|
||||
- go get -t -v ./...
|
||||
build_script:
|
||||
- go build
|
||||
test_script:
|
||||
- go test -v
|
||||
11
vendor/github.com/zalando/go-keyring/keyring.go
generated
vendored
11
vendor/github.com/zalando/go-keyring/keyring.go
generated
vendored
@@ -1,15 +1,20 @@
|
||||
package keyring
|
||||
|
||||
import "fmt"
|
||||
import "errors"
|
||||
|
||||
// provider set in the init function by the relevant os file e.g.:
|
||||
// keyring_linux.go
|
||||
// keyring_unix.go
|
||||
var provider Keyring = fallbackServiceProvider{}
|
||||
|
||||
var (
|
||||
// ErrNotFound is the expected error if the secret isn't found in the
|
||||
// keyring.
|
||||
ErrNotFound = fmt.Errorf("secret not found in keyring")
|
||||
ErrNotFound = errors.New("secret not found in keyring")
|
||||
// ErrSetDataTooBig is returned if `Set` was called with too much data.
|
||||
// On MacOS: The combination of service, username & password should not exceed ~3000 bytes
|
||||
// On Windows: The service is limited to 32KiB while the password is limited to 2560 bytes
|
||||
// On Linux/Unix: There is no theoretical limit but performance suffers with big values (>100KiB)
|
||||
ErrSetDataTooBig = errors.New("data passed to Set was too big")
|
||||
)
|
||||
|
||||
// Keyring provides a simple set/get interface for a keyring service.
|
||||
|
||||
22
vendor/github.com/zalando/go-keyring/keyring_darwin.go
generated
vendored
22
vendor/github.com/zalando/go-keyring/keyring_darwin.go
generated
vendored
@@ -15,6 +15,7 @@
|
||||
package keyring
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -28,7 +29,8 @@ const (
|
||||
execPathKeychain = "/usr/bin/security"
|
||||
|
||||
// encodingPrefix is a well-known prefix added to strings encoded by Set.
|
||||
encodingPrefix = "go-keyring-encoded:"
|
||||
encodingPrefix = "go-keyring-encoded:"
|
||||
base64EncodingPrefix = "go-keyring-base64:"
|
||||
)
|
||||
|
||||
type macOSXKeychain struct{}
|
||||
@@ -37,8 +39,7 @@ type macOSXKeychain struct{}
|
||||
// return exec.Command(execPathKeychain).Run() != exec.ErrNotFound
|
||||
// }
|
||||
|
||||
// Set stores stores user and pass in the keyring under the defined service
|
||||
// name.
|
||||
// Get password from macos keyring given service and user name.
|
||||
func (k macOSXKeychain) Get(service, username string) (string, error) {
|
||||
out, err := exec.Command(
|
||||
execPathKeychain,
|
||||
@@ -46,7 +47,7 @@ func (k macOSXKeychain) Get(service, username string) (string, error) {
|
||||
"-s", service,
|
||||
"-wa", username).CombinedOutput()
|
||||
if err != nil {
|
||||
if strings.Contains(fmt.Sprintf("%s", out), "could not be found") {
|
||||
if strings.Contains(string(out), "could not be found") {
|
||||
err = ErrNotFound
|
||||
}
|
||||
return "", err
|
||||
@@ -57,17 +58,20 @@ func (k macOSXKeychain) Get(service, username string) (string, error) {
|
||||
if strings.HasPrefix(trimStr, encodingPrefix) {
|
||||
dec, err := hex.DecodeString(trimStr[len(encodingPrefix):])
|
||||
return string(dec), err
|
||||
} else if strings.HasPrefix(trimStr, base64EncodingPrefix) {
|
||||
dec, err := base64.StdEncoding.DecodeString(trimStr[len(base64EncodingPrefix):])
|
||||
return string(dec), err
|
||||
}
|
||||
|
||||
return trimStr, nil
|
||||
}
|
||||
|
||||
// Set stores a secret in the keyring given a service name and a user.
|
||||
// Set stores a secret in the macos keyring given a service name and a user.
|
||||
func (k macOSXKeychain) Set(service, username, password string) error {
|
||||
// if the added secret has multiple lines or some non ascii,
|
||||
// osx will hex encode it on return. To avoid getting garbage, we
|
||||
// encode all passwords
|
||||
password = encodingPrefix + hex.EncodeToString([]byte(password))
|
||||
password = base64EncodingPrefix + base64.StdEncoding.EncodeToString([]byte(password))
|
||||
|
||||
cmd := exec.Command(execPathKeychain, "-i")
|
||||
stdIn, err := cmd.StdinPipe()
|
||||
@@ -80,6 +84,10 @@ func (k macOSXKeychain) Set(service, username, password string) error {
|
||||
}
|
||||
|
||||
command := fmt.Sprintf("add-generic-password -U -s %s -a %s -w %s\n", shellescape.Quote(service), shellescape.Quote(username), shellescape.Quote(password))
|
||||
if len(command) > 4096 {
|
||||
return ErrSetDataTooBig
|
||||
}
|
||||
|
||||
if _, err := io.WriteString(stdIn, command); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -99,7 +107,7 @@ func (k macOSXKeychain) Delete(service, username string) error {
|
||||
"delete-generic-password",
|
||||
"-s", service,
|
||||
"-a", username).CombinedOutput()
|
||||
if strings.Contains(fmt.Sprintf("%s", out), "could not be found") {
|
||||
if strings.Contains(string(out), "could not be found") {
|
||||
err = ErrNotFound
|
||||
}
|
||||
return err
|
||||
|
||||
2
vendor/github.com/zalando/go-keyring/keyring_fallback.go
generated
vendored
2
vendor/github.com/zalando/go-keyring/keyring_fallback.go
generated
vendored
@@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
// All of the following methods error out on unsupported platforms
|
||||
var ErrUnsupportedPlatform = errors.New("Unsupported platform: " + runtime.GOOS)
|
||||
var ErrUnsupportedPlatform = errors.New("unsupported platform: " + runtime.GOOS)
|
||||
|
||||
type fallbackServiceProvider struct{}
|
||||
|
||||
|
||||
16
vendor/github.com/zalando/go-keyring/keyring_mock.go
generated
vendored
16
vendor/github.com/zalando/go-keyring/keyring_mock.go
generated
vendored
@@ -2,11 +2,15 @@ package keyring
|
||||
|
||||
type mockProvider struct {
|
||||
mockStore map[string]map[string]string
|
||||
mockError error
|
||||
}
|
||||
|
||||
// Set stores user and pass in the keyring under the defined service
|
||||
// name.
|
||||
func (m *mockProvider) Set(service, user, pass string) error {
|
||||
if m.mockError != nil {
|
||||
return m.mockError
|
||||
}
|
||||
if m.mockStore == nil {
|
||||
m.mockStore = make(map[string]map[string]string)
|
||||
}
|
||||
@@ -19,6 +23,9 @@ func (m *mockProvider) Set(service, user, pass string) error {
|
||||
|
||||
// Get gets a secret from the keyring given a service name and a user.
|
||||
func (m *mockProvider) Get(service, user string) (string, error) {
|
||||
if m.mockError != nil {
|
||||
return "", m.mockError
|
||||
}
|
||||
if b, ok := m.mockStore[service]; ok {
|
||||
if v, ok := b[user]; ok {
|
||||
return v, nil
|
||||
@@ -29,6 +36,9 @@ func (m *mockProvider) Get(service, user string) (string, error) {
|
||||
|
||||
// Delete deletes a secret, identified by service & user, from the keyring.
|
||||
func (m *mockProvider) Delete(service, user string) error {
|
||||
if m.mockError != nil {
|
||||
return m.mockError
|
||||
}
|
||||
if m.mockStore != nil {
|
||||
if _, ok := m.mockStore[service]; ok {
|
||||
if _, ok := m.mockStore[service][user]; ok {
|
||||
@@ -44,3 +54,9 @@ func (m *mockProvider) Delete(service, user string) error {
|
||||
func MockInit() {
|
||||
provider = &mockProvider{}
|
||||
}
|
||||
|
||||
// MockInitWithError sets the provider to a mocked memory store
|
||||
// that returns the given error on all operations
|
||||
func MockInitWithError(err error) {
|
||||
provider = &mockProvider{mockError: err}
|
||||
}
|
||||
|
||||
19
vendor/github.com/zalando/go-keyring/keyring_windows.go
generated
vendored
19
vendor/github.com/zalando/go-keyring/keyring_windows.go
generated
vendored
@@ -1,8 +1,9 @@
|
||||
package keyring
|
||||
|
||||
import (
|
||||
"github.com/danieljoos/wincred"
|
||||
"syscall"
|
||||
|
||||
"github.com/danieljoos/wincred"
|
||||
)
|
||||
|
||||
type windowsKeychain struct{}
|
||||
@@ -23,6 +24,22 @@ func (k windowsKeychain) Get(service, username string) (string, error) {
|
||||
// Set stores stores user and pass in the keyring under the defined service
|
||||
// name.
|
||||
func (k windowsKeychain) Set(service, username, password string) error {
|
||||
// password may not exceed 2560 bytes (https://github.com/jaraco/keyring/issues/540#issuecomment-968329967)
|
||||
if len(password) > 2560 {
|
||||
return ErrSetDataTooBig
|
||||
}
|
||||
|
||||
// service may not exceed 512 bytes (might need more testing)
|
||||
if len(service) >= 512 {
|
||||
return ErrSetDataTooBig
|
||||
}
|
||||
|
||||
// service may not exceed 32k but problems occur before that
|
||||
// so we limit it to 30k
|
||||
if len(service) > 1024*30 {
|
||||
return ErrSetDataTooBig
|
||||
}
|
||||
|
||||
cred := wincred.NewGenericCredential(k.credName(service, username))
|
||||
cred.UserName = username
|
||||
cred.CredentialBlob = []byte(password)
|
||||
|
||||
12
vendor/github.com/zalando/go-keyring/secret_service/secret_service.go
generated
vendored
12
vendor/github.com/zalando/go-keyring/secret_service/secret_service.go
generated
vendored
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
|
||||
"errors"
|
||||
|
||||
dbus "github.com/godbus/dbus/v5"
|
||||
)
|
||||
|
||||
@@ -190,6 +191,17 @@ func (s *SecretService) handlePrompt(prompt dbus.ObjectPath) (bool, dbus.Variant
|
||||
return false, dbus.MakeVariant(""), err
|
||||
}
|
||||
|
||||
err = s.AddMatchSignal(dbus.WithMatchObjectPath(prompt),
|
||||
dbus.WithMatchInterface(promptInterface),
|
||||
)
|
||||
if err != nil {
|
||||
return false, dbus.MakeVariant(""), err
|
||||
}
|
||||
|
||||
defer func(s *SecretService, options ...dbus.MatchOption) {
|
||||
_ = s.RemoveMatchSignal(options...)
|
||||
}(s, dbus.WithMatchObjectPath(prompt), dbus.WithMatchInterface(promptInterface))
|
||||
|
||||
promptSignal := make(chan *dbus.Signal, 1)
|
||||
s.Signal(promptSignal)
|
||||
|
||||
|
||||
10
vendor/modules.txt
generated
vendored
10
vendor/modules.txt
generated
vendored
@@ -133,8 +133,8 @@ github.com/containerd/typeurl
|
||||
# github.com/creack/pty v1.1.18
|
||||
## explicit; go 1.13
|
||||
github.com/creack/pty
|
||||
# github.com/danieljoos/wincred v1.1.2
|
||||
## explicit; go 1.13
|
||||
# github.com/danieljoos/wincred v1.2.0
|
||||
## explicit; go 1.18
|
||||
github.com/danieljoos/wincred
|
||||
# github.com/davecgh/go-spew v1.1.1
|
||||
## explicit
|
||||
@@ -381,7 +381,7 @@ github.com/gobwas/glob/syntax/ast
|
||||
github.com/gobwas/glob/syntax/lexer
|
||||
github.com/gobwas/glob/util/runes
|
||||
github.com/gobwas/glob/util/strings
|
||||
# github.com/godbus/dbus/v5 v5.0.6
|
||||
# github.com/godbus/dbus/v5 v5.1.0
|
||||
## explicit; go 1.12
|
||||
github.com/godbus/dbus/v5
|
||||
# github.com/gogo/protobuf v1.3.2
|
||||
@@ -842,8 +842,8 @@ github.com/xlab/treeprint
|
||||
# github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778
|
||||
## explicit; go 1.15
|
||||
github.com/xo/terminfo
|
||||
# github.com/zalando/go-keyring v0.2.1
|
||||
## explicit; go 1.13
|
||||
# github.com/zalando/go-keyring v0.2.3
|
||||
## explicit; go 1.18
|
||||
github.com/zalando/go-keyring
|
||||
github.com/zalando/go-keyring/secret_service
|
||||
# go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
|
||||
|
||||
Reference in New Issue
Block a user