summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2024-10-04 13:33:51 +0200
committerMarc Vertes <mvertes@free.fr>2024-10-04 13:33:51 +0200
commitd04ff4c23a6c1a64fc0488c5bf5af7a4ceffd4a3 (patch)
tree9e97806d1187c2471b61549444b36dfd8bd6ea9a
parenta5f74f1b1618863b8489bd6fede8222cb9e6d400 (diff)
fix unchunkify
-rw-r--r--main.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/main.go b/main.go
index 99239b7..edb32fe 100644
--- a/main.go
+++ b/main.go
@@ -222,10 +222,17 @@ func unchunkify(root, name string, single bool, key []byte) ([]byte, error) {
}
sums := split(d, 32)
raw := []byte{}
- for _, sum := range sums {
- log.Printf("sum %x\n", sum)
+ for i, sum := range sums {
+ d, err := unflatenc(root, fmt.Sprintf("%x", sum), key)
+ if err != nil {
+ return d, err
+ }
+ log.Printf("chunk %d %d %x\n", i, len(d), sum)
+ raw = append(raw, d...)
}
- return raw, nil
+ sum := sha256.Sum256(raw)
+ log.Printf("raw %d %x\n", len(raw), sum)
+ return nil, nil
}
func flatenc(root, name string, data, key []byte) error {
@@ -239,7 +246,7 @@ func flatenc(root, name string, data, key []byte) error {
return fmt.Errorf("flatenc flatten close: %w", err)
}
- // Encrypt and authentify flattened data.
+ // Encrypt and authentify.
cb, err := aes.NewCipher(key)
if err != nil {
return fmt.Errorf("flatenc cipher: %w", err)
@@ -255,7 +262,7 @@ func flatenc(root, name string, data, key []byte) error {
log.Printf("iv: %d %x\n", len(iv), iv)
enc := aesgcm.Seal(nil, iv, buf.Bytes(), nil)
- // Write the result to a file named from checksum of original content.
+ // Write to a file named with original checksum.
return writeCksumFile(filepath.Join(root, ".bb", "chunks"), name, append(iv, enc...))
}