}
pkgName := strings.ToLower(NormalizationRe.ReplaceAllString(pkgNames[0], "-"))
dirPath := filepath.Join(Root, pkgName)
- gpgSigsExpected := make(map[string]struct{})
now := time.Now().UTC()
var digestSHA256Expected []byte
for _, file := range r.MultipartForm.File["content"] {
filename := file.Filename
- gpgSigsExpected[filename+GPGSigExt] = struct{}{}
log.Println(r.RemoteAddr, "put", filename, "by", username)
path := filepath.Join(dirPath, filename)
if _, err = os.Stat(path); err == nil {
log.Println(r.RemoteAddr, filename, "good BLAKE2b-256 checksum received")
} else {
log.Println(r.RemoteAddr, filename, "bad BLAKE2b-256 checksum received")
- http.Error(w, "bad blake2_256 checksum", http.StatusBadRequest)
+ http.Error(w, "bad blake2b_256 checksum", http.StatusBadRequest)
os.Remove(dst.Name())
return
}
return
}
}
- for _, file := range r.MultipartForm.File["gpg_signature"] {
- filename := file.Filename
- if _, exists := gpgSigsExpected[filename]; !exists {
- log.Println(r.RemoteAddr, filename, "unexpected GPG signature filename")
- http.Error(w, "unexpected GPG signature filename", http.StatusBadRequest)
- return
- }
- delete(gpgSigsExpected, filename)
- log.Println(r.RemoteAddr, "put", filename, "by", username)
- path := filepath.Join(dirPath, filename)
- if _, err = os.Stat(path); err == nil {
- log.Println(r.RemoteAddr, filename, "already exists")
- http.Error(w, "already exists", http.StatusBadRequest)
- return
- }
- src, err := file.Open()
- if err != nil {
- log.Println("error", r.RemoteAddr, filename, err)
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- sig, err := io.ReadAll(src)
- src.Close()
- if err != nil {
- log.Println("error", r.RemoteAddr, filename, err)
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- if err = WriteFileSync(dirPath, path, sig, now); err != nil {
- log.Println("error", r.RemoteAddr, path, err)
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- }
var buf bytes.Buffer
wr := recfile.NewWriter(&buf)
})
}
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
}
}