99designs / 99designs/keyring

Using file BackendType and FixedStringPrompt creates file, but does not prompt for password

Aberta
#124 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Go
Estrelas
657
Forks
155
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

I would like to prompt the user for a password during encrypted file creation, but using FixedStringPrompt does not do so. Using TerminalPrompt does not work as it causes an error "multiple-value keyring.TerminalPrompt("Please select a password") (value of type (string, error)) in single-value context"

```
func SetFileStore(fileSaveDir *C.char, fileName *C.char, data *C.char) *C.char {
saveDir := C.GoString(fileSaveDir)
// saveDir, _ := os.Getwd()

ring, openErr := keyring.Open(keyring.Config{
AllowedBackends: []keyring.BackendType{"file"},
FilePasswordFunc: keyring.FixedStringPrompt("Please select a password"),
FileDir: saveDir,
})
if openErr != nil {
openErrStr := string(openErr.Error())
returnErrStr := (*C.char)(C.CString(openErrStr))
defer C.free(unsafe.Pointer(returnErrStr))
return returnErrStr
}

dataStr := C.GoString(data)
fileNameStr := C.GoString(fileName)
setErr := ring.Set(keyring.Item{
Key: fileNameStr,
Data: []byte(dataStr),
})
if setErr != nil {
errStr := string(setErr.Error())
returnErrStr := (*C.char)(C.CString(errStr))
defer C.free(unsafe.Pointer(returnErrStr))
return returnErrStr
}

fileItem, getErr := ring.Get(fileNameStr)
if getErr != nil {
errStr := string(getErr.Error())
returnErrStr := (*C.char)(C.CString(errStr))
defer C.free(unsafe.Pointer(returnErrStr))
return returnErrStr
}
if string(fileItem.Data) != dataStr {
returnErrStr := (*C.char)(C.CString("File was not found"))
defer C.free(unsafe.Pointer(returnErrStr))
return returnErrStr
}

result := (*C.char)(C.CString(""))
defer C.free(unsafe.Pointer(result))
return result
}
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.