MCPcopy Create free account
hub / github.com/docker/cli / decodePrivKeyIfNecessary

Function decodePrivKeyIfNecessary

cmd/docker-trust/trust/key_load.go:105–119  ·  view source on GitHub ↗
(privPemBytes []byte, passRet notary.PassRetriever)

Source from the content-addressed store, hash-verified

103}
104
105func decodePrivKeyIfNecessary(privPemBytes []byte, passRet notary.PassRetriever) ([]byte, error) {
106 pemBlock, _ := pem.Decode(privPemBytes)
107 _, containsDEKInfo := pemBlock.Headers["DEK-Info"]
108 if containsDEKInfo || pemBlock.Type == "ENCRYPTED PRIVATE KEY" {
109 // if we do not have enough information to properly import, try to decrypt the key
110 if _, ok := pemBlock.Headers["path"]; !ok {
111 privKey, _, err := trustmanager.GetPasswdDecryptBytes(passRet, privPemBytes, "", "encrypted")
112 if err != nil {
113 return []byte{}, errors.New("could not decrypt key")
114 }
115 privPemBytes = privKey.Private()
116 }
117 }
118 return privPemBytes, nil
119}

Callers 1

loadPrivKeyBytesToStoreFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…