diff --git a/Cargo.lock b/Cargo.lock index a9bf427c..ed1b292b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,12 +16,12 @@ dependencies = [ [[package]] name = "aead" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.6", + "generic-array 0.14.7", "heapless 0.7.16", ] @@ -66,9 +66,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "apdu-dispatch" @@ -93,10 +93,11 @@ dependencies = [ "ndef-app", "oath-authenticator", "opcard", + "piv-authenticator", "provisioner-app", "trussed", "trussed-auth", - "trussed-rsa-alloc", + "trussed-rsa-alloc 0.1.0 (git+https://github.com/Nitrokey/trussed-rsa-backend.git?tag=v0.1.0)", "trussed-usbip", "usbd-ctaphid", "utils", @@ -110,7 +111,7 @@ checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" dependencies = [ "generic-array 0.12.4", "generic-array 0.13.3", - "generic-array 0.14.6", + "generic-array 0.14.7", "stable_deref_trait", ] @@ -133,7 +134,7 @@ checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71" dependencies = [ "askama_shared", "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -158,7 +159,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn", + "syn 1.0.109", "toml", ] @@ -252,7 +253,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -261,16 +262,16 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "block-padding" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -409,9 +410,9 @@ dependencies = [ [[package]] name = "chacha20" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -425,7 +426,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", - "chacha20 0.9.0", + "chacha20 0.9.1", "cipher 0.4.4", "poly1305", "zeroize", @@ -437,7 +438,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -453,9 +454,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -513,7 +514,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -542,12 +543,6 @@ dependencies = [ "spdx", ] -[[package]] -name = "const-oid" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" - [[package]] name = "const-oid" version = "0.9.2" @@ -585,7 +580,7 @@ checksum = "c8e3aa52243e26f5922fa522b0814019e0c98fc567e2756d715dce7ad7a81f49" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -613,7 +608,7 @@ dependencies = [ "proc-macro2", "quote", "rtic-syntax 1.0.3", - "syn", + "syn 1.0.109", ] [[package]] @@ -649,9 +644,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" dependencies = [ "libc", ] @@ -684,29 +679,19 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8658c15c5d921ddf980f7fe25b1e82f4b7a4083b2c4985fea4922edb8e43e07d" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core", "subtle", "zeroize", ] -[[package]] -name = "crypto-bigint" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" -dependencies = [ - "generic-array 0.14.6", - "subtle", -] - [[package]] name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "typenum", ] @@ -716,7 +701,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -825,27 +810,17 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4" dependencies = [ - "crypto-bigint 0.2.5", + "crypto-bigint", "der_derive 0.4.1", ] -[[package]] -name = "der" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" -dependencies = [ - "const-oid 0.7.1", - "crypto-bigint 0.3.2", -] - [[package]] name = "der" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ - "const-oid 0.9.2", + "const-oid", "zeroize", ] @@ -857,7 +832,7 @@ checksum = "b4fbbc8e9e0db3a9068cffa43dcf0e314eb9feff083b7afa6eaa9e698412bb23" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -869,7 +844,7 @@ checksum = "8aed3b3c608dc56cf36c45fe979d04eda51242e6703d8d0bb03426ef7c41db6a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -888,7 +863,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -898,7 +873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.4", - "const-oid 0.9.2", + "const-oid", "crypto-common", "subtle", ] @@ -930,9 +905,9 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83e5c176479da93a0983f0a6fdc3c1b8e7d5be0d7fe3fe05a99f15b96582b9a8" dependencies = [ - "crypto-bigint 0.2.5", + "crypto-bigint", "ff", - "generic-array 0.14.6", + "generic-array 0.14.7", "group", "rand_core", "subtle", @@ -979,7 +954,7 @@ dependencies = [ "embedded-storage", "embedded-time", "fm11nc08", - "generic-array 0.14.6", + "generic-array 0.14.7", "heapless 0.7.16", "heapless-bytes 0.3.0", "interchange 0.2.2", @@ -1087,9 +1062,9 @@ dependencies = [ [[package]] name = "fixed" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f3be4cf4fc227d3a63bb77512a2b7d364200b2a715f389155785c4d3345495" +checksum = "79386fdcec5e0fde91b1a6a5bcd89677d1f9304f7f986b154a1b9109038854d9" dependencies = [ "az", "bytemuck", @@ -1116,7 +1091,7 @@ checksum = "500c147f43e74e711720769dd7f37bc90dc6e0798621bfe5e3acb8239fd2f826" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -1151,9 +1126,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1166,9 +1141,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -1176,15 +1151,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -1193,27 +1168,27 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-sink" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-util" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -1276,9 +1251,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -1295,9 +1270,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", "libc", @@ -1338,7 +1313,7 @@ checksum = "729f9bd3449d77e7831a18abfb7ba2f99ee813dfd15b8c2167c9a54ba20aa99d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1387,7 +1362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "634bd4d29cbf24424d0a4bfcbf80c6960129dc24424752a7d1d1390607023422" dependencies = [ "as-slice", - "generic-array 0.14.6", + "generic-array 0.14.7", "hash32 0.1.1", "stable_deref_trait", ] @@ -1402,7 +1377,7 @@ dependencies = [ "hash32 0.2.1", "rustc_version 0.4.0", "serde", - "spin 0.9.5", + "spin 0.9.8", "stable_deref_trait", ] @@ -1514,9 +1489,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown", @@ -1529,7 +1504,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "block-padding", - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -1541,7 +1516,7 @@ checksum = "310d743c23f798f10d5ba2f77fdd3eff06aaf2d8f8b9d78beba7fb1167f4ccbf" [[package]] name = "interchange" version = "0.3.0" -source = "git+https://github.com/trussed-dev/interchange#4c86dfdb87a5e803121f3c626262e31537e6e6b2" +source = "git+https://github.com/trussed-dev/interchange#1fe9629098bf63a01f7b63595c2b470f6148acb6" dependencies = [ "loom", ] @@ -1581,7 +1556,7 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" name = "lfs-backup" version = "0.1.0" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "heapless 0.7.16", "heapless-bytes 0.3.0", "littlefs2", @@ -1594,9 +1569,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.140" +version = "0.2.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" [[package]] name = "libloading" @@ -1629,7 +1604,7 @@ dependencies = [ "cstr_core", "cty", "delog", - "generic-array 0.14.6", + "generic-array 0.14.7", "heapless 0.7.16", "littlefs2-sys", "serde", @@ -1689,7 +1664,7 @@ dependencies = [ "digest 0.9.0", "embedded-hal", "embedded-time", - "generic-array 0.14.6", + "generic-array 0.14.7", "littlefs2", "lpc55-pac", "lpc55-rtic", @@ -1734,7 +1709,7 @@ dependencies = [ "proc-macro2", "quote", "rtic-syntax 0.4.0", - "syn", + "syn 1.0.109", ] [[package]] @@ -1765,9 +1740,9 @@ dependencies = [ [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" @@ -2036,7 +2011,7 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "opcard" version = "0.1.0" -source = "git+https://github.com/Nitrokey/opcard-rs?rev=v0.3.0#22ea95f28a3344100c31b389006ca80254e03caf" +source = "git+https://github.com/Nitrokey/opcard-rs?rev=v0.4.0#2e0963143a4076daa8615e72e5b6934075ff8149" dependencies = [ "apdu-dispatch", "delog", @@ -2049,13 +2024,15 @@ dependencies = [ "serde_repr", "subtle", "trussed", + "trussed-auth", + "trussed-rsa-alloc 0.1.0 (git+https://github.com/Nitrokey/trussed-rsa-backend.git?tag=v0.1.0)", ] [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "overload" @@ -2148,14 +2125,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "pkcs1" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320" +name = "piv-authenticator" +version = "0.1.0" +source = "git+https://github.com/Nitrokey/piv-authenticator?rev=v0.1.0#ca6daf33a756b8fd62f0e00cea6d6a4b86bb236c" dependencies = [ - "der 0.5.1", - "pkcs8 0.8.0", - "zeroize", + "apdu-dispatch", + "delog", + "flexiber", + "heapless 0.7.16", + "heapless-bytes 0.3.0", + "hex-literal", + "interchange 0.2.2", + "iso7816", + "log", + "serde", + "subtle", + "trussed", + "trussed-auth", + "trussed-rsa-alloc 0.1.0 (git+https://github.com/Nitrokey/trussed-rsa-backend.git?rev=bc48a97cd5a900ff38395433788a6fbe4e712434)", + "untrusted", ] [[package]] @@ -2165,19 +2153,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" dependencies = [ "der 0.6.1", - "pkcs8 0.9.0", - "spki 0.6.0", - "zeroize", -] - -[[package]] -name = "pkcs8" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" -dependencies = [ - "der 0.5.1", - "spki 0.5.4", + "pkcs8", + "spki", "zeroize", ] @@ -2188,7 +2165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ "der 0.6.1", - "spki 0.6.0", + "spki", ] [[package]] @@ -2255,7 +2232,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -2272,9 +2249,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -2313,9 +2290,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50686e0021c4136d1d453b2dfe059902278681512a34d4248435dc34b6b5c8ec" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -2367,9 +2344,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", @@ -2387,29 +2364,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "rsa" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b" -dependencies = [ - "byteorder", - "digest 0.10.6", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits", - "pkcs1 0.3.3", - "pkcs8 0.8.0", - "rand_core", - "smallvec", - "subtle", - "zeroize", -] +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "rsa" @@ -2423,11 +2380,11 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "pkcs1 0.4.1", - "pkcs8 0.9.0", + "pkcs1", + "pkcs8", "rand_core", "sha2 0.10.6", - "signature 2.0.0", + "signature 2.1.0", "subtle", "zeroize", ] @@ -2458,7 +2415,7 @@ checksum = "8152fcaa845720d61e6cc570548b89144c2c307f18a480bbd97e55e9f6eeff04" dependencies = [ "indexmap", "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -2470,7 +2427,7 @@ dependencies = [ "indexmap", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2569,9 +2526,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.155" +version = "1.0.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f2b4817415c6d4210bfe1c7bfcf4801b2d904cb4d0e1a8fdb651013c9e86b8" +checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" dependencies = [ "serde_derive", ] @@ -2593,7 +2550,7 @@ checksum = "431fb604dab775c7bdabdab23b491ec773de085afd92b5dac26b8f3db5965f42" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2608,20 +2565,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.155" +version = "1.0.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d071a94a3fac4aff69d023a7f411e33f40f3483f8c5190b1953822b6b76d7630" +checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa", "ryu", @@ -2630,13 +2587,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395627de918015623b32e7669714206363a7fc00382bf477e72c1f7533e8eafc" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -2661,7 +2618,7 @@ checksum = "079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2726,9 +2683,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ "digest 0.10.6", "rand_core", @@ -2776,23 +2733,13 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spin" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" -dependencies = [ - "base64ct", - "der 0.5.1", -] - [[package]] name = "spki" version = "0.6.0" @@ -2842,7 +2789,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2862,6 +2809,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -2870,7 +2828,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -2963,7 +2921,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3008,21 +2966,21 @@ dependencies = [ [[package]] name = "trussed" version = "0.1.0" -source = "git+https://github.com/Nitrokey/trussed?rev=52da9bb674aaf037414ac757b55bc8549b03067c#52da9bb674aaf037414ac757b55bc8549b03067c" +source = "git+https://github.com/Nitrokey/trussed?tag=v0.1.0-nitrokey.9#01c020d4af3e6e165ffac7a9588586ff16006aa2" dependencies = [ "aes", "bitflags", "cbc", "cbor-smol", "cfg-if", - "chacha20 0.9.0", + "chacha20 0.9.1", "chacha20poly1305", "cosey 0.3.0", "delog", "des", "embedded-hal", "flexiber", - "generic-array 0.14.6", + "generic-array 0.14.7", "heapless 0.7.16", "heapless-bytes 0.3.0", "hex-literal", @@ -3030,12 +2988,10 @@ dependencies = [ "interchange 0.3.0", "littlefs2", "nb 1.1.0", - "num-bigint-dig", "p256-cortex-m4", "postcard 0.7.3", "rand_chacha", "rand_core", - "rsa 0.6.1", "salty", "serde", "serde-indexed", @@ -3063,13 +3019,27 @@ dependencies = [ [[package]] name = "trussed-rsa-alloc" version = "0.1.0" -source = "git+https://github.com/Nitrokey/trussed-rsa-backend.git?rev=311d2366f99cc300b03d61e7f6a0a07abd3e8700#311d2366f99cc300b03d61e7f6a0a07abd3e8700" +source = "git+https://github.com/Nitrokey/trussed-rsa-backend.git?tag=v0.1.0#a72ce195a4495a8db26debfb0240a4dc712d8dbe" dependencies = [ "delog", "heapless-bytes 0.3.0", "num-bigint-dig", "postcard 0.7.3", - "rsa 0.8.2", + "rsa", + "serde", + "trussed", +] + +[[package]] +name = "trussed-rsa-alloc" +version = "0.1.0" +source = "git+https://github.com/Nitrokey/trussed-rsa-backend.git?rev=bc48a97cd5a900ff38395433788a6fbe4e712434#bc48a97cd5a900ff38395433788a6fbe4e712434" +dependencies = [ + "delog", + "heapless-bytes 0.3.0", + "num-bigint-dig", + "postcard 0.7.3", + "rsa", "serde", "trussed", ] @@ -3113,9 +3083,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" @@ -3160,6 +3130,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.3.1" @@ -3352,9 +3328,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -3367,63 +3343,62 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn", - "synstructure", + "syn 2.0.15", ] diff --git a/Cargo.toml b/Cargo.toml index c1aeb842..0a9fa223 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,9 @@ version = "1.3.1" ctap-types = { git = "https://github.com/Nitrokey/ctap-types", tag = "v0.1.2-nitrokey.1" } littlefs2 = { git = "https://github.com/Nitrokey/littlefs2", tag = "v0.3.2-nitrokey-2" } lpc55-hal = { git = "https://github.com/nitrokey/lpc55-hal", tag = "v0.3.0-nitrokey-2" } -trussed = { git = "https://github.com/Nitrokey/trussed", rev = "52da9bb674aaf037414ac757b55bc8549b03067c" } +trussed = { git = "https://github.com/Nitrokey/trussed", tag = "v0.1.0-nitrokey.9" } trussed-auth = { git = "https://github.com/trussed-dev/trussed-auth", tag = "v0.2.1"} -trussed-rsa-alloc = { git = "https://github.com/Nitrokey/trussed-rsa-backend.git", rev = "311d2366f99cc300b03d61e7f6a0a07abd3e8700"} +trussed-rsa-alloc = { git = "https://github.com/Nitrokey/trussed-rsa-backend.git", tag = "v0.1.0"} # unreleased interchange = { git = "https://github.com/trussed-dev/interchange" } diff --git a/components/apps/Cargo.toml b/components/apps/Cargo.toml index 198d4802..32590539 100644 --- a/components/apps/Cargo.toml +++ b/components/apps/Cargo.toml @@ -20,7 +20,8 @@ admin-app = { git = "https://github.com/Nitrokey/admin-app", rev = "v0.1.0-nitro fido-authenticator = { version = "0.1.1", features = ["dispatch"], optional = true } ndef-app = { path = "../ndef-app", optional = true } oath-authenticator = { git = "https://github.com/Nitrokey/trussed-secrets-app", rev = "0.9.0", features = ["apdu-dispatch", "ctaphid"], optional = true } -opcard = { git = "https://github.com/Nitrokey/opcard-rs", rev = "v0.3.0", features = ["apdu-dispatch", "delog", "rsa2048", "rsa4096"], optional = true } +opcard = { git = "https://github.com/Nitrokey/opcard-rs", rev = "v0.4.0", features = ["apdu-dispatch", "delog", "rsa2048", "rsa4096"], optional = true } +piv-authenticator = { git = "https://github.com/Nitrokey/piv-authenticator", rev = "v0.1.0", features = ["apdu-dispatch", "delog"], optional = true } provisioner-app = { path = "../provisioner-app", optional = true } [features] @@ -31,12 +32,14 @@ default = [ "oath-authenticator", "trussed/clients-3", ] -alpha = ["opcard", "trussed/clients-4"] +alpha = ["opcard", "piv-authenticator", "trussed/clients-5"] provisioner = ["provisioner-app", "trussed/clients-3"] # apps oath-authenticator = ["dep:oath-authenticator", "backend-auth"] fido-authenticator = ["dep:fido-authenticator", "usbd-ctaphid"] +opcard = ["dep:opcard", "backend-rsa", "backend-auth"] +piv-authenticator = ["dep:piv-authenticator", "backend-rsa", "backend-auth"] # backends backend-auth = ["trussed-auth"] diff --git a/components/apps/src/lib.rs b/components/apps/src/lib.rs index d88d8577..ad367a2a 100644 --- a/components/apps/src/lib.rs +++ b/components/apps/src/lib.rs @@ -50,6 +50,8 @@ type NdefApp = ndef_app::App<'static>; type OathApp = oath_authenticator::Authenticator>; #[cfg(feature = "opcard")] type OpcardApp = opcard::Card>; +#[cfg(feature = "piv-authenticator")] +type PivApp = piv_authenticator::Authenticator>; #[cfg(feature = "provisioner-app")] type ProvisionerApp = provisioner_app::Provisioner<::Store, ::Filesystem, Client>; @@ -65,6 +67,8 @@ pub struct Apps { oath: OathApp, #[cfg(feature = "opcard")] opcard: OpcardApp, + #[cfg(feature = "piv-authenticator")] + piv: PivApp, #[cfg(feature = "provisioner-app")] provisioner: ProvisionerApp, @@ -98,6 +102,8 @@ impl Apps { oath: App::new(runner, &mut make_client, ()), #[cfg(feature = "opcard")] opcard: App::new(runner, &mut make_client, ()), + #[cfg(feature = "piv-authenticator")] + piv: App::new(runner, &mut make_client, ()), #[cfg(feature = "provisioner-app")] provisioner: App::new(runner, &mut make_client, provisioner), _compile_no_feature: PhantomData::default(), @@ -136,6 +142,8 @@ impl Apps { &mut self.oath, #[cfg(feature = "opcard")] &mut self.opcard, + #[cfg(feature = "piv-authenticator")] + &mut self.piv, #[cfg(feature = "fido-authenticator")] &mut self.fido, #[cfg(feature = "admin-app")] @@ -336,10 +344,39 @@ impl App for OpcardApp { let mut options = opcard::Options::default(); options.button_available = true; options.serial = [0xa0, 0x20, uuid[0], uuid[1]]; - options.storage = trussed::types::Location::Internal; + options.storage = trussed::types::Location::External; // TODO: set manufacturer to Nitrokey Self::new(trussed, options) } + fn backends(runner: &R) -> &'static [BackendId] { + const BACKENDS_OPCARD: &[BackendId] = &[ + BackendId::Custom(Backend::SoftwareRsa), + BackendId::Custom(Backend::Auth), + BackendId::Core, + ]; + let _ = runner; + BACKENDS_OPCARD + } +} + +#[cfg(feature = "piv-authenticator")] +impl App for PivApp { + const CLIENT_ID: &'static str = "piv"; + + type Data = (); + + fn with_client(_runner: &R, trussed: Client, _: ()) -> Self { + Self::new(trussed, piv_authenticator::Options::default()) + } + fn backends(runner: &R) -> &'static [BackendId] { + const BACKENDS_PIV: &[BackendId] = &[ + BackendId::Custom(Backend::SoftwareRsa), + BackendId::Custom(Backend::Auth), + BackendId::Core, + ]; + let _ = runner; + BACKENDS_PIV + } } #[cfg(feature = "provisioner-app")]