Removed lots of defunct cruft
This commit is contained in:
parent
8676a18c87
commit
3643e4f8d7
365
requirements.txt
365
requirements.txt
@ -1,365 +0,0 @@
|
||||
#
|
||||
# This file is autogenerated by pip-compile with python 3.10
|
||||
# To update, run:
|
||||
#
|
||||
# pip-compile --generate-hashes requirements.in
|
||||
#
|
||||
autocommand==2.2.1 \
|
||||
--hash=sha256:85d03044c2a1fc1c7844ac41545045927aecde0cbaf8ea28b88e0cd8588ce5d3 \
|
||||
--hash=sha256:fed420e9d02745821a782971b583c6970259ee0b229be2a0a401e1467a4f170f
|
||||
# via jaraco-text
|
||||
cffi==1.15.1 \
|
||||
--hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
|
||||
--hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \
|
||||
--hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \
|
||||
--hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \
|
||||
--hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \
|
||||
--hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \
|
||||
--hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \
|
||||
--hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \
|
||||
--hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \
|
||||
--hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \
|
||||
--hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \
|
||||
--hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \
|
||||
--hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \
|
||||
--hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \
|
||||
--hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \
|
||||
--hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \
|
||||
--hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \
|
||||
--hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \
|
||||
--hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \
|
||||
--hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \
|
||||
--hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \
|
||||
--hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \
|
||||
--hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \
|
||||
--hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \
|
||||
--hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \
|
||||
--hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \
|
||||
--hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \
|
||||
--hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \
|
||||
--hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \
|
||||
--hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \
|
||||
--hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \
|
||||
--hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \
|
||||
--hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \
|
||||
--hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \
|
||||
--hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \
|
||||
--hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \
|
||||
--hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \
|
||||
--hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \
|
||||
--hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \
|
||||
--hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \
|
||||
--hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \
|
||||
--hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \
|
||||
--hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \
|
||||
--hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \
|
||||
--hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \
|
||||
--hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \
|
||||
--hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \
|
||||
--hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \
|
||||
--hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \
|
||||
--hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \
|
||||
--hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \
|
||||
--hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \
|
||||
--hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \
|
||||
--hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \
|
||||
--hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \
|
||||
--hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \
|
||||
--hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \
|
||||
--hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \
|
||||
--hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \
|
||||
--hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \
|
||||
--hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \
|
||||
--hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \
|
||||
--hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \
|
||||
--hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# pynacl
|
||||
cheroot==8.6.0 \
|
||||
--hash=sha256:366adf6e7cac9555486c2d1be6297993022eff6f8c4655c1443268cca3f08e25 \
|
||||
--hash=sha256:62cbced16f07e8aaf512673987cd6b1fc5ad00073345e9ed6c4e2a5cc2a3a22d
|
||||
# via cherrypy
|
||||
cherrypy==18.8.0 \
|
||||
--hash=sha256:9b48cfba8a2f16d5b6419cc657e6d51db005ba35c5e3824e4728bb03bbc7ef9b \
|
||||
--hash=sha256:b56097025dc78a76a59db551b3a82871c6b3a0107b80b12ff759e4c0b3b947ce
|
||||
# via -r requirements.in
|
||||
filenuke==0.0.0 \
|
||||
--hash=sha256:147011c0125121469cae0a8a7f4df399f470e54aa29a08f2d2c099bf0118dcee \
|
||||
--hash=sha256:c55535dcecfdb27c5f4ce664d46e115950b5429763b5db75c198053646177f8f
|
||||
# via -r requirements.in
|
||||
inflect==6.0.0 \
|
||||
--hash=sha256:0bc1516ec2725e2d8221707a612245093cb6f1cea209cfd8cbd4fc5e96fa6365 \
|
||||
--hash=sha256:e3b85d65a296843268f35f4136283ad7c012a129375db1529d49b4b01ecb400b
|
||||
# via jaraco-text
|
||||
jaraco-classes==3.2.2 \
|
||||
--hash=sha256:6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594 \
|
||||
--hash=sha256:e6ef6fd3fcf4579a7a019d87d1e56a883f4e4c35cfe925f86731abc58804e647
|
||||
# via jaraco-collections
|
||||
jaraco-collections==3.5.2 \
|
||||
--hash=sha256:072b93eb35f9e48508485755534e66a34ef1cc84af291fd27f39b44d4c0dd2c3 \
|
||||
--hash=sha256:1ca12fa4b7067dfc8d7f791c1a8660d970a2bf2f80536ba0aa5cbb71fe1261f1
|
||||
# via cherrypy
|
||||
jaraco-context==4.1.2 \
|
||||
--hash=sha256:9327d3e6901923e5a7097aa2df4b9c2bc13f845c7672692e3827ebd1b3d67606 \
|
||||
--hash=sha256:a58e94dd67871639abc091b57d32842449b230777570ef2bcec3dc16b912613e
|
||||
# via jaraco-text
|
||||
jaraco-functools==3.5.1 \
|
||||
--hash=sha256:c8774f73323de42250a659934215da1d899b02c66a6133f1cb79f02a5aff4f38 \
|
||||
--hash=sha256:d0adcf91710a0853efe9f23a78fad586bf67df572f0d6d8e0fa36d289ae1c1d9
|
||||
# via
|
||||
# cheroot
|
||||
# jaraco-text
|
||||
# tempora
|
||||
jaraco-text==3.9.0 \
|
||||
--hash=sha256:4b2dc3678994de601e3e5b6f554eeb8445651b7ab984893c5e9ac44564033077 \
|
||||
--hash=sha256:810bc4aee7329e30bec8c6c6bab1b6ef149359ca4b98928e42178345ed7d7bd8
|
||||
# via jaraco-collections
|
||||
json-rpc==1.13.0 \
|
||||
--hash=sha256:84b45058e5ba95f49c7b6afcf7e03ab86bee89bf2c01f3ad8dd41fe114fc1f84 \
|
||||
--hash=sha256:def0dbcf5b7084fc31d677f2f5990d988d06497f2f47f13024274cfb2d5d7589
|
||||
# via -r requirements.in
|
||||
kasten==3.0.0 \
|
||||
--hash=sha256:52894af46d6e1339f0d5fa8961892b292f99176848bce11877fe4a435b6782e5 \
|
||||
--hash=sha256:b22ebdc5f475c2ef9ab74abc36552add0b37732a7ce2be6bd7977ee41b2163b4
|
||||
# via onionrblocks
|
||||
mimcvdf==1.2.1 \
|
||||
--hash=sha256:7c837c46cfb9dce4ba895bc706a69646d4d5185c66aeaa333b5cfaa9a7d06dc4
|
||||
# via kasten
|
||||
more-itertools==8.14.0 \
|
||||
--hash=sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2 \
|
||||
--hash=sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750
|
||||
# via
|
||||
# cheroot
|
||||
# cherrypy
|
||||
# jaraco-classes
|
||||
# jaraco-functools
|
||||
# jaraco-text
|
||||
msgpack==1.0.3 \
|
||||
--hash=sha256:0d8c332f53ffff01953ad25131272506500b14750c1d0ce8614b17d098252fbc \
|
||||
--hash=sha256:1c58cdec1cb5fcea8c2f1771d7b5fec79307d056874f746690bd2bdd609ab147 \
|
||||
--hash=sha256:2c3ca57c96c8e69c1a0d2926a6acf2d9a522b41dc4253a8945c4c6cd4981a4e3 \
|
||||
--hash=sha256:2f30dd0dc4dfe6231ad253b6f9f7128ac3202ae49edd3f10d311adc358772dba \
|
||||
--hash=sha256:2f97c0f35b3b096a330bb4a1a9247d0bd7e1f3a2eba7ab69795501504b1c2c39 \
|
||||
--hash=sha256:36a64a10b16c2ab31dcd5f32d9787ed41fe68ab23dd66957ca2826c7f10d0b85 \
|
||||
--hash=sha256:3d875631ecab42f65f9dce6f55ce6d736696ced240f2634633188de2f5f21af9 \
|
||||
--hash=sha256:40fb89b4625d12d6027a19f4df18a4de5c64f6f3314325049f219683e07e678a \
|
||||
--hash=sha256:47d733a15ade190540c703de209ffbc42a3367600421b62ac0c09fde594da6ec \
|
||||
--hash=sha256:494471d65b25a8751d19c83f1a482fd411d7ca7a3b9e17d25980a74075ba0e88 \
|
||||
--hash=sha256:51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e \
|
||||
--hash=sha256:6eef0cf8db3857b2b556213d97dd82de76e28a6524853a9beb3264983391dc1a \
|
||||
--hash=sha256:6f4c22717c74d44bcd7af353024ce71c6b55346dad5e2cc1ddc17ce8c4507c6b \
|
||||
--hash=sha256:73a80bd6eb6bcb338c1ec0da273f87420829c266379c8c82fa14c23fb586cfa1 \
|
||||
--hash=sha256:89908aea5f46ee1474cc37fbc146677f8529ac99201bc2faf4ef8edc023c2bf3 \
|
||||
--hash=sha256:8a3a5c4b16e9d0edb823fe54b59b5660cc8d4782d7bf2c214cb4b91a1940a8ef \
|
||||
--hash=sha256:96acc674bb9c9be63fa8b6dabc3248fdc575c4adc005c440ad02f87ca7edd079 \
|
||||
--hash=sha256:973ad69fd7e31159eae8f580f3f707b718b61141838321c6fa4d891c4a2cca52 \
|
||||
--hash=sha256:9b6f2d714c506e79cbead331de9aae6837c8dd36190d02da74cb409b36162e8a \
|
||||
--hash=sha256:9c0903bd93cbd34653dd63bbfcb99d7539c372795201f39d16fdfde4418de43a \
|
||||
--hash=sha256:9fce00156e79af37bb6db4e7587b30d11e7ac6a02cb5bac387f023808cd7d7f4 \
|
||||
--hash=sha256:a598d0685e4ae07a0672b59792d2cc767d09d7a7f39fd9bd37ff84e060b1a996 \
|
||||
--hash=sha256:b0a792c091bac433dfe0a70ac17fc2087d4595ab835b47b89defc8bbabcf5c73 \
|
||||
--hash=sha256:bb87f23ae7d14b7b3c21009c4b1705ec107cb21ee71975992f6aca571fb4a42a \
|
||||
--hash=sha256:bf1e6bfed4860d72106f4e0a1ab519546982b45689937b40257cfd820650b920 \
|
||||
--hash=sha256:c1ba333b4024c17c7591f0f372e2daa3c31db495a9b2af3cf664aef3c14354f7 \
|
||||
--hash=sha256:c2140cf7a3ec475ef0938edb6eb363fa704159e0bf71dde15d953bacc1cf9d7d \
|
||||
--hash=sha256:c7e03b06f2982aa98d4ddd082a210c3db200471da523f9ac197f2828e80e7770 \
|
||||
--hash=sha256:d02cea2252abc3756b2ac31f781f7a98e89ff9759b2e7450a1c7a0d13302ff50 \
|
||||
--hash=sha256:da24375ab4c50e5b7486c115a3198d207954fe10aaa5708f7b65105df09109b2 \
|
||||
--hash=sha256:e4c309a68cb5d6bbd0c50d5c71a25ae81f268c2dc675c6f4ea8ab2feec2ac4e2 \
|
||||
--hash=sha256:f01b26c2290cbd74316990ba84a14ac3d599af9cebefc543d241a66e785cf17d \
|
||||
--hash=sha256:f201d34dc89342fabb2a10ed7c9a9aaaed9b7af0f16a5923f1ae562b31258dea \
|
||||
--hash=sha256:f74da1e5fcf20ade12c6bf1baa17a2dc3604958922de8dc83cbe3eff22e8b611
|
||||
# via kasten
|
||||
niceware==0.2.1 \
|
||||
--hash=sha256:0f8b192f2a1e800e068474f6e208be9c7e2857664b33a96f4045340de4e5c69c \
|
||||
--hash=sha256:cf2dc0e1567d36d067c61b32fed0f1b9c4534ed511f9eeead4ba548d03b5c9eb
|
||||
# via -r requirements.in
|
||||
onionrblocks==7.0.0 \
|
||||
--hash=sha256:53e90964371076d9daf2ed0790b21f174ef3321f4f1808209cc6dd9b7ff6d8ff \
|
||||
--hash=sha256:54af28d0be856209525646c4ef9f977f95f0ae1329b2cc023b351317c9d0eef7
|
||||
# via -r requirements.in
|
||||
ordered-set==4.1.0 \
|
||||
--hash=sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562 \
|
||||
--hash=sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8
|
||||
# via -r requirements.in
|
||||
portend==3.1.0 \
|
||||
--hash=sha256:239e3116045ea823f6df87d6168107ad75ccc0590e37242af0cc1e98c5d224e4 \
|
||||
--hash=sha256:9e735cee3a5c1961f09e3f3ba6dc498198c2d70b473d98d0d1504b8d1e7a3d61
|
||||
# via cherrypy
|
||||
psutil==5.9.1 \
|
||||
--hash=sha256:068935df39055bf27a29824b95c801c7a5130f118b806eee663cad28dca97685 \
|
||||
--hash=sha256:0904727e0b0a038830b019551cf3204dd48ef5c6868adc776e06e93d615fc5fc \
|
||||
--hash=sha256:0f15a19a05f39a09327345bc279c1ba4a8cfb0172cc0d3c7f7d16c813b2e7d36 \
|
||||
--hash=sha256:19f36c16012ba9cfc742604df189f2f28d2720e23ff7d1e81602dbe066be9fd1 \
|
||||
--hash=sha256:20b27771b077dcaa0de1de3ad52d22538fe101f9946d6dc7869e6f694f079329 \
|
||||
--hash=sha256:28976df6c64ddd6320d281128817f32c29b539a52bdae5e192537bc338a9ec81 \
|
||||
--hash=sha256:29a442e25fab1f4d05e2655bb1b8ab6887981838d22effa2396d584b740194de \
|
||||
--hash=sha256:3054e923204b8e9c23a55b23b6df73a8089ae1d075cb0bf711d3e9da1724ded4 \
|
||||
--hash=sha256:32c52611756096ae91f5d1499fe6c53b86f4a9ada147ee42db4991ba1520e574 \
|
||||
--hash=sha256:3a76ad658641172d9c6e593de6fe248ddde825b5866464c3b2ee26c35da9d237 \
|
||||
--hash=sha256:44d1826150d49ffd62035785a9e2c56afcea66e55b43b8b630d7706276e87f22 \
|
||||
--hash=sha256:4b6750a73a9c4a4e689490ccb862d53c7b976a2a35c4e1846d049dcc3f17d83b \
|
||||
--hash=sha256:56960b9e8edcca1456f8c86a196f0c3d8e3e361320071c93378d41445ffd28b0 \
|
||||
--hash=sha256:57f1819b5d9e95cdfb0c881a8a5b7d542ed0b7c522d575706a80bedc848c8954 \
|
||||
--hash=sha256:58678bbadae12e0db55186dc58f2888839228ac9f41cc7848853539b70490021 \
|
||||
--hash=sha256:645bd4f7bb5b8633803e0b6746ff1628724668681a434482546887d22c7a9537 \
|
||||
--hash=sha256:799759d809c31aab5fe4579e50addf84565e71c1dc9f1c31258f159ff70d3f87 \
|
||||
--hash=sha256:79c9108d9aa7fa6fba6e668b61b82facc067a6b81517cab34d07a84aa89f3df0 \
|
||||
--hash=sha256:91c7ff2a40c373d0cc9121d54bc5f31c4fa09c346528e6a08d1845bce5771ffc \
|
||||
--hash=sha256:9272167b5f5fbfe16945be3db475b3ce8d792386907e673a209da686176552af \
|
||||
--hash=sha256:944c4b4b82dc4a1b805329c980f270f170fdc9945464223f2ec8e57563139cf4 \
|
||||
--hash=sha256:a6a11e48cb93a5fa606306493f439b4aa7c56cb03fc9ace7f6bfa21aaf07c453 \
|
||||
--hash=sha256:a8746bfe4e8f659528c5c7e9af5090c5a7d252f32b2e859c584ef7d8efb1e689 \
|
||||
--hash=sha256:abd9246e4cdd5b554a2ddd97c157e292ac11ef3e7af25ac56b08b455c829dca8 \
|
||||
--hash=sha256:b14ee12da9338f5e5b3a3ef7ca58b3cba30f5b66f7662159762932e6d0b8f680 \
|
||||
--hash=sha256:b88f75005586131276634027f4219d06e0561292be8bd6bc7f2f00bdabd63c4e \
|
||||
--hash=sha256:c7be9d7f5b0d206f0bbc3794b8e16fb7dbc53ec9e40bbe8787c6f2d38efcf6c9 \
|
||||
--hash=sha256:d2d006286fbcb60f0b391741f520862e9b69f4019b4d738a2a45728c7e952f1b \
|
||||
--hash=sha256:db417f0865f90bdc07fa30e1aadc69b6f4cad7f86324b02aa842034efe8d8c4d \
|
||||
--hash=sha256:e7e10454cb1ab62cc6ce776e1c135a64045a11ec4c6d254d3f7689c16eb3efd2 \
|
||||
--hash=sha256:f65f9a46d984b8cd9b3750c2bdb419b2996895b005aefa6cbaba9a143b1ce2c5 \
|
||||
--hash=sha256:fea896b54f3a4ae6f790ac1d017101252c93f6fe075d0e7571543510f11d2676
|
||||
# via -r requirements.in
|
||||
pycparser==2.19 \
|
||||
--hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3
|
||||
# via cffi
|
||||
pydantic==1.9.2 \
|
||||
--hash=sha256:1061c6ee6204f4f5a27133126854948e3b3d51fcc16ead2e5d04378c199b2f44 \
|
||||
--hash=sha256:19b5686387ea0d1ea52ecc4cffb71abb21702c5e5b2ac626fd4dbaa0834aa49d \
|
||||
--hash=sha256:2bd446bdb7755c3a94e56d7bdfd3ee92396070efa8ef3a34fab9579fe6aa1d84 \
|
||||
--hash=sha256:328558c9f2eed77bd8fffad3cef39dbbe3edc7044517f4625a769d45d4cf7555 \
|
||||
--hash=sha256:32e0b4fb13ad4db4058a7c3c80e2569adbd810c25e6ca3bbd8b2a9cc2cc871d7 \
|
||||
--hash=sha256:3ee0d69b2a5b341fc7927e92cae7ddcfd95e624dfc4870b32a85568bd65e6131 \
|
||||
--hash=sha256:4aafd4e55e8ad5bd1b19572ea2df546ccace7945853832bb99422a79c70ce9b8 \
|
||||
--hash=sha256:4b3946f87e5cef3ba2e7bd3a4eb5a20385fe36521d6cc1ebf3c08a6697c6cfb3 \
|
||||
--hash=sha256:4de71c718c9756d679420c69f216776c2e977459f77e8f679a4a961dc7304a56 \
|
||||
--hash=sha256:5565a49effe38d51882cb7bac18bda013cdb34d80ac336428e8908f0b72499b0 \
|
||||
--hash=sha256:5803ad846cdd1ed0d97eb00292b870c29c1f03732a010e66908ff48a762f20e4 \
|
||||
--hash=sha256:5da164119602212a3fe7e3bc08911a89db4710ae51444b4224c2382fd09ad453 \
|
||||
--hash=sha256:615661bfc37e82ac677543704437ff737418e4ea04bef9cf11c6d27346606044 \
|
||||
--hash=sha256:78a4d6bdfd116a559aeec9a4cfe77dda62acc6233f8b56a716edad2651023e5e \
|
||||
--hash=sha256:7d0f183b305629765910eaad707800d2f47c6ac5bcfb8c6397abdc30b69eeb15 \
|
||||
--hash=sha256:7ead3cd020d526f75b4188e0a8d71c0dbbe1b4b6b5dc0ea775a93aca16256aeb \
|
||||
--hash=sha256:84d76ecc908d917f4684b354a39fd885d69dd0491be175f3465fe4b59811c001 \
|
||||
--hash=sha256:8cb0bc509bfb71305d7a59d00163d5f9fc4530f0881ea32c74ff4f74c85f3d3d \
|
||||
--hash=sha256:91089b2e281713f3893cd01d8e576771cd5bfdfbff5d0ed95969f47ef6d676c3 \
|
||||
--hash=sha256:9c9e04a6cdb7a363d7cb3ccf0efea51e0abb48e180c0d31dca8d247967d85c6e \
|
||||
--hash=sha256:a8c5360a0297a713b4123608a7909e6869e1b56d0e96eb0d792c27585d40757f \
|
||||
--hash=sha256:afacf6d2a41ed91fc631bade88b1d319c51ab5418870802cedb590b709c5ae3c \
|
||||
--hash=sha256:b34ba24f3e2d0b39b43f0ca62008f7ba962cff51efa56e64ee25c4af6eed987b \
|
||||
--hash=sha256:bd67cb2c2d9602ad159389c29e4ca964b86fa2f35c2faef54c3eb28b4efd36c8 \
|
||||
--hash=sha256:c0f5e142ef8217019e3eef6ae1b6b55f09a7a15972958d44fbd228214cede567 \
|
||||
--hash=sha256:cdb4272678db803ddf94caa4f94f8672e9a46bae4a44f167095e4d06fec12979 \
|
||||
--hash=sha256:d70916235d478404a3fa8c997b003b5f33aeac4686ac1baa767234a0f8ac2326 \
|
||||
--hash=sha256:d8ce3fb0841763a89322ea0432f1f59a2d3feae07a63ea2c958b2315e1ae8adb \
|
||||
--hash=sha256:e0b214e57623a535936005797567231a12d0da0c29711eb3514bc2b3cd008d0f \
|
||||
--hash=sha256:e631c70c9280e3129f071635b81207cad85e6c08e253539467e4ead0e5b219aa \
|
||||
--hash=sha256:e78578f0c7481c850d1c969aca9a65405887003484d24f6110458fb02cca7747 \
|
||||
--hash=sha256:f0ca86b525264daa5f6b192f216a0d1e860b7383e3da1c65a1908f9c02f42801 \
|
||||
--hash=sha256:f1a68f4f65a9ee64b6ccccb5bf7e17db07caebd2730109cb8a95863cfa9c4e55 \
|
||||
--hash=sha256:fafe841be1103f340a24977f61dee76172e4ae5f647ab9e7fd1e1fca51524f08 \
|
||||
--hash=sha256:ff68fc85355532ea77559ede81f35fff79a6a5543477e168ab3a381887caea76
|
||||
# via inflect
|
||||
pynacl==1.5.0 \
|
||||
--hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \
|
||||
--hash=sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d \
|
||||
--hash=sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 \
|
||||
--hash=sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1 \
|
||||
--hash=sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92 \
|
||||
--hash=sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff \
|
||||
--hash=sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba \
|
||||
--hash=sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 \
|
||||
--hash=sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b \
|
||||
--hash=sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543
|
||||
# via
|
||||
# -r requirements.in
|
||||
# onionrblocks
|
||||
pysocks==1.7.1 \
|
||||
--hash=sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299 \
|
||||
--hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \
|
||||
--hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0
|
||||
# via -r requirements.in
|
||||
pytz==2022.2.1 \
|
||||
--hash=sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197 \
|
||||
--hash=sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5
|
||||
# via tempora
|
||||
six==1.16.0 \
|
||||
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
|
||||
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
|
||||
# via cheroot
|
||||
stem==1.8.0 \
|
||||
--hash=sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2
|
||||
# via -r requirements.in
|
||||
tempora==5.0.2 \
|
||||
--hash=sha256:31fa5bb33b2641026211f23e808eb8bd351901988b167d45f323c8f450ecf211 \
|
||||
--hash=sha256:e65d32ae68ad772ee738d802689f689b3f883e165e8dadd39aa89ef317b12b99
|
||||
# via portend
|
||||
typing-extensions==4.3.0 \
|
||||
--hash=sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02 \
|
||||
--hash=sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6
|
||||
# via pydantic
|
||||
ujson==5.4.0 \
|
||||
--hash=sha256:025758cf6561af6986d77cd4af9367ab56dde5c7c50f13f59e6964b4b25df73e \
|
||||
--hash=sha256:0551c1ba0bc9e05b69d9c18266dbc93252b5fa3cd9940051bc88a0dd33607b19 \
|
||||
--hash=sha256:05e411627e5d6ee773232960ca7307e66017f78e3fa74f7e95c3a8cc5cb05415 \
|
||||
--hash=sha256:0b46aee21e5d75426c4058dfdb42f7e7b1d130c664ee5027a8dbbc50872dc32b \
|
||||
--hash=sha256:0bcde3135265ecdd5714a7de4fdc167925390d7b17ca325e59980f4114c962b8 \
|
||||
--hash=sha256:1120c8263f7d85e89533a2b46d80cc6def15114772010ede4d197739e111dba6 \
|
||||
--hash=sha256:13297a7d501f9c8c53e409d4fa57cc574e4fbfbe8807ef2c4c7ce2e3ec933a85 \
|
||||
--hash=sha256:191f88d5865740497b9827ef9b7c12f37a79872ac984e09f0901a10024019380 \
|
||||
--hash=sha256:1a2e645325f844f9c890c9d956fc2d35ca91f38c857278238ef6516c2f99cf7c \
|
||||
--hash=sha256:2974b17bc522ef86d98b498959d82f03c02e07d9eb08746026415298f4a4bca3 \
|
||||
--hash=sha256:2d98248f1df1e1aab67e0374ab98945dd36bc1764753d71fd8aea5f296360b76 \
|
||||
--hash=sha256:31bdb6d771d5ef6d37134b42211500bfe176c55d399f3317e569783dc42ed38e \
|
||||
--hash=sha256:3212847d3885bfd4f5fd56cdc37645a8f8e8a80d6cb569505da22fd9eb0e1a02 \
|
||||
--hash=sha256:326a96324ed9215b0bc9f1a5af324fb33900b6b0901516bcc421475d6596de0d \
|
||||
--hash=sha256:381c97d326d1ec569d318cc0ae83940ea2df125ede1000871680fefd5b7fdea9 \
|
||||
--hash=sha256:39bb702ca1612253b5e4b6004e0f20208c98a446606aa351f9a7ba5ceaff0eb8 \
|
||||
--hash=sha256:3a0707f381f97e1287c0dbf94d95bd6c0bbf6e4eeeaa656f0076b7883010c818 \
|
||||
--hash=sha256:400e4ca8a59f71398e8fa56c4d2d6f535e2a121ddb57284ec15752ffce2dd63a \
|
||||
--hash=sha256:422653083c6df6cec17fdb5d6106c209aad9b0c94131c53b073980403db22167 \
|
||||
--hash=sha256:511aa641a5b91d19280183b134fb6c473039d4dd82e987ac810cffba783521ac \
|
||||
--hash=sha256:5df8b6369ee5ee2685fcc917f6c46b34e599c6e9a512fada6dfd752b909fa06a \
|
||||
--hash=sha256:67f4e2fa81e1d99c01e7b1978ab0cbf3c9a8b663f683a709f87baad110d5b940 \
|
||||
--hash=sha256:68c7f753aec490c6566fd3cd301887c413ac3a588316e446f30a4134ac665668 \
|
||||
--hash=sha256:6a20f2f6e8818c1ab89dd4be6bbad3fc2ddb15287f89e7ea35f3eb849afebbd9 \
|
||||
--hash=sha256:6b953e09441e307504130755e5bd6b15850178d591f66292bba4608c4f7f9b00 \
|
||||
--hash=sha256:754f422aba8db8201a1073f25e2f732effc6471f8755708b16e6ebf19dd23634 \
|
||||
--hash=sha256:784dbd12925845a3f0757a956447e2fd31418abb5aeaebf3aca1203195f16fd1 \
|
||||
--hash=sha256:7d4c9ccd30e621e714ec24ca911ad8873567dc1ac1e5e914405ea9dd16b9d40c \
|
||||
--hash=sha256:7e12272361e9722777c83b3f5b0bb91d402531f36e80c6e5fafb6acb89e897e3 \
|
||||
--hash=sha256:8cce79ce47c37132373fbdf55b683883c262a3a60763130e080b8394c1201d32 \
|
||||
--hash=sha256:8cd6117e33233f2de6bc896eea6a5a59b58a37db08f371157264e0ec5e51c76a \
|
||||
--hash=sha256:8d472efa9c92e1b2933a22d2f1dbd5237087997136b24ac2b913bf4e8be03135 \
|
||||
--hash=sha256:91edcf9978ee401119e9c8589376ae37fd3e6e75ee365c49385cb005eaff1535 \
|
||||
--hash=sha256:9ae1d0094ce730e39e09656bc14074d9573cdd80adec1a55b06d8bf1f9613a01 \
|
||||
--hash=sha256:aa00b746138835271653b0c3da171d2a8b510c579381f71e8b8e03484d50d825 \
|
||||
--hash=sha256:aaa77af91df3f71858a1f792c74d3f2d3abf3875f93ab1a2b9a24b3797743b02 \
|
||||
--hash=sha256:b045ca5497a950cc3492840adb3bcb3b9e305ed6599ed14c6aeaa08011aa463f \
|
||||
--hash=sha256:b40a3757a563ef77c3f2f9ea1732c2924e8b3b2bda3fa89513f949472ad40b6e \
|
||||
--hash=sha256:baa76a6f707a6d22437fe9c7ec9719672fb04d4d9435a3e80ee9b1aaeb2089d9 \
|
||||
--hash=sha256:cec010d318a0238b1333ea9f40d5603d374cc026c29c4471e2661712c6682da1 \
|
||||
--hash=sha256:dd0d4ec694cab8a0a4d85f45f81ae0065465c4670f0db72ba48d6c4e7ae42834 \
|
||||
--hash=sha256:e2a9ddb5c6d1427056b8d62a1a172a18ae522b14d9ba5996b8281b09cba87edd \
|
||||
--hash=sha256:e844be0831042aa91e847e5ab03bddd1089ab1a8dd0a1bf90411abf864f058b2 \
|
||||
--hash=sha256:e91947fda8354ea7faf698b084ebcdbabd239e7b15d8436fb74394f59a207ac9 \
|
||||
--hash=sha256:ea7fbc540bc04d5b05e5cd54e60ee8745ac665eedf2bad2ba9d12d5c7a7b7d2e \
|
||||
--hash=sha256:ee29cf5cfc1e841708297633e1ce749aa851fb96830bbe51f2e5940741ff2441 \
|
||||
--hash=sha256:ef985eb2770900a485431910bd3f333b56d1a34b65f8c26a6ed8e8adf55f98d9 \
|
||||
--hash=sha256:f5c547d49a7e9d3f231e9323171bbbbcef63173fb007a2787cd4f05ac6269315 \
|
||||
--hash=sha256:fbea46c0fbc1c3bc8f957afd8dbb25b4ea3a356e18ee6dd79ace6cf32bd4cff7 \
|
||||
--hash=sha256:fd82932aaa224abd7d01e823b77aef9970f5ac1695027331d99e7f5fda9d37f5
|
||||
# via -r requirements.in
|
||||
unpaddedbase32==0.2.0 \
|
||||
--hash=sha256:4aacee75f8fd6c8cf129842ecba45ca59c11bfb13dae19d86f32b48fa3715403 \
|
||||
--hash=sha256:b7b780c31d27d55e66abf6c221216a35690ee8892c2daacff7f2528e229bd9c3
|
||||
# via -r requirements.in
|
||||
zc-lockfile==2.0 \
|
||||
--hash=sha256:307ad78227e48be260e64896ec8886edc7eae22d8ec53e4d528ab5537a83203b \
|
||||
--hash=sha256:cc33599b549f0c8a248cb72f3bf32d77712de1ff7ee8814312eb6456b42c015f
|
||||
# via cherrypy
|
||||
|
||||
# WARNING: The following packages were not pinned, but pip requires them to be
|
||||
# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag.
|
||||
# setuptools
|
@ -1,150 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
from threading import Thread
|
||||
from time import sleep
|
||||
from subprocess import DEVNULL
|
||||
|
||||
import ujson
|
||||
from psutil import Popen
|
||||
from psutil import Process
|
||||
|
||||
import sys
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.append(script_dir + '/src/')
|
||||
|
||||
import onionrvalues
|
||||
|
||||
|
||||
sub_script = script_dir + '/' + onionrvalues.SCRIPT_NAME
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
parser.add_argument(
|
||||
"--bind-address", help="Address to bind to. Be very careful with non-loopback",
|
||||
type=str, default="")
|
||||
parser.add_argument(
|
||||
"--port", help="Port to bind to, must be available and possible",
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
"--use-bootstrap-file", help="Use bootstrap node list file",
|
||||
type=int, default=1)
|
||||
parser.add_argument(
|
||||
"--show-stats", help="Display curses output of Onionr stats",
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
"--onboarding", help="Use Onionr onboarding (if first load)",
|
||||
type=int, default=1)
|
||||
parser.add_argument(
|
||||
"--security-level", help="Set Onionr security level",
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
'--open-ui', help='Open onionr web ui after started',
|
||||
type=int, default=1)
|
||||
parser.add_argument(
|
||||
'--random-localhost-ip', help='bind to random localhost IP for extra security',
|
||||
type=int, default=1)
|
||||
parser.add_argument(
|
||||
'--use-tor', help='Use Tor transport',
|
||||
type=int, default=1)
|
||||
parser.add_argument(
|
||||
'--private-key', help='Use existing private key',
|
||||
type=str, default=0)
|
||||
parser.add_argument(
|
||||
'--animated-background', help='Animated background on webui index. Just for looks.',
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
'--keep-log-on-exit', help='Onionr can keep or delete its log file on exit',
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
'--use-upload-mixing', help='Re-upload blocks uploaded to us. Slow but more secure',
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
'--dev-mode',
|
||||
help='Developer mode makes restarting and testing Onionr less tedious during development',
|
||||
type=int, default=0)
|
||||
parser.add_argument(
|
||||
'--disable-plugin-list',
|
||||
help='plugins to disable by name, separate with commas',
|
||||
type=str, default='chat'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--store-plaintext',
|
||||
help='store plaintext blocks or not. note that encrypted blocks may not really be encrypted, but we cannot detect that',
|
||||
type=int, default=1
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
p = Popen([sub_script, 'version'])
|
||||
p.wait()
|
||||
print("Configuring Onionr before starting daemon")
|
||||
from filepaths import config_file, keys_file
|
||||
from coredb import blockmetadb
|
||||
import onionrcrypto
|
||||
|
||||
|
||||
with open(config_file, 'r') as cf:
|
||||
config = ujson.loads(cf.read())
|
||||
|
||||
|
||||
if args.private_key:
|
||||
priv = args.private_key
|
||||
pub = onionrcrypto.cryptoutils.get_pub_key_from_priv(priv)
|
||||
with open(keys_file, "a") as f:
|
||||
f.write(',' + pub.decode() + ',' + priv)
|
||||
config['general']['public_key'] = pub
|
||||
|
||||
config['plugins']['disabled'] = args.disable_plugin_list.split(',')
|
||||
config['general']['dev_mode'] = False
|
||||
|
||||
config['general']['store_plaintext_blocks'] = True
|
||||
config['general']['use_bootstrap_list'] = True
|
||||
config['transports']['tor'] = True
|
||||
config['general']['bind_port'] = 0 # client api server port
|
||||
config['general']['bind_address'] = '' # client api server address
|
||||
|
||||
if args.bind_address:
|
||||
config['general']['bind_address'] = args.bind_address
|
||||
if args.port:
|
||||
config['client']['client']['port'] = args.port
|
||||
|
||||
if not args.use_bootstrap_file:
|
||||
config['general']['use_bootstrap_list'] = False
|
||||
if not args.store_plaintext:
|
||||
config['general']['store_plaintext_blocks'] = False
|
||||
if args.dev_mode:
|
||||
config['general']['dev_mode'] = True
|
||||
if not args.onboarding:
|
||||
config['onboarding']['done'] = True
|
||||
if not args.random_localhost_ip:
|
||||
config['general']['random_bind_ip'] = False
|
||||
if not args.use_tor:
|
||||
config['transports']['tor'] = False
|
||||
if not args.animated_background:
|
||||
config['ui']['animated_background'] = False
|
||||
if args.keep_log_on_exit:
|
||||
config['log']['file']['remove_on_exit'] = True
|
||||
else:
|
||||
config['log']['file']['remove_on_exit'] = False
|
||||
|
||||
config['general']['upload_mixing'] = False
|
||||
if args.use_upload_mixing:
|
||||
config['general']['upload_mixing'] = True
|
||||
config['general']['display_header'] = False
|
||||
config['general']['security_level'] = args.security_level
|
||||
|
||||
with open(config_file, 'w') as cf:
|
||||
cf.write(ujson.dumps(config, reject_bytes=False))
|
||||
|
||||
if args.open_ui:
|
||||
p = Popen([sub_script, 'start'])
|
||||
sleep(2)
|
||||
Popen([sub_script, 'openhome'])
|
||||
else:
|
||||
p = Popen([sub_script, 'start'])
|
||||
|
||||
p.wait()
|
@ -1,51 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -x
|
||||
ORIG_ONIONR_RUN_DIR=`pwd`
|
||||
export ORIG_ONIONR_RUN_DIR
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [[ -n "$ONIONR_DOCKER" ]]; then
|
||||
[[ -f "/privkey" ]] && privkey_opt="--private-key /privkey"
|
||||
[[ -n "$ONIONR_ONBOARDING" ]] || ONIONR_ONBOARDING=0
|
||||
[[ -n "$ONIONR_OPEN_UI" ]] || ONIONR_OPEN_UI=0
|
||||
[[ -n "$ONIONR_RANDOM_LOCALHOST_IP" ]] || ONIONR_RANDOM_LOCALHOST_IP=0
|
||||
[[ -n "$ONIONR_BIND_ADDRESS" ]] || ONIONR_BIND_ADDRESS=0.0.0.0
|
||||
[[ -n "$ONIONR_PORT" ]] || ONIONR_PORT=8080
|
||||
fi
|
||||
|
||||
[[ -n "$ONIONR_PRIVATE_KEY_FILE" ]] && privkey_opt="--private-key $ONIONR_PRIVATE_KEY_FILE"
|
||||
[[ -n "$ONIONR_USE_BOOTSTRAP_FILE" ]] && bootstrap_opt="--use-bootstrap-file $ONIONR_USE_BOOTSTRAP_FILE"
|
||||
[[ -n "$ONIONR_SHOW_STATS" ]] && show_stats_opt="--show-stats $ONIONR_SHOW_STATS"
|
||||
[[ -n "$ONIONR_ONBOARDING" ]] && onboarding_opt="--onboarding $ONIONR_ONBOARDING"
|
||||
[[ -n "$ONIONR_SECURITY_LEVEL" ]] && security_level_opt="--security-level $ONIONR_SECURITY_LEVEL"
|
||||
[[ -n "$ONIONR_OPEN_UI" ]] && open_ui_opt="--open-ui $ONIONR_OPEN_UI"
|
||||
[[ -n "$ONIONR_RANDOM_LOCALHOST_IP" ]] && random_localhost_ip_opt="--random-localhost-ip $ONIONR_RANDOM_LOCALHOST_IP"
|
||||
[[ -n "$ONIONR_USE_TOR" ]] && use_tor_opt="--use-tor $ONIONR_USE_TOR"
|
||||
[[ -n "$ONIONR_ANIMATED_BACKGROUND" ]] && animated_background_opt="--animated-background $ONIONR_ANIMATED_BACKGROUND"
|
||||
[[ -n "$ONIONR_KEEP_LOG" ]] && keep_log_opt="--keep-log-on-exit $ONIONR_KEEP_LOG"
|
||||
[[ -n "$ONIONR_USE_UPLOAD_MIXING" ]] && use_upload_mixing_opt="--use-upload-mixing $ONIONR_USE_UPLOAD_MIXING"
|
||||
[[ -n "$ONIONR_DEV_MODE" ]] && dev_mode_opt="--dev-mode $ONIONR_DEV_MODE"
|
||||
[[ -n "$ONIONR_DISABLE_PLUGIN_LIST" ]] && disable_plugin_list_opt=" --disable-plugin-list $ONIONR_DISABLE_PLUGIN_LIST"
|
||||
[[ -n "$ONIONR_STORE_PLAINTEXT" ]] && store_plaintext_opt="--store-plaintext $ONIONR_STORE_PLAINTEXT"
|
||||
[[ -n "$ONIONR_BIND_ADDRESS" ]] && bind_address_opt="--bind-address $ONIONR_BIND_ADDRESS"
|
||||
[[ -n "$ONIONR_PORT" ]] && port_opt="--port $ONIONR_PORT"
|
||||
|
||||
|
||||
python3 run-onionr-node.py \
|
||||
$privkey_opt \
|
||||
$bootstrap_opt \
|
||||
$show_stats_opt \
|
||||
$onboarding_opt \
|
||||
$security_level_opt \
|
||||
$open_ui_opt \
|
||||
$random_localhost_ip_opt \
|
||||
$use_tor_opt \
|
||||
$animated_background_opt \
|
||||
$keep_log_opt \
|
||||
$use_upload_mixing_opt \
|
||||
$dev_mode_opt \
|
||||
$disable_plugin_list_opt \
|
||||
$store_plaintext_opt \
|
||||
$bind_address_opt \
|
||||
$port_opt \
|
||||
"$@"
|
@ -11,12 +11,9 @@ conf['tor']['existing_control_port'] = 0
|
||||
conf['tor']['existing_control_password'] = ""
|
||||
conf['tor']['existing_socks_port'] = 0
|
||||
|
||||
conf['general']['dev_mode'] = False
|
||||
conf['general']['insert_deniable_blocks'] = True
|
||||
conf['general']['random_bind_ip'] = True
|
||||
conf['general']['display_header'] = True
|
||||
conf['general']['security_level'] = 0
|
||||
conf['general']['use_bootstrap_list'] = True
|
||||
conf['onboarding']['done'] = False
|
||||
conf['general']['minimum_block_pow'] = 5
|
||||
conf['general']['minimum_send_pow'] = 5
|
||||
|
@ -10,7 +10,6 @@ conf = json.load(open('static-data/default_config.json', 'r'))
|
||||
|
||||
block_pow = int(input("Block POW level:"))
|
||||
|
||||
conf['general']['security_level'] = int(input("Security level:"))
|
||||
conf['transports']['tor'] = False
|
||||
if input('Use Tor? y/n').lower() == 'y':
|
||||
conf['transports']['tor'] = True
|
||||
@ -20,15 +19,11 @@ if input('Use Tor? y/n').lower() == 'y':
|
||||
conf['tor']['existing_control_password'] = input("Tor pass:")
|
||||
conf['tor']['existing_socks_port'] = int(input("Existing socks port:"))
|
||||
|
||||
conf['general']['dev_mode'] = True
|
||||
conf['general']['insert_deniable_blocks'] = False
|
||||
conf['general']['random_bind_ip'] = False
|
||||
conf['onboarding']['done'] = True
|
||||
conf['general']['minimum_block_pow'] = block_pow
|
||||
conf['general']['minimum_send_pow'] = block_pow
|
||||
conf['general']['use_bootstrap_list'] = False
|
||||
if input("Use bootstrap list? y/n").lower() == 'y':
|
||||
conf['general']['use_bootstrap_list'] = True
|
||||
conf['log']['file']['remove_on_exit'] = False
|
||||
conf['ui']['animated_background'] = False
|
||||
if input('Stat reporting? y/n') == 'y':
|
||||
|
@ -1,50 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""Craft and send requests to the local client API"""
|
||||
|
||||
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
from threading import Thread
|
||||
if not os.path.exists('onionr.sh'):
|
||||
os.chdir('../')
|
||||
sys.path.append("src/")
|
||||
|
||||
import filepaths
|
||||
import config
|
||||
config.reload()
|
||||
|
||||
with open(filepaths.private_API_host_file, 'r') as host:
|
||||
hostname = host.read()
|
||||
|
||||
port = config.get("client.client.port", 0)
|
||||
if not port:
|
||||
print("Could not get port for Onionr UI. Try again")
|
||||
sys.exit(1)
|
||||
torrc = f"""
|
||||
HiddenServiceDir remote-onionr-hs
|
||||
HiddenServicePort 80 {hostname}:{port}
|
||||
"""
|
||||
|
||||
with open("remote-onionr-torrc", "w") as torrc_f:
|
||||
torrc_f.write(torrc)
|
||||
|
||||
|
||||
def show_onion():
|
||||
while True:
|
||||
time.sleep(1)
|
||||
try:
|
||||
with open("remote-onionr-hs/hostname", "r") as f:
|
||||
o = f.read()
|
||||
print("UI Onion (Keep secret):", o)
|
||||
config.set("ui.public_remote_enabled", True)
|
||||
config.set("ui.public_remote_hosts", [o])
|
||||
config.save()
|
||||
break
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
Thread(target=show_onion, daemon=True).start()
|
||||
|
||||
os.system("tor -f remote-onionr-torrc")
|
@ -95,7 +95,6 @@ if sys.version_info[0] == 2 or sys.version_info[1] < min_ver:
|
||||
from utils import createdirs
|
||||
createdirs.create_dirs()
|
||||
|
||||
import bigbrother # noqa
|
||||
from onionrcommands import parser # noqa
|
||||
from onionrplugins import onionrevents as events # noqa
|
||||
|
||||
@ -105,13 +104,6 @@ import config # noqa
|
||||
from utils import identifyhome # noqa
|
||||
import filepaths # noqa
|
||||
|
||||
if config.get('advanced.security_auditing', True) \
|
||||
and not onionr_profiling:
|
||||
try:
|
||||
bigbrother.enable_ministries()
|
||||
except onionrexceptions.PythonVersion:
|
||||
pass
|
||||
|
||||
|
||||
def onionr_main():
|
||||
"""Onionr entrypoint, start command processor
|
||||
|
@ -9,7 +9,6 @@ import ujson as json
|
||||
import logger
|
||||
import filepaths
|
||||
|
||||
from . import onboarding
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,79 +0,0 @@
|
||||
"""Onionr - Private P2P Communication.
|
||||
|
||||
Setup config from onboarding choices
|
||||
"""
|
||||
from pathlib import Path
|
||||
from typing import Union
|
||||
|
||||
from filepaths import onboarding_mark_file
|
||||
from onionrtypes import JSONSerializable
|
||||
from onionrtypes import OnboardingConfig
|
||||
import config
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
|
||||
def _get_val_or_none(json: dict, key: str) -> Union[None, JSONSerializable]:
|
||||
try:
|
||||
return json['configInfo'][key]
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
|
||||
def set_config_from_onboarding(config_settings: OnboardingConfig):
|
||||
get = _get_val_or_none
|
||||
|
||||
config.reload()
|
||||
|
||||
if get(config_settings, 'optimize'):
|
||||
config.set('ui.animated_background', False)
|
||||
config.set('general.insert_deniable_blocks', False)
|
||||
|
||||
if get(config_settings, 'stateTarget') or not get(config_settings,
|
||||
'networkContrib'):
|
||||
config.set('general.security_level', 1)
|
||||
|
||||
if get(config_settings, 'localThreat'):
|
||||
config.set('general.security_level', 3)
|
||||
config.set('transports.lan', False)
|
||||
|
||||
config.set('ui.theme', 'light')
|
||||
if get(config_settings, 'useDark'):
|
||||
config.set('ui.theme', 'dark')
|
||||
|
||||
disabled = config.get('plugins.disabled', [])
|
||||
|
||||
if not get(config_settings, 'circles') or \
|
||||
config.get('general.security_level') > 0:
|
||||
disabled.append('flow')
|
||||
|
||||
if not get(config_settings, 'mail'):
|
||||
disabled.append('pms')
|
||||
|
||||
config.set('plugins.disabled', disabled)
|
||||
|
||||
config.set('general.store_plaintext_blocks',
|
||||
get(config_settings, 'plainContrib'))
|
||||
|
||||
config.set('onboarding.done', True, savefile=True)
|
||||
|
||||
|
||||
def set_onboarding_finished():
|
||||
"""Create the onboarding completed setting file"""
|
||||
Path(onboarding_mark_file).touch()
|
||||
|
||||
|
||||
def is_onboarding_finished() -> bool:
|
||||
return True
|
@ -7,27 +7,8 @@ app_root = os.path.dirname(os.path.realpath(__file__)) + '/../../'
|
||||
|
||||
gossip_server_socket_file = home + 'gossip-server.sock'
|
||||
|
||||
usage_file = home + 'disk-usage.txt'
|
||||
contacts_location = home + 'contacts/'
|
||||
cached_storage = home + 'cachedstorage.dat'
|
||||
export_location = home + 'block-export/'
|
||||
upload_list = home + 'upload-list.json'
|
||||
config_file = home + 'config.json'
|
||||
daemon_mark_file = home + '/daemon-true.txt'
|
||||
lock_file = home + 'onionr.lock'
|
||||
pid_file = home + 'onionr.pid'
|
||||
|
||||
site_cache = home + 'onionr-sites.txt'
|
||||
|
||||
tor_hs_loc = home + 'hs/'
|
||||
tor_hs_address_file = home + 'hs/hostname'
|
||||
|
||||
keys_file = home + 'keys.txt'
|
||||
|
||||
onboarding_mark_file = home + 'onboarding-completed'
|
||||
|
||||
log_file = home + 'onionr.log'
|
||||
|
||||
ephemeral_services_file = home + 'ephemeral-services.list'
|
||||
|
||||
restarting_indicator = home + "is-restarting"
|
||||
|
@ -20,7 +20,6 @@ from onionrplugins import onionrevents as events
|
||||
from utils import identifyhome
|
||||
import filepaths
|
||||
import onionrvalues
|
||||
from onionrutils import cleanup
|
||||
from onionrthreads import add_onionr_thread
|
||||
from blockdb.blockcleaner import clean_block_database
|
||||
from .. import version
|
||||
@ -43,6 +42,21 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
def _safe_remove(path):
|
||||
try:
|
||||
os.remove(path)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
|
||||
def delete_run_files():
|
||||
"""Delete run files, do not error if not found.
|
||||
|
||||
Test: test_cleanup.py
|
||||
"""
|
||||
_safe_remove(filepaths.lock_file)
|
||||
_safe_remove(filepaths.gossip_server_socket_file)
|
||||
_safe_remove(filepaths.pid_file)
|
||||
|
||||
def _show_info_messages():
|
||||
version.version(verbosity=5, function=logger.info)
|
||||
@ -92,7 +106,7 @@ def daemon():
|
||||
pass
|
||||
|
||||
|
||||
cleanup.delete_run_files()
|
||||
delete_run_files()
|
||||
if security_level >= 2:
|
||||
filenuke.nuke.clean_tree(identifyhome.identify_home())
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
"""Onionr - Private P2P Communication.
|
||||
|
||||
Open the web interface properly into a web browser, and return it
|
||||
"""
|
||||
import logger
|
||||
from onionrutils import getclientapiserver
|
||||
|
||||
|
||||
def get_url(config) -> str:
|
||||
"""Build UI URL string and return it."""
|
||||
onboarding = ""
|
||||
if not config.get('onboarding.done', False):
|
||||
onboarding = "onboarding/"
|
||||
try:
|
||||
url = getclientapiserver.get_client_API_server()
|
||||
except FileNotFoundError:
|
||||
url = ""
|
||||
logger.error(
|
||||
'Onionr seems to not be running (could not get api host)',
|
||||
terminal=True)
|
||||
else:
|
||||
url = 'http://%s/%s#%s' % (url, onboarding, config.get('client.webpassword'))
|
||||
logger.info('Onionr web interface URL: ' + url, terminal=True)
|
||||
return url
|
@ -26,10 +26,10 @@ from utils.readstatic import get_static_dir
|
||||
|
||||
def setup_default_plugins():
|
||||
# Copy default plugins into plugins folder
|
||||
if os.path.exists(get_static_dir() + '/default-plugins/'):
|
||||
names = [f for f in os.listdir(get_static_dir() + '/default-plugins/')]
|
||||
if os.path.exists(get_static_dir() + '/official-plugins/'):
|
||||
names = [f for f in os.listdir(get_static_dir() + '/official-plugins/')]
|
||||
shutil.copytree(
|
||||
get_static_dir() + '/default-plugins/',
|
||||
get_static_dir() + '/official-plugins/',
|
||||
plugins.get_plugins_folder(), dirs_exist_ok=True)
|
||||
|
||||
|
||||
|
@ -1,22 +0,0 @@
|
||||
from typing import NewType
|
||||
|
||||
UserID = NewType('UserID', str)
|
||||
UserIDSecretKey = NewType('UserIDSecretKey', str)
|
||||
|
||||
LoopBackIP = NewType('LoopBackIP', str)
|
||||
|
||||
DeterministicKeyPassphrase = NewType('DeterministicKeyPassphrase', str)
|
||||
|
||||
Ed25519PublicKeyBytes = NewType('Ed25519PublicKeyBytes', bytes)
|
||||
|
||||
BlockHash = NewType('BlockHash', str)
|
||||
|
||||
OnboardingConfig = NewType('OnboardingConfig', str)
|
||||
|
||||
# JSON serializable string. e.g. no raw bytes
|
||||
JSONSerializable = NewType('JSONSerializable', str)
|
||||
|
||||
# Return value of some functions or methods, denoting operation success
|
||||
# Do not use for new code
|
||||
BooleanSuccessState = NewType('BooleanSuccessState', bool)
|
||||
|
@ -1,39 +0,0 @@
|
||||
"""Onionr - Private P2P Communication.
|
||||
|
||||
cleanup run files
|
||||
"""
|
||||
import os
|
||||
|
||||
import filepaths
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
|
||||
def _safe_remove(path):
|
||||
try:
|
||||
os.remove(path)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
|
||||
def delete_run_files():
|
||||
"""Delete run files, do not error if not found.
|
||||
|
||||
Test: test_cleanup.py
|
||||
"""
|
||||
_safe_remove(filepaths.daemon_mark_file)
|
||||
_safe_remove(filepaths.lock_file)
|
||||
_safe_remove(filepaths.gossip_server_socket_file)
|
||||
_safe_remove(filepaths.pid_file)
|
@ -2,11 +2,10 @@ import re
|
||||
|
||||
|
||||
def escape_ANSI(line):
|
||||
'''
|
||||
Remove ANSI escape codes from a string with regex
|
||||
'''Remove ANSI escape codes from a string with regex
|
||||
|
||||
adapted from: https://stackoverflow.com/a/38662876 by user https://stackoverflow.com/users/802365/%c3%89douard-lopez
|
||||
cc-by-sa-3 license https://creativecommons.org/licenses/by-sa/3.0/
|
||||
adapted from: https://stackoverflow.com/a/38662876 by user https://stackoverflow.com/users/802365/%c3%89douard-lopez
|
||||
cc-by-sa-3 license https://creativecommons.org/licenses/by-sa/3.0/
|
||||
'''
|
||||
ansi_escape = re.compile(r'(\x9B|\x1B\[)[0-?]*[ -/]*[@-~]')
|
||||
return ansi_escape.sub('', line)
|
||||
|
@ -1,8 +0,0 @@
|
||||
from __future__ import annotations
|
||||
from typing import Union, Generic
|
||||
from gevent import sleep
|
||||
def wait_for_set_var(obj, attribute, sleep_seconds: Union[int, float]=0):
|
||||
"""Wait for an object to get an attribute with an optional sleep time"""
|
||||
while not hasattr(obj, attribute):
|
||||
if hasattr(obj, attribute): break
|
||||
if sleep_seconds > 0: sleep(sleep_seconds)
|
@ -38,9 +38,3 @@ DATABASE_LOCK_TIMEOUT = 60
|
||||
|
||||
BLOCK_EXPORT_FILE_EXT = '.onionr'
|
||||
|
||||
# Begin OnionrValues migrated values
|
||||
|
||||
if os.path.exists(filepaths.daemon_mark_file):
|
||||
SCRIPT_NAME = 'start-daemon.sh'
|
||||
else:
|
||||
SCRIPT_NAME = 'onionr.sh'
|
||||
|
@ -5,10 +5,7 @@ Create required Onionr directories
|
||||
import os
|
||||
import stat
|
||||
|
||||
from onionrplugins import get_plugins_folder
|
||||
|
||||
from . import identifyhome
|
||||
import filepaths
|
||||
import onionrexceptions
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@ -31,9 +28,7 @@ def create_dirs():
|
||||
"""Create onionr data-related directories in
|
||||
order of the hardcoded list below,
|
||||
then trigger creation of DBs"""
|
||||
gen_dirs = [home,
|
||||
filepaths.contacts_location,
|
||||
filepaths.export_location]
|
||||
gen_dirs = [home]
|
||||
for path in gen_dirs:
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
|
@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
cd "$(dirname "$0")"
|
||||
echo "starting Onionr daemon..."
|
||||
echo "run onionr.sh stop to stop the daemon"
|
||||
touch daemon-true.txt
|
||||
exec nohup ./onionr.sh start > /dev/null 2>&1 & disown
|
16
start-ram.sh
16
start-ram.sh
@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
if [ -d "/dev/shm" ]
|
||||
then
|
||||
echo "Using /dev/shm to make a RAM based Onionr instance."
|
||||
else
|
||||
echo "This system does not have /dev/shm. Cannot use this script."
|
||||
exit 9;
|
||||
fi
|
||||
ONIONR_HOME="$(mktemp -p /dev/shm/ -d -t onionr-XXXXXXXXXXX)"
|
||||
export ONIONR_HOME
|
||||
echo "Onionr has been launched with a temporary home directory using /dev/shm. Note that the OS may still write to swap if applicable."
|
||||
echo "Future Onionr commands will use your set or default Onionr home directory, unless you set it to $ONIONR_HOME"
|
||||
echo "Ultimately, a live boot operating system such as Tails or Debian would be better for you to use."
|
||||
$(dirname $0)/onionr.sh start & disown
|
||||
sleep 2
|
||||
#$(dirname $0)/onionr.sh open-home
|
@ -2,7 +2,7 @@
|
||||
|
||||
This folder contains whatever static files are needed by Onionr and default plugins.
|
||||
|
||||
default-plugins/: default plugin program files to be installed on first Onionr run.
|
||||
official-plugins/: default plugin program files to be installed on first Onionr run.
|
||||
|
||||
www/: onionr web ui static files including those of default plugins
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
/dev/shm/onionr90775244/gossip-server.sock,/dev/shm/onionr1873728538/gossip-server.sock
|
@ -1,19 +1,7 @@
|
||||
{
|
||||
"advanced": {
|
||||
"security_auditing": false
|
||||
},
|
||||
"allocations": {
|
||||
"disk": 1073741824
|
||||
},
|
||||
"general": {
|
||||
"allow_public_api_dns_rebinding": false,
|
||||
"announce_node": true,
|
||||
"dev_mode": false,
|
||||
"display_header": true,
|
||||
"ephemeral_tunnels": false,
|
||||
"public_key": "",
|
||||
"security_level": 0,
|
||||
"use_bootstrap_list": true
|
||||
"security_level": 0
|
||||
},
|
||||
"log": {
|
||||
"console": {
|
||||
@ -27,7 +15,7 @@
|
||||
"verbosity": "default"
|
||||
},
|
||||
"plugins": {
|
||||
"disabled": ["unixtransport"],
|
||||
"disabled": ["unixtransport", "repl", "bigbrother"],
|
||||
"enabled": []
|
||||
},
|
||||
"security": {
|
||||
|
4
static-data/official-plugins/bigbrother/info.json
Normal file
4
static-data/official-plugins/bigbrother/info.json
Normal file
@ -0,0 +1,4 @@
|
||||
{ "name": "bigbrother",
|
||||
"version": "0.0.0",
|
||||
"author": "onionr"
|
||||
}
|
@ -3,10 +3,11 @@
|
||||
Processes interpreter hook events to detect security leaks
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
from typing import Iterable
|
||||
|
||||
from onionrexceptions import PythonVersion
|
||||
from . import ministry
|
||||
import logger
|
||||
|
||||
"""
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -21,15 +22,11 @@ GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
||||
import ministry
|
||||
|
||||
|
||||
def _auditing_supported():
|
||||
try:
|
||||
sys.audit
|
||||
sys.addaudithook
|
||||
except AttributeError:
|
||||
raise PythonVersion('Auditing not supported interpreter')
|
||||
|
||||
plugin_name = 'bigbrother'
|
||||
PLUGIN_VERSION = '0.0.0'
|
||||
|
||||
def sys_hook_entrypoint(event, info):
|
||||
"""Entrypoint for big brother sys auditors."""
|
||||
@ -47,5 +44,10 @@ def sys_hook_entrypoint(event, info):
|
||||
def enable_ministries(disable_hooks: Iterable = None):
|
||||
"""Enable auditors."""
|
||||
disable_hooks = disable_hooks or []
|
||||
_auditing_supported() # raises PythonVersion exception if <3.8
|
||||
sys.addaudithook(sys_hook_entrypoint)
|
||||
|
||||
|
||||
def on_init(api, data=None):
|
||||
enable_ministries()
|
||||
logger.info(
|
||||
"Big brother enabled, blocking unsafe Python code.", terminal=True)
|
@ -40,32 +40,9 @@ def block_exec(event, info):
|
||||
if untrusted_exec:
|
||||
return
|
||||
whitelisted_code = [
|
||||
'netrc.py',
|
||||
'shlex.py',
|
||||
'gzip.py',
|
||||
'<werkzeug routing>',
|
||||
'werkzeug/test.py',
|
||||
'multiprocessing/popen_fork.py',
|
||||
'multiprocessing/util.py',
|
||||
'multiprocessing/connection.py',
|
||||
'multiprocessing/queues.py',
|
||||
'multiprocessing/synchronize.py',
|
||||
'onionrutils/escapeansi.py',
|
||||
'stem/connection.py',
|
||||
'stem/response/add_onion.py',
|
||||
'stem/response/authchallenge.py',
|
||||
'stem/response/getinfo.py',
|
||||
'stem/response/getconf.py',
|
||||
'stem/response/mapaddress.py',
|
||||
'stem/response/protocolinfo.py',
|
||||
'apport/__init__.py',
|
||||
'apport/report.py'
|
||||
|
||||
]
|
||||
whitelisted_source = [
|
||||
'ZABaAGQBZAJsAW0CWgIBAHoGZAFkA2wDWgRXAG4LBABlBXkZAQABAAEAZARaBlkAbgN3AGQFWgZkAWQGbAdtCFoIAQBkAWQDbAlaCWQBZAdsCm0LWgwBAAkAZQmgDWQIZAWhAnM1ZARaBmUIgwBkCRcAWg5kEmQMZQ9kDWUPZgRkDmQPhAVaEGQTZBBkEYQBWhFkA1MA',
|
||||
'RwBkAGQBhABkAYMCWgBkAlMA',
|
||||
'ZABaAGQBZAJsAVoBZAFkAmwCWgJkAWQCbANaA2QBZAJsBFoEZAFkAmwFWgVkAWQCbAZaBmQBZAJsB1oIZAFkAmwJWghkAWQCbApaCGQBZAJsC1oIZANaDGQEWg1kBWQCZAJkBmQCZQ1kB2QIZAJmCWQJZAqEAVoOZAVkBmQCZQ1kB2QIZgZkC2QMhAFaD2QCUwA=',
|
||||
'ZABaAGQBZAJsAVoBZAFkAmwCWgJkAWQCbANaA2QBZAJsBFoEZAFkAmwFWgVkAWQCbAZaBmQBZAJsB1oIZAFkAmwJWghkAWQCbApaCGQBZANsC20MWgxtDVoNbQ5aDm0PWg9tEFoQbRFaEQEAZARaEmQFWhNkBmQCZAJkB2QCZRNkCGQJZAJmCWQKZRRkC2UPZRBlFBkAGQBkDGUPZRQZAGQNZRVkDmUPZQ1lFGcBZAJmAhkAGQBkD2UVZBBlFmQRZRZkEmUPZRQZAGQTZQRqF2YUZBRkFYQFWhhkBmQHZAJlE2QIZAlmBmQWZQ5lFGURZRRlEGUUGQBmAhkAZgIZAGQKZRRkDWUVZA5lD2UNZRRnAWQCZgIZABkAZA9lFWQQZRZkEWUWZBNlBGoXZhBkF2QYhAVaGWQCUwA='
|
||||
]
|
||||
home = identifyhome.identify_home()
|
||||
|
1
static-data/official-plugins/unixtransport/bootstrap.txt
Normal file
1
static-data/official-plugins/unixtransport/bootstrap.txt
Normal file
@ -0,0 +1 @@
|
||||
/dev/shm/onionr2911314530/gossip-server.sock
|
@ -6,10 +6,8 @@ import sys
|
||||
import os
|
||||
import locale
|
||||
from time import sleep
|
||||
import traceback
|
||||
from typing import Set, TYPE_CHECKING
|
||||
from threading import Thread, local
|
||||
import blockdb
|
||||
from gossip.peerset import gossip_peer_set
|
||||
|
||||
|
||||
@ -37,18 +35,14 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
plugin_name = 'wot'
|
||||
PLUGIN_VERSION = '0.0.0'
|
||||
from wot import loadfromblocks, identities
|
||||
|
||||
|
||||
|
||||
def wot_test(arg: int):
|
||||
return arg + 1
|
||||
from wot.identity import identities
|
||||
from wot.loadfromblocks import load_identities_from_blocks
|
||||
|
||||
|
||||
|
||||
def on_init(api, data=None):
|
||||
logger.info(
|
||||
f"Web of Trust Plugin v{PLUGIN_VERSION} enabled", terminal=True)
|
||||
onionrplugins.plugin_apis['wot'] = wot_test
|
||||
#onionrplugins.plugin_apis['wot'] = wot_test
|
||||
|
||||
list(map(lambda x: identities.add(x), loadfromblocks.load_identities()))
|
||||
list(map(lambda x: identities.add(x), load_identities_from_blocks()))
|
@ -7,9 +7,10 @@ import nacl.exceptions
|
||||
import logger
|
||||
import blockdb
|
||||
|
||||
from wot.identity import Identity, processtrustsignature, identities
|
||||
from wot.identity import Identity, identities
|
||||
from wot.exceptions import IdentitySerializationError
|
||||
from wot.getbykey import get_identity_by_key
|
||||
from wot.identityprocessing import processtrustsignature
|
||||
|
||||
|
||||
def load_identity_from_block(block) -> Identity:
|
@ -12,7 +12,7 @@ from nacl import signing
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append('static-data/default-plugins/wot/wot')
|
||||
sys.path.append('static-data/official-plugins/wot/wot')
|
||||
sys.path.append("src/")
|
||||
import onionrblocks
|
||||
from blockdb import block_db_path
|
||||
|
@ -11,7 +11,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/wot')
|
||||
sys.path.append('static-data/official-plugins/wot/wot')
|
||||
sys.path.append("src/")
|
||||
from identity import Identity, get_distance
|
||||
|
||||
|
@ -11,7 +11,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/wot/')
|
||||
sys.path.append('static-data/official-plugins/wot/wot/')
|
||||
sys.path.append("src/")
|
||||
from identity import Identity
|
||||
|
||||
|
@ -10,7 +10,7 @@ os.makedirs(TEST_DIR)
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append('static-data/default-plugins/wot/wot')
|
||||
sys.path.append('static-data/official-plugins/wot/wot')
|
||||
sys.path.append("src/")
|
||||
import onionrblocks
|
||||
from blockdb import block_db_path
|
||||
|
@ -10,7 +10,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append('static-data/default-plugins/wot/wot')
|
||||
sys.path.append('static-data/official-plugins/wot/wot')
|
||||
sys.path.append("src/")
|
||||
from identity import Identity
|
||||
from identity.name import max_len
|
||||
|
@ -15,7 +15,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/')
|
||||
sys.path.append('static-data/official-plugins/wot/')
|
||||
sys.path.append("src/")
|
||||
from wot.identityprocessing import process_identity_announce
|
||||
from wot import identity
|
||||
|
@ -16,7 +16,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/')
|
||||
sys.path.append('static-data/official-plugins/wot/')
|
||||
sys.path.append("src/")
|
||||
from wot.identityprocessing import process_identity_revoke
|
||||
from wot import identity
|
||||
|
@ -15,7 +15,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/')
|
||||
sys.path.append('static-data/official-plugins/wot/')
|
||||
sys.path.append("src/")
|
||||
from wot import identity
|
||||
from wot.identity.identityset import identities
|
||||
|
@ -15,7 +15,7 @@ os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append('static-data/default-plugins/wot/wot')
|
||||
sys.path.append('static-data/official-plugins/wot/wot')
|
||||
sys.path.append("src/")
|
||||
import identity
|
||||
from identity import identities
|
||||
|
@ -1,34 +0,0 @@
|
||||
import sys, os
|
||||
sys.path.append(".")
|
||||
sys.path.append("src/")
|
||||
import unittest, uuid
|
||||
|
||||
import requests
|
||||
|
||||
TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/'
|
||||
print("Test directory:", TEST_DIR)
|
||||
os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
from utils import createdirs, identifyhome
|
||||
import onionrsetup as setup
|
||||
import onionrexceptions
|
||||
|
||||
|
||||
createdirs.create_dirs()
|
||||
setup.setup_config()
|
||||
|
||||
class TestBigBrother(unittest.TestCase):
|
||||
def test_system(self):
|
||||
import bigbrother
|
||||
bigbrother.enable_ministries()
|
||||
self.assertRaises(onionrexceptions.ArbitraryCodeExec, os.system, "echo test")
|
||||
|
||||
def test_requests_connect(self):
|
||||
import bigbrother
|
||||
bigbrother.enable_ministries()
|
||||
with self.assertRaises(onionrexceptions.NetworkLeak):
|
||||
requests.get('https://example.com')
|
||||
with self.assertRaises(onionrexceptions.NetworkLeak):
|
||||
requests.get('https://1.1.1.1/')
|
||||
|
||||
|
||||
unittest.main()
|
@ -7,8 +7,6 @@ print("Test directory:", TEST_DIR)
|
||||
os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
from utils import createdirs
|
||||
createdirs.create_dirs()
|
||||
from onionrcrypto import getourkeypair
|
||||
getourkeypair.get_keypair()
|
||||
from utils import readstatic
|
||||
import onionrblocks
|
||||
class OnionrConfig(unittest.TestCase):
|
||||
@ -21,11 +19,8 @@ class OnionrConfig(unittest.TestCase):
|
||||
with open(TEST_DIR + 'config.json') as conf:
|
||||
conf = json.loads(conf.read())
|
||||
self.assertEqual(conf['advanced']['security_auditing'], True)
|
||||
self.assertEqual(conf['allocations']['disk'], 1073741824)
|
||||
self.assertEqual(conf['allocations']['disk'], 1073741824)
|
||||
self.assertEqual(conf['general']['announce_node'], True)
|
||||
self.assertEqual(conf['general']['bind_address'], '')
|
||||
self.assertEqual(conf['general']['dev_mode'], False)
|
||||
self.assertEqual(conf['general']['display_header'], True)
|
||||
self.assertEqual(conf['general']['ephemeral_tunnels'], False)
|
||||
self.assertEqual(conf['general']['hide_created_blocks'], True)
|
||||
@ -37,7 +32,6 @@ class OnionrConfig(unittest.TestCase):
|
||||
self.assertEqual(conf['general']['security_level'], 0)
|
||||
self.assertEqual(conf['general']['show_notifications'], True)
|
||||
self.assertEqual(conf['general']['store_plaintext_blocks'], True)
|
||||
self.assertEqual(conf['general']['use_bootstrap_list'], True)
|
||||
self.assertEqual(conf['general']['use_subprocess_pow_if_possible'], True)
|
||||
self.assertEqual(conf['log']['console']['color'], True)
|
||||
self.assertEqual(conf['log']['console']['output'], True)
|
||||
|
@ -10,14 +10,11 @@ import unittest, json
|
||||
|
||||
from utils import identifyhome, createdirs
|
||||
createdirs.create_dirs()
|
||||
from onionrutils.cleanup import delete_run_files
|
||||
from onionrcommands.daemonlaunch import delete_run_files
|
||||
import filepaths
|
||||
|
||||
|
||||
run_file_paths = [
|
||||
filepaths.public_API_host_file,
|
||||
filepaths.private_API_host_file,
|
||||
filepaths.daemon_mark_file,
|
||||
filepaths.lock_file]
|
||||
|
||||
def _run_paths_exist():
|
||||
|
@ -1,49 +0,0 @@
|
||||
import sys, os
|
||||
sys.path.append(".")
|
||||
sys.path.append("src/")
|
||||
import unittest, uuid, time, threading
|
||||
|
||||
TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/'
|
||||
os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
from utils import createdirs
|
||||
createdirs.create_dirs()
|
||||
from onionrcrypto import getourkeypair
|
||||
getourkeypair.get_keypair()
|
||||
from onionrutils import waitforsetvar
|
||||
|
||||
def set_test_var_delay(obj, delay=0):
|
||||
if delay > 0: time.sleep(delay)
|
||||
obj.test_var = True
|
||||
|
||||
class TestWaitForSetVar(unittest.TestCase):
|
||||
def test_no_wait(self):
|
||||
test_object = lambda: None
|
||||
threading.Thread(target=set_test_var_delay, args=[test_object]).start()
|
||||
waitforsetvar.wait_for_set_var(test_object, 'test_var')
|
||||
self.assertTrue(test_object.test_var)
|
||||
|
||||
def test_negative_wait(self):
|
||||
test_object = lambda: None
|
||||
threading.Thread(target=set_test_var_delay, args=[test_object, -1]).start()
|
||||
waitforsetvar.wait_for_set_var(test_object, 'test_var')
|
||||
self.assertTrue(test_object.test_var)
|
||||
|
||||
def test_zero_wait(self):
|
||||
test_object = lambda: None
|
||||
threading.Thread(target=set_test_var_delay, args=[test_object, 0]).start()
|
||||
waitforsetvar.wait_for_set_var(test_object, 'test_var')
|
||||
self.assertTrue(test_object.test_var)
|
||||
|
||||
def test_one_wait(self):
|
||||
test_object = lambda: None
|
||||
threading.Thread(target=set_test_var_delay, args=[test_object, 1]).start()
|
||||
waitforsetvar.wait_for_set_var(test_object, 'test_var')
|
||||
self.assertTrue(test_object.test_var)
|
||||
|
||||
def test_three_wait(self):
|
||||
test_object = lambda: None
|
||||
threading.Thread(target=set_test_var_delay, args=[test_object, 3]).start()
|
||||
waitforsetvar.wait_for_set_var(test_object, 'test_var')
|
||||
self.assertTrue(test_object.test_var)
|
||||
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user