From 5ece70fa6ddb1a65d5845988726da0b62091371d Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Wed, 17 Jun 2020 11:15:35 -0700 Subject: [PATCH] Use sha256 instead --- Cargo.toml | 2 +- src/main.rs | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3aa4ede..bc7e402 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ categories = ["command-line-utilities"] [dependencies] auto_from = "0.3" +hmac-sha256 = "0.1" itertools = "0.9" -md5 = "0.7" serde = "1.0" serde_derive = "1.0" toml = "0.5" diff --git a/src/main.rs b/src/main.rs index f271aff..ccb8415 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use auto_from::From; +use hmac_sha256::Hash; use itertools::Itertools; use serde_derive::Deserialize; use std::process::{self, Command}; @@ -31,6 +32,7 @@ impl Package { enum Error { Io(io::Error), Parsing(toml::de::Error), + Utf8(std::string::FromUtf8Error), } impl fmt::Display for Error { @@ -38,6 +40,7 @@ impl fmt::Display for Error { match self { Error::Io(e) => write!(f, "{}", e), Error::Parsing(e) => write!(f, "{}", e), + Error::Utf8(e) => write!(f, "{}", e), } } } @@ -53,8 +56,8 @@ fn work() -> Result<(), Error> { let config = cargo_config()?; release_build()?; tarball(&config.package)?; - let md5 = md5sum(&config.package)?; - let pkgbuild = pkgbuild(&config.package, &md5); + let sha256 = sha256sum(&config.package)?; + let pkgbuild = pkgbuild(&config.package, &sha256); fs::write("PKGBUILD", pkgbuild)?; Ok(()) @@ -79,8 +82,8 @@ license=('{}') arch=('x86_64') provides=('{}') options=('strip') -source=({}/releases/download/v$pkgver/{}-$pkgver-x86_64.tar.gz) -md5sums=('{}') +source=("{}/releases/download/v$pkgver/{}-$pkgver-x86_64.tar.gz") +sha256sums=('{}') package() {{ mkdir -p "$pkgdir/usr/bin/" @@ -128,8 +131,9 @@ fn tarball(package: &Package) -> Result<(), Error> { Ok(()) } -fn md5sum(package: &Package) -> Result { +fn sha256sum(package: &Package) -> Result { let bytes = fs::read(package.tarball())?; - let digest = md5::compute(bytes); - Ok(format!("{:x}", digest)) + let digest = Hash::hash(&bytes); + let hex = digest.iter().map(|u| format!("{:x}", u)).collect(); + Ok(hex) }