Windows: skip permissions check on key

This code was attempting to check Linux file permissions
to determine if the key was accessible by other users, which
doesn't work, and therefore prevented users on Windows
to load keys.

Skipping this check on Windows (correspinding tests
were already skipped).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2019-06-25 00:12:01 +02:00
parent b45b4b28f9
commit 15d361fd77
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
1 changed files with 9 additions and 6 deletions

View File

@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"runtime"
"github.com/docker/cli/cli" "github.com/docker/cli/cli"
"github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command"
@ -69,12 +70,14 @@ func loadPrivKey(streams command.Streams, keyPath string, options keyLoadOptions
} }
func getPrivKeyBytesFromPath(keyPath string) ([]byte, error) { func getPrivKeyBytesFromPath(keyPath string) ([]byte, error) {
fileInfo, err := os.Stat(keyPath) if runtime.GOOS != "windows" {
if err != nil { fileInfo, err := os.Stat(keyPath)
return nil, err if err != nil {
} return nil, err
if fileInfo.Mode()&nonOwnerReadWriteMask != 0 { }
return nil, fmt.Errorf("private key file %s must not be readable or writable by others", keyPath) if fileInfo.Mode()&nonOwnerReadWriteMask != 0 {
return nil, fmt.Errorf("private key file %s must not be readable or writable by others", keyPath)
}
} }
from, err := os.OpenFile(keyPath, os.O_RDONLY, notary.PrivExecPerms) from, err := os.OpenFile(keyPath, os.O_RDONLY, notary.PrivExecPerms)