mirror of https://github.com/docker/docs.git
Rebased from master
Signed-off-by: Diogo Monica <diogo@docker.com>
This commit is contained in:
parent
4dfe45d64e
commit
f7ea67cfab
|
@ -41,7 +41,7 @@ type PassphraseRetriever func(keyId, alias string, createNew bool, attempts int)
|
|||
type KeyFileStore struct {
|
||||
sync.Mutex
|
||||
SimpleFileStore
|
||||
PassphraseRetriever
|
||||
passphrase.Retriever
|
||||
cachedKeys map[string]*cachedKey
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ type KeyFileStore struct {
|
|||
type KeyMemoryStore struct {
|
||||
sync.Mutex
|
||||
MemoryFileStore
|
||||
PassphraseRetriever
|
||||
passphrase.Retriever
|
||||
cachedKeys map[string]*cachedKey
|
||||
}
|
||||
|
||||
|
@ -63,22 +63,22 @@ func NewKeyFileStore(baseDir string, passphraseRetriever passphrase.Retriever) (
|
|||
cachedKeys := make(map[string]*cachedKey)
|
||||
|
||||
return &KeyFileStore{SimpleFileStore: *fileStore,
|
||||
PassphraseRetriever: passphraseRetriever,
|
||||
cachedKeys: cachedKeys}, nil
|
||||
Retriever: passphraseRetriever,
|
||||
cachedKeys: cachedKeys}, nil
|
||||
}
|
||||
|
||||
// AddKey stores the contents of a PEM-encoded private key as a PEM block
|
||||
func (s *KeyFileStore) AddKey(name, alias string, privKey data.PrivateKey) error {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
return addKey(s, s.PassphraseRetriever, s.cachedKeys, name, alias, privKey)
|
||||
return addKey(s, s.Retriever, s.cachedKeys, name, alias, privKey)
|
||||
}
|
||||
|
||||
// GetKey returns the PrivateKey given a KeyID
|
||||
func (s *KeyFileStore) GetKey(name string) (data.PrivateKey, string, error) {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
return getKey(s, s.PassphraseRetriever, s.cachedKeys, name)
|
||||
return getKey(s, s.Retriever, s.cachedKeys, name)
|
||||
}
|
||||
|
||||
// ListKeys returns a list of unique PublicKeys present on the KeyFileStore.
|
||||
|
@ -101,22 +101,22 @@ func NewKeyMemoryStore(passphraseRetriever passphrase.Retriever) *KeyMemoryStore
|
|||
cachedKeys := make(map[string]*cachedKey)
|
||||
|
||||
return &KeyMemoryStore{MemoryFileStore: *memStore,
|
||||
PassphraseRetriever: passphraseRetriever,
|
||||
cachedKeys: cachedKeys}
|
||||
Retriever: passphraseRetriever,
|
||||
cachedKeys: cachedKeys}
|
||||
}
|
||||
|
||||
// AddKey stores the contents of a PEM-encoded private key as a PEM block
|
||||
func (s *KeyMemoryStore) AddKey(name, alias string, privKey data.PrivateKey) error {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
return addKey(s, s.PassphraseRetriever, s.cachedKeys, name, alias, privKey)
|
||||
return addKey(s, s.Retriever, s.cachedKeys, name, alias, privKey)
|
||||
}
|
||||
|
||||
// GetKey returns the PrivateKey given a KeyID
|
||||
func (s *KeyMemoryStore) GetKey(name string) (data.PrivateKey, string, error) {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
return getKey(s, s.PassphraseRetriever, s.cachedKeys, name)
|
||||
return getKey(s, s.Retriever, s.cachedKeys, name)
|
||||
}
|
||||
|
||||
// ListKeys returns a list of unique PublicKeys present on the KeyFileStore.
|
||||
|
@ -133,7 +133,7 @@ func (s *KeyMemoryStore) RemoveKey(name string) error {
|
|||
return removeKey(s, s.cachedKeys, name)
|
||||
}
|
||||
|
||||
func addKey(s LimitedFileStore, passphraseRetriever PassphraseRetriever, cachedKeys map[string]*cachedKey, name, alias string, privKey data.PrivateKey) error {
|
||||
func addKey(s LimitedFileStore, passphraseRetriever passphrase.Retriever, cachedKeys map[string]*cachedKey, name, alias string, privKey data.PrivateKey) error {
|
||||
pemPrivKey, err := KeyToPEM(privKey)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -186,7 +186,7 @@ func getKeyAlias(s LimitedFileStore, keyID string) (string, error) {
|
|||
}
|
||||
|
||||
// GetKey returns the PrivateKey given a KeyID
|
||||
func getKey(s LimitedFileStore, passphraseRetriever PassphraseRetriever, cachedKeys map[string]*cachedKey, name string) (data.PrivateKey, string, error) {
|
||||
func getKey(s LimitedFileStore, passphraseRetriever passphrase.Retriever, cachedKeys map[string]*cachedKey, name string) (data.PrivateKey, string, error) {
|
||||
cachedKeyEntry, ok := cachedKeys[name]
|
||||
if ok {
|
||||
return cachedKeyEntry.key, cachedKeyEntry.alias, nil
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/docker/notary/pkg/passphrase"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
@ -295,7 +296,7 @@ func TestKeysAreCached(t *testing.T) {
|
|||
assert.NoError(t, err, "failed to create a temporary directory")
|
||||
defer os.RemoveAll(tempBaseDir)
|
||||
|
||||
var countingPassphraseRetriever PassphraseRetriever
|
||||
var countingPassphraseRetriever passphrase.Retriever
|
||||
|
||||
numTimesCalled := 0
|
||||
countingPassphraseRetriever = func(keyId, alias string, createNew bool, attempts int) (passphrase string, giveup bool, err error) {
|
||||
|
|
Loading…
Reference in New Issue