diff --git a/Cargo.lock b/Cargo.lock
index 3c35232..5cf2c72 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -23,17 +23,6 @@ dependencies = [
"generic-array",
]
-[[package]]
-name = "aes"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
-dependencies = [
- "aes-soft",
- "aesni",
- "cipher 0.2.5",
-]
-
[[package]]
name = "aes"
version = "0.7.5"
@@ -46,6 +35,17 @@ dependencies = [
"opaque-debug",
]
+[[package]]
+name = "aes"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfe0133578c0986e1fe3dfcd4af1cc5b2dd6c3dbf534d69916ce16a2701d40ba"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cipher 0.4.3",
+ "cpufeatures",
+]
+
[[package]]
name = "aes-gcm"
version = "0.9.4"
@@ -60,26 +60,6 @@ dependencies = [
"subtle",
]
-[[package]]
-name = "aes-soft"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug",
-]
-
-[[package]]
-name = "aesni"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug",
-]
-
[[package]]
name = "aho-corasick"
version = "0.7.18"
@@ -122,7 +102,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7db023823e72175ec1a514231d5ff28ad7f7e15702a3ad7507dbc7ac1feea7b6"
dependencies = [
- "enumflags2 0.7.5",
+ "enumflags2",
"futures",
"gdk4-wayland",
"gdk4-x11",
@@ -132,7 +112,7 @@ dependencies = [
"rand",
"serde",
"serde_repr",
- "zbus 2.1.1",
+ "zbus",
]
[[package]]
@@ -256,22 +236,22 @@ dependencies = [
"gtk-macros",
"gtk4",
"hex",
- "image 0.24.1",
+ "image 0.24.2",
"libadwaita",
- "log",
"once_cell",
+ "oo7",
"percent-encoding",
- "pretty_env_logger",
"qrcode",
"rand",
"ring",
"rust-argon2",
"scrypt",
"search-provider",
- "secret-service",
"serde",
"serde_json",
"tokio",
+ "tracing",
+ "tracing-subscriber",
"unicase",
"url",
"uuid",
@@ -290,6 +270,12 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+[[package]]
+name = "base64ct"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179"
+
[[package]]
name = "binascii"
version = "0.1.4"
@@ -306,7 +292,7 @@ dependencies = [
"cexpr",
"clang-sys",
"clap",
- "env_logger 0.9.0",
+ "env_logger",
"lazy_static",
"lazycell",
"log",
@@ -342,15 +328,6 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "block-buffer"
version = "0.10.2"
@@ -360,21 +337,14 @@ dependencies = [
"generic-array",
]
-[[package]]
-name = "block-modes"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0"
-dependencies = [
- "block-padding",
- "cipher 0.2.5",
-]
-
[[package]]
name = "block-padding"
-version = "0.2.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+dependencies = [
+ "generic-array",
+]
[[package]]
name = "bumpalo"
@@ -408,9 +378,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
[[package]]
name = "cairo-rs"
-version = "0.15.10"
+version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "129e928d3eda625f53ce257589efbe5143416875fd01bddd08c8c6feb8b9962b"
+checksum = "62be3562254e90c1c6050a72aa638f6315593e98c5cdaba9017cedbabf0a5dee"
dependencies = [
"bitflags",
"cairo-sys-rs",
@@ -430,6 +400,15 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher 0.4.3",
+]
+
[[package]]
name = "cc"
version = "1.0.73"
@@ -484,15 +463,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "cipher"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "cipher"
version = "0.3.0"
@@ -616,19 +586,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
dependencies = [
"generic-array",
+ "rand_core",
"typenum",
]
-[[package]]
-name = "crypto-mac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
[[package]]
name = "ctr"
version = "0.8.0"
@@ -691,26 +652,37 @@ dependencies = [
"migrations_macros",
]
-[[package]]
-name = "digest"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "digest"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
dependencies = [
- "block-buffer 0.10.2",
+ "block-buffer",
"crypto-common",
"subtle",
]
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
[[package]]
name = "doc-comment"
version = "0.3.3"
@@ -744,7 +716,7 @@ version = "3.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c"
dependencies = [
- "num-bigint 0.4.3",
+ "num-bigint",
"num-traits",
"proc-macro2",
"quote",
@@ -752,37 +724,16 @@ dependencies = [
"syn",
]
-[[package]]
-name = "enumflags2"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0"
-dependencies = [
- "enumflags2_derive 0.6.4",
- "serde",
-]
-
[[package]]
name = "enumflags2"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
dependencies = [
- "enumflags2_derive 0.7.4",
+ "enumflags2_derive",
"serde",
]
-[[package]]
-name = "enumflags2_derive"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
[[package]]
name = "enumflags2_derive"
version = "0.7.4"
@@ -794,19 +745,6 @@ dependencies = [
"syn",
]
-[[package]]
-name = "env_logger"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
-dependencies = [
- "atty",
- "humantime 1.3.0",
- "log",
- "regex",
- "termcolor",
-]
-
[[package]]
name = "env_logger"
version = "0.9.0"
@@ -814,7 +752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
dependencies = [
"atty",
- "humantime 2.1.0",
+ "humantime",
"log",
"regex",
"termcolor",
@@ -861,14 +799,14 @@ name = "favicon-scrapper"
version = "0.1.0"
dependencies = [
"base64",
- "image 0.24.1",
- "log",
+ "image 0.24.2",
"once_cell",
"percent-encoding",
"quick-xml",
"reqwest",
"svg_metadata",
"tokio",
+ "tracing",
"url",
]
@@ -1025,9 +963,9 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
-version = "0.15.10"
+version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678516f1baef591d270ca10587c01a12542a731a7879cc62391a18191a470831"
+checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
dependencies = [
"bitflags",
"gdk-pixbuf-sys",
@@ -1184,9 +1122,9 @@ dependencies = [
[[package]]
name = "gio"
-version = "0.15.10"
+version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cd21a7a674ea811749661012512b0ba5237ba404ccbcab2850db5537549b64"
+checksum = "0f132be35e05d9662b9fa0fee3f349c6621f7782e0105917f4cc73c1bf47eceb"
dependencies = [
"bitflags",
"futures-channel",
@@ -1214,9 +1152,9 @@ dependencies = [
[[package]]
name = "glib"
-version = "0.15.10"
+version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a826fad715b57834920839d7a594c3b5e416358c7d790bdaba847a40d7c1d96d"
+checksum = "bd124026a2fa8c33a3d17a3fe59c103f2d9fa5bd92c19e029e037736729abeab"
dependencies = [
"bitflags",
"futures-channel",
@@ -1234,13 +1172,13 @@ dependencies = [
[[package]]
name = "glib-macros"
-version = "0.15.10"
+version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac4d47c544af67747652ab1865ace0ffa1155709723ac4f32e97587dd4735b2"
+checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64"
dependencies = [
"anyhow",
"heck",
- "proc-macro-crate 1.1.3",
+ "proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quote",
@@ -1355,9 +1293,9 @@ dependencies = [
[[package]]
name = "gstreamer"
-version = "0.18.7"
+version = "0.18.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd58af6f8b268fc335122a3ccc66efa0cd56584948f49a37e5feef0b89dfc29b"
+checksum = "d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456"
dependencies = [
"bitflags",
"cfg-if 1.0.0",
@@ -1483,7 +1421,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f3c4aa605fb3d78205c7aef0eeaa6db61d8cc4dd05a465dc6ffdfdaee84f825"
dependencies = [
"anyhow",
- "proc-macro-crate 1.1.3",
+ "proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quick-xml",
@@ -1561,22 +1499,11 @@ dependencies = [
[[package]]
name = "hkdf"
-version = "0.10.0"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f"
+checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
dependencies = [
- "digest 0.9.0",
- "hmac 0.10.1",
-]
-
-[[package]]
-name = "hmac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
-dependencies = [
- "crypto-mac",
- "digest 0.9.0",
+ "hmac",
]
[[package]]
@@ -1585,14 +1512,14 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
- "digest 0.10.3",
+ "digest",
]
[[package]]
name = "http"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
+checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb"
dependencies = [
"bytes",
"fnv",
@@ -1612,9 +1539,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.7.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6330e8a36bd8c859f3fa6d9382911fbb7147ec39807f63b923933a247240b9ba"
+checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
[[package]]
name = "httpdate"
@@ -1622,15 +1549,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
-
[[package]]
name = "humantime"
version = "2.1.0"
@@ -1701,9 +1619,9 @@ dependencies = [
[[package]]
name = "image"
-version = "0.24.1"
+version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db207d030ae38f1eb6f240d5a1c1c88ff422aa005d10f8c6c6fc5e75286ab30e"
+checksum = "28edd9d7bc256be2502e325ac0628bde30b7001b9b52e0abe31a1a9dc2701212"
dependencies = [
"bytemuck",
"byteorder",
@@ -1730,6 +1648,7 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
dependencies = [
+ "block-padding",
"generic-array",
]
@@ -1809,9 +1728,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.124"
+version = "0.2.125"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50"
+checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
[[package]]
name = "libloading"
@@ -2010,16 +1929,6 @@ dependencies = [
"tempfile",
]
-[[package]]
-name = "nb-connect"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15"
-dependencies = [
- "libc",
- "socket2",
-]
-
[[package]]
name = "nix"
version = "0.14.1"
@@ -2033,19 +1942,6 @@ dependencies = [
"void",
]
-[[package]]
-name = "nix"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
-dependencies = [
- "bitflags",
- "cc",
- "cfg-if 0.1.10",
- "libc",
- "void",
-]
-
[[package]]
name = "nix"
version = "0.23.1"
@@ -2080,26 +1976,15 @@ dependencies = [
[[package]]
name = "num"
-version = "0.3.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
+checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
dependencies = [
- "num-bigint 0.3.3",
+ "num-bigint",
"num-complex",
"num-integer",
"num-iter",
- "num-rational 0.3.2",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3"
-dependencies = [
- "autocfg",
- "num-integer",
+ "num-rational 0.4.0",
"num-traits",
]
@@ -2116,18 +2001,18 @@ dependencies = [
[[package]]
name = "num-complex"
-version = "0.3.1"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
+checksum = "97fbc387afefefd5e9e39493299f3069e14a140dd34dc19b4c1c1a8fddb6a790"
dependencies = [
"num-traits",
]
[[package]]
name = "num-integer"
-version = "0.1.44"
+version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
@@ -2135,9 +2020,9 @@ dependencies = [
[[package]]
name = "num-iter"
-version = "0.1.42"
+version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
dependencies = [
"autocfg",
"num-integer",
@@ -2151,7 +2036,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
dependencies = [
"autocfg",
- "num-bigint 0.3.3",
"num-integer",
"num-traits",
]
@@ -2163,6 +2047,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
dependencies = [
"autocfg",
+ "num-bigint",
"num-integer",
"num-traits",
]
@@ -2221,6 +2106,33 @@ version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+[[package]]
+name = "oo7"
+version = "0.1.0-alpha.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "314dc7f6ef9b44aa898c3dfdf4ad80ab63996409b255aac9f575f590d74120b0"
+dependencies = [
+ "aes 0.8.1",
+ "byteorder",
+ "cbc",
+ "cipher 0.4.3",
+ "digest",
+ "dirs",
+ "futures",
+ "hkdf",
+ "hmac",
+ "num",
+ "once_cell",
+ "pbkdf2",
+ "rand",
+ "serde",
+ "sha2",
+ "tokio",
+ "tracing",
+ "zbus",
+ "zeroize",
+]
+
[[package]]
name = "opaque-debug"
version = "0.3.0"
@@ -2335,6 +2247,17 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "password-hash"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e029e94abc8fb0065241c308f1ac6bc8d20f450e8f7c5f0b25cd9b8d526ba294"
+dependencies = [
+ "base64ct",
+ "rand_core",
+ "subtle",
+]
+
[[package]]
name = "paste"
version = "1.0.7"
@@ -2347,7 +2270,10 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
dependencies = [
- "digest 0.10.3",
+ "digest",
+ "hmac",
+ "password-hash",
+ "sha2",
]
[[package]]
@@ -2373,9 +2299,9 @@ dependencies = [
[[package]]
name = "pin-project-lite"
-version = "0.2.8"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
[[package]]
name = "pin-utils"
@@ -2463,28 +2389,9 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
[[package]]
name = "pretty-hex"
-version = "0.2.1"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131"
-
-[[package]]
-name = "pretty_env_logger"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
-dependencies = [
- "env_logger 0.7.1",
- "log",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml",
-]
+checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
[[package]]
name = "proc-macro-crate"
@@ -2539,12 +2446,6 @@ dependencies = [
"image 0.23.14",
]
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
[[package]]
name = "quick-xml"
version = "0.22.0"
@@ -2613,6 +2514,17 @@ dependencies = [
"bitflags",
]
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
+]
+
[[package]]
name = "regex"
version = "1.5.5"
@@ -2769,12 +2681,6 @@ dependencies = [
"parking_lot",
]
-[[package]]
-name = "scoped-tls"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-
[[package]]
name = "scopeguard"
version = "1.1.0"
@@ -2787,10 +2693,10 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d"
dependencies = [
- "hmac 0.12.1",
+ "hmac",
"pbkdf2",
"salsa20",
- "sha2 0.10.2",
+ "sha2",
]
[[package]]
@@ -2801,29 +2707,9 @@ checksum = "350ac7d1c6898fa22b7ac0e4fbc857997c1b5f077ece7cdb1415c13954402f17"
dependencies = [
"futures",
"serde",
- "zbus 2.1.1",
- "zvariant 3.1.2",
- "zvariant_derive 3.1.2",
-]
-
-[[package]]
-name = "secret-service"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2400fb1bf2a87b303ada204946294f932ade4929477e9e2bf66d7b49a66656ec"
-dependencies = [
- "aes 0.6.0",
- "block-modes",
- "hkdf",
- "lazy_static",
- "num",
- "rand",
- "serde",
- "sha2 0.9.9",
- "zbus 1.9.1",
- "zbus_macros 1.9.1",
- "zvariant 2.10.0",
- "zvariant_derive 2.10.0",
+ "zbus",
+ "zvariant",
+ "zvariant_derive",
]
[[package]]
@@ -2942,19 +2828,6 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-[[package]]
-name = "sha2"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
-]
-
[[package]]
name = "sha2"
version = "0.10.2"
@@ -2963,7 +2836,16 @@ checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
dependencies = [
"cfg-if 1.0.0",
"cpufeatures",
- "digest 0.10.3",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
]
[[package]]
@@ -3042,15 +2924,27 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.91"
+version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "unicode-xid",
+]
+
[[package]]
name = "system-deps"
version = "6.0.2"
@@ -3123,10 +3017,19 @@ dependencies = [
]
[[package]]
-name = "tinyvec"
-version = "1.5.1"
+name = "thread_local"
+version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
dependencies = [
"tinyvec_macros",
]
@@ -3139,15 +3042,16 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.17.0"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
+checksum = "0f48b6d60512a392e34dbf7fd456249fd2de3c83669ab642e021903f4015185b"
dependencies = [
"bytes",
"libc",
"memchr",
"mio",
"num_cpus",
+ "once_cell",
"pin-project-lite",
"socket2",
"tokio-macros",
@@ -3218,9 +3122,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.20"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
+checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
dependencies = [
"proc-macro2",
"quote",
@@ -3234,6 +3138,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f"
dependencies = [
"lazy_static",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596"
+dependencies = [
+ "ansi_term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
]
[[package]]
@@ -3265,9 +3195,9 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.7"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
name = "unicode-normalization"
@@ -3327,6 +3257,12 @@ dependencies = [
"getrandom",
]
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -3538,29 +3474,6 @@ dependencies = [
"pkg-config",
]
-[[package]]
-name = "zbus"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2326acc379a3ac4e34b794089f5bdb17086bf29a5fdf619b7b4cc772dc2e9dad"
-dependencies = [
- "async-io",
- "byteorder",
- "derivative",
- "enumflags2 0.6.4",
- "fastrand",
- "futures",
- "nb-connect",
- "nix 0.17.0",
- "once_cell",
- "polling",
- "scoped-tls",
- "serde",
- "serde_repr",
- "zbus_macros 1.9.1",
- "zvariant 2.10.0",
-]
-
[[package]]
name = "zbus"
version = "2.1.1"
@@ -3577,7 +3490,7 @@ dependencies = [
"async-trait",
"byteorder",
"derivative",
- "enumflags2 0.7.5",
+ "enumflags2",
"event-listener",
"futures-core",
"futures-sink",
@@ -3592,22 +3505,11 @@ dependencies = [
"serde_repr",
"sha1",
"static_assertions",
+ "tokio",
"winapi",
- "zbus_macros 2.1.1",
+ "zbus_macros",
"zbus_names",
- "zvariant 3.1.2",
-]
-
-[[package]]
-name = "zbus_macros"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a482c56029e48681b89b92b5db3c446db0915e8dd1052c0328a574eda38d5f93"
-dependencies = [
- "proc-macro-crate 0.1.5",
- "proc-macro2",
- "quote",
- "syn",
+ "zvariant",
]
[[package]]
@@ -3616,7 +3518,7 @@ version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36823cc10fddc3c6b19f048903262dacaf8274170e9a255784bdd8b4570a8040"
dependencies = [
- "proc-macro-crate 1.1.3",
+ "proc-macro-crate",
"proc-macro2",
"quote",
"regex",
@@ -3631,21 +3533,28 @@ checksum = "45dfcdcf87b71dad505d30cc27b1b7b88a64b6d1c435648f48f9dbc1fdc4b7e1"
dependencies = [
"serde",
"static_assertions",
- "zvariant 3.1.2",
+ "zvariant",
]
[[package]]
-name = "zvariant"
-version = "2.10.0"
+name = "zeroize"
+version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a68c7b55f2074489b7e8e07d2d0a6ee6b4f233867a653c664d8020ba53692525"
+checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317"
dependencies = [
- "byteorder",
- "enumflags2 0.6.4",
- "libc",
- "serde",
- "static_assertions",
- "zvariant_derive 2.10.0",
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "synstructure",
]
[[package]]
@@ -3655,23 +3564,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49ea5dc38b2058fae6a5b79009388143dadce1e91c26a67f984a0fc0381c8033"
dependencies = [
"byteorder",
- "enumflags2 0.7.5",
+ "enumflags2",
"libc",
"serde",
"static_assertions",
- "zvariant_derive 3.1.2",
-]
-
-[[package]]
-name = "zvariant_derive"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4ca5e22593eb4212382d60d26350065bf2a02c34b85bc850474a74b589a3de9"
-dependencies = [
- "proc-macro-crate 1.1.3",
- "proc-macro2",
- "quote",
- "syn",
+ "zvariant_derive",
]
[[package]]
@@ -3680,7 +3577,7 @@ version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c2cecc5a61c2a053f7f653a24cd15b3b0195d7f7ddb5042c837fb32e161fb7a"
dependencies = [
- "proc-macro-crate 1.1.3",
+ "proc-macro-crate",
"proc-macro2",
"quote",
"syn",
diff --git a/Cargo.toml b/Cargo.toml
index 0745c2a..5191797 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -17,15 +17,15 @@ gtk = {package = "gtk4", version = "0.4"}
gtk-macros = "0.3"
search-provider = "0.3"
hex = { version = "0.4.3", features = [ "serde" ] }
-log = "0.4"
+tracing = "0.1"
+tracing-subscriber = "0.3"
once_cell = "1.9"
percent-encoding = "2.1"
-pretty_env_logger = "0.4"
qrcode = {version = "0.12", features = ["image"]}
rand = "0.8"
ring = "0.16"
rust-argon2 = "1.0"
-secret-service = "2.0"
+oo7 = {version = "0.1.0-alpha.3", default-features = false, features = ["tokio_runtime", "tracing"]}
serde = "1.0"
serde_json = "1.0"
unicase = "2.6"
diff --git a/build-aux/com.belmoussaoui.Authenticator.Devel.json b/build-aux/com.belmoussaoui.Authenticator.Devel.json
index fde1616..71991d5 100644
--- a/build-aux/com.belmoussaoui.Authenticator.Devel.json
+++ b/build-aux/com.belmoussaoui.Authenticator.Devel.json
@@ -15,7 +15,7 @@
"--socket=wayland",
"--device=dri",
"--talk-name=org.freedesktop.secrets",
- "--env=RUST_LOG=authenticator=debug,ashpd=debug",
+ "--env=RUST_LOG=authenticator=debug,ashpd=debug,oo7=debug",
"--env=G_MESSAGES_DEBUG=none",
"--own-name=com.belmoussaoui.Authenticator.Devel.SearchProvider"
],
diff --git a/data/com.belmoussaoui.Authenticator.gschema.xml.in b/data/com.belmoussaoui.Authenticator.gschema.xml.in
index d5a2454..8642524 100644
--- a/data/com.belmoussaoui.Authenticator.gschema.xml.in
+++ b/data/com.belmoussaoui.Authenticator.gschema.xml.in
@@ -31,5 +31,8 @@
Auto lock timeout
Lock the application on idle after X minutes
+
+ false
+
diff --git a/favicon-scrapper/Cargo.toml b/favicon-scrapper/Cargo.toml
index d184e27..f640501 100644
--- a/favicon-scrapper/Cargo.toml
+++ b/favicon-scrapper/Cargo.toml
@@ -13,7 +13,7 @@ quick-xml = "0.22"
image = {version = "0.24", features = ["ico", "png"], default-features = false}
url = "2.2"
once_cell = "1.9"
-log = "0.4"
+tracing = "0.1"
base64 = "0.13.0"
svg_metadata = "0.4"
tokio = { version = "1.0", features = ["rt-multi-thread", "fs", "io-util", "macros"] }
diff --git a/favicon-scrapper/src/favicon.rs b/favicon-scrapper/src/favicon.rs
index 3b68a52..a21335b 100644
--- a/favicon-scrapper/src/favicon.rs
+++ b/favicon-scrapper/src/favicon.rs
@@ -77,16 +77,16 @@ impl Favicon {
/// Save the favicon into `destination` and convert it to a [`Format::Png`]
/// if it is original format is [`Format::Ico`].
pub async fn save(&self, destination: PathBuf) -> Result<(), Error> {
- log::debug!("Caching the icon into {:#?}", destination);
+ tracing::debug!("Caching the icon into {:#?}", destination);
let format = *self.metadata().format();
let body = self.data().await?;
if format.is_ico() {
- log::debug!("Found a ICO favicon, converting to PNG");
+ tracing::debug!("Found a ICO favicon, converting to PNG");
if let Ok(ico) = image::load_from_memory_with_format(&body, image::ImageFormat::Ico) {
ico.save_with_format(destination, image::ImageFormat::Png)?;
return Ok(());
} else {
- log::debug!("It seems to not be a ICO favicon, fallback to PNG");
+ tracing::debug!("It seems to not be a ICO favicon, fallback to PNG");
};
}
let mut dest = tokio::fs::File::create(destination).await?;
diff --git a/favicon-scrapper/src/scrapper.rs b/favicon-scrapper/src/scrapper.rs
index a2ab580..3a35716 100644
--- a/favicon-scrapper/src/scrapper.rs
+++ b/favicon-scrapper/src/scrapper.rs
@@ -1,7 +1,7 @@
-use log::debug;
use percent_encoding::percent_decode_str;
use quick_xml::events::{attributes::Attribute, BytesStart, Event};
use std::{fmt, path::PathBuf};
+use tracing::debug;
use url::Url;
use crate::{Error, Favicon, Format, Metadata, CLIENT};
diff --git a/src/application.rs b/src/application.rs
index cbfbdb2..1cdde3b 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -1,6 +1,8 @@
use crate::{
config,
- models::{Account, Keyring, OTPUri, Provider, ProvidersModel, FAVICONS_PATH},
+ models::{
+ keyring, Account, OTPUri, Provider, ProvidersModel, FAVICONS_PATH, RUNTIME, SECRET_SERVICE,
+ },
widgets::{PreferencesWindow, ProvidersDialog, Window},
};
use adw::prelude::*;
@@ -9,12 +11,15 @@ use glib::clone;
use gtk::{gio, glib, subclass::prelude::*};
use gtk_macros::{action, get_action};
use search_provider::{ResultID, ResultMeta, SearchProvider, SearchProviderImpl};
-use std::str::FromStr;
+use std::{collections::HashMap, str::FromStr};
mod imp {
+ use crate::utils::spawn_tokio_blocking;
+
use super::*;
use adw::subclass::prelude::*;
use glib::{ParamSpec, ParamSpecBoolean, Value, WeakRef};
+ use once_cell::sync::OnceCell;
use std::cell::{Cell, RefCell};
// The basic struct that holds our state and widgets
@@ -25,7 +30,7 @@ mod imp {
pub locked: Cell,
pub lock_timeout_id: RefCell