From d04ff4c23a6c1a64fc0488c5bf5af7a4ceffd4a3 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Fri, 4 Oct 2024 13:33:51 +0200 Subject: fix unchunkify --- main.go | 17 ++++++++++++----- 1 file 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...)) } -- cgit v1.2.3