git.delta.rocks / remowt / refs/commits / 705d3cdac982

difftreelog

feat initial work on russh+remowt prototype

mvluospuYaroslav Bolyukin2024-08-24parent: #5cb6be4.patch.diff
in: trunk

30 files changed

added.rustfmt.tomldiffbeforeafterboth

no changes

modifiedCargo.lockdiffbeforeafterboth
17source = "registry+https://github.com/rust-lang/crates.io-index"17source = "registry+https://github.com/rust-lang/crates.io-index"
18checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"18checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
19
20[[package]]
21name = "adler2"
22version = "2.0.0"
23source = "registry+https://github.com/rust-lang/crates.io-index"
24checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
25
26[[package]]
27name = "aead"
28version = "0.5.2"
29source = "registry+https://github.com/rust-lang/crates.io-index"
30checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
31dependencies = [
32 "crypto-common",
33 "generic-array",
34]
35
36[[package]]
37name = "aes"
38version = "0.8.4"
39source = "registry+https://github.com/rust-lang/crates.io-index"
40checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
41dependencies = [
42 "cfg-if",
43 "cipher",
44 "cpufeatures",
45]
46
47[[package]]
48name = "aes-gcm"
49version = "0.10.3"
50source = "registry+https://github.com/rust-lang/crates.io-index"
51checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
52dependencies = [
53 "aead",
54 "aes",
55 "cipher",
56 "ctr",
57 "ghash",
58 "subtle",
59]
1960
20[[package]]61[[package]]
21name = "aho-corasick"62name = "aho-corasick"
247 "cc",288 "cc",
248 "cfg-if",289 "cfg-if",
249 "libc",290 "libc",
250 "miniz_oxide",291 "miniz_oxide 0.7.4",
251 "object",292 "object",
252 "rustc-demangle",293 "rustc-demangle",
253]294]
295
296[[package]]
297name = "base16ct"
298version = "0.2.0"
299source = "registry+https://github.com/rust-lang/crates.io-index"
300checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
301
302[[package]]
303name = "base64ct"
304version = "1.6.0"
305source = "registry+https://github.com/rust-lang/crates.io-index"
306checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
307
308[[package]]
309name = "bcrypt-pbkdf"
310version = "0.10.0"
311source = "registry+https://github.com/rust-lang/crates.io-index"
312checksum = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2"
313dependencies = [
314 "blowfish",
315 "pbkdf2 0.12.2",
316 "sha2",
317]
318
319[[package]]
320name = "bifrostlink"
321version = "0.1.0"
322dependencies = [
323 "async-trait",
324 "bytes",
325 "derivative",
326 "futures",
327 "serde",
328 "serde_json",
329 "tokio",
330 "tracing",
331 "uuid",
332]
333
334[[package]]
335name = "bifrostlink-ports"
336version = "0.1.0"
337dependencies = [
338 "bifrostlink",
339 "bytes",
340 "tokio",
341 "tracing",
342]
254343
255[[package]]344[[package]]
256name = "bindgen"345name = "bindgen"
293 "generic-array",382 "generic-array",
294]383]
384
385[[package]]
386name = "block-padding"
387version = "0.3.3"
388source = "registry+https://github.com/rust-lang/crates.io-index"
389checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
390dependencies = [
391 "generic-array",
392]
295393
296[[package]]394[[package]]
297name = "blocking"395name = "blocking"
306 "piper",404 "piper",
307]405]
406
407[[package]]
408name = "blowfish"
409version = "0.9.1"
410source = "registry+https://github.com/rust-lang/crates.io-index"
411checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
412dependencies = [
413 "byteorder",
414 "cipher",
415]
416
417[[package]]
418name = "bstr"
419version = "1.10.0"
420source = "registry+https://github.com/rust-lang/crates.io-index"
421checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
422dependencies = [
423 "memchr",
424 "serde",
425]
426
427[[package]]
428name = "bumpalo"
429version = "3.16.0"
430source = "registry+https://github.com/rust-lang/crates.io-index"
431checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
308432
309[[package]]433[[package]]
310name = "byteorder"434name = "byteorder"
318source = "registry+https://github.com/rust-lang/crates.io-index"442source = "registry+https://github.com/rust-lang/crates.io-index"
319checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"443checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
444
445[[package]]
446name = "cbc"
447version = "0.1.2"
448source = "registry+https://github.com/rust-lang/crates.io-index"
449checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
450dependencies = [
451 "cipher",
452]
320453
321[[package]]454[[package]]
322name = "cc"455name = "cc"
345source = "registry+https://github.com/rust-lang/crates.io-index"478source = "registry+https://github.com/rust-lang/crates.io-index"
346checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"479checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
480
481[[package]]
482name = "chacha20"
483version = "0.9.1"
484source = "registry+https://github.com/rust-lang/crates.io-index"
485checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
486dependencies = [
487 "cfg-if",
488 "cipher",
489 "cpufeatures",
490]
491
492[[package]]
493name = "cipher"
494version = "0.4.4"
495source = "registry+https://github.com/rust-lang/crates.io-index"
496checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
497dependencies = [
498 "crypto-common",
499 "inout",
500]
347501
348[[package]]502[[package]]
349name = "clang-sys"503name = "clang-sys"
357511
358[[package]]512[[package]]
359name = "clap"513name = "clap"
360version = "4.5.13"514version = "4.5.16"
361source = "registry+https://github.com/rust-lang/crates.io-index"515source = "registry+https://github.com/rust-lang/crates.io-index"
362checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc"516checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
363dependencies = [517dependencies = [
364 "clap_builder",518 "clap_builder",
365 "clap_derive",519 "clap_derive",
366]520]
367521
368[[package]]522[[package]]
369name = "clap_builder"523name = "clap_builder"
370version = "4.5.13"524version = "4.5.15"
371source = "registry+https://github.com/rust-lang/crates.io-index"525source = "registry+https://github.com/rust-lang/crates.io-index"
372checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99"526checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
373dependencies = [527dependencies = [
374 "anstream",528 "anstream",
375 "anstyle",529 "anstyle",
410 "crossbeam-utils",564 "crossbeam-utils",
411]565]
566
567[[package]]
568name = "const-oid"
569version = "0.9.6"
570source = "registry+https://github.com/rust-lang/crates.io-index"
571checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
412572
413[[package]]573[[package]]
414name = "cpufeatures"574name = "cpufeatures"
419 "libc",579 "libc",
420]580]
581
582[[package]]
583name = "crc32fast"
584version = "1.4.2"
585source = "registry+https://github.com/rust-lang/crates.io-index"
586checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
587dependencies = [
588 "cfg-if",
589]
421590
422[[package]]591[[package]]
423name = "crossbeam-utils"592name = "crossbeam-utils"
424version = "0.8.20"593version = "0.8.20"
425source = "registry+https://github.com/rust-lang/crates.io-index"594source = "registry+https://github.com/rust-lang/crates.io-index"
426checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"595checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
596
597[[package]]
598name = "crypto-bigint"
599version = "0.5.5"
600source = "registry+https://github.com/rust-lang/crates.io-index"
601checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
602dependencies = [
603 "generic-array",
604 "rand_core 0.6.4",
605 "subtle",
606 "zeroize",
607]
427608
428[[package]]609[[package]]
429name = "crypto-common"610name = "crypto-common"
432checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"613checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
433dependencies = [614dependencies = [
434 "generic-array",615 "generic-array",
616 "rand_core 0.6.4",
435 "typenum",617 "typenum",
436]618]
619
620[[package]]
621name = "ctr"
622version = "0.9.2"
623source = "registry+https://github.com/rust-lang/crates.io-index"
624checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
625dependencies = [
626 "cipher",
627]
628
629[[package]]
630name = "curve25519-dalek"
631version = "4.1.3"
632source = "registry+https://github.com/rust-lang/crates.io-index"
633checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
634dependencies = [
635 "cfg-if",
636 "cpufeatures",
637 "curve25519-dalek-derive",
638 "digest",
639 "fiat-crypto",
640 "rustc_version",
641 "subtle",
642 "zeroize",
643]
644
645[[package]]
646name = "curve25519-dalek-derive"
647version = "0.1.1"
648source = "registry+https://github.com/rust-lang/crates.io-index"
649checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
650dependencies = [
651 "proc-macro2",
652 "quote",
653 "syn 2.0.72",
654]
655
656[[package]]
657name = "data-encoding"
658version = "2.6.0"
659source = "registry+https://github.com/rust-lang/crates.io-index"
660checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
661
662[[package]]
663name = "delegate"
664version = "0.12.0"
665source = "registry+https://github.com/rust-lang/crates.io-index"
666checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b"
667dependencies = [
668 "proc-macro2",
669 "quote",
670 "syn 2.0.72",
671]
672
673[[package]]
674name = "der"
675version = "0.7.9"
676source = "registry+https://github.com/rust-lang/crates.io-index"
677checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
678dependencies = [
679 "const-oid",
680 "pem-rfc7468",
681 "zeroize",
682]
683
684[[package]]
685name = "derivative"
686version = "2.2.0"
687source = "registry+https://github.com/rust-lang/crates.io-index"
688checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
689dependencies = [
690 "proc-macro2",
691 "quote",
692 "syn 1.0.109",
693]
694
695[[package]]
696name = "des"
697version = "0.8.1"
698source = "registry+https://github.com/rust-lang/crates.io-index"
699checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e"
700dependencies = [
701 "cipher",
702]
437703
438[[package]]704[[package]]
439name = "digest"705name = "digest"
442checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"708checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
443dependencies = [709dependencies = [
444 "block-buffer",710 "block-buffer",
711 "const-oid",
445 "crypto-common",712 "crypto-common",
713 "subtle",
446]714]
715
716[[package]]
717name = "ecdsa"
718version = "0.16.9"
719source = "registry+https://github.com/rust-lang/crates.io-index"
720checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
721dependencies = [
722 "der",
723 "digest",
724 "elliptic-curve",
725 "rfc6979",
726 "signature",
727 "spki",
728]
729
730[[package]]
731name = "ed25519"
732version = "2.2.3"
733source = "registry+https://github.com/rust-lang/crates.io-index"
734checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
735dependencies = [
736 "pkcs8",
737 "signature",
738]
739
740[[package]]
741name = "ed25519-dalek"
742version = "2.1.1"
743source = "registry+https://github.com/rust-lang/crates.io-index"
744checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
745dependencies = [
746 "curve25519-dalek",
747 "ed25519",
748 "rand_core 0.6.4",
749 "serde",
750 "sha2",
751 "subtle",
752 "zeroize",
753]
447754
448[[package]]755[[package]]
449name = "either"756name = "either"
450version = "1.13.0"757version = "1.13.0"
451source = "registry+https://github.com/rust-lang/crates.io-index"758source = "registry+https://github.com/rust-lang/crates.io-index"
452checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"759checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
760
761[[package]]
762name = "elliptic-curve"
763version = "0.13.8"
764source = "registry+https://github.com/rust-lang/crates.io-index"
765checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
766dependencies = [
767 "base16ct",
768 "crypto-bigint",
769 "digest",
770 "ff",
771 "generic-array",
772 "group",
773 "hkdf",
774 "pem-rfc7468",
775 "pkcs8",
776 "rand_core 0.6.4",
777 "sec1",
778 "subtle",
779 "zeroize",
780]
453781
454[[package]]782[[package]]
455name = "endi"783name = "endi"
532source = "registry+https://github.com/rust-lang/crates.io-index"860source = "registry+https://github.com/rust-lang/crates.io-index"
533checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"861checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
862
863[[package]]
864name = "ff"
865version = "0.13.0"
866source = "registry+https://github.com/rust-lang/crates.io-index"
867checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
868dependencies = [
869 "rand_core 0.6.4",
870 "subtle",
871]
872
873[[package]]
874name = "fiat-crypto"
875version = "0.2.9"
876source = "registry+https://github.com/rust-lang/crates.io-index"
877checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
878
879[[package]]
880name = "flate2"
881version = "1.0.32"
882source = "registry+https://github.com/rust-lang/crates.io-index"
883checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666"
884dependencies = [
885 "crc32fast",
886 "miniz_oxide 0.8.0",
887]
888
889[[package]]
890name = "fuchsia-cprng"
891version = "0.1.1"
892source = "registry+https://github.com/rust-lang/crates.io-index"
893checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
894
895[[package]]
896name = "futures"
897version = "0.3.30"
898source = "registry+https://github.com/rust-lang/crates.io-index"
899checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
900dependencies = [
901 "futures-channel",
902 "futures-core",
903 "futures-executor",
904 "futures-io",
905 "futures-sink",
906 "futures-task",
907 "futures-util",
908]
909
910[[package]]
911name = "futures-channel"
912version = "0.3.30"
913source = "registry+https://github.com/rust-lang/crates.io-index"
914checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
915dependencies = [
916 "futures-core",
917 "futures-sink",
918]
534919
535[[package]]920[[package]]
536name = "futures-core"921name = "futures-core"
537version = "0.3.30"922version = "0.3.30"
538source = "registry+https://github.com/rust-lang/crates.io-index"923source = "registry+https://github.com/rust-lang/crates.io-index"
539checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"924checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
925
926[[package]]
927name = "futures-executor"
928version = "0.3.30"
929source = "registry+https://github.com/rust-lang/crates.io-index"
930checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
931dependencies = [
932 "futures-core",
933 "futures-task",
934 "futures-util",
935]
540936
541[[package]]937[[package]]
542name = "futures-io"938name = "futures-io"
557 "pin-project-lite",953 "pin-project-lite",
558]954]
955
956[[package]]
957name = "futures-macro"
958version = "0.3.30"
959source = "registry+https://github.com/rust-lang/crates.io-index"
960checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
961dependencies = [
962 "proc-macro2",
963 "quote",
964 "syn 2.0.72",
965]
559966
560[[package]]967[[package]]
561name = "futures-sink"968name = "futures-sink"
575source = "registry+https://github.com/rust-lang/crates.io-index"982source = "registry+https://github.com/rust-lang/crates.io-index"
576checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"983checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
577dependencies = [984dependencies = [
985 "futures-channel",
578 "futures-core",986 "futures-core",
579 "futures-io",987 "futures-io",
988 "futures-macro",
580 "futures-sink",989 "futures-sink",
581 "futures-task",990 "futures-task",
582 "memchr",991 "memchr",
593dependencies = [1002dependencies = [
594 "typenum",1003 "typenum",
595 "version_check",1004 "version_check",
1005 "zeroize",
596]1006]
5971007
598[[package]]1008[[package]]
606 "wasi",1016 "wasi",
607]1017]
1018
1019[[package]]
1020name = "ghash"
1021version = "0.5.1"
1022source = "registry+https://github.com/rust-lang/crates.io-index"
1023checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
1024dependencies = [
1025 "opaque-debug",
1026 "polyval",
1027]
6081028
609[[package]]1029[[package]]
610name = "gimli"1030name = "gimli"
618source = "registry+https://github.com/rust-lang/crates.io-index"1038source = "registry+https://github.com/rust-lang/crates.io-index"
619checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"1039checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
1040
1041[[package]]
1042name = "globset"
1043version = "0.4.14"
1044source = "registry+https://github.com/rust-lang/crates.io-index"
1045checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
1046dependencies = [
1047 "aho-corasick",
1048 "bstr",
1049 "log",
1050 "regex-automata",
1051 "regex-syntax",
1052]
1053
1054[[package]]
1055name = "group"
1056version = "0.13.0"
1057source = "registry+https://github.com/rust-lang/crates.io-index"
1058checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
1059dependencies = [
1060 "ff",
1061 "rand_core 0.6.4",
1062 "subtle",
1063]
6201064
621[[package]]1065[[package]]
622name = "hashbrown"1066name = "hashbrown"
648source = "registry+https://github.com/rust-lang/crates.io-index"1092source = "registry+https://github.com/rust-lang/crates.io-index"
649checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"1093checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1094
1095[[package]]
1096name = "hex-literal"
1097version = "0.4.1"
1098source = "registry+https://github.com/rust-lang/crates.io-index"
1099checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
1100
1101[[package]]
1102name = "hkdf"
1103version = "0.12.4"
1104source = "registry+https://github.com/rust-lang/crates.io-index"
1105checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
1106dependencies = [
1107 "hmac",
1108]
1109
1110[[package]]
1111name = "hmac"
1112version = "0.12.1"
1113source = "registry+https://github.com/rust-lang/crates.io-index"
1114checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
1115dependencies = [
1116 "digest",
1117]
1118
1119[[package]]
1120name = "home"
1121version = "0.5.9"
1122source = "registry+https://github.com/rust-lang/crates.io-index"
1123checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
1124dependencies = [
1125 "windows-sys",
1126]
6501127
651[[package]]1128[[package]]
652name = "indexmap"1129name = "indexmap"
658 "hashbrown",1135 "hashbrown",
659]1136]
1137
1138[[package]]
1139name = "inout"
1140version = "0.1.3"
1141source = "registry+https://github.com/rust-lang/crates.io-index"
1142checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
1143dependencies = [
1144 "block-padding",
1145 "generic-array",
1146]
6601147
661[[package]]1148[[package]]
662name = "is_terminal_polyfill"1149name = "is_terminal_polyfill"
679source = "registry+https://github.com/rust-lang/crates.io-index"1166source = "registry+https://github.com/rust-lang/crates.io-index"
680checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"1167checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
1168
1169[[package]]
1170name = "js-sys"
1171version = "0.3.70"
1172source = "registry+https://github.com/rust-lang/crates.io-index"
1173checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
1174dependencies = [
1175 "wasm-bindgen",
1176]
6811177
682[[package]]1178[[package]]
683name = "lazy_static"1179name = "lazy_static"
684version = "1.5.0"1180version = "1.5.0"
685source = "registry+https://github.com/rust-lang/crates.io-index"1181source = "registry+https://github.com/rust-lang/crates.io-index"
686checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"1182checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1183dependencies = [
1184 "spin",
1185]
6871186
688[[package]]1187[[package]]
689name = "lazycell"1188name = "lazycell"
697source = "registry+https://github.com/rust-lang/crates.io-index"1196source = "registry+https://github.com/rust-lang/crates.io-index"
698checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"1197checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
1198
1199[[package]]
1200name = "libm"
1201version = "0.2.8"
1202source = "registry+https://github.com/rust-lang/crates.io-index"
1203checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
6991204
700[[package]]1205[[package]]
701name = "linux-raw-sys"1206name = "linux-raw-sys"
709source = "registry+https://github.com/rust-lang/crates.io-index"1214source = "registry+https://github.com/rust-lang/crates.io-index"
710checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"1215checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
1216
1217[[package]]
1218name = "md5"
1219version = "0.7.0"
1220source = "registry+https://github.com/rust-lang/crates.io-index"
1221checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
7111222
712[[package]]1223[[package]]
713name = "memchr"1224name = "memchr"
739 "adler",1250 "adler",
740]1251]
1252
1253[[package]]
1254name = "miniz_oxide"
1255version = "0.8.0"
1256source = "registry+https://github.com/rust-lang/crates.io-index"
1257checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
1258dependencies = [
1259 "adler2",
1260]
7411261
742[[package]]1262[[package]]
743name = "mio"1263name = "mio"
774 "minimal-lexical",1294 "minimal-lexical",
775]1295]
1296
1297[[package]]
1298name = "non-zero-byte-slice"
1299version = "0.1.0"
1300source = "registry+https://github.com/rust-lang/crates.io-index"
1301checksum = "89daa1daa11c9df05d1181bcd0936d8066f8543144d77b09808eb78d65e38024"
1302dependencies = [
1303 "serde",
1304]
7761305
777[[package]]1306[[package]]
778name = "nu-ansi-term"1307name = "nu-ansi-term"
784 "winapi",1313 "winapi",
785]1314]
1315
1316[[package]]
1317name = "num-bigint"
1318version = "0.4.6"
1319source = "registry+https://github.com/rust-lang/crates.io-index"
1320checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
1321dependencies = [
1322 "num-integer",
1323 "num-traits",
1324 "rand 0.8.5",
1325]
1326
1327[[package]]
1328name = "num-bigint-dig"
1329version = "0.8.4"
1330source = "registry+https://github.com/rust-lang/crates.io-index"
1331checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
1332dependencies = [
1333 "byteorder",
1334 "lazy_static",
1335 "libm",
1336 "num-integer",
1337 "num-iter",
1338 "num-traits",
1339 "rand 0.8.5",
1340 "smallvec",
1341 "zeroize",
1342]
1343
1344[[package]]
1345name = "num-integer"
1346version = "0.1.46"
1347source = "registry+https://github.com/rust-lang/crates.io-index"
1348checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
1349dependencies = [
1350 "num-traits",
1351]
1352
1353[[package]]
1354name = "num-iter"
1355version = "0.1.45"
1356source = "registry+https://github.com/rust-lang/crates.io-index"
1357checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
1358dependencies = [
1359 "autocfg",
1360 "num-integer",
1361 "num-traits",
1362]
1363
1364[[package]]
1365name = "num-traits"
1366version = "0.2.19"
1367source = "registry+https://github.com/rust-lang/crates.io-index"
1368checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
1369dependencies = [
1370 "autocfg",
1371 "libm",
1372]
7861373
787[[package]]1374[[package]]
788name = "object"1375name = "object"
799source = "registry+https://github.com/rust-lang/crates.io-index"1386source = "registry+https://github.com/rust-lang/crates.io-index"
800checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"1387checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
1388
1389[[package]]
1390name = "opaque-debug"
1391version = "0.3.1"
1392source = "registry+https://github.com/rust-lang/crates.io-index"
1393checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
1394
1395[[package]]
1396name = "openssh"
1397version = "0.11.0"
1398source = "registry+https://github.com/rust-lang/crates.io-index"
1399checksum = "0f27389e5da64700a3efb7f925e442f824f6e3d4b1c27f75e115a92ad3aecbb1"
1400dependencies = [
1401 "libc",
1402 "once_cell",
1403 "openssh-mux-client",
1404 "shell-escape",
1405 "tempfile",
1406 "thiserror",
1407 "tokio",
1408]
1409
1410[[package]]
1411name = "openssh-mux-client"
1412version = "0.17.5"
1413source = "registry+https://github.com/rust-lang/crates.io-index"
1414checksum = "b87a1b6780afc5f9f38f81f7928c91c3c24532c48914477ab6caf2ba076ae866"
1415dependencies = [
1416 "cfg-if",
1417 "non-zero-byte-slice",
1418 "once_cell",
1419 "openssh-mux-client-error",
1420 "sendfd",
1421 "serde",
1422 "ssh_format",
1423 "tokio",
1424 "tokio-io-utility",
1425 "typed-builder",
1426]
1427
1428[[package]]
1429name = "openssh-mux-client-error"
1430version = "0.1.0"
1431source = "registry+https://github.com/rust-lang/crates.io-index"
1432checksum = "015d49e592f4d2a456033e6ec48036588e8e58c8908424b1bc40994de58ae648"
1433dependencies = [
1434 "ssh_format_error",
1435 "thiserror",
1436]
8011437
802[[package]]1438[[package]]
803name = "ordered-stream"1439name = "ordered-stream"
815source = "registry+https://github.com/rust-lang/crates.io-index"1451source = "registry+https://github.com/rust-lang/crates.io-index"
816checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"1452checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
1453
1454[[package]]
1455name = "p256"
1456version = "0.13.2"
1457source = "registry+https://github.com/rust-lang/crates.io-index"
1458checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
1459dependencies = [
1460 "ecdsa",
1461 "elliptic-curve",
1462 "primeorder",
1463 "sha2",
1464]
1465
1466[[package]]
1467name = "p384"
1468version = "0.13.0"
1469source = "registry+https://github.com/rust-lang/crates.io-index"
1470checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
1471dependencies = [
1472 "ecdsa",
1473 "elliptic-curve",
1474 "primeorder",
1475 "sha2",
1476]
1477
1478[[package]]
1479name = "p521"
1480version = "0.13.3"
1481source = "registry+https://github.com/rust-lang/crates.io-index"
1482checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
1483dependencies = [
1484 "base16ct",
1485 "ecdsa",
1486 "elliptic-curve",
1487 "primeorder",
1488 "rand_core 0.6.4",
1489 "sha2",
1490]
1491
1492[[package]]
1493name = "pageant"
1494version = "0.0.1-beta.3"
1495source = "git+https://github.com/Eugeny/russh/#4115b8fd3a94c17c0178761ea769a40ca410903d"
1496dependencies = [
1497 "bytes",
1498 "delegate",
1499 "futures",
1500 "rand 0.8.5",
1501 "thiserror",
1502 "tokio",
1503 "windows",
1504]
8171505
818[[package]]1506[[package]]
819name = "pam-client"1507name = "pam-client"
845source = "registry+https://github.com/rust-lang/crates.io-index"1533source = "registry+https://github.com/rust-lang/crates.io-index"
846checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"1534checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
1535
1536[[package]]
1537name = "password-hash"
1538version = "0.4.2"
1539source = "registry+https://github.com/rust-lang/crates.io-index"
1540checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
1541dependencies = [
1542 "base64ct",
1543 "rand_core 0.6.4",
1544 "subtle",
1545]
1546
1547[[package]]
1548name = "pbkdf2"
1549version = "0.11.0"
1550source = "registry+https://github.com/rust-lang/crates.io-index"
1551checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
1552dependencies = [
1553 "digest",
1554 "hmac",
1555 "password-hash",
1556 "sha2",
1557]
1558
1559[[package]]
1560name = "pbkdf2"
1561version = "0.12.2"
1562source = "registry+https://github.com/rust-lang/crates.io-index"
1563checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
1564dependencies = [
1565 "digest",
1566 "hmac",
1567]
1568
1569[[package]]
1570name = "pem-rfc7468"
1571version = "0.7.0"
1572source = "registry+https://github.com/rust-lang/crates.io-index"
1573checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
1574dependencies = [
1575 "base64ct",
1576]
8471577
848[[package]]1578[[package]]
849name = "pin-project-lite"1579name = "pin-project-lite"
868 "futures-io",1598 "futures-io",
869]1599]
1600
1601[[package]]
1602name = "pkcs1"
1603version = "0.7.5"
1604source = "registry+https://github.com/rust-lang/crates.io-index"
1605checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
1606dependencies = [
1607 "der",
1608 "pkcs8",
1609 "spki",
1610]
1611
1612[[package]]
1613name = "pkcs5"
1614version = "0.7.1"
1615source = "registry+https://github.com/rust-lang/crates.io-index"
1616checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6"
1617dependencies = [
1618 "aes",
1619 "cbc",
1620 "der",
1621 "pbkdf2 0.12.2",
1622 "scrypt",
1623 "sha2",
1624 "spki",
1625]
1626
1627[[package]]
1628name = "pkcs8"
1629version = "0.10.2"
1630source = "registry+https://github.com/rust-lang/crates.io-index"
1631checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
1632dependencies = [
1633 "der",
1634 "pkcs5",
1635 "rand_core 0.6.4",
1636 "spki",
1637]
8701638
871[[package]]1639[[package]]
872name = "polkit-backend"1640name = "polkit-backend"
909 "windows-sys",1677 "windows-sys",
910]1678]
1679
1680[[package]]
1681name = "poly1305"
1682version = "0.8.0"
1683source = "registry+https://github.com/rust-lang/crates.io-index"
1684checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
1685dependencies = [
1686 "cpufeatures",
1687 "opaque-debug",
1688 "universal-hash",
1689]
1690
1691[[package]]
1692name = "polyval"
1693version = "0.6.2"
1694source = "registry+https://github.com/rust-lang/crates.io-index"
1695checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
1696dependencies = [
1697 "cfg-if",
1698 "cpufeatures",
1699 "opaque-debug",
1700 "universal-hash",
1701]
9111702
912[[package]]1703[[package]]
913name = "ppv-lite86"1704name = "ppv-lite86"
918 "zerocopy",1709 "zerocopy",
919]1710]
1711
1712[[package]]
1713name = "primeorder"
1714version = "0.13.6"
1715source = "registry+https://github.com/rust-lang/crates.io-index"
1716checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
1717dependencies = [
1718 "elliptic-curve",
1719]
9201720
921[[package]]1721[[package]]
922name = "proc-macro-crate"1722name = "proc-macro-crate"
945 "proc-macro2",1745 "proc-macro2",
946]1746]
1747
1748[[package]]
1749name = "rand"
1750version = "0.4.6"
1751source = "registry+https://github.com/rust-lang/crates.io-index"
1752checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
1753dependencies = [
1754 "fuchsia-cprng",
1755 "libc",
1756 "rand_core 0.3.1",
1757 "rdrand",
1758 "winapi",
1759]
9471760
948[[package]]1761[[package]]
949name = "rand"1762name = "rand"
953dependencies = [1766dependencies = [
954 "libc",1767 "libc",
955 "rand_chacha",1768 "rand_chacha",
956 "rand_core",1769 "rand_core 0.6.4",
957]1770]
9581771
959[[package]]1772[[package]]
963checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"1776checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
964dependencies = [1777dependencies = [
965 "ppv-lite86",1778 "ppv-lite86",
966 "rand_core",1779 "rand_core 0.6.4",
967]1780]
1781
1782[[package]]
1783name = "rand_core"
1784version = "0.3.1"
1785source = "registry+https://github.com/rust-lang/crates.io-index"
1786checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
1787dependencies = [
1788 "rand_core 0.4.2",
1789]
1790
1791[[package]]
1792name = "rand_core"
1793version = "0.4.2"
1794source = "registry+https://github.com/rust-lang/crates.io-index"
1795checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
9681796
969[[package]]1797[[package]]
970name = "rand_core"1798name = "rand_core"
975 "getrandom",1803 "getrandom",
976]1804]
1805
1806[[package]]
1807name = "rdrand"
1808version = "0.4.0"
1809source = "registry+https://github.com/rust-lang/crates.io-index"
1810checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
1811dependencies = [
1812 "rand_core 0.3.1",
1813]
1814
1815[[package]]
1816name = "redox_syscall"
1817version = "0.4.1"
1818source = "registry+https://github.com/rust-lang/crates.io-index"
1819checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
1820dependencies = [
1821 "bitflags 1.3.2",
1822]
9771823
978[[package]]1824[[package]]
979name = "regex"1825name = "regex"
1004source = "registry+https://github.com/rust-lang/crates.io-index"1850source = "registry+https://github.com/rust-lang/crates.io-index"
1005checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"1851checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
1852
1853[[package]]
1854name = "remove_dir_all"
1855version = "0.5.3"
1856source = "registry+https://github.com/rust-lang/crates.io-index"
1857checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
1858dependencies = [
1859 "winapi",
1860]
10061861
1007[[package]]1862[[package]]
1008name = "remowt-agent"1863name = "remowt-agent"
1009version = "0.1.0"1864version = "0.1.0"
1010dependencies = [1865dependencies = [
1011 "anyhow",1866 "anyhow",
1867 "bifrostlink",
1868 "bifrostlink-ports",
1012 "clap",1869 "clap",
1013 "pam-client",1870 "futures",
1871 "futures-util",
1872 "nix",
1014 "polkit-shared",1873 "polkit-shared",
1015 "rand",1874 "rand 0.8.5",
1875 "remowt-link-shared",
1016 "serde",1876 "serde",
1017 "tokio",1877 "tokio",
1878 "tokio-util",
1018 "tracing",1879 "tracing",
1019 "tracing-subscriber",1880 "tracing-subscriber",
1020 "ui-prompt",1881 "ui-prompt",
1023 "zbus_polkit",1884 "zbus_polkit",
1024]1885]
1886
1887[[package]]
1888name = "remowt-link-shared"
1889version = "0.1.0"
1890dependencies = [
1891 "bifrostlink",
1892 "serde",
1893 "serde_json",
1894 "thiserror",
1895 "tokio",
1896]
10251897
1026[[package]]1898[[package]]
1027name = "remowt-ssh"1899name = "remowt-ssh"
1028version = "0.1.0"1900version = "0.1.0"
1901dependencies = [
1902 "anyhow",
1903 "async-trait",
1904 "bifrostlink",
1905 "bifrostlink-ports",
1906 "clap",
1907 "openssh",
1908 "remowt-link-shared",
1909 "russh",
1910 "russh-config",
1911 "russh-keys",
1912 "tempdir",
1913 "tokio",
1914 "tracing-subscriber",
1915 "uuid",
1916]
1917
1918[[package]]
1919name = "rfc6979"
1920version = "0.4.0"
1921source = "registry+https://github.com/rust-lang/crates.io-index"
1922checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
1923dependencies = [
1924 "hmac",
1925 "subtle",
1926]
10291927
1030[[package]]1928[[package]]
1031name = "rpassword"1929name = "rpassword"
1039 "winapi",1937 "winapi",
1040]1938]
1939
1940[[package]]
1941name = "rsa"
1942version = "0.9.6"
1943source = "registry+https://github.com/rust-lang/crates.io-index"
1944checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
1945dependencies = [
1946 "const-oid",
1947 "digest",
1948 "num-bigint-dig",
1949 "num-integer",
1950 "num-traits",
1951 "pkcs1",
1952 "pkcs8",
1953 "rand_core 0.6.4",
1954 "sha2",
1955 "signature",
1956 "spki",
1957 "subtle",
1958 "zeroize",
1959]
1960
1961[[package]]
1962name = "russh"
1963version = "0.46.0-beta.4"
1964source = "git+https://github.com/Eugeny/russh/#4115b8fd3a94c17c0178761ea769a40ca410903d"
1965dependencies = [
1966 "aes",
1967 "aes-gcm",
1968 "async-trait",
1969 "bitflags 2.6.0",
1970 "byteorder",
1971 "cbc",
1972 "chacha20",
1973 "ctr",
1974 "curve25519-dalek",
1975 "des",
1976 "digest",
1977 "elliptic-curve",
1978 "flate2",
1979 "futures",
1980 "generic-array",
1981 "hex-literal",
1982 "hmac",
1983 "log",
1984 "num-bigint",
1985 "once_cell",
1986 "p256",
1987 "p384",
1988 "p521",
1989 "poly1305",
1990 "rand 0.8.5",
1991 "rand_core 0.6.4",
1992 "russh-cryptovec",
1993 "russh-keys",
1994 "sha1",
1995 "sha2",
1996 "ssh-encoding",
1997 "ssh-key",
1998 "subtle",
1999 "thiserror",
2000 "tokio",
2001]
2002
2003[[package]]
2004name = "russh-config"
2005version = "0.7.1"
2006source = "git+https://github.com/Eugeny/russh/#4115b8fd3a94c17c0178761ea769a40ca410903d"
2007dependencies = [
2008 "futures",
2009 "globset",
2010 "home",
2011 "log",
2012 "thiserror",
2013 "tokio",
2014 "whoami",
2015]
2016
2017[[package]]
2018name = "russh-cryptovec"
2019version = "0.7.3"
2020source = "git+https://github.com/Eugeny/russh/#4115b8fd3a94c17c0178761ea769a40ca410903d"
2021dependencies = [
2022 "libc",
2023 "winapi",
2024]
2025
2026[[package]]
2027name = "russh-keys"
2028version = "0.46.0-beta.3"
2029source = "git+https://github.com/Eugeny/russh/#4115b8fd3a94c17c0178761ea769a40ca410903d"
2030dependencies = [
2031 "aes",
2032 "async-trait",
2033 "bcrypt-pbkdf",
2034 "block-padding",
2035 "byteorder",
2036 "cbc",
2037 "ctr",
2038 "data-encoding",
2039 "der",
2040 "digest",
2041 "ecdsa",
2042 "ed25519-dalek",
2043 "elliptic-curve",
2044 "futures",
2045 "hmac",
2046 "home",
2047 "inout",
2048 "log",
2049 "md5",
2050 "num-integer",
2051 "p256",
2052 "p384",
2053 "p521",
2054 "pageant",
2055 "pbkdf2 0.11.0",
2056 "pkcs1",
2057 "pkcs5",
2058 "pkcs8",
2059 "rand 0.8.5",
2060 "rand_core 0.6.4",
2061 "rsa",
2062 "russh-cryptovec",
2063 "sec1",
2064 "serde",
2065 "sha1",
2066 "sha2",
2067 "spki",
2068 "ssh-encoding",
2069 "ssh-key",
2070 "thiserror",
2071 "tokio",
2072 "tokio-stream",
2073 "typenum",
2074 "zeroize",
2075]
10412076
1042[[package]]2077[[package]]
1043name = "rustc-demangle"2078name = "rustc-demangle"
1051source = "registry+https://github.com/rust-lang/crates.io-index"2086source = "registry+https://github.com/rust-lang/crates.io-index"
1052checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"2087checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
2088
2089[[package]]
2090name = "rustc_version"
2091version = "0.4.0"
2092source = "registry+https://github.com/rust-lang/crates.io-index"
2093checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
2094dependencies = [
2095 "semver",
2096]
10532097
1054[[package]]2098[[package]]
1055name = "rustix"2099name = "rustix"
1076source = "registry+https://github.com/rust-lang/crates.io-index"2120source = "registry+https://github.com/rust-lang/crates.io-index"
1077checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"2121checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
2122
2123[[package]]
2124name = "salsa20"
2125version = "0.10.2"
2126source = "registry+https://github.com/rust-lang/crates.io-index"
2127checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
2128dependencies = [
2129 "cipher",
2130]
2131
2132[[package]]
2133name = "scrypt"
2134version = "0.11.0"
2135source = "registry+https://github.com/rust-lang/crates.io-index"
2136checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
2137dependencies = [
2138 "pbkdf2 0.12.2",
2139 "salsa20",
2140 "sha2",
2141]
2142
2143[[package]]
2144name = "sec1"
2145version = "0.7.3"
2146source = "registry+https://github.com/rust-lang/crates.io-index"
2147checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
2148dependencies = [
2149 "base16ct",
2150 "der",
2151 "generic-array",
2152 "pkcs8",
2153 "subtle",
2154 "zeroize",
2155]
2156
2157[[package]]
2158name = "semver"
2159version = "1.0.23"
2160source = "registry+https://github.com/rust-lang/crates.io-index"
2161checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
2162
2163[[package]]
2164name = "sendfd"
2165version = "0.4.3"
2166source = "registry+https://github.com/rust-lang/crates.io-index"
2167checksum = "604b71b8fc267e13bb3023a2c901126c8f349393666a6d98ac1ae5729b701798"
2168dependencies = [
2169 "libc",
2170 "tokio",
2171]
10782172
1079[[package]]2173[[package]]
1080name = "serde"2174name = "serde"
1081version = "1.0.204"2175version = "1.0.208"
1082source = "registry+https://github.com/rust-lang/crates.io-index"2176source = "registry+https://github.com/rust-lang/crates.io-index"
1083checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"2177checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
1084dependencies = [2178dependencies = [
1085 "serde_derive",2179 "serde_derive",
1086]2180]
10872181
1088[[package]]2182[[package]]
1089name = "serde_derive"2183name = "serde_derive"
1090version = "1.0.204"2184version = "1.0.208"
1091source = "registry+https://github.com/rust-lang/crates.io-index"2185source = "registry+https://github.com/rust-lang/crates.io-index"
1092checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"2186checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
1093dependencies = [2187dependencies = [
1094 "proc-macro2",2188 "proc-macro2",
1095 "quote",2189 "quote",
10982192
1099[[package]]2193[[package]]
1100name = "serde_json"2194name = "serde_json"
1101version = "1.0.122"2195version = "1.0.125"
1102source = "registry+https://github.com/rust-lang/crates.io-index"2196source = "registry+https://github.com/rust-lang/crates.io-index"
1103checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da"2197checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
1104dependencies = [2198dependencies = [
1105 "itoa",2199 "itoa",
1106 "memchr",2200 "memchr",
1130 "digest",2224 "digest",
1131]2225]
2226
2227[[package]]
2228name = "sha2"
2229version = "0.10.8"
2230source = "registry+https://github.com/rust-lang/crates.io-index"
2231checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
2232dependencies = [
2233 "cfg-if",
2234 "cpufeatures",
2235 "digest",
2236]
11322237
1133[[package]]2238[[package]]
1134name = "sharded-slab"2239name = "sharded-slab"
1139 "lazy_static",2244 "lazy_static",
1140]2245]
2246
2247[[package]]
2248name = "shell-escape"
2249version = "0.1.5"
2250source = "registry+https://github.com/rust-lang/crates.io-index"
2251checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
11412252
1142[[package]]2253[[package]]
1143name = "shlex"2254name = "shlex"
1154 "libc",2265 "libc",
1155]2266]
2267
2268[[package]]
2269name = "signature"
2270version = "2.2.0"
2271source = "registry+https://github.com/rust-lang/crates.io-index"
2272checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
2273dependencies = [
2274 "digest",
2275 "rand_core 0.6.4",
2276]
11562277
1157[[package]]2278[[package]]
1158name = "slab"2279name = "slab"
1179 "windows-sys",2300 "windows-sys",
1180]2301]
2302
2303[[package]]
2304name = "spin"
2305version = "0.9.8"
2306source = "registry+https://github.com/rust-lang/crates.io-index"
2307checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
2308
2309[[package]]
2310name = "spki"
2311version = "0.7.3"
2312source = "registry+https://github.com/rust-lang/crates.io-index"
2313checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
2314dependencies = [
2315 "base64ct",
2316 "der",
2317]
2318
2319[[package]]
2320name = "ssh-cipher"
2321version = "0.2.0"
2322source = "registry+https://github.com/rust-lang/crates.io-index"
2323checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f"
2324dependencies = [
2325 "aes",
2326 "aes-gcm",
2327 "cbc",
2328 "chacha20",
2329 "cipher",
2330 "ctr",
2331 "poly1305",
2332 "ssh-encoding",
2333 "subtle",
2334]
2335
2336[[package]]
2337name = "ssh-encoding"
2338version = "0.2.0"
2339source = "registry+https://github.com/rust-lang/crates.io-index"
2340checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
2341dependencies = [
2342 "base64ct",
2343 "pem-rfc7468",
2344 "sha2",
2345]
2346
2347[[package]]
2348name = "ssh-key"
2349version = "0.6.6"
2350source = "registry+https://github.com/rust-lang/crates.io-index"
2351checksum = "ca9b366a80cf18bb6406f4cf4d10aebfb46140a8c0c33f666a144c5c76ecbafc"
2352dependencies = [
2353 "bcrypt-pbkdf",
2354 "ed25519-dalek",
2355 "num-bigint-dig",
2356 "p256",
2357 "p384",
2358 "p521",
2359 "rand_core 0.6.4",
2360 "rsa",
2361 "sec1",
2362 "sha2",
2363 "signature",
2364 "ssh-cipher",
2365 "ssh-encoding",
2366 "subtle",
2367 "zeroize",
2368]
2369
2370[[package]]
2371name = "ssh_format"
2372version = "0.14.1"
2373source = "registry+https://github.com/rust-lang/crates.io-index"
2374checksum = "24ab31081d1c9097c327ec23550858cb5ffb4af6b866c1ef4d728455f01f3304"
2375dependencies = [
2376 "serde",
2377 "ssh_format_error",
2378]
2379
2380[[package]]
2381name = "ssh_format_error"
2382version = "0.1.0"
2383source = "registry+https://github.com/rust-lang/crates.io-index"
2384checksum = "be3c6519de7ca611f71ef7e8a56eb57aa1c818fecb5242d0a0f39c83776c210c"
2385dependencies = [
2386 "serde",
2387]
11812388
1182[[package]]2389[[package]]
1183name = "static_assertions"2390name = "static_assertions"
1191source = "registry+https://github.com/rust-lang/crates.io-index"2398source = "registry+https://github.com/rust-lang/crates.io-index"
1192checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"2399checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
2400
2401[[package]]
2402name = "subtle"
2403version = "2.6.1"
2404source = "registry+https://github.com/rust-lang/crates.io-index"
2405checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
11932406
1194[[package]]2407[[package]]
1195name = "syn"2408name = "syn"
1213 "unicode-ident",2426 "unicode-ident",
1214]2427]
2428
2429[[package]]
2430name = "tempdir"
2431version = "0.3.7"
2432source = "registry+https://github.com/rust-lang/crates.io-index"
2433checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
2434dependencies = [
2435 "rand 0.4.6",
2436 "remove_dir_all",
2437]
12152438
1216[[package]]2439[[package]]
1217name = "tempfile"2440name = "tempfile"
12582481
1259[[package]]2482[[package]]
1260name = "tokio"2483name = "tokio"
1261version = "1.39.2"2484version = "1.39.3"
1262source = "registry+https://github.com/rust-lang/crates.io-index"2485source = "registry+https://github.com/rust-lang/crates.io-index"
1263checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1"2486checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
1264dependencies = [2487dependencies = [
1265 "backtrace",2488 "backtrace",
1266 "bytes",2489 "bytes",
1274 "windows-sys",2497 "windows-sys",
1275]2498]
2499
2500[[package]]
2501name = "tokio-io-utility"
2502version = "0.7.6"
2503source = "registry+https://github.com/rust-lang/crates.io-index"
2504checksum = "8d672654d175710e52c7c41f6aec77c62b3c0954e2a7ebce9049d1e94ed7c263"
2505dependencies = [
2506 "tokio",
2507]
12762508
1277[[package]]2509[[package]]
1278name = "tokio-macros"2510name = "tokio-macros"
1285 "syn 2.0.72",2517 "syn 2.0.72",
1286]2518]
2519
2520[[package]]
2521name = "tokio-stream"
2522version = "0.1.15"
2523source = "registry+https://github.com/rust-lang/crates.io-index"
2524checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
2525dependencies = [
2526 "futures-core",
2527 "pin-project-lite",
2528 "tokio",
2529 "tokio-util",
2530]
2531
2532[[package]]
2533name = "tokio-util"
2534version = "0.7.11"
2535source = "registry+https://github.com/rust-lang/crates.io-index"
2536checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
2537dependencies = [
2538 "bytes",
2539 "futures-core",
2540 "futures-sink",
2541 "pin-project-lite",
2542 "tokio",
2543]
12872544
1288[[package]]2545[[package]]
1289name = "toml_datetime"2546name = "toml_datetime"
1359 "tracing-log",2616 "tracing-log",
1360]2617]
2618
2619[[package]]
2620name = "typed-builder"
2621version = "0.20.0"
2622source = "registry+https://github.com/rust-lang/crates.io-index"
2623checksum = "7e14ed59dc8b7b26cacb2a92bad2e8b1f098806063898ab42a3bd121d7d45e75"
2624dependencies = [
2625 "typed-builder-macro",
2626]
2627
2628[[package]]
2629name = "typed-builder-macro"
2630version = "0.20.0"
2631source = "registry+https://github.com/rust-lang/crates.io-index"
2632checksum = "560b82d656506509d43abe30e0ba64c56b1953ab3d4fe7ba5902747a7a3cedd5"
2633dependencies = [
2634 "proc-macro2",
2635 "quote",
2636 "syn 2.0.72",
2637]
13612638
1362[[package]]2639[[package]]
1363name = "typenum"2640name = "typenum"
1380name = "ui-prompt"2657name = "ui-prompt"
1381version = "0.1.0"2658version = "0.1.0"
1382dependencies = [2659dependencies = [
2660 "bifrostlink",
1383 "serde",2661 "serde",
1384 "thiserror",2662 "thiserror",
1385 "tokio",2663 "tokio",
1393source = "registry+https://github.com/rust-lang/crates.io-index"2671source = "registry+https://github.com/rust-lang/crates.io-index"
1394checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"2672checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
2673
2674[[package]]
2675name = "universal-hash"
2676version = "0.5.1"
2677source = "registry+https://github.com/rust-lang/crates.io-index"
2678checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
2679dependencies = [
2680 "crypto-common",
2681 "subtle",
2682]
13952683
1396[[package]]2684[[package]]
1397name = "utf8parse"2685name = "utf8parse"
1426source = "registry+https://github.com/rust-lang/crates.io-index"2714source = "registry+https://github.com/rust-lang/crates.io-index"
1427checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"2715checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
2716
2717[[package]]
2718name = "wasite"
2719version = "0.1.0"
2720source = "registry+https://github.com/rust-lang/crates.io-index"
2721checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
2722
2723[[package]]
2724name = "wasm-bindgen"
2725version = "0.2.93"
2726source = "registry+https://github.com/rust-lang/crates.io-index"
2727checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
2728dependencies = [
2729 "cfg-if",
2730 "once_cell",
2731 "wasm-bindgen-macro",
2732]
2733
2734[[package]]
2735name = "wasm-bindgen-backend"
2736version = "0.2.93"
2737source = "registry+https://github.com/rust-lang/crates.io-index"
2738checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
2739dependencies = [
2740 "bumpalo",
2741 "log",
2742 "once_cell",
2743 "proc-macro2",
2744 "quote",
2745 "syn 2.0.72",
2746 "wasm-bindgen-shared",
2747]
2748
2749[[package]]
2750name = "wasm-bindgen-macro"
2751version = "0.2.93"
2752source = "registry+https://github.com/rust-lang/crates.io-index"
2753checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
2754dependencies = [
2755 "quote",
2756 "wasm-bindgen-macro-support",
2757]
2758
2759[[package]]
2760name = "wasm-bindgen-macro-support"
2761version = "0.2.93"
2762source = "registry+https://github.com/rust-lang/crates.io-index"
2763checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
2764dependencies = [
2765 "proc-macro2",
2766 "quote",
2767 "syn 2.0.72",
2768 "wasm-bindgen-backend",
2769 "wasm-bindgen-shared",
2770]
2771
2772[[package]]
2773name = "wasm-bindgen-shared"
2774version = "0.2.93"
2775source = "registry+https://github.com/rust-lang/crates.io-index"
2776checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
2777
2778[[package]]
2779name = "web-sys"
2780version = "0.3.70"
2781source = "registry+https://github.com/rust-lang/crates.io-index"
2782checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
2783dependencies = [
2784 "js-sys",
2785 "wasm-bindgen",
2786]
2787
2788[[package]]
2789name = "whoami"
2790version = "1.5.1"
2791source = "registry+https://github.com/rust-lang/crates.io-index"
2792checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
2793dependencies = [
2794 "redox_syscall",
2795 "wasite",
2796 "web-sys",
2797]
14282798
1429[[package]]2799[[package]]
1430name = "winapi"2800name = "winapi"
1448source = "registry+https://github.com/rust-lang/crates.io-index"2818source = "registry+https://github.com/rust-lang/crates.io-index"
1449checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"2819checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
2820
2821[[package]]
2822name = "windows"
2823version = "0.58.0"
2824source = "registry+https://github.com/rust-lang/crates.io-index"
2825checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
2826dependencies = [
2827 "windows-core",
2828 "windows-targets",
2829]
2830
2831[[package]]
2832name = "windows-core"
2833version = "0.58.0"
2834source = "registry+https://github.com/rust-lang/crates.io-index"
2835checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
2836dependencies = [
2837 "windows-implement",
2838 "windows-interface",
2839 "windows-result",
2840 "windows-strings",
2841 "windows-targets",
2842]
2843
2844[[package]]
2845name = "windows-implement"
2846version = "0.58.0"
2847source = "registry+https://github.com/rust-lang/crates.io-index"
2848checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
2849dependencies = [
2850 "proc-macro2",
2851 "quote",
2852 "syn 2.0.72",
2853]
2854
2855[[package]]
2856name = "windows-interface"
2857version = "0.58.0"
2858source = "registry+https://github.com/rust-lang/crates.io-index"
2859checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
2860dependencies = [
2861 "proc-macro2",
2862 "quote",
2863 "syn 2.0.72",
2864]
2865
2866[[package]]
2867name = "windows-result"
2868version = "0.2.0"
2869source = "registry+https://github.com/rust-lang/crates.io-index"
2870checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
2871dependencies = [
2872 "windows-targets",
2873]
2874
2875[[package]]
2876name = "windows-strings"
2877version = "0.1.0"
2878source = "registry+https://github.com/rust-lang/crates.io-index"
2879checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
2880dependencies = [
2881 "windows-result",
2882 "windows-targets",
2883]
14502884
1451[[package]]2885[[package]]
1452name = "windows-sys"2886name = "windows-sys"
1564 "hex",2998 "hex",
1565 "nix",2999 "nix",
1566 "ordered-stream",3000 "ordered-stream",
1567 "rand",3001 "rand 0.8.5",
1568 "serde",3002 "serde",
1569 "serde_repr",3003 "serde_repr",
1570 "sha1",3004 "sha1",
1637 "syn 2.0.72",3071 "syn 2.0.72",
1638]3072]
3073
3074[[package]]
3075name = "zeroize"
3076version = "1.8.1"
3077source = "registry+https://github.com/rust-lang/crates.io-index"
3078checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
16393079
1640[[package]]3080[[package]]
1641name = "zvariant"3081name = "zvariant"
modifiedCargo.tomldiffbeforeafterboth
2members = ["cmds/*", "crates/*"]2members = ["cmds/*", "crates/*"]
3resolver = "2"3resolver = "2"
44
5[workspace.packages]5[workspace.dependencies]
6bifrostlink = { path = "../bifrostlink/crates/bifrostlink" }6bifrostlink = { path = "../bifrostlink/crates/bifrostlink" }
7bifrostlink-ports = { path = "../bifrostlink/crates/bifrostlink-ports" }7bifrostlink-ports = { path = "../bifrostlink/crates/bifrostlink-ports" }
88
addedJustfilediffbeforeafterboth

no changes

deletedcmds/polkit-backend/Cargo.tomldiffbeforeafterboth

no changes

deletedcmds/polkit-backend/etc/systemd/system/remowt-polkit-helper.servicediffbeforeafterboth

no changes

deletedcmds/polkit-backend/share/dbus-1/system-services/lach.polkit.helper1.confdiffbeforeafterboth

no changes

deletedcmds/polkit-backend/share/dbus-1/system.d/lach.polkit.helper1.confdiffbeforeafterboth

no changes

deletedcmds/polkit-backend/src/main.rsdiffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/Cargo.tomldiffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/README.adocdiffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/etc/systemd/system/remowt-polkit-helper.servicediffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/share/dbus-1/system-services/lach.polkit.helper1.confdiffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/share/dbus-1/system.d/lach.polkit.helper1.confdiffbeforeafterboth

no changes

addedcmds/polkit-dbus-helper/src/main.rsdiffbeforeafterboth

no changes

modifiedcmds/remowt-agent/Cargo.tomldiffbeforeafterboth
55
6[dependencies]6[dependencies]
7anyhow = "1.0.86"7anyhow = "1.0.86"
8bifrostlink.workspace = true
9bifrostlink-ports.workspace = true
8clap = { version = "4.5.13", features = ["derive"] }10clap = { version = "4.5.13", features = ["derive"] }
11futures = "0.3.30"
12futures-util = "0.3.30"
9pam-client = "0.5.0"13nix = "0.29.0"
10polkit-shared = { version = "0.1.0", path = "../../crates/polkit-shared" }14polkit-shared = { version = "0.1.0", path = "../../crates/polkit-shared" }
11rand = "0.8.5"15rand = "0.8.5"
16remowt-link-shared = { version = "0.1.0", path = "../../crates/remowt-link-shared" }
12serde = { version = "1.0.204", features = ["derive"] }17serde = { version = "1.0.204", features = ["derive"] }
13tokio = { version = "1.39.2", features = ["rt-multi-thread", "fs", "macros"] }18tokio = { version = "1.39.2", features = ["rt-multi-thread", "fs", "macros"] }
19tokio-util = { version = "0.7.11", features = ["codec"] }
14tracing = "0.1.40"20tracing = "0.1.40"
15tracing-subscriber = "0.3.18"21tracing-subscriber = "0.3.18"
16ui-prompt = { version = "0.1.0", path = "../../crates/ui-prompt" }22ui-prompt = { version = "0.1.0", path = "../../crates/ui-prompt" }
addedcmds/remowt-agent/src/helper/dbus.rsdiffbeforeafterboth

no changes

addedcmds/remowt-agent/src/helper/mod.rsdiffbeforeafterboth

no changes

addedcmds/remowt-agent/src/helper/suid.rsdiffbeforeafterboth

no changes

modifiedcmds/remowt-agent/src/main.rsdiffbeforeafterboth
1use std::borrow::Cow;1use std::borrow::Cow;
2use std::collections::{BTreeMap, HashMap};2use std::collections::{BTreeMap, HashMap};
3use std::future;
3use std::io::{stdout, Write};4use std::io::{stdout, Write};
4use std::marker::PhantomData;5use std::path::PathBuf;
5use std::sync::{Arc, Mutex, OnceLock};6use std::sync::{Arc, Mutex, OnceLock};
7
6use std::{future, process};8use bifrostlink::{AddressT, Rpc};
79use bifrostlink_ports::unix_socket::from_socket;
8use clap::Parser;10use clap::Parser;
9use polkit_shared::{emphasize, BackendRequest, Identity, PidDisplay};11use polkit_shared::{emphasize, BackendRequest, Identity, PidDisplay};
12use remowt_link_shared::Address;
13use tokio::io::{AsyncReadExt, AsyncWriteExt};
14use tokio::net::UnixStream;
10use tokio::runtime::Handle;15use tokio::runtime::Runtime;
11use tokio::task::{AbortHandle, JoinHandle, LocalSet};16use tokio::task::AbortHandle;
12use tracing::{info, trace};17use tracing::{info, trace};
13use ui_prompt::dbus::DbusPrompterInterface;
14use ui_prompt::rofi::RofiPrompter;18use ui_prompt::rofi::RofiPrompter;
15use ui_prompt::{PrependSourcePrompter, Prompter, Source};19use ui_prompt::{PrependSourcePrompter, Prompter, Source};
20use zbus::fdo;
16use zbus::zvariant::{OwnedValue, Str};21use zbus::zvariant::{OwnedValue, Str};
17use zbus::{fdo, ObjectServer};
18use zbus::{interface, proxy, Connection};22use zbus::{interface, proxy, Connection};
19use zbus_polkit::policykit1::Subject;23use zbus_polkit::policykit1::Subject;
2024
21struct TemporaryPrompterInterface<P: Prompter + Send + Sync + 'static> {
22 connection: Connection,
23 path: String,
24 _marker: PhantomData<P>,
25}
26impl<P: Prompter + Send + Sync + 'static> TemporaryPrompterInterface<P> {
27 async fn new(connection: Connection, prompter: P) -> Self {
28 let path = format!(
29 "/remowt/prompters/{}",
30 uuid::Uuid::new_v4().to_string().replace("-", "_")25use self::helper::{Helper, SuidHelper};
31 );26
32 let _ = connection
33 .object_server()
34 .at(path.clone(), DbusPrompterInterface(prompter))
35 .await;
36 Self {
37 connection,
38 path,
39 _marker: PhantomData,
40 }
41 }
42}
43impl<P: Prompter + Send + Sync + 'static> Drop for TemporaryPrompterInterface<P> {
44 fn drop(&mut self) {
45 // FIXME: block_in_place prevents to moving to current_thread runtime
46 // There should be a blocking way to remove ObjectServer listener.
47 // As far as I can see, it is only async because of async RwLock, shouldn't it be
48 // just a sync lock?
49 tokio::task::block_in_place(move || {
50 Handle::current().block_on(async {
51 let _ = self
52 .connection
53 .object_server()
54 .remove::<DbusPrompterInterface<P>, String>(self.path.clone())
55 .await;
56 });
57 });27pub mod helper;
58 }
59}
6028
61struct CancelTaskOnDrop {29struct CancelTaskOnDrop {
62 tasks: Arc<Mutex<HashMap<String, AbortHandle>>>,30 tasks: Arc<Mutex<HashMap<String, AbortHandle>>>,
76 }44 }
77}45}
7846
79struct Agent {47struct Agent<H> {
80 helper: PolkitHelperProxy<'static>,
81 tasks: Arc<Mutex<HashMap<String, AbortHandle>>>,48 tasks: Arc<Mutex<HashMap<String, AbortHandle>>>,
82 connection: Connection,49 helper: H,
83}50}
84impl Agent {51impl<H> Agent<H> {
85 async fn new(connection: Connection) -> anyhow::Result<Self> {52 fn new(helper: H) -> Self {
86 Ok(Self {53 Agent {
87 helper: PolkitHelperProxy::new(&connection).await?,
88 tasks: Arc::new(Mutex::new(HashMap::new())),54 tasks: Arc::new(Mutex::new(HashMap::new())),
89 connection,55 helper,
90 })56 }
91 }57 }
92}58}
9359
94#[interface(name = "org.freedesktop.PolicyKit1.AuthenticationAgent")]60#[interface(name = "org.freedesktop.PolicyKit1.AuthenticationAgent")]
95impl Agent {61impl<H> Agent<H>
62where
63 H: Helper + Clone + Send + Sync + 'static,
64{
96 /// BeginAuthentication method65 /// BeginAuthentication method
97 #[allow(clippy::too_many_arguments)]66 #[allow(clippy::too_many_arguments)]
108 info!("begin auth");77 info!("begin auth");
109 let _cancel_guard = Arc::new(OnceLock::new());78 let _cancel_guard = Arc::new(OnceLock::new());
110 let task = {79 let task = {
111 let connection = self.connection.clone();
112 let helper = self.helper.clone();80 let helper = self.helper.clone();
113 let cookie = cookie.clone();81 let cookie = cookie.clone();
114 let _cancel_guard = _cancel_guard.clone();82 let _cancel_guard = _cancel_guard.clone();
171 prompter.description = description;139 prompter.description = description;
172140
173 prompter.source.push(Source(Cow::Borrowed("polkit daemon")));141 prompter.source.push(Source(Cow::Borrowed("polkit daemon")));
174 // let connection = Connection::system().await?;142
175 // let helper = PolkitHelperProxy::new(&connection).await?;
176 let prompter = TemporaryPrompterInterface::new(connection, prompter).await;
177 info!("init conv");
178 helper143 helper
179 .init_conversation(144 .help_me(
180 BackendRequest {
181 cookie: cookie.to_owned(),145 &cookie,
182 environment: HashMap::new(),
183 prompter_path: prompter.path.clone(),146 prompter,
184 // TODO: Let user choose
185 identity: identities[choosen_identity as usize].clone(),147 identities[choosen_identity as usize].clone(),
186 }, // cookie.to_owned(), HashMap::new(), prompter.path.clone()
187 )148 )
149 .await
188 .await?;150 .map_err(|e| fdo::Error::Failed(e.to_string()))?;
189 println!("ASKED");151 // let connection = Connection::system().await?;
190 dbg!(action_id, message, icon_name, details, cookie, identities);152 // let helper = PolkitHelperProxy::new(&connection).await?;
191153
192 Ok(())154 Ok(())
193 })155 })
231}193}
232194
233#[derive(Parser)]195#[derive(Parser)]
234enum Opts {196enum Opts {
235 Agent,197 Agent,
236 AskPass { description: String },198 AskPass {
237}199 description: String,
238200 },
201 RealAgent {
239#[tokio::main]202 #[arg(long)]
203 path: PathBuf,
204 },
205}
206
240async fn main() -> anyhow::Result<()> {207fn main() -> anyhow::Result<()> {
241 tracing_subscriber::fmt::init();208 tracing_subscriber::fmt::init();
242 let opts = Opts::parse();209 let opts = Opts::parse();
243210
244 match opts {211 let runtime = Runtime::new()?;
212
213 match opts {
214 Opts::Agent => {
215 // TODO: Setup env, directories with various things...
216 runtime.block_on(main_agent())
217 }
218 Opts::AskPass { description } => runtime.block_on(main_askpass(description)),
219 Opts::RealAgent { path } => runtime.block_on(main_real_agent(path)),
220 }
221}
222async fn main_real_agent(path: PathBuf) -> anyhow::Result<()> {
223 let mut stream = UnixStream::connect(path).await?;
224 stream.write_all(b"REMOWT_HELLO\0").await?;
225 let mut buf = [0u8; 12];
226 stream.read_exact(&mut buf).await?;
227 assert_eq!(&buf, b"REMOWT_EHLO\0");
228 let port = from_socket(stream);
229 let rpc = Rpc::<Address, remowt_link_shared::Error>::new(Address::Agent);
230 rpc.add_direct(Address::User, port, bifrostlink::Rtt(0));
231 Ok(())
232}
233
245 Opts::Agent => {234async fn main_agent() -> anyhow::Result<()> {
246 trace!("started");235 trace!("started");
247 let conn = Connection::system().await?;236 let conn = Connection::system().await?;
248237
249 let proxy = zbus_polkit::policykit1::AuthorityProxy::new(&conn).await?;238 let proxy = zbus_polkit::policykit1::AuthorityProxy::new(&conn).await?;
250 conn.object_server()239 conn.object_server()
251 .at(OBJ_PATH, Agent::new(conn.clone()).await?)240 .at(OBJ_PATH, Agent::new(SuidHelper))
252 .await?;241 .await?;
253242
254 let session_id = std::env::var("XDG_SESSION_ID")?;243 let session_id = std::env::var("XDG_SESSION_ID")?;
268 OBJ_PATH,257 OBJ_PATH,
269 )258 )
270 .await?;259 .await?;
260 future::pending().await
271 }261}
272 Opts::AskPass { description } => {262
263async fn main_askpass(description: String) -> anyhow::Result<()> {
273 let password = RofiPrompter264 let password = RofiPrompter
274 .prompt_text(false, &description, "SSH password request", &[])265 .prompt_text(false, &description, "SSH password request", &[])
275 .await?;266 .await?;
276 stdout().lock().write_all(password.as_bytes())?;267 stdout().lock().write_all(password.as_bytes())?;
277 }
278 }
279
280 future::pending().await268 future::pending().await
281}269}
282270
modifiedcmds/remowt-ssh/Cargo.tomldiffbeforeafterboth
4edition = "2021"4edition = "2021"
55
6[dependencies]6[dependencies]
7clap = { version = "4.5.16", features = ["derive"] }
8openssh = { version = "0.11.0", features = ["native-mux"] }
9tracing-subscriber = "0.3.18"
10bifrostlink.workspace = true
11remowt-link-shared = { version = "0.1.0", path = "../../crates/remowt-link-shared" }
12tokio = { version = "1.39.3", features = ["macros"] }
13anyhow = "1.0.86"
14bifrostlink-ports.workspace = true
15uuid = { version = "1.10.0", features = ["v4"] }
16tempdir = "0.3.7"
17russh = { git = "https://github.com/Eugeny/russh/" }
18russh-config = { git = "https://github.com/Eugeny/russh/" }
19russh-keys = { git = "https://github.com/Eugeny/russh/" }
20async-trait = "0.1.81"
721
modifiedcmds/remowt-ssh/src/main.rsdiffbeforeafterboth
1use std::borrow::Cow;
2use std::ffi::OsString;
3use std::os::unix::ffi::OsStringExt;
4use std::path::PathBuf;
5use std::sync::Arc;
6
7use anyhow::{bail, ensure};
8use async_trait::async_trait;
9use bifrostlink::Rpc;
10use clap::Parser;
11use remowt_link_shared::Address;
12use russh::client::{connect, Config, Handler, Session};
13use tempdir::TempDir;
14use tokio::io::{AsyncReadExt, AsyncWriteExt};
15use tokio::net::UnixSocket;
16
17#[derive(Parser)]
18struct Opts {
19 host: String,
20}
21
22struct MyHandler {
23 host: String,
24 port: u16,
25}
26#[async_trait]
27impl Handler for MyHandler {
28 type Error = russh::Error;
29 async fn check_server_key(
30 &mut self,
31 server_public_key: &russh_keys::key::PublicKey,
32 ) -> Result<bool, Self::Error> {
33 Ok(russh_keys::check_known_hosts(
34 &self.host,
35 self.port,
36 &server_public_key,
37 )?)
38 }
39}
40
41#[tokio::main(flavor = "current_thread")]
1fn main() {42async fn main() -> anyhow::Result<()> {
43 let rpc = Rpc::<Address, remowt_link_shared::Error>::new(Address::User);
44 tracing_subscriber::fmt::init();
45 let opts = Opts::parse();
46
47 let conf = dbg!(russh_config::parse_home(&opts.host)?);
2 println!("Hello, world!");48 println!("connect");
49 let mut sess = connect(
50 Arc::new(Config {
51 ..Default::default()
52 }),
53 dbg!((conf.host_name.clone(), conf.port)),
54 MyHandler {
55 host: conf.host_name,
56 port: conf.port,
57 },
58 )
59 .await?;
60 println!("agent");
61 let mut agent = russh_keys::agent::client::AgentClient::connect_env().await?;
62 for ele in agent.request_identities().await? {
63 let (_agent, res) = sess.authenticate_future(conf.user.clone(), ele, agent).await;
64 agent = _agent;
65 if res? {
66 break;
67 }
68 }
69 // let sess = Session::connect(opts.host, openssh::KnownHosts::Strict).await?;
70
71 let socket = UnixSocket::new_stream()?;
72
73 println!("mktemp");
74 let mut cmd_chan = sess.channel_open_session().await?;
75 cmd_chan
76 .exec(true, "mktemp -d remowt.XXXXXXXXXXXX --tmpdir")
77 .await?;
78 let mut stdout = vec![];
79 loop {
80 let Some(msg) = cmd_chan.wait().await else {
81 bail!("unexpected channel end");
82 };
83 match msg {
84 russh::ChannelMsg::Data { data } => stdout.extend(data.as_ref()),
85 russh::ChannelMsg::ExitStatus { exit_status } => {
86 if exit_status != 0 {
87 bail!("mktemp failed");
88 }
89 break;
90 }
91 _ => {}
92 }
93 }
94
95 ensure!(stdout.ends_with(b"\n"));
96 stdout.pop();
97
98 // Remote host is not neccessary linux, openssh crate makes incorrect assumptions here.
99 // TODO: Remove on local close.
100 let remote_dir = PathBuf::from(OsString::from_vec(stdout));
101 let remote_socket = remote_dir.join("primary.sock");
102
103 let local_dir = TempDir::new("remowt")?;
104 let local_socket = local_dir.path().join("primary.sock");
105
106 println!("listen");
107 socket.bind(&local_socket)?;
108 let listener = socket.listen(1)?;
109
110 eprintln!("forward socket");
111
112 let mut sock = sess
113 .channel_open_direct_streamlocal(dbg!(remote_socket.to_str().expect("path is utf-8")))
114 .await?;
115
116 eprintln!("wait");
117 while let Some(v) = sock.wait().await {
118 dbg!(v);
119 }
120
121 eprintln!("spawn agent");
122
123 // let _agent = sess
124 // .command("/home/lach/.remowt/remowt-agent")
125 // .arg("agent-real")
126 // .arg("--path")
127 // .arg(remote_socket.to_str().expect("path is utf-8"))
128 // .spawn()
129 // .await?;
130 //
131 // let (mut conn, _) = listener.accept().await?;
132 // let mut buf = [0u8; 13];
133 // conn.read_exact(&mut buf).await?;
134 // assert_eq!(&buf, b"REMOWT_HELLO\0");
135 // conn.write_all(b"REMOWT_EHLO\0").await?;
136 //
137 // println!("handshake complete!");
138
139 Ok(())
3}140}
4141
modifiedcrates/polkit-shared/src/lib.rsdiffbeforeafterboth
47 pub details: HashMap<String, OwnedValue>,47 pub details: HashMap<String, OwnedValue>,
48}48}
49
50impl Identity {
51 pub fn uid(&self) -> Option<Uid> {
52 if self.kind != "unix-user" {
53 return None;
54 }
55 let uid = self.details.get("uid")?;
56 let Value::U32(uid) = &**uid else {
57 return None;
58 };
59 Some(Uid::from_raw(*uid))
60 }
61}
4962
50impl fmt::Display for Identity {63impl fmt::Display for Identity {
51 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {64 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
addedcrates/remowt-link-shared/Cargo.tomldiffbeforeafterboth

no changes

addedcrates/remowt-link-shared/src/lib.rsdiffbeforeafterboth

no changes

modifiedcrates/ui-prompt/Cargo.tomldiffbeforeafterboth
4edition = "2021"4edition = "2021"
55
6[dependencies]6[dependencies]
7bifrostlink.workspace = true
7serde = "1.0.204"8serde = "1.0.204"
8thiserror = "1.0.63"9thiserror = "1.0.63"
9tokio = { version = "1.39.2", features = ["io-util", "macros", "process", "rt"] }10tokio = { version = "1.39.2", features = ["io-util", "macros", "process", "rt"] }
addedcrates/ui-prompt/src/bifrost.rsdiffbeforeafterboth

no changes

modifiedcrates/ui-prompt/src/lib.rsdiffbeforeafterboth
55
6pub mod dbus;6pub mod dbus;
7pub mod rofi;7pub mod rofi;
8pub mod bifrost;
89
9#[derive(thiserror::Error, Debug)]10#[derive(thiserror::Error, Debug)]
10pub enum Error {11pub enum Error {
25 }26 }
26}27}
2728
28pub trait Prompter {29pub trait Prompter: Send + Sync {
29 fn prompt_radio(30 fn prompt_radio(
30 &self,31 &self,
31 prompt: &str,32 prompt: &str,
77 ) -> Result<String>;78 ) -> Result<String>;
78 fn display_text(&self, error: bool, description: &str, source: &[Source]) -> Result<()>;79 fn display_text(&self, error: bool, description: &str, source: &[Source]) -> Result<()>;
79}80}
81impl<P> Prompter for &P
82where
83 P: Prompter,
84{
85 fn prompt_radio(
86 &self,
87 prompt: &str,
88 description: &str,
89 source: &[Source],
90 ) -> impl Future<Output = Result<bool>> + Send {
91 (*self).prompt_radio(prompt, description, source)
92 }
93
94 fn prompt_enum(
95 &self,
96 prompt: &str,
97 description: &str,
98 variants: &[&str],
99 source: &[Source],
100 ) -> impl Future<Output = Result<u32>> + Send {
101 (*self).prompt_enum(prompt, description, variants, source)
102 }
103
104 fn prompt_text(
105 &self,
106 echo: bool,
107 prompt: &str,
108 description: &str,
109 source: &[Source],
110 ) -> impl Future<Output = Result<String>> + Send {
111 (*self).prompt_text(echo, prompt, description, source)
112 }
113
114 fn display_text(
115 &self,
116 error: bool,
117 description: &str,
118 source: &[Source],
119 ) -> impl Future<Output = Result<()>> + Send {
120 (*self).display_text(error, description, source)
121 }
122}
80123
81pub struct PrependSourcePrompter<P> {124pub struct PrependSourcePrompter<P> {
82 pub prompter: P,125 pub prompter: P,
modifiedflake.nixdiffbeforeafterboth
62 cargo-release62 cargo-release
63 rustPlatform.bindgenHook63 rustPlatform.bindgenHook
64 pam64 pam
65 just
65 ];66 ];
66 };67 };
67 formatter = pkgs.alejandra;68 formatter = pkgs.alejandra;
modifiedrust-toolchain.tomldiffbeforeafterboth
1[toolchain]1[toolchain]
2channel = "nightly-2024-07-20"2channel = "nightly-2024-07-20"
3components = ["rustfmt", "clippy", "rust-analyzer", "rust-src"]3components = ["rustfmt", "clippy", "rust-analyzer", "rust-src"]
4targets = ["x86_64-unknown-linux-musl"]
45