diff --git a/Cargo.lock b/Cargo.lock
index a1b55f2a4461dee766d445a386755315beedfe32..dfd80a1ab6740f84324050cf8dedd9b5291fd77e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -81,6 +81,12 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
 
+[[package]]
+name = "arrayvec"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+
 [[package]]
 name = "atty"
 version = "0.2.14"
@@ -163,7 +169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
 dependencies = [
  "arrayref",
- "arrayvec",
+ "arrayvec 0.5.2",
  "constant_time_eq",
 ]
 
@@ -174,7 +180,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3"
 dependencies = [
  "arrayref",
- "arrayvec",
+ "arrayvec 0.5.2",
  "cc",
  "cfg-if 0.1.10",
  "constant_time_eq",
@@ -183,6 +189,20 @@ dependencies = [
  "rayon",
 ]
 
+[[package]]
+name = "blake3"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.7.2",
+ "cc",
+ "cfg-if 1.0.0",
+ "constant_time_eq",
+ "digest 0.10.3",
+]
+
 [[package]]
 name = "block-buffer"
 version = "0.7.3"
@@ -281,9 +301,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
+checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
 dependencies = [
  "libc",
 ]
@@ -299,9 +319,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.3"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdbfe11fe19ff083c48923cf179540e8cd0535903dc35e178a1fdeeb59aef51f"
+checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
 dependencies = [
  "cfg-if 1.0.0",
  "crossbeam-utils",
@@ -435,7 +455,7 @@ checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
 dependencies = [
  "atty",
  "humantime",
- "log 0.4.14",
+ "log 0.4.16",
  "regex",
  "termcolor",
 ]
@@ -486,12 +506,6 @@ dependencies = [
  "synstructure",
 ]
 
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
 [[package]]
 name = "fastrand"
 version = "1.7.0"
@@ -695,9 +709,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.120"
+version = "0.2.121"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad5c14e80759d0939d013e6ca49930e59fc53dd8e5009132f76240c179380c09"
+checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
 
 [[package]]
 name = "libflate"
@@ -729,14 +743,14 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
 dependencies = [
- "log 0.4.14",
+ "log 0.4.16",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -886,11 +900,11 @@ checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
 
 [[package]]
 name = "pkgar"
-version = "0.1.7"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "104bb0b89cb3244b3d99bb561ed56bb692584ec14333ee25b6e6e3f765a04a1c"
+checksum = "f4ae35c230411d75d887500217f7db5890ac918d4f2deddaa1a7b6435df18bdb"
 dependencies = [
- "blake3",
+ "blake3 0.3.8",
  "clap",
  "error-chain",
  "pkgar-core",
@@ -907,7 +921,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c79d8984e1dae9d1bfc30b90ead1d5279b90da97c1e566da6ff2d087f03ee02"
 dependencies = [
  "bitflags",
- "blake3",
+ "blake3 0.3.8",
  "plain",
  "sodiumoxide",
 ]
@@ -988,9 +1002,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
 dependencies = [
  "proc-macro2",
 ]
@@ -1101,7 +1115,7 @@ dependencies = [
 name = "redox_cookbook"
 version = "0.1.0"
 dependencies = [
- "blake3",
+ "blake3 1.3.1",
  "pbr",
  "pkgar",
  "pkgar-keys",
@@ -1178,9 +1192,9 @@ checksum = "c4e4404b4e54e59e7bb5f5236b61d8e822c2a77b2e955be8072002ff7ff8d69c"
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
+checksum = "8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0"
 dependencies = [
  "bitflags",
 ]
@@ -1233,7 +1247,7 @@ dependencies = [
  "fuse",
  "getrandom 0.2.5",
  "libc",
- "log 0.4.14",
+ "log 0.4.16",
  "redox_simple_endian",
  "redox_syscall",
  "seahash",
@@ -1311,7 +1325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "942b71057b31981152970d57399c25f72e27a6ee0d207a669d8304cabf44705b"
 dependencies = [
  "base64 0.9.3",
- "log 0.4.14",
+ "log 0.4.16",
  "ring",
  "sct",
  "untrusted",
@@ -1393,14 +1407,13 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.8.2"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
+checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
 dependencies = [
- "block-buffer 0.7.3",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug 0.2.3",
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest 0.10.3",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index f1d43249831a1d0f5d385eb8eb73603b8aafbb10..97f4359e9a1dbc4a7b7e1cd29d52ea0f25d5ec9b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,13 +20,13 @@ name = "cookbook"
 path = "src/lib.rs"
 
 [dependencies]
-blake3 = "0.3.4"
+blake3 = "1"
 pbr = "1.0.2"
 pkgar = "0.1.7"
 pkgar-keys = "0.1.0"
 redoxer = "0.2.25"
 serde = { version = "1.0.110", features = ["derive"] }
-sha2 = "0.8.2"
+sha2 = "0.10"
 termion = "1.5.5"
 toml = "0.5.6"
 walkdir = "2.3.1"
diff --git a/src/sha256.rs b/src/sha256.rs
index c424e00137c208d4eede991493ecd7857d209091..5f85a0d1ba8bd3b875643986c44da5556dd100f2 100644
--- a/src/sha256.rs
+++ b/src/sha256.rs
@@ -18,10 +18,10 @@ pub fn sha256<R: Read>(r: &mut R) -> Result<String> {
             break;
         }
 
-        hasher.input(&data[..count]);
+        hasher.update(&data[..count]);
     }
 
-    Ok(format!("{:x}", hasher.result()))
+    Ok(format!("{:x}", hasher.finalize()))
 }
 
 pub fn sha256_progress<P: AsRef<Path>>(path: P) -> Result<String> {