summaryrefslogtreecommitdiffstats
path: root/roseh.moe.go
diff options
context:
space:
mode:
Diffstat (limited to 'roseh.moe.go')
-rw-r--r--roseh.moe.go10
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