mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-08-29 13:26:35 -04:00
Implement initial GPG decryption
This commit is contained in:
@@ -23,8 +23,8 @@ func main() {
|
||||
if strings.HasPrefix(args[0], "/") {
|
||||
targetLocation := offline.EntryRoot + offline.PathSeparator + args[0][1:]
|
||||
if isFile, _ := offline.TargetIsFile(targetLocation, true); isFile {
|
||||
// TODO decrypt and display the entry
|
||||
fmt.Println("It's a file!")
|
||||
// TODO properly display entry contents (with headers)
|
||||
offline.DecryptGPG(targetLocation)
|
||||
} else {
|
||||
fmt.Println(offline.AnsiError + "Failed to read \"" + targetLocation + "\" - it is a directory" + offline.AnsiReset)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package offline
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// TODO GPG support is a temporary feature - it will be replaced with a different encryption scheme in the future
|
||||
// TODO These functions may continue to exist after that point, but consider them deprecated
|
||||
|
||||
// DecryptGPG decrypts a GPG-encrypted file and returns the contents as a slice of (trimmed) strings
|
||||
func DecryptGPG(targetLocation string) []string {
|
||||
cmd := exec.Command("gpg", "--pinentry-mode", "loopback", "-q", "-d", targetLocation)
|
||||
output, _ := cmd.CombinedOutput()
|
||||
outputSlice := strings.Split(string(output), "\n")
|
||||
for i, lineData := range outputSlice {
|
||||
outputSlice[i] = strings.TrimRight(lineData, " \t") // remove trailing whitespace
|
||||
}
|
||||
return outputSlice
|
||||
}
|
||||
Reference in New Issue
Block a user