{"id":"4e19c5c924f8981b","repo":"docker/cli","slug":"error-importing-key-from-s-w","errorCode":null,"errorMessage":"error importing key from %s: %w","messagePattern":"error importing key from (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/docker-trust/trust/key_load.go","lineNumber":67,"sourceCode":"\t\treturn fmt.Errorf(\"key name \\\"%s\\\" must start with lowercase alphanumeric characters and can include \\\"-\\\" or \\\"_\\\" after the first character\", options.keyName)\n\t}\n\ttrustDir := trust.GetTrustDirectory()\n\tkeyFileStore, err := storage.NewPrivateKeyFileStorage(trustDir, notary.KeyExtension)\n\tif err != nil {\n\t\treturn err\n\t}\n\tprivKeyImporters := []trustmanager.Importer{keyFileStore}\n\n\t_, _ = fmt.Fprintf(streams.Out(), \"Loading key from \\\"%s\\\"...\\n\", keyPath)\n\n\t// Always use a fresh passphrase retriever for each import\n\tpassRet := trust.GetPassphraseRetriever(streams.In(), streams.Out())\n\tkeyBytes, err := getPrivKeyBytesFromPath(keyPath)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"refusing to load key from %s: %w\", keyPath, err)\n\t}\n\tif err := loadPrivKeyBytesToStore(keyBytes, privKeyImporters, keyPath, options.keyName, passRet); err != nil {\n\t\treturn fmt.Errorf(\"error importing key from %s: %w\", keyPath, err)\n\t}\n\t_, _ = fmt.Fprintln(streams.Out(), \"Successfully imported key from\", keyPath)\n\treturn nil\n}\n\nfunc getPrivKeyBytesFromPath(keyPath string) ([]byte, error) {\n\tif runtime.GOOS != \"windows\" {\n\t\tfileInfo, err := os.Stat(keyPath)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif fileInfo.Mode()&nonOwnerReadWriteMask != 0 {\n\t\t\treturn nil, fmt.Errorf(\"private key file %s must not be readable or writable by others\", keyPath)\n\t\t}\n\t}\n\n\tfrom, err := os.OpenFile(keyPath, os.O_RDONLY, notary.PrivExecPerms)\n\tif err != nil {","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/docker/cli/blob/e9452d6e785f6e365712b9d71bd7517591773c86/cmd/docker-trust/trust/key_load.go#L49-L85","documentation":"Error \"error importing key from %s: %w\" thrown in docker/cli.","triggerScenarios":"Thrown at cmd/docker-trust/trust/key_load.go:67 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"e9452d6e785f6e365712b9d71bd7517591773c86","analyzedAt":"2026-08-01T07:09:22.474Z","schemaVersion":2}