From f67c9d242791a06c7cc7650e86d8be326cd1a394 Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Thu, 2 Dec 2021 23:57:21 +0100 Subject: [PATCH] feat: Implement encryption for more text header fields --- cmd/stbak/cmd/archive.go | 15 +++++++++++++++ cmd/stbak/cmd/recovery_fetch.go | 15 +++++++++++++++ pkg/pax/stfs.go | 12 +++++++----- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index 2cff6a9..62c356a 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -429,6 +429,21 @@ func encryptHeader( return err } + hdr.Linkname, err = encryptString(hdr.Linkname, encryptionFormat, pubkey) + if err != nil { + return err + } + + hdr.Uname, err = encryptString(hdr.Uname, encryptionFormat, pubkey) + if err != nil { + return err + } + + hdr.Gname, err = encryptString(hdr.Gname, encryptionFormat, pubkey) + if err != nil { + return err + } + return nil } diff --git a/cmd/stbak/cmd/recovery_fetch.go b/cmd/stbak/cmd/recovery_fetch.go index e32183f..f584a27 100644 --- a/cmd/stbak/cmd/recovery_fetch.go +++ b/cmd/stbak/cmd/recovery_fetch.go @@ -244,6 +244,21 @@ func decryptHeader( return err } + hdr.Linkname, err = decryptString(hdr.Linkname, encryptionFormat, privkey) + if err != nil { + return err + } + + hdr.Uname, err = decryptString(hdr.Uname, encryptionFormat, privkey) + if err != nil { + return err + } + + hdr.Gname, err = decryptString(hdr.Gname, encryptionFormat, privkey) + if err != nil { + return err + } + return nil } diff --git a/pkg/pax/stfs.go b/pkg/pax/stfs.go index 4911483..ee19303 100644 --- a/pkg/pax/stfs.go +++ b/pkg/pax/stfs.go @@ -3,21 +3,23 @@ package pax import "errors" const ( - STFSRecordVersion = "STFS.Version" + STFSPrefix = "STFS." + + STFSRecordVersion = STFSPrefix + "Version" STFSRecordVersion1 = "1" - STFSRecordAction = "STFS.Action" + STFSRecordAction = STFSPrefix + "Action" STFSRecordActionCreate = "CREATE" STFSRecordActionDelete = "DELETE" STFSRecordActionUpdate = "UPDATE" - STFSRecordReplacesContent = "STFS.ReplacesContent" + STFSRecordReplacesContent = STFSPrefix + "ReplacesContent" STFSRecordReplacesContentTrue = "true" STFSRecordReplacesContentFalse = "false" - STFSRecordReplacesName = "STFS.ReplacesName" + STFSRecordReplacesName = STFSPrefix + "ReplacesName" - STFSRecordUncompressedSize = "STFS.UncompressedSize" + STFSRecordUncompressedSize = STFSPrefix + "UncompressedSize" ) var (