in internal/core/startup/installers.go [322:367]
func verifySha256(checksumFile string, checkSumUrl string, filePath string) {
err := utils.DownloadFile(checksumFile, checkSumUrl, getInternalAuth(), nil)
if err != nil {
log.Fatalf("Error while downloading checksum for IDE: %v", err)
}
defer func(filePath string) {
err = os.Remove(filePath)
if err != nil {
log.Warning("Error while removing temporary file: " + err.Error())
}
}(checksumFile)
checksum, err := os.ReadFile(checksumFile)
if err != nil {
log.Fatalf("Error occurred during reading checksum file: %v", err)
}
file, err := os.Open(filePath)
if err != nil {
log.Fatalf("Error while opening IDE archive: %v", err)
}
defer func(file *os.File) {
err := file.Close()
if err != nil {
log.Fatalf("Error while closing IDE archive: %v", err)
}
}(file)
h := sha256.New()
if _, err := io.Copy(h, file); err != nil {
log.Fatalf("Error while computing checksum of IDE archive: %v", err)
}
actual := hex.EncodeToString(h.Sum(nil))
expected := strings.SplitN(string(checksum), " ", 2)[0]
if actual != expected {
err = os.Remove(filePath)
if err != nil {
log.Warning("Error while removing temporary file: " + err.Error())
}
log.Fatalf("Checksums doesn't match. Expected: %s, Actual: %s", expected, actual)
}
log.Info("Checksum of downloaded IDE was verified")
}