WIP
This commit is contained in:
		
							
								
								
									
										193
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										193
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							@@ -568,6 +568,12 @@ dependencies = [
 | 
				
			|||||||
 "rustc-demangle",
 | 
					 "rustc-demangle",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "base16ct"
 | 
				
			||||||
 | 
					version = "0.2.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "base64"
 | 
					name = "base64"
 | 
				
			||||||
version = "0.20.0"
 | 
					version = "0.20.0"
 | 
				
			||||||
@@ -586,6 +592,12 @@ version = "0.22.0"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 | 
					checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "base64ct"
 | 
				
			||||||
 | 
					version = "1.6.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "bincode"
 | 
					name = "bincode"
 | 
				
			||||||
version = "2.0.0-rc.3"
 | 
					version = "2.0.0-rc.3"
 | 
				
			||||||
@@ -792,6 +804,12 @@ 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 = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 | 
					checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "const-oid"
 | 
				
			||||||
 | 
					version = "0.9.6"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "convert_case"
 | 
					name = "convert_case"
 | 
				
			||||||
version = "0.4.0"
 | 
					version = "0.4.0"
 | 
				
			||||||
@@ -890,6 +908,18 @@ version = "0.2.2"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 | 
					checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "crypto-bigint"
 | 
				
			||||||
 | 
					version = "0.5.5"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "generic-array",
 | 
				
			||||||
 | 
					 "rand_core",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					 "zeroize",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "crypto-common"
 | 
					name = "crypto-common"
 | 
				
			||||||
version = "0.1.6"
 | 
					version = "0.1.6"
 | 
				
			||||||
@@ -945,6 +975,17 @@ dependencies = [
 | 
				
			|||||||
 "syn 2.0.58",
 | 
					 "syn 2.0.58",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "der"
 | 
				
			||||||
 | 
					version = "0.7.9"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "const-oid",
 | 
				
			||||||
 | 
					 "pem-rfc7468",
 | 
				
			||||||
 | 
					 "zeroize",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "deranged"
 | 
					name = "deranged"
 | 
				
			||||||
version = "0.3.11"
 | 
					version = "0.3.11"
 | 
				
			||||||
@@ -974,6 +1015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			|||||||
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 | 
					checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "block-buffer",
 | 
					 "block-buffer",
 | 
				
			||||||
 | 
					 "const-oid",
 | 
				
			||||||
 "crypto-common",
 | 
					 "crypto-common",
 | 
				
			||||||
 "subtle",
 | 
					 "subtle",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -984,12 +1026,47 @@ version = "0.15.7"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
 | 
					checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "ecdsa"
 | 
				
			||||||
 | 
					version = "0.16.9"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "der",
 | 
				
			||||||
 | 
					 "digest",
 | 
				
			||||||
 | 
					 "elliptic-curve",
 | 
				
			||||||
 | 
					 "rfc6979",
 | 
				
			||||||
 | 
					 "signature",
 | 
				
			||||||
 | 
					 "spki",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "either"
 | 
					name = "either"
 | 
				
			||||||
version = "1.10.0"
 | 
					version = "1.10.0"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 | 
					checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "elliptic-curve"
 | 
				
			||||||
 | 
					version = "0.13.8"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "base16ct",
 | 
				
			||||||
 | 
					 "crypto-bigint",
 | 
				
			||||||
 | 
					 "digest",
 | 
				
			||||||
 | 
					 "ff",
 | 
				
			||||||
 | 
					 "generic-array",
 | 
				
			||||||
 | 
					 "group",
 | 
				
			||||||
 | 
					 "hkdf",
 | 
				
			||||||
 | 
					 "pem-rfc7468",
 | 
				
			||||||
 | 
					 "pkcs8",
 | 
				
			||||||
 | 
					 "rand_core",
 | 
				
			||||||
 | 
					 "sec1",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					 "zeroize",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "encoding_rs"
 | 
					name = "encoding_rs"
 | 
				
			||||||
version = "0.8.33"
 | 
					version = "0.8.33"
 | 
				
			||||||
@@ -1069,6 +1146,16 @@ dependencies = [
 | 
				
			|||||||
 "simd-adler32",
 | 
					 "simd-adler32",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "ff"
 | 
				
			||||||
 | 
					version = "0.13.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "rand_core",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "flate2"
 | 
					name = "flate2"
 | 
				
			||||||
version = "1.0.28"
 | 
					version = "1.0.28"
 | 
				
			||||||
@@ -1215,6 +1302,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 | 
				
			|||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "typenum",
 | 
					 "typenum",
 | 
				
			||||||
 "version_check",
 | 
					 "version_check",
 | 
				
			||||||
 | 
					 "zeroize",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
@@ -1256,6 +1344,17 @@ version = "0.28.1"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 | 
					checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "group"
 | 
				
			||||||
 | 
					version = "0.13.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "ff",
 | 
				
			||||||
 | 
					 "rand_core",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "h2"
 | 
					name = "h2"
 | 
				
			||||||
version = "0.3.26"
 | 
					version = "0.3.26"
 | 
				
			||||||
@@ -2024,6 +2123,18 @@ dependencies = [
 | 
				
			|||||||
 "vcpkg",
 | 
					 "vcpkg",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "p384"
 | 
				
			||||||
 | 
					version = "0.13.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "ecdsa",
 | 
				
			||||||
 | 
					 "elliptic-curve",
 | 
				
			||||||
 | 
					 "primeorder",
 | 
				
			||||||
 | 
					 "sha2",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "parking_lot"
 | 
					name = "parking_lot"
 | 
				
			||||||
version = "0.12.1"
 | 
					version = "0.12.1"
 | 
				
			||||||
@@ -2069,6 +2180,15 @@ dependencies = [
 | 
				
			|||||||
 "serde",
 | 
					 "serde",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "pem-rfc7468"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "base64ct",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "percent-encoding"
 | 
					name = "percent-encoding"
 | 
				
			||||||
version = "2.3.1"
 | 
					version = "2.3.1"
 | 
				
			||||||
@@ -2107,6 +2227,16 @@ version = "0.1.0"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 | 
					checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "pkcs8"
 | 
				
			||||||
 | 
					version = "0.10.2"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "der",
 | 
				
			||||||
 | 
					 "spki",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "pkg-config"
 | 
					name = "pkg-config"
 | 
				
			||||||
version = "0.3.30"
 | 
					version = "0.3.30"
 | 
				
			||||||
@@ -2150,6 +2280,15 @@ version = "0.2.17"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 | 
					checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "primeorder"
 | 
				
			||||||
 | 
					version = "0.13.6"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "elliptic-curve",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "proc-macro2"
 | 
					name = "proc-macro2"
 | 
				
			||||||
version = "1.0.79"
 | 
					version = "1.0.79"
 | 
				
			||||||
@@ -2394,6 +2533,16 @@ dependencies = [
 | 
				
			|||||||
 "winreg",
 | 
					 "winreg",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "rfc6979"
 | 
				
			||||||
 | 
					version = "0.4.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "hmac",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "rgb"
 | 
					name = "rgb"
 | 
				
			||||||
version = "0.8.37"
 | 
					version = "0.8.37"
 | 
				
			||||||
@@ -2526,6 +2675,20 @@ version = "1.2.0"
 | 
				
			|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 | 
					checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "sec1"
 | 
				
			||||||
 | 
					version = "0.7.3"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "base16ct",
 | 
				
			||||||
 | 
					 "der",
 | 
				
			||||||
 | 
					 "generic-array",
 | 
				
			||||||
 | 
					 "pkcs8",
 | 
				
			||||||
 | 
					 "subtle",
 | 
				
			||||||
 | 
					 "zeroize",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "security-framework"
 | 
					name = "security-framework"
 | 
				
			||||||
version = "2.10.0"
 | 
					version = "2.10.0"
 | 
				
			||||||
@@ -2647,6 +2810,16 @@ dependencies = [
 | 
				
			|||||||
 "libc",
 | 
					 "libc",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "signature"
 | 
				
			||||||
 | 
					version = "2.2.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "digest",
 | 
				
			||||||
 | 
					 "rand_core",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "simd-adler32"
 | 
					name = "simd-adler32"
 | 
				
			||||||
version = "0.3.7"
 | 
					version = "0.3.7"
 | 
				
			||||||
@@ -2708,6 +2881,16 @@ dependencies = [
 | 
				
			|||||||
 "lock_api",
 | 
					 "lock_api",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "spki"
 | 
				
			||||||
 | 
					version = "0.7.3"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "base64ct",
 | 
				
			||||||
 | 
					 "der",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "strsim"
 | 
					name = "strsim"
 | 
				
			||||||
version = "0.10.0"
 | 
					version = "0.10.0"
 | 
				
			||||||
@@ -3192,6 +3375,7 @@ dependencies = [
 | 
				
			|||||||
 "bytes",
 | 
					 "bytes",
 | 
				
			||||||
 "clap",
 | 
					 "clap",
 | 
				
			||||||
 "dotenvy",
 | 
					 "dotenvy",
 | 
				
			||||||
 | 
					 "elliptic-curve",
 | 
				
			||||||
 "env_logger",
 | 
					 "env_logger",
 | 
				
			||||||
 "futures",
 | 
					 "futures",
 | 
				
			||||||
 "futures-util",
 | 
					 "futures-util",
 | 
				
			||||||
@@ -3205,11 +3389,10 @@ dependencies = [
 | 
				
			|||||||
 "mime_guess",
 | 
					 "mime_guess",
 | 
				
			||||||
 "nix",
 | 
					 "nix",
 | 
				
			||||||
 "num",
 | 
					 "num",
 | 
				
			||||||
 "pem",
 | 
					 "p384",
 | 
				
			||||||
 "quick-xml",
 | 
					 "quick-xml",
 | 
				
			||||||
 "rand",
 | 
					 "rand",
 | 
				
			||||||
 "reqwest",
 | 
					 "reqwest",
 | 
				
			||||||
 "ring",
 | 
					 | 
				
			||||||
 "rust-embed",
 | 
					 "rust-embed",
 | 
				
			||||||
 "serde",
 | 
					 "serde",
 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
@@ -3563,6 +3746,12 @@ dependencies = [
 | 
				
			|||||||
 "syn 2.0.58",
 | 
					 "syn 2.0.58",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "zeroize"
 | 
				
			||||||
 | 
					version = "1.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "zstd"
 | 
					name = "zstd"
 | 
				
			||||||
version = "0.13.1"
 | 
					version = "0.13.1"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,5 +46,5 @@ mime_guess = "2.0.4"
 | 
				
			|||||||
dotenvy = "0.15.7"
 | 
					dotenvy = "0.15.7"
 | 
				
			||||||
nix = { version = "0.28.0", features = ["net"] }
 | 
					nix = { version = "0.28.0", features = ["net"] }
 | 
				
			||||||
jsonwebtoken = "9.3.0"
 | 
					jsonwebtoken = "9.3.0"
 | 
				
			||||||
ring = "0.17.8"
 | 
					elliptic-curve = { version = "0.13.8", features = ["pkcs8","pem" ] }
 | 
				
			||||||
pem = "3.0.4"
 | 
					p384 = { version = "0.13.0", features = ["ecdsa", "pkcs8", "pem"] }
 | 
				
			||||||
@@ -1,5 +1,8 @@
 | 
				
			|||||||
 | 
					use elliptic_curve::pkcs8::EncodePublicKey;
 | 
				
			||||||
use jsonwebtoken::{Algorithm, DecodingKey, EncodingKey, Validation};
 | 
					use jsonwebtoken::{Algorithm, DecodingKey, EncodingKey, Validation};
 | 
				
			||||||
use ring::signature::{KeyPair, UnparsedPublicKey};
 | 
					use p384::ecdsa::{SigningKey, VerifyingKey};
 | 
				
			||||||
 | 
					use p384::pkcs8::{EncodePrivateKey, LineEnding};
 | 
				
			||||||
 | 
					use rand::rngs::OsRng;
 | 
				
			||||||
use serde::de::DeserializeOwned;
 | 
					use serde::de::DeserializeOwned;
 | 
				
			||||||
use serde::Serialize;
 | 
					use serde::Serialize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -23,25 +26,14 @@ pub enum TokenPrivKey {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/// Generate a new token keypair
 | 
					/// Generate a new token keypair
 | 
				
			||||||
pub fn generate_key_pair() -> anyhow::Result<(TokenPubKey, TokenPrivKey)> {
 | 
					pub fn generate_key_pair() -> anyhow::Result<(TokenPubKey, TokenPrivKey)> {
 | 
				
			||||||
    let doc = ring::signature::EcdsaKeyPair::generate_pkcs8(
 | 
					    let signing_key = SigningKey::random(&mut OsRng);
 | 
				
			||||||
        &ring::signature::ECDSA_P384_SHA384_ASN1_SIGNING,
 | 
					    let priv_pem = signing_key
 | 
				
			||||||
        &ring::rand::SystemRandom::new(),
 | 
					        .to_pkcs8_der()?
 | 
				
			||||||
    )?;
 | 
					        .to_pem("PRIVATE KEY", LineEnding::LF)?
 | 
				
			||||||
 | 
					        .to_string();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let priv_pem = pem::encode(&pem::Pem::new("PRIVATE KEY", doc.as_ref()));
 | 
					    let pub_key = VerifyingKey::from(signing_key);
 | 
				
			||||||
 | 
					    let pub_pem = pub_key.to_public_key_pem(LineEnding::LF)?;
 | 
				
			||||||
    let pair = ring::signature::EcdsaKeyPair::from_pkcs8(
 | 
					 | 
				
			||||||
        &ring::signature::ECDSA_P384_SHA384_ASN1_SIGNING,
 | 
					 | 
				
			||||||
        doc.as_ref(),
 | 
					 | 
				
			||||||
        &ring::rand::SystemRandom::new(),
 | 
					 | 
				
			||||||
    )?;
 | 
					 | 
				
			||||||
    let pub_pem = pem::encode(&pem::Pem::new("PUBLIC KEY", pair.public_key().as_ref()));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let pk = pair.public_key();
 | 
					 | 
				
			||||||
    let unp = UnparsedPublicKey::new(&ring::signature::ECDSA_P384_SHA384_ASN1_SIGNING, pk.as_ref());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let decoding_key = DecodingKey::from_ec_pem(pub_pem.as_bytes()).expect("aie ai");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Ok((
 | 
					    Ok((
 | 
				
			||||||
        TokenPubKey::ES384 { r#pub: pub_pem },
 | 
					        TokenPubKey::ES384 { r#pub: pub_pem },
 | 
				
			||||||
@@ -99,11 +91,10 @@ mod test {
 | 
				
			|||||||
            exp: time() + 100,
 | 
					            exp: time() + 100,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        let jwt = sign_jwt(&priv_key, &claims).expect("Failed to sign JWT!");
 | 
					        let jwt = sign_jwt(&priv_key, &claims).expect("Failed to sign JWT!");
 | 
				
			||||||
 | 
					 | 
				
			||||||
        println!("pub {pub_key:?}");
 | 
					 | 
				
			||||||
        println!("priv {priv_key:?}");
 | 
					 | 
				
			||||||
        let claims_out = validate_jwt(&pub_key, &jwt).expect("Failed to validate JWT!");
 | 
					        let claims_out = validate_jwt(&pub_key, &jwt).expect("Failed to validate JWT!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assert_eq!(claims, claims_out)
 | 
					        assert_eq!(claims, claims_out)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO : complete tests
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user