diff options
| -rw-r--r-- | roseh.moe.go | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/roseh.moe.go b/roseh.moe.go index cd443a6..49f62d3 100644 --- a/roseh.moe.go +++ b/roseh.moe.go @@ -251,17 +251,16 @@ const blockSize = 4 * 1024 * 1024 func writeHoleFile(part *multipart.Part) (string, error) { hole := makeHole() - key, err := hkdf.Key(sha256.New, []byte(hole), nil, "", 48) + primaryKey, err := hkdf.Key(sha256.New, []byte(hole), nil, "", 32) if err != nil { return "", err } - primaryKey, encryptionKey := key[:32], key[32:] f, err := os.Create(fmt.Sprintf("%s/%x", *holeTempDir, primaryKey)) if err != nil { return "", err } defer f.Close() - w := oae2.NewWriter(f, encryptionKey, blockSize, nil) + w := oae2.NewWriter(f, []byte(hole), blockSize, nil) fileName := part.FileName() buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, uint64(len(fileName))) @@ -296,11 +295,10 @@ func (r *offsetReader) Seek(offset int64, whence int) (int64, error) { var errNoHole = errors.New("no such hole") func readHoleFile(w http.ResponseWriter, req *http.Request, hole string) error { - key, err := hkdf.Key(sha256.New, []byte(hole), nil, "", 48) + primaryKey, err := hkdf.Key(sha256.New, []byte(hole), nil, "", 32) if err != nil { return err } - primaryKey, encryptionKey := key[:32], key[32:] f, err := os.Open(fmt.Sprintf("%s/%x", *holeTempDir, primaryKey)) if err != nil { if errors.Is(err, fs.ErrNotExist) { @@ -309,7 +307,7 @@ func readHoleFile(w http.ResponseWriter, req *http.Request, hole string) error { return err } defer f.Close() - r := oae2.NewReader(f, encryptionKey, blockSize, nil) + r := oae2.NewReader(f, []byte(hole), blockSize, nil) buf := make([]byte, 8) if _, err := io.ReadFull(r, buf); err != nil { return err |
