Skip to content

[Q] Can I perform encryption without File Writer? #18

Description

@sg-acloset

First of all, thank you for creating such a wonderful library.

If I run it as written in the README, it works fine.
However, if I try with a local buffer as follows, it doesn't seem to work the same way.

package main

import (
	"bytes"
	"io"
	"log"
	"os"

	"github.com/alexmullins/zip"
)

func MakeZipWithPassword(contents []byte, password string, originalFilename string) []byte {
	bytesContents := []byte(contents)

	var buffer bytes.Buffer

	// writer, err := os.Create(`./test.zip`)
	// if err != nil {
	// 	log.Fatalln(err)
	// }

	zipWriter := zip.NewWriter(&buffer)
	defer zipWriter.Close()

	encryptedWriter, err := zipWriter.Encrypt(originalFilename, password)
	if err != nil {
		log.Fatal(err)
	}

	_, err = io.Copy(encryptedWriter, bytes.NewReader(bytesContents))
	if err != nil {
		log.Fatal(err)
	}
	if err := zipWriter.Flush(); err != nil {
		log.Fatal(err)
	}

	return buffer.Bytes()
}

func main() {
	contents := "Hello World!"
	password := "password"
	originalFilename := "asdf.txt"

	zipFile := MakeZipWithPassword([]byte(contents), password, originalFilename)

	os.WriteFile("asdf.zip", []byte(zipFile), 0644)

}

Maybe I used something wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions