Upgrade dependencies

Signed-off-by: Mathias Hall-Andersen <mathias@hall-andersen.dk>
This commit is contained in:
Mathias Hall-Andersen
2021-01-05 22:52:27 +01:00
parent 9b53a9d1a6
commit 1fb7975d3d
6 changed files with 226 additions and 378 deletions

482
Cargo.lock generated
View File

@@ -17,22 +17,13 @@ checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
[[package]] [[package]]
name = "aead" name = "aead"
version = "0.2.0" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cf01b9b56e767bb57b94ebf91a58b338002963785cdd7013e21c0d4679471e4" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
dependencies = [ dependencies = [
"generic-array", "generic-array",
] ]
[[package]]
name = "ahash"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
dependencies = [
"const-random",
]
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "0.7.13" version = "0.7.13"
@@ -59,12 +50,6 @@ dependencies = [
"winapi 0.3.9", "winapi 0.3.9",
] ]
[[package]]
name = "autocfg"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
[[package]] [[package]]
name = "autocfg" name = "autocfg"
version = "1.0.1" version = "1.0.1"
@@ -78,7 +63,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
dependencies = [ dependencies = [
"addr2line", "addr2line",
"cfg-if", "cfg-if 0.1.10",
"libc", "libc",
"miniz_oxide", "miniz_oxide",
"object", "object",
@@ -114,12 +99,11 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]] [[package]]
name = "blake2" name = "blake2"
version = "0.8.1" version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4"
dependencies = [ dependencies = [
"byte-tools", "crypto-mac 0.8.0",
"crypto-mac",
"digest", "digest",
"opaque-debug", "opaque-debug",
] ]
@@ -130,12 +114,6 @@ version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
[[package]]
name = "byte-tools"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
version = "1.3.4" version = "1.3.4"
@@ -155,28 +133,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]] [[package]]
name = "chacha20" name = "cfg-if"
version = "0.3.4" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6a7ae4c498f8447d86baef0fa0831909333f558866fabcb21600625ac5a31c7" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chacha20"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed8738f14471a99f0e316c327e68fc82a3611cc2895fcb604b89eedaf8f39d95"
dependencies = [ dependencies = [
"stream-cipher", "cipher",
"zeroize", "zeroize",
] ]
[[package]] [[package]]
name = "chacha20poly1305" name = "chacha20poly1305"
version = "0.4.1" version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48901293601228db2131606f741db33561f7576b5d19c99cd66222380a7dc863" checksum = "af1fc18e6d90c40164bf6c317476f2a98f04661e310e79830366b7e914c58a8e"
dependencies = [ dependencies = [
"aead", "aead",
"chacha20", "chacha20",
"cipher",
"poly1305", "poly1305",
"stream-cipher",
"zeroize", "zeroize",
] ]
[[package]]
name = "cipher"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
dependencies = [
"generic-array",
]
[[package]] [[package]]
name = "clear_on_drop" name = "clear_on_drop"
version = "0.2.4" version = "0.2.4"
@@ -187,33 +180,10 @@ dependencies = [
] ]
[[package]] [[package]]
name = "cloudabi" name = "cpuid-bool"
version = "0.0.3" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
dependencies = [
"bitflags 1.2.1",
]
[[package]]
name = "const-random"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a"
dependencies = [
"const-random-macro",
"proc-macro-hack",
]
[[package]]
name = "const-random-macro"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a"
dependencies = [
"getrandom",
"proc-macro-hack",
]
[[package]] [[package]]
name = "cpuprofiler" name = "cpuprofiler"
@@ -228,73 +198,82 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-channel" name = "crossbeam-channel"
version = "0.4.4" version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
dependencies = [ dependencies = [
"cfg-if 1.0.0",
"crossbeam-utils", "crossbeam-utils",
"maybe-uninit",
] ]
[[package]] [[package]]
name = "crossbeam-utils" name = "crossbeam-utils"
version = "0.7.2" version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
dependencies = [ dependencies = [
"autocfg 1.0.1", "autocfg",
"cfg-if", "cfg-if 1.0.0",
"lazy_static", "lazy_static",
] ]
[[package]] [[package]]
name = "crypto-mac" name = "crypto-mac"
version = "0.7.0" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
dependencies = [ dependencies = [
"generic-array", "generic-array",
"subtle 1.0.0", "subtle",
]
[[package]]
name = "crypto-mac"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
dependencies = [
"generic-array",
"subtle",
] ]
[[package]] [[package]]
name = "curve25519-dalek" name = "curve25519-dalek"
version = "2.1.0" version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"digest", "digest",
"rand_core 0.5.1", "rand_core",
"subtle 2.3.0", "subtle",
"zeroize", "zeroize",
] ]
[[package]] [[package]]
name = "dashmap" name = "dashmap"
version = "3.11.10" version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" checksum = "4b937cd1fbd1f194ac842196bd2529f21618088ee6d8bff6a46ece611451c96b"
dependencies = [ dependencies = [
"ahash", "cfg-if 1.0.0",
"cfg-if",
"num_cpus", "num_cpus",
] ]
[[package]] [[package]]
name = "digest" name = "digest"
version = "0.8.1" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
dependencies = [ dependencies = [
"generic-array", "generic-array",
] ]
[[package]] [[package]]
name = "env_logger" name = "env_logger"
version = "0.7.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e"
dependencies = [ dependencies = [
"atty", "atty",
"humantime", "humantime",
@@ -319,12 +298,6 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
[[package]] [[package]]
name = "fuchsia-zircon" name = "fuchsia-zircon"
version = "0.3.3" version = "0.3.3"
@@ -343,11 +316,12 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]] [[package]]
name = "generic-array" name = "generic-array"
version = "0.12.3" version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
dependencies = [ dependencies = [
"typenum", "typenum",
"version_check",
] ]
[[package]] [[package]]
@@ -356,7 +330,7 @@ version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
"libc", "libc",
"wasi", "wasi",
] ]
@@ -396,26 +370,32 @@ checksum = "b543d59589bf4d94a3dd2294162b5eeafc969962a675d544e597b03233869180"
dependencies = [ dependencies = [
"mio", "mio",
"mio-extras", "mio-extras",
"spin", "spin 0.5.2",
] ]
[[package]] [[package]]
name = "hmac" name = "hmac"
version = "0.7.1" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
dependencies = [ dependencies = [
"crypto-mac", "crypto-mac 0.10.0",
"digest", "digest",
] ]
[[package]] [[package]]
name = "humantime" name = "humantime"
version = "1.3.0" version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
[[package]]
name = "instant"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
dependencies = [ dependencies = [
"quick-error", "cfg-if 1.0.0",
] ]
[[package]] [[package]]
@@ -428,10 +408,16 @@ dependencies = [
] ]
[[package]] [[package]]
name = "ipnetwork" name = "ip_network_table-deps-treebitmap"
version = "0.15.1" version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69dd5e3613374e74da81c251750153abe3bd0ad17641ea63d43d1e21d0dbd4d" checksum = "8e537132deb99c0eb4b752f0346b6a836200eaaa3516dd7e5514b63930a09e5d"
[[package]]
name = "ipnetwork"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@@ -475,9 +461,9 @@ checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
version = "0.3.4" version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
dependencies = [ dependencies = [
"scopeguard", "scopeguard",
] ]
@@ -497,15 +483,9 @@ version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
] ]
[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.3.3" version = "2.3.3"
@@ -519,7 +499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9" checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9"
dependencies = [ dependencies = [
"adler", "adler",
"autocfg 1.0.1", "autocfg",
] ]
[[package]] [[package]]
@@ -528,7 +508,7 @@ version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
"fuchsia-zircon", "fuchsia-zircon",
"fuchsia-zircon-sys", "fuchsia-zircon-sys",
"iovec", "iovec",
@@ -571,7 +551,7 @@ version = "0.2.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853" checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
"libc", "libc",
"winapi 0.3.9", "winapi 0.3.9",
] ]
@@ -582,7 +562,7 @@ version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
dependencies = [ dependencies = [
"autocfg 1.0.1", "autocfg",
] ]
[[package]] [[package]]
@@ -609,28 +589,29 @@ checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
[[package]] [[package]]
name = "opaque-debug" name = "opaque-debug"
version = "0.2.3" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]] [[package]]
name = "parking_lot" name = "parking_lot"
version = "0.10.2" version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
dependencies = [ dependencies = [
"instant",
"lock_api", "lock_api",
"parking_lot_core", "parking_lot_core",
] ]
[[package]] [[package]]
name = "parking_lot_core" name = "parking_lot_core"
version = "0.7.2" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 1.0.0",
"cloudabi", "instant",
"libc", "libc",
"redox_syscall", "redox_syscall",
"smallvec", "smallvec",
@@ -645,42 +626,42 @@ checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
[[package]] [[package]]
name = "pnet" name = "pnet"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c08c2c6c26481fcbe49dc4405baedf47151f859c5a45d3f254c2ff74ce51cf0" checksum = "b657d5b9a98a2c81b82549922b8b15984e49f8120cd130b11a09f81b9b55d633"
dependencies = [ dependencies = [
"ipnetwork", "ipnetwork",
"pnet_base", "pnet_base",
"pnet_datalink", "pnet_datalink",
"pnet_packet", "pnet_packet",
"pnet_sys 0.25.0", "pnet_sys",
"pnet_transport", "pnet_transport",
] ]
[[package]] [[package]]
name = "pnet_base" name = "pnet_base"
version = "0.22.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4df28acf2fcc77436dd2b91a9a0c2bb617f9ca5f2acefee1a4135058b9f9801f" checksum = "4e4688aa497ef62129f302a5800ebde67825f8ff129f43690ca84099f6620bed"
[[package]] [[package]]
name = "pnet_datalink" name = "pnet_datalink"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "545f8df67cbc53438f37f56e68ae5ca49beb3990e9fd7e9e214c8ffd36c0e0ea" checksum = "59001c9c4d9d23bf2f61afaaf134a766fd6932ba2557c606b9112157053b9ac7"
dependencies = [ dependencies = [
"ipnetwork", "ipnetwork",
"libc", "libc",
"pnet_base", "pnet_base",
"pnet_sys 0.26.0", "pnet_sys",
"winapi 0.2.8", "winapi 0.3.9",
] ]
[[package]] [[package]]
name = "pnet_macros" name = "pnet_macros"
version = "0.26.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbbd5c52c6e04aa720400f9c71cd0e8bcb38cd13421d5caabd9035e9efa47de9" checksum = "d894a90dbdbe976e624453fc31b1912f658083778329442dda1cca94f76a3e76"
dependencies = [ dependencies = [
"regex", "regex",
"syntex", "syntex",
@@ -689,18 +670,18 @@ dependencies = [
[[package]] [[package]]
name = "pnet_macros_support" name = "pnet_macros_support"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e586854ba703c15f74c486e1a46624566b47f1f61cc8a6b02c6bbe5e34a383b" checksum = "4b99269a458570bc06a9132254349f6543d9abc92e88b68d8de934aac9481f6c"
dependencies = [ dependencies = [
"pnet_base", "pnet_base",
] ]
[[package]] [[package]]
name = "pnet_packet" name = "pnet_packet"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c44c075c6d4f2e814dba621a999838e4a4f749f6117024f52b05b3c559a4fd17" checksum = "33f8238f4eb897a55ca06510cd71afb5b5ca7b4ff2d7188f1ca855fc1710133e"
dependencies = [ dependencies = [
"glob", "glob",
"pnet_base", "pnet_base",
@@ -711,44 +692,33 @@ dependencies = [
[[package]] [[package]]
name = "pnet_sys" name = "pnet_sys"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82f881a6d75ac98c5541db6144682d1773bb14c6fc50c6ebac7086c8f7f23c29" checksum = "7589e4c4e7ed72a3ffdff8a65d3bea84e8c3a23e19d0a10e8f45efdf632fff15"
dependencies = [ dependencies = [
"libc", "libc",
"winapi 0.2.8", "winapi 0.3.9",
"ws2_32-sys",
]
[[package]]
name = "pnet_sys"
version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73f0de0c52609f157b25d79ce24d9016ab1bbf10cde761397200d634a833872c"
dependencies = [
"libc",
"winapi 0.2.8",
"ws2_32-sys",
] ]
[[package]] [[package]]
name = "pnet_transport" name = "pnet_transport"
version = "0.25.0" version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b75ccaee7b5daba9f9a7d47bceeb73cc32edde9952dc5409460d6621ec667b6" checksum = "326abdfd2e70e8e943bd58087b59686de170cac050a3b19c9fcc84db01690af5"
dependencies = [ dependencies = [
"libc", "libc",
"pnet_base", "pnet_base",
"pnet_packet", "pnet_packet",
"pnet_sys 0.25.0", "pnet_sys",
] ]
[[package]] [[package]]
name = "poly1305" name = "poly1305"
version = "0.5.2" version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5829f50f48e9ddb79f3f7c3097029d0caee30f8286accb241416df603b080b8" checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8"
dependencies = [ dependencies = [
"cpuid-bool",
"universal-hash", "universal-hash",
] ]
@@ -758,12 +728,6 @@ version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
[[package]]
name = "proc-macro-hack"
version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.21" version = "1.0.21"
@@ -775,9 +739,9 @@ dependencies = [
[[package]] [[package]]
name = "proptest" name = "proptest"
version = "0.9.6" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01c477819b845fe023d33583ebf10c9f62518c8d79a0960ba5c36d6ac8a55a5b" checksum = "12e6c80c1139113c28ee4670dc50cc42915228b51f56a9e407f0ec60f966646f"
dependencies = [ dependencies = [
"bit-set", "bit-set",
"bitflags 1.2.1", "bitflags 1.2.1",
@@ -785,8 +749,8 @@ dependencies = [
"lazy_static", "lazy_static",
"num-traits", "num-traits",
"quick-error", "quick-error",
"rand 0.6.5", "rand",
"rand_chacha 0.1.1", "rand_chacha",
"rand_xorshift", "rand_xorshift",
"regex-syntax", "regex-syntax",
"rusty-fork", "rusty-fork",
@@ -808,25 +772,6 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "rand"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
dependencies = [
"autocfg 0.1.7",
"libc",
"rand_chacha 0.1.1",
"rand_core 0.4.2",
"rand_hc 0.1.0",
"rand_isaac",
"rand_jitter",
"rand_os",
"rand_pcg",
"rand_xorshift",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.7.3" version = "0.7.3"
@@ -835,19 +780,9 @@ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [ dependencies = [
"getrandom", "getrandom",
"libc", "libc",
"rand_chacha 0.2.2", "rand_chacha",
"rand_core 0.5.1", "rand_core",
"rand_hc 0.2.0", "rand_hc",
]
[[package]]
name = "rand_chacha"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
dependencies = [
"autocfg 0.1.7",
"rand_core 0.3.1",
] ]
[[package]] [[package]]
@@ -857,24 +792,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core 0.5.1", "rand_core",
] ]
[[package]]
name = "rand_core"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
dependencies = [
"rand_core 0.4.2",
]
[[package]]
name = "rand_core"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
[[package]] [[package]]
name = "rand_core" name = "rand_core"
version = "0.5.1" version = "0.5.1"
@@ -884,84 +804,22 @@ dependencies = [
"getrandom", "getrandom",
] ]
[[package]]
name = "rand_hc"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
dependencies = [
"rand_core 0.3.1",
]
[[package]] [[package]]
name = "rand_hc" name = "rand_hc"
version = "0.2.0" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [ dependencies = [
"rand_core 0.5.1", "rand_core",
]
[[package]]
name = "rand_isaac"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
dependencies = [
"rand_core 0.3.1",
]
[[package]]
name = "rand_jitter"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
dependencies = [
"libc",
"rand_core 0.4.2",
"winapi 0.3.9",
]
[[package]]
name = "rand_os"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
dependencies = [
"cloudabi",
"fuchsia-cprng",
"libc",
"rand_core 0.4.2",
"rdrand",
"winapi 0.3.9",
]
[[package]]
name = "rand_pcg"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
dependencies = [
"autocfg 0.1.7",
"rand_core 0.4.2",
] ]
[[package]] [[package]]
name = "rand_xorshift" name = "rand_xorshift"
version = "0.1.1" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8"
dependencies = [ dependencies = [
"rand_core 0.3.1", "rand_core",
]
[[package]]
name = "rdrand"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
dependencies = [
"rand_core 0.3.1",
] ]
[[package]] [[package]]
@@ -1006,7 +864,7 @@ dependencies = [
"cc", "cc",
"libc", "libc",
"once_cell", "once_cell",
"spin", "spin 0.5.2",
"untrusted", "untrusted",
"web-sys", "web-sys",
"winapi 0.3.9", "winapi 0.3.9",
@@ -1026,9 +884,9 @@ checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
[[package]] [[package]]
name = "rusty-fork" name = "rusty-fork"
version = "0.2.2" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
dependencies = [ dependencies = [
"fnv", "fnv",
"quick-error", "quick-error",
@@ -1067,25 +925,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]] [[package]]
name = "stream-cipher" name = "spin"
version = "0.3.2" version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" checksum = "652ac3743312871a5fb703f0337e68ffa3cdc28c863efad0b8dc858fa10c991b"
dependencies = [
"generic-array",
]
[[package]] [[package]]
name = "subtle" name = "subtle"
version = "1.0.0" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
[[package]]
name = "subtle"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd"
[[package]] [[package]]
name = "syn" name = "syn"
@@ -1165,9 +1014,9 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
"libc", "libc",
"rand 0.7.3", "rand",
"redox_syscall", "redox_syscall",
"remove_dir_all", "remove_dir_all",
"winapi 0.3.9", "winapi 0.3.9",
@@ -1201,11 +1050,6 @@ dependencies = [
"lazy_static", "lazy_static",
] ]
[[package]]
name = "treebitmap"
version = "0.5.0"
source = "git+https://github.com/JakubOnderka/treebitmap?rev=207c371a501780a94a8cd375fe15f877b110d9e2#207c371a501780a94a8cd375fe15f877b110d9e2"
[[package]] [[package]]
name = "typenum" name = "typenum"
version = "1.12.0" version = "1.12.0"
@@ -1226,12 +1070,12 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]] [[package]]
name = "universal-hash" name = "universal-hash"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df0c900f2f9b4116803415878ff48b63da9edb268668e08cf9292d7503114a01" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
dependencies = [ dependencies = [
"generic-array", "generic-array",
"subtle 2.3.0", "subtle",
] ]
[[package]] [[package]]
@@ -1267,7 +1111,7 @@ version = "0.2.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42" checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42"
dependencies = [ dependencies = [
"cfg-if", "cfg-if 0.1.10",
"wasm-bindgen-macro", "wasm-bindgen-macro",
] ]
@@ -1387,19 +1231,19 @@ dependencies = [
"hex", "hex",
"hjul", "hjul",
"hmac", "hmac",
"ip_network_table-deps-treebitmap",
"libc", "libc",
"log 0.4.11", "log 0.4.11",
"num_cpus", "num_cpus",
"parking_lot", "parking_lot",
"pnet", "pnet",
"proptest", "proptest",
"rand 0.7.3", "rand",
"rand_chacha 0.2.2", "rand_chacha",
"rand_core 0.5.1", "rand_core",
"ring", "ring",
"spin", "spin 0.7.0",
"subtle 2.3.0", "subtle",
"treebitmap",
"x25519-dalek", "x25519-dalek",
"zerocopy", "zerocopy",
] ]
@@ -1416,12 +1260,12 @@ dependencies = [
[[package]] [[package]]
name = "x25519-dalek" name = "x25519-dalek"
version = "0.6.0" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088"
dependencies = [ dependencies = [
"curve25519-dalek", "curve25519-dalek",
"rand_core 0.5.1", "rand_core",
"zeroize", "zeroize",
] ]

View File

@@ -1,47 +1,47 @@
[package] [package]
name = "wireguard-rs"
version = "0.1.4"
authors = ["Mathias Hall-Andersen <mathias@hall-andersen.dk>"] authors = ["Mathias Hall-Andersen <mathias@hall-andersen.dk>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"
name = "wireguard-rs"
version = "0.1.4"
[dependencies] [dependencies]
hex = "0.4" aead = "^0.3"
spin = "0.5.2"
blake2 = "0.8"
log = { version = "0.4", features = ["max_level_trace", "release_max_level_info"] }
hmac = "0.7.1"
generic-array = "0.12.3"
zerocopy = "0.3"
byteorder = "1.3"
digest = "0.8.1"
arraydeque = "0.4.5" arraydeque = "0.4.5"
blake2 = "^0.9"
byteorder = "1.3"
chacha20poly1305 = "^0.7"
clear_on_drop = "0.2.3"
cpuprofiler = {version = "*", optional = true}
crossbeam-channel = "^0.5"
dashmap = "^4.0"
digest = "^0.9"
env_logger = "^0.8"
generic-array = "^0.14"
hex = "0.4"
hjul = "0.2.2" hjul = "0.2.2"
ring = "0.16.7" hmac = "^0.10"
log = {version = "0.4", features = ["max_level_trace", "release_max_level_info"]}
num_cpus = "^1.10"
parking_lot = "^0.11"
rand = "^0.7" rand = "^0.7"
rand_core = "^0.5" rand_core = "^0.5"
chacha20poly1305 = "^0.4" ring = "0.16"
aead = "^0.2" spin = "0.7"
clear_on_drop = "0.2.3" zerocopy = "0.3"
env_logger = "0.7"
num_cpus = "^1.10"
crossbeam-channel = "0.4"
dashmap = "3.11"
parking_lot = "0.10.2"
cpuprofiler = { version = "*", optional = true }
[dependencies.treebitmap] [dependencies.treebitmap]
git = "https://github.com/JakubOnderka/treebitmap" package = "ip_network_table-deps-treebitmap"
rev = "207c371a501780a94a8cd375fe15f877b110d9e2" version = "0.5.0"
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
libc = "0.2" libc = "^0.2"
[dependencies.x25519-dalek] [dependencies.x25519-dalek]
version = "^0.6" version = "^1.1"
[dependencies.subtle] [dependencies.subtle]
version = "2.1" version = "^2.4"
#features = ["nightly"] #features = ["nightly"]
[features] [features]
@@ -49,6 +49,6 @@ profiler = ["cpuprofiler"]
start_up = [] start_up = []
[dev-dependencies] [dev-dependencies]
pnet = "0.25.0" pnet = "^0.27"
proptest = "0.9.4" proptest = "^0.10"
rand_chacha = "0.2.1" rand_chacha = "^0.2"

View File

@@ -8,8 +8,8 @@ use dashmap::mapref::entry::Entry;
use dashmap::DashMap; use dashmap::DashMap;
use zerocopy::AsBytes; use zerocopy::AsBytes;
use rand::prelude::{CryptoRng, RngCore};
use rand::Rng; use rand::Rng;
use rand_core::{CryptoRng, RngCore};
use clear_on_drop::clear::Clear; use clear_on_drop::clear::Clear;

View File

@@ -1,5 +1,5 @@
use generic_array::GenericArray; use generic_array::GenericArray;
use rand::{CryptoRng, RngCore}; use rand_core::{CryptoRng, RngCore};
use spin::RwLock; use spin::RwLock;
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
@@ -8,6 +8,7 @@ use std::net::SocketAddr;
use x25519_dalek::PublicKey; use x25519_dalek::PublicKey;
// AEAD // AEAD
use aead::{Aead, NewAead, Payload}; use aead::{Aead, NewAead, Payload};
use chacha20poly1305::XChaCha20Poly1305; use chacha20poly1305::XChaCha20Poly1305;
@@ -33,30 +34,29 @@ macro_rules! HASH {
use blake2::Digest; use blake2::Digest;
let mut hsh = Blake2s::new(); let mut hsh = Blake2s::new();
$( $(
hsh.input($input); hsh.update($input);
)* )*
hsh.result() hsh.finalize()
}}; }};
} }
macro_rules! MAC { macro_rules! MAC {
( $key:expr, $($input:expr),* ) => {{ ( $key:expr, $($input:expr),* ) => {{
use blake2::VarBlake2s; use blake2::VarBlake2s;
use digest::Input; use blake2::digest::{Update, VariableOutput};
use digest::VariableOutput;
let mut tag = [0u8; SIZE_MAC]; let mut tag = [0u8; SIZE_MAC];
let mut mac = VarBlake2s::new_keyed($key, SIZE_MAC); let mut mac = VarBlake2s::new_keyed($key, SIZE_MAC);
$( $(
mac.input($input); mac.update($input);
)* )*
mac.variable_result(|buf| tag.copy_from_slice(buf)); mac.finalize_variable(|buf| tag.copy_from_slice(buf));
tag tag
}}; }};
} }
macro_rules! XSEAL { macro_rules! XSEAL {
($key:expr, $nonce:expr, $ad:expr, $pt:expr, $ct:expr) => {{ ($key:expr, $nonce:expr, $ad:expr, $pt:expr, $ct:expr) => {{
let ct = XChaCha20Poly1305::new(*GenericArray::from_slice($key)) let ct = XChaCha20Poly1305::new(GenericArray::from_slice($key))
.encrypt( .encrypt(
GenericArray::from_slice($nonce), GenericArray::from_slice($nonce),
Payload { msg: $pt, aad: $ad }, Payload { msg: $pt, aad: $ad },
@@ -70,7 +70,7 @@ macro_rules! XSEAL {
macro_rules! XOPEN { macro_rules! XOPEN {
($key:expr, $nonce:expr, $ad:expr, $pt:expr, $ct:expr) => {{ ($key:expr, $nonce:expr, $ad:expr, $pt:expr, $ct:expr) => {{
debug_assert_eq!($ct.len(), $pt.len() + SIZE_TAG); debug_assert_eq!($ct.len(), $pt.len() + SIZE_TAG);
XChaCha20Poly1305::new(*GenericArray::from_slice($key)) XChaCha20Poly1305::new(GenericArray::from_slice($key))
.decrypt( .decrypt(
GenericArray::from_slice($nonce), GenericArray::from_slice($nonce),
Payload { msg: $ct, aad: $ad }, Payload { msg: $ct, aad: $ad },

View File

@@ -11,13 +11,13 @@ use hmac::Hmac;
use aead::{Aead, NewAead, Payload}; use aead::{Aead, NewAead, Payload};
use chacha20poly1305::ChaCha20Poly1305; use chacha20poly1305::ChaCha20Poly1305;
use rand::prelude::{CryptoRng, RngCore}; use rand_core::{CryptoRng, RngCore};
use generic_array::typenum::*; use generic_array::typenum::*;
use generic_array::*; use generic_array::*;
use clear_on_drop::clear::Clear; use clear_on_drop::clear::Clear;
use clear_on_drop::clear_stack_on_return; use clear_on_drop::clear_stack_on_return_fnonce;
use subtle::ConstantTimeEq; use subtle::ConstantTimeEq;
@@ -63,20 +63,20 @@ macro_rules! HASH {
use blake2::Digest; use blake2::Digest;
let mut hsh = Blake2s::new(); let mut hsh = Blake2s::new();
$( $(
hsh.input($input); hsh.update($input);
)* )*
hsh.result() hsh.finalize()
}}; }};
} }
macro_rules! HMAC { macro_rules! HMAC {
($key:expr, $($input:expr),*) => {{ ($key:expr, $($input:expr),*) => {{
use hmac::Mac; use hmac::{Mac, NewMac};
let mut mac = HMACBlake2s::new_varkey($key).unwrap(); let mut mac = HMACBlake2s::new_varkey($key).unwrap();
$( $(
mac.input($input); mac.update($input);
)* )*
mac.result().code() mac.finalize().into_bytes()
}}; }};
} }
@@ -112,7 +112,7 @@ macro_rules! KDF3 {
macro_rules! SEAL { macro_rules! SEAL {
($key:expr, $ad:expr, $pt:expr, $ct:expr) => { ($key:expr, $ad:expr, $pt:expr, $ct:expr) => {
ChaCha20Poly1305::new(*GenericArray::from_slice($key)) ChaCha20Poly1305::new(GenericArray::from_slice($key))
.encrypt(&ZERO_NONCE.into(), Payload { msg: $pt, aad: $ad }) .encrypt(&ZERO_NONCE.into(), Payload { msg: $pt, aad: $ad })
.map(|ct| $ct.copy_from_slice(&ct)) .map(|ct| $ct.copy_from_slice(&ct))
.unwrap() .unwrap()
@@ -121,7 +121,7 @@ macro_rules! SEAL {
macro_rules! OPEN { macro_rules! OPEN {
($key:expr, $ad:expr, $pt:expr, $ct:expr) => { ($key:expr, $ad:expr, $pt:expr, $ct:expr) => {
ChaCha20Poly1305::new(*GenericArray::from_slice($key)) ChaCha20Poly1305::new(GenericArray::from_slice($key))
.decrypt(&ZERO_NONCE.into(), Payload { msg: $ct, aad: $ad }) .decrypt(&ZERO_NONCE.into(), Payload { msg: $ct, aad: $ad })
.map_err(|_| HandshakeError::DecryptionFailure) .map_err(|_| HandshakeError::DecryptionFailure)
.map(|pt| $pt.copy_from_slice(&pt)) .map(|pt| $pt.copy_from_slice(&pt))
@@ -242,7 +242,7 @@ pub(super) fn create_initiation<R: RngCore + CryptoRng, O>(
return Err(HandshakeError::InvalidSharedSecret); return Err(HandshakeError::InvalidSharedSecret);
} }
clear_stack_on_return(CLEAR_PAGES, || { clear_stack_on_return_fnonce(CLEAR_PAGES, || {
// initialize state // initialize state
let ck = INITIAL_CK; let ck = INITIAL_CK;
@@ -323,7 +323,7 @@ pub(super) fn consume_initiation<'a, O>(
) -> Result<(&'a Peer<O>, PublicKey, TemporaryState), HandshakeError> { ) -> Result<(&'a Peer<O>, PublicKey, TemporaryState), HandshakeError> {
log::debug!("consume initiation"); log::debug!("consume initiation");
clear_stack_on_return(CLEAR_PAGES, || { clear_stack_on_return_fnonce(CLEAR_PAGES, || {
// initialize new state // initialize new state
let ck = INITIAL_CK; let ck = INITIAL_CK;
@@ -412,7 +412,7 @@ pub(super) fn create_response<R: RngCore + CryptoRng, O>(
msg: &mut NoiseResponse, // resulting response msg: &mut NoiseResponse, // resulting response
) -> Result<KeyPair, HandshakeError> { ) -> Result<KeyPair, HandshakeError> {
log::debug!("create response"); log::debug!("create response");
clear_stack_on_return(CLEAR_PAGES, || { clear_stack_on_return_fnonce(CLEAR_PAGES, || {
// unpack state // unpack state
let (receiver, eph_r_pk, hs, ck) = state; let (receiver, eph_r_pk, hs, ck) = state;
@@ -497,7 +497,7 @@ pub(super) fn consume_response<'a, O>(
msg: &NoiseResponse, msg: &NoiseResponse,
) -> Result<Output<'a, O>, HandshakeError> { ) -> Result<Output<'a, O>, HandshakeError> {
log::debug!("consume response"); log::debug!("consume response");
clear_stack_on_return(CLEAR_PAGES, || { clear_stack_on_return_fnonce(CLEAR_PAGES, || {
// retrieve peer and copy initiation state // retrieve peer and copy initiation state
let (peer, _) = device.lookup_id(msg.f_receiver.get())?; let (peer, _) = device.lookup_id(msg.f_receiver.get())?;

View File

@@ -6,8 +6,8 @@ use std::time::Duration;
use hex; use hex;
use rand::prelude::{CryptoRng, RngCore};
use rand::rngs::OsRng; use rand::rngs::OsRng;
use rand_core::{CryptoRng, RngCore};
use x25519_dalek::PublicKey; use x25519_dalek::PublicKey;
use x25519_dalek::StaticSecret; use x25519_dalek::StaticSecret;
@@ -15,20 +15,22 @@ use x25519_dalek::StaticSecret;
use super::messages::{Initiation, Response}; use super::messages::{Initiation, Response};
fn setup_devices<R: RngCore + CryptoRng, O: Default>( fn setup_devices<R: RngCore + CryptoRng, O: Default>(
rng: &mut R, rng1: &mut R,
rng2: &mut R,
rng3: &mut R,
) -> (PublicKey, Device<O>, PublicKey, Device<O>) { ) -> (PublicKey, Device<O>, PublicKey, Device<O>) {
// generate new key pairs // generate new key pairs
let sk1 = StaticSecret::new(rng); let sk1 = StaticSecret::new(rng1);
let pk1 = PublicKey::from(&sk1); let pk1 = PublicKey::from(&sk1);
let sk2 = StaticSecret::new(rng); let sk2 = StaticSecret::new(rng2);
let pk2 = PublicKey::from(&sk2); let pk2 = PublicKey::from(&sk2);
// pick random psk // pick random psk
let mut psk = [0u8; 32]; let mut psk = [0u8; 32];
rng.fill_bytes(&mut psk[..]); rng3.fill_bytes(&mut psk[..]);
// initialize devices on both ends // initialize devices on both ends
@@ -63,7 +65,8 @@ fn wait() {
*/ */
#[test] #[test]
fn handshake_under_load() { fn handshake_under_load() {
let (_pk1, dev1, pk2, dev2): (_, Device<usize>, _, _) = setup_devices(&mut OsRng); let (_pk1, dev1, pk2, dev2): (_, Device<usize>, _, _) =
setup_devices(&mut OsRng, &mut OsRng, &mut OsRng);
let src1: SocketAddr = "172.16.0.1:8080".parse().unwrap(); let src1: SocketAddr = "172.16.0.1:8080".parse().unwrap();
let src2: SocketAddr = "172.16.0.2:7070".parse().unwrap(); let src2: SocketAddr = "172.16.0.2:7070".parse().unwrap();
@@ -140,7 +143,8 @@ fn handshake_under_load() {
#[test] #[test]
fn handshake_no_load() { fn handshake_no_load() {
let (pk1, mut dev1, pk2, mut dev2): (_, Device<usize>, _, _) = setup_devices(&mut OsRng); let (pk1, mut dev1, pk2, mut dev2): (_, Device<usize>, _, _) =
setup_devices(&mut OsRng, &mut OsRng, &mut OsRng);
// do a few handshakes (every handshake should succeed) // do a few handshakes (every handshake should succeed)