mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-09-06 00:57:15 -04:00
Implement initial GPG decryption
This commit is contained in:
@@ -23,8 +23,8 @@ func main() {
|
|||||||
if strings.HasPrefix(args[0], "/") {
|
if strings.HasPrefix(args[0], "/") {
|
||||||
targetLocation := offline.EntryRoot + offline.PathSeparator + args[0][1:]
|
targetLocation := offline.EntryRoot + offline.PathSeparator + args[0][1:]
|
||||||
if isFile, _ := offline.TargetIsFile(targetLocation, true); isFile {
|
if isFile, _ := offline.TargetIsFile(targetLocation, true); isFile {
|
||||||
// TODO decrypt and display the entry
|
// TODO properly display entry contents (with headers)
|
||||||
fmt.Println("It's a file!")
|
offline.DecryptGPG(targetLocation)
|
||||||
} else {
|
} else {
|
||||||
fmt.Println(offline.AnsiError + "Failed to read \"" + targetLocation + "\" - it is a directory" + offline.AnsiReset)
|
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