From 99602b5300e3a99b8e7e2c8098f6a782dc0981e0 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Sat, 12 Sep 2020 17:33:54 +0100 Subject: [PATCH] updates --- ...QyYTQ0NzUxODQxNTA0MTY4YjliOWE2NTlmODdjYw== | 1 + ...FhODFhYTg4NTY1MDcyZTRjMTE4OTRlZWEyNjkyNw== | 1 + ...RhY2NjMzZlZTVhMTUwYjcwYzNmZmY5ZDhkOGM2OQ== | 1 + ...MzMWM5YzJiZDkyY2EwNmQwNWU2Y2IwNGU5ZTAzZg== | 1 + ...FjMTdiM2RhMzliYTI2NzQ0ZTk1ODZlYmE2YzE1ZQ== | 1 + ...BkYTAxNzQ1YzRlZmE0ZGVhOTM0Y2EwY2Q1OWE0ZA== | 1 + ...A2YmFiMTRiOGUyODdiNmY2YWE3YzlhMTNlOGU2Zg== | 1 + ...QxNDYwNjA3YmFjOWZjZjg3N2JhMzU1ZmRlMzE3Mg== | 1 + ...YxNzk4NmI1Y2RjNDM1MTMzMjdlNDFjNzdmMzA0YQ== | 1 + ...A2NDUyNDA5MjljZmZmZWExN2U1MThiMjgxMzNiZg== | 1 + ...I5Y2Y0MTUzY2Q1Y2I0OGI1YjQxNjQ5ZjkxN2UxZQ== | 1 + ...A5YmUyZTNjMWQxOGY0MDEzYjBmYzZmMDRmMTExYg== | 1 + ...FjZTQ2OWZmMTdhODA2MzkzNmFlNzE3NzgxODk3MA== | 1 + ...M0YWE1MWNjYWQ4MmY4ZDU4YTFmMDc4ZDRlYjNkZA== | 1 + ...AxN2E5ZTMxMDliZjAzZmQ4ZGQzZmQ5OTczZWE0Ng== | 1 + ...NlOGU2ZGRlNjM0NDFjZDdjZjc0MWMyNWI3MjM4Ng== | 1 + ...M4ZDBiMjhjZmRiNGE5NWQwYThiYTQyNWQ1OTg5Yw== | 1 + ...JjNzM3ZGU2NDM4YjNkMTgzY2Q0OWI5MGI2NzM3Ng== | 1 + ...UwZDMyMWE2NDNmOTMwY2Q2M2IyOTNlMmUzZDdiOA== | 1 + ...JhNTJmMTJhODdiNDk4ZjdkMWRkMGFmN2NkZDQ5Mw== | 1 + ...Y5MmY0MzFlMDEzNGJjZGQzMTgyZWI0ZmJiZjU3Zg== | 1 + ...M4ZGVhNTFkMzJhMGU1ZmMyMjZjM2FkNDdiZTMxMA== | 1 + ...IxMGFlZDZlODY1MzU0OTRkNzdiZjM3N2U4ZGRiZg== | 1 + ...EyMzk3ZWNhZTI1ZjJkYWI0ZWE2NTdhMGYyOTZkMw== | 1 + ...JhYzUzYWI4MDc4NTIzYmQyYTAwZjc4ZTg2ZWQxMg== | 1 + ...cxMjdkYmQ3MDNhODRlYzExZTBmMjUwMmY1MmY4ZA== | 1 + komrade/.builtin.keys | 2 +- komrade/backend/keymaker.py | 5 +- komrade/backend/operators.py | 11 ++-- komrade/backend/phonelines.py | 53 +++++++++++++++++-- komrade/backend/the_operator.py | 6 +-- komrade/backend/the_telephone.py | 6 +-- 32 files changed, 90 insertions(+), 19 deletions(-) create mode 100644 None/MDJkODBkMDY5ZTM4ZTA3NDZmMGM1YTQ1ZGMwNDVjMzc3ZjQyYTQ0NzUxODQxNTA0MTY4YjliOWE2NTlmODdjYw== create mode 100644 None/MDM3NDQ1NWNiYjYwMWJiNjdkOTAzN2EwNDg4ZGFkMjBiY2FhODFhYTg4NTY1MDcyZTRjMTE4OTRlZWEyNjkyNw== create mode 100644 None/MjNiMTgwNWRiNTkzN2Y1OWMzYzg2OGY3MmQxMjNlYjYyNDRhY2NjMzZlZTVhMTUwYjcwYzNmZmY5ZDhkOGM2OQ== create mode 100644 None/Mjg2YTFiODI3OTg4MzlmYzViMWE1YjdmZjk1MTQ4YWM5YTMzMWM5YzJiZDkyY2EwNmQwNWU2Y2IwNGU5ZTAzZg== create mode 100644 None/MzhhYzI5MDg2NGZiNTNhODdhODg5MDNjOGVhOGQwOThmMTFjMTdiM2RhMzliYTI2NzQ0ZTk1ODZlYmE2YzE1ZQ== create mode 100644 None/N2ZiYmVmMzg0NDE1NWM0MDRmZWFhMjBmNmU4NzExMmJhODBkYTAxNzQ1YzRlZmE0ZGVhOTM0Y2EwY2Q1OWE0ZA== create mode 100644 None/N2ZjMWViNGY0NDhjYWQ4ZTYzNGIxOGViOTFjODZkYzI3YzA2YmFiMTRiOGUyODdiNmY2YWE3YzlhMTNlOGU2Zg== create mode 100644 None/NDczMmRkYTQ5NzA5ZDFjY2U0ZmZmZTA3MTdjZTI2ZWQ4ZDQxNDYwNjA3YmFjOWZjZjg3N2JhMzU1ZmRlMzE3Mg== create mode 100644 None/NDhjZDJhYjVkMDE0YmNkMjRkNjhkYTU1Nzg5N2UyZTljNzYxNzk4NmI1Y2RjNDM1MTMzMjdlNDFjNzdmMzA0YQ== create mode 100644 None/NGRjZTM2M2YyZGI3YmUzOGQzMWQ5ZmUwZmM4MGZkNTcwODA2NDUyNDA5MjljZmZmZWExN2U1MThiMjgxMzNiZg== create mode 100644 None/NTAzNjlhODZkYTEwNTM3MmY4M2I4Mzg5OWNhZGY1YzJmZTI5Y2Y0MTUzY2Q1Y2I0OGI1YjQxNjQ5ZjkxN2UxZQ== create mode 100644 None/NWM3ODM1MzVmMTI0YTYwZmJhNTRiZWQ5NjIxNDI4NTNiNDA5YmUyZTNjMWQxOGY0MDEzYjBmYzZmMDRmMTExYg== create mode 100644 None/NWM5MzA1ZjAzNTNmOWJkYWU5OTJkYTExOWY1ZDdjOTUzNWFjZTQ2OWZmMTdhODA2MzkzNmFlNzE3NzgxODk3MA== create mode 100644 None/NWMzNTdhMTE2MjY1NWI1Yjk5YTM2OGVmY2IzM2Q5MjQ3MTM0YWE1MWNjYWQ4MmY4ZDU4YTFmMDc4ZDRlYjNkZA== create mode 100644 None/NjkyMWYzZTg5MDllYWJlOTg0MzllOGMwNTk3ZjUzNDI4ZDAxN2E5ZTMxMDliZjAzZmQ4ZGQzZmQ5OTczZWE0Ng== create mode 100644 None/NmU1ZWY2MzY3Yzg3MGYwMDFjMzE2ODMzMGE0YzkwMWQ2NmNlOGU2ZGRlNjM0NDFjZDdjZjc0MWMyNWI3MjM4Ng== create mode 100644 None/ODU1YzBjZjE3YjEzM2RiOTE0OTBjNzdkZjAzM2MzYzBlYzM4ZDBiMjhjZmRiNGE5NWQwYThiYTQyNWQ1OTg5Yw== create mode 100644 None/OWUxNGNkZjQ0YTkwMDk2MzQyZTk3NDZmZmYzNDMwMWE1YTJjNzM3ZGU2NDM4YjNkMTgzY2Q0OWI5MGI2NzM3Ng== create mode 100644 None/OWVmODIyYjA0ZWRjODViMzMzYmE0NTJiNzVhY2M3YjFmODUwZDMyMWE2NDNmOTMwY2Q2M2IyOTNlMmUzZDdiOA== create mode 100644 None/YTMzZWY3YjUyNTlhYzdiZWU4MzUzZjc3YjYyYTE2NmY0ZTJhNTJmMTJhODdiNDk4ZjdkMWRkMGFmN2NkZDQ5Mw== create mode 100644 None/YzZkMzk4YThjNDAxMmRhODg3YWM2NTA5YjI3OGJhZWFjMDY5MmY0MzFlMDEzNGJjZGQzMTgyZWI0ZmJiZjU3Zg== create mode 100644 None/YzZkOWQ2YzYyODNjNWU0OGFiZGJjODVlNTM5ZDliM2MxODM4ZGVhNTFkMzJhMGU1ZmMyMjZjM2FkNDdiZTMxMA== create mode 100644 None/ZDE5YTczODdkNWJjN2E3ZTU2ZjMwOTZiM2U4OTBlMTEwOWIxMGFlZDZlODY1MzU0OTRkNzdiZjM3N2U4ZGRiZg== create mode 100644 None/ZDRjMTgwNTc5YWEzOWQyMjQwNTI0NmNlZWVmYTI1ODBlNGEyMzk3ZWNhZTI1ZjJkYWI0ZWE2NTdhMGYyOTZkMw== create mode 100644 None/ZDZlNThiZDU3NDEwN2Y3YjQ0NzNkODk1ZDgxY2RkODhlYWJhYzUzYWI4MDc4NTIzYmQyYTAwZjc4ZTg2ZWQxMg== create mode 100644 None/ZTk5NTg2NDA2MjQ3ZGFhYmY4YmM2ZGUyZDFhMDc0MDg5YjcxMjdkYmQ3MDNhODRlYzExZTBmMjUwMmY1MmY4ZA== diff --git a/None/MDJkODBkMDY5ZTM4ZTA3NDZmMGM1YTQ1ZGMwNDVjMzc3ZjQyYTQ0NzUxODQxNTA0MTY4YjliOWE2NTlmODdjYw== b/None/MDJkODBkMDY5ZTM4ZTA3NDZmMGM1YTQ1ZGMwNDVjMzc3ZjQyYTQ0NzUxODQxNTA0MTY4YjliOWE2NTlmODdjYw== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/MDJkODBkMDY5ZTM4ZTA3NDZmMGM1YTQ1ZGMwNDVjMzc3ZjQyYTQ0NzUxODQxNTA0MTY4YjliOWE2NTlmODdjYw== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/MDM3NDQ1NWNiYjYwMWJiNjdkOTAzN2EwNDg4ZGFkMjBiY2FhODFhYTg4NTY1MDcyZTRjMTE4OTRlZWEyNjkyNw== b/None/MDM3NDQ1NWNiYjYwMWJiNjdkOTAzN2EwNDg4ZGFkMjBiY2FhODFhYTg4NTY1MDcyZTRjMTE4OTRlZWEyNjkyNw== new file mode 100644 index 0000000..1c4fe85 --- /dev/null +++ b/None/MDM3NDQ1NWNiYjYwMWJiNjdkOTAzN2EwNDg4ZGFkMjBiY2FhODFhYTg4NTY1MDcyZTRjMTE4OTRlZWEyNjkyNw== @@ -0,0 +1 @@ +AAEBQAwAAAAQAAAALQAAAEDMioQYqkF/3sZF/A4rQ+oK6atM/NelMoCDHhHqsgD4cXiHc3+Vjk83TOEpRfLUgss82XBojdW2B4mALSv2WzGaqDOsh/QTlH4= \ No newline at end of file diff --git a/None/MjNiMTgwNWRiNTkzN2Y1OWMzYzg2OGY3MmQxMjNlYjYyNDRhY2NjMzZlZTVhMTUwYjcwYzNmZmY5ZDhkOGM2OQ== b/None/MjNiMTgwNWRiNTkzN2Y1OWMzYzg2OGY3MmQxMjNlYjYyNDRhY2NjMzZlZTVhMTUwYjcwYzNmZmY5ZDhkOGM2OQ== new file mode 100644 index 0000000..9ef27f2 --- /dev/null +++ b/None/MjNiMTgwNWRiNTkzN2Y1OWMzYzg2OGY3MmQxMjNlYjYyNDRhY2NjMzZlZTVhMTUwYjcwYzNmZmY5ZDhkOGM2OQ== @@ -0,0 +1 @@ +rar/usG8VF+godE5gNe6GbzvFmYRMCyZEMe0DZt5y9U= \ No newline at end of file diff --git a/None/Mjg2YTFiODI3OTg4MzlmYzViMWE1YjdmZjk1MTQ4YWM5YTMzMWM5YzJiZDkyY2EwNmQwNWU2Y2IwNGU5ZTAzZg== b/None/Mjg2YTFiODI3OTg4MzlmYzViMWE1YjdmZjk1MTQ4YWM5YTMzMWM5YzJiZDkyY2EwNmQwNWU2Y2IwNGU5ZTAzZg== new file mode 100644 index 0000000..02fa5bb --- /dev/null +++ b/None/Mjg2YTFiODI3OTg4MzlmYzViMWE1YjdmZjk1MTQ4YWM5YTMzMWM5YzJiZDkyY2EwNmQwNWU2Y2IwNGU5ZTAzZg== @@ -0,0 +1 @@ +VUVDMgAAAC1ed3WvArnYY/AVYYSoIP742FENh1qPWa2KZzj676ZKwnyjTYjA \ No newline at end of file diff --git a/None/MzhhYzI5MDg2NGZiNTNhODdhODg5MDNjOGVhOGQwOThmMTFjMTdiM2RhMzliYTI2NzQ0ZTk1ODZlYmE2YzE1ZQ== b/None/MzhhYzI5MDg2NGZiNTNhODdhODg5MDNjOGVhOGQwOThmMTFjMTdiM2RhMzliYTI2NzQ0ZTk1ODZlYmE2YzE1ZQ== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/MzhhYzI5MDg2NGZiNTNhODdhODg5MDNjOGVhOGQwOThmMTFjMTdiM2RhMzliYTI2NzQ0ZTk1ODZlYmE2YzE1ZQ== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/N2ZiYmVmMzg0NDE1NWM0MDRmZWFhMjBmNmU4NzExMmJhODBkYTAxNzQ1YzRlZmE0ZGVhOTM0Y2EwY2Q1OWE0ZA== b/None/N2ZiYmVmMzg0NDE1NWM0MDRmZWFhMjBmNmU4NzExMmJhODBkYTAxNzQ1YzRlZmE0ZGVhOTM0Y2EwY2Q1OWE0ZA== new file mode 100644 index 0000000..f77536e --- /dev/null +++ b/None/N2ZiYmVmMzg0NDE1NWM0MDRmZWFhMjBmNmU4NzExMmJhODBkYTAxNzQ1YzRlZmE0ZGVhOTM0Y2EwY2Q1OWE0ZA== @@ -0,0 +1 @@ +AAEBQAwAAAAQAAAALQAAAJj0NKWli8opRwW4jBkJo0/DdJzbhrN0xRYCJN48NjtcQetNEG88c48wSEMRWhbjjr0dE+XaoB4SO6FWUMq41XB4p6wytGqUSSc= \ No newline at end of file diff --git a/None/N2ZjMWViNGY0NDhjYWQ4ZTYzNGIxOGViOTFjODZkYzI3YzA2YmFiMTRiOGUyODdiNmY2YWE3YzlhMTNlOGU2Zg== b/None/N2ZjMWViNGY0NDhjYWQ4ZTYzNGIxOGViOTFjODZkYzI3YzA2YmFiMTRiOGUyODdiNmY2YWE3YzlhMTNlOGU2Zg== new file mode 100644 index 0000000..02fa5bb --- /dev/null +++ b/None/N2ZjMWViNGY0NDhjYWQ4ZTYzNGIxOGViOTFjODZkYzI3YzA2YmFiMTRiOGUyODdiNmY2YWE3YzlhMTNlOGU2Zg== @@ -0,0 +1 @@ +VUVDMgAAAC1ed3WvArnYY/AVYYSoIP742FENh1qPWa2KZzj676ZKwnyjTYjA \ No newline at end of file diff --git a/None/NDczMmRkYTQ5NzA5ZDFjY2U0ZmZmZTA3MTdjZTI2ZWQ4ZDQxNDYwNjA3YmFjOWZjZjg3N2JhMzU1ZmRlMzE3Mg== b/None/NDczMmRkYTQ5NzA5ZDFjY2U0ZmZmZTA3MTdjZTI2ZWQ4ZDQxNDYwNjA3YmFjOWZjZjg3N2JhMzU1ZmRlMzE3Mg== new file mode 100644 index 0000000..662179c --- /dev/null +++ b/None/NDczMmRkYTQ5NzA5ZDFjY2U0ZmZmZTA3MTdjZTI2ZWQ4ZDQxNDYwNjA3YmFjOWZjZjg3N2JhMzU1ZmRlMzE3Mg== @@ -0,0 +1 @@ +VUVDMgAAAC0UyaNjA7F7+uhXQ/VI0fVaNVGO8buXXaV4n2ERtZJNJwi1/izr \ No newline at end of file diff --git a/None/NDhjZDJhYjVkMDE0YmNkMjRkNjhkYTU1Nzg5N2UyZTljNzYxNzk4NmI1Y2RjNDM1MTMzMjdlNDFjNzdmMzA0YQ== b/None/NDhjZDJhYjVkMDE0YmNkMjRkNjhkYTU1Nzg5N2UyZTljNzYxNzk4NmI1Y2RjNDM1MTMzMjdlNDFjNzdmMzA0YQ== new file mode 100644 index 0000000..9ef27f2 --- /dev/null +++ b/None/NDhjZDJhYjVkMDE0YmNkMjRkNjhkYTU1Nzg5N2UyZTljNzYxNzk4NmI1Y2RjNDM1MTMzMjdlNDFjNzdmMzA0YQ== @@ -0,0 +1 @@ +rar/usG8VF+godE5gNe6GbzvFmYRMCyZEMe0DZt5y9U= \ No newline at end of file diff --git a/None/NGRjZTM2M2YyZGI3YmUzOGQzMWQ5ZmUwZmM4MGZkNTcwODA2NDUyNDA5MjljZmZmZWExN2U1MThiMjgxMzNiZg== b/None/NGRjZTM2M2YyZGI3YmUzOGQzMWQ5ZmUwZmM4MGZkNTcwODA2NDUyNDA5MjljZmZmZWExN2U1MThiMjgxMzNiZg== new file mode 100644 index 0000000..662179c --- /dev/null +++ b/None/NGRjZTM2M2YyZGI3YmUzOGQzMWQ5ZmUwZmM4MGZkNTcwODA2NDUyNDA5MjljZmZmZWExN2U1MThiMjgxMzNiZg== @@ -0,0 +1 @@ +VUVDMgAAAC0UyaNjA7F7+uhXQ/VI0fVaNVGO8buXXaV4n2ERtZJNJwi1/izr \ No newline at end of file diff --git a/None/NTAzNjlhODZkYTEwNTM3MmY4M2I4Mzg5OWNhZGY1YzJmZTI5Y2Y0MTUzY2Q1Y2I0OGI1YjQxNjQ5ZjkxN2UxZQ== b/None/NTAzNjlhODZkYTEwNTM3MmY4M2I4Mzg5OWNhZGY1YzJmZTI5Y2Y0MTUzY2Q1Y2I0OGI1YjQxNjQ5ZjkxN2UxZQ== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/NTAzNjlhODZkYTEwNTM3MmY4M2I4Mzg5OWNhZGY1YzJmZTI5Y2Y0MTUzY2Q1Y2I0OGI1YjQxNjQ5ZjkxN2UxZQ== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/NWM3ODM1MzVmMTI0YTYwZmJhNTRiZWQ5NjIxNDI4NTNiNDA5YmUyZTNjMWQxOGY0MDEzYjBmYzZmMDRmMTExYg== b/None/NWM3ODM1MzVmMTI0YTYwZmJhNTRiZWQ5NjIxNDI4NTNiNDA5YmUyZTNjMWQxOGY0MDEzYjBmYzZmMDRmMTExYg== new file mode 100644 index 0000000..0feb661 --- /dev/null +++ b/None/NWM3ODM1MzVmMTI0YTYwZmJhNTRiZWQ5NjIxNDI4NTNiNDA5YmUyZTNjMWQxOGY0MDEzYjBmYzZmMDRmMTExYg== @@ -0,0 +1 @@ +zXczBhWn8ICMhkZHuBbC/UgcLo5M4KMktRSkI1WPJ7k= \ No newline at end of file diff --git a/None/NWM5MzA1ZjAzNTNmOWJkYWU5OTJkYTExOWY1ZDdjOTUzNWFjZTQ2OWZmMTdhODA2MzkzNmFlNzE3NzgxODk3MA== b/None/NWM5MzA1ZjAzNTNmOWJkYWU5OTJkYTExOWY1ZDdjOTUzNWFjZTQ2OWZmMTdhODA2MzkzNmFlNzE3NzgxODk3MA== new file mode 100644 index 0000000..1c4fe85 --- /dev/null +++ b/None/NWM5MzA1ZjAzNTNmOWJkYWU5OTJkYTExOWY1ZDdjOTUzNWFjZTQ2OWZmMTdhODA2MzkzNmFlNzE3NzgxODk3MA== @@ -0,0 +1 @@ +AAEBQAwAAAAQAAAALQAAAEDMioQYqkF/3sZF/A4rQ+oK6atM/NelMoCDHhHqsgD4cXiHc3+Vjk83TOEpRfLUgss82XBojdW2B4mALSv2WzGaqDOsh/QTlH4= \ No newline at end of file diff --git a/None/NWMzNTdhMTE2MjY1NWI1Yjk5YTM2OGVmY2IzM2Q5MjQ3MTM0YWE1MWNjYWQ4MmY4ZDU4YTFmMDc4ZDRlYjNkZA== b/None/NWMzNTdhMTE2MjY1NWI1Yjk5YTM2OGVmY2IzM2Q5MjQ3MTM0YWE1MWNjYWQ4MmY4ZDU4YTFmMDc4ZDRlYjNkZA== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/NWMzNTdhMTE2MjY1NWI1Yjk5YTM2OGVmY2IzM2Q5MjQ3MTM0YWE1MWNjYWQ4MmY4ZDU4YTFmMDc4ZDRlYjNkZA== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/NjkyMWYzZTg5MDllYWJlOTg0MzllOGMwNTk3ZjUzNDI4ZDAxN2E5ZTMxMDliZjAzZmQ4ZGQzZmQ5OTczZWE0Ng== b/None/NjkyMWYzZTg5MDllYWJlOTg0MzllOGMwNTk3ZjUzNDI4ZDAxN2E5ZTMxMDliZjAzZmQ4ZGQzZmQ5OTczZWE0Ng== new file mode 100644 index 0000000..9ef27f2 --- /dev/null +++ b/None/NjkyMWYzZTg5MDllYWJlOTg0MzllOGMwNTk3ZjUzNDI4ZDAxN2E5ZTMxMDliZjAzZmQ4ZGQzZmQ5OTczZWE0Ng== @@ -0,0 +1 @@ +rar/usG8VF+godE5gNe6GbzvFmYRMCyZEMe0DZt5y9U= \ No newline at end of file diff --git a/None/NmU1ZWY2MzY3Yzg3MGYwMDFjMzE2ODMzMGE0YzkwMWQ2NmNlOGU2ZGRlNjM0NDFjZDdjZjc0MWMyNWI3MjM4Ng== b/None/NmU1ZWY2MzY3Yzg3MGYwMDFjMzE2ODMzMGE0YzkwMWQ2NmNlOGU2ZGRlNjM0NDFjZDdjZjc0MWMyNWI3MjM4Ng== new file mode 100644 index 0000000..662179c --- /dev/null +++ b/None/NmU1ZWY2MzY3Yzg3MGYwMDFjMzE2ODMzMGE0YzkwMWQ2NmNlOGU2ZGRlNjM0NDFjZDdjZjc0MWMyNWI3MjM4Ng== @@ -0,0 +1 @@ +VUVDMgAAAC0UyaNjA7F7+uhXQ/VI0fVaNVGO8buXXaV4n2ERtZJNJwi1/izr \ No newline at end of file diff --git a/None/ODU1YzBjZjE3YjEzM2RiOTE0OTBjNzdkZjAzM2MzYzBlYzM4ZDBiMjhjZmRiNGE5NWQwYThiYTQyNWQ1OTg5Yw== b/None/ODU1YzBjZjE3YjEzM2RiOTE0OTBjNzdkZjAzM2MzYzBlYzM4ZDBiMjhjZmRiNGE5NWQwYThiYTQyNWQ1OTg5Yw== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/ODU1YzBjZjE3YjEzM2RiOTE0OTBjNzdkZjAzM2MzYzBlYzM4ZDBiMjhjZmRiNGE5NWQwYThiYTQyNWQ1OTg5Yw== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/OWUxNGNkZjQ0YTkwMDk2MzQyZTk3NDZmZmYzNDMwMWE1YTJjNzM3ZGU2NDM4YjNkMTgzY2Q0OWI5MGI2NzM3Ng== b/None/OWUxNGNkZjQ0YTkwMDk2MzQyZTk3NDZmZmYzNDMwMWE1YTJjNzM3ZGU2NDM4YjNkMTgzY2Q0OWI5MGI2NzM3Ng== new file mode 100644 index 0000000..9ef27f2 --- /dev/null +++ b/None/OWUxNGNkZjQ0YTkwMDk2MzQyZTk3NDZmZmYzNDMwMWE1YTJjNzM3ZGU2NDM4YjNkMTgzY2Q0OWI5MGI2NzM3Ng== @@ -0,0 +1 @@ +rar/usG8VF+godE5gNe6GbzvFmYRMCyZEMe0DZt5y9U= \ No newline at end of file diff --git a/None/OWVmODIyYjA0ZWRjODViMzMzYmE0NTJiNzVhY2M3YjFmODUwZDMyMWE2NDNmOTMwY2Q2M2IyOTNlMmUzZDdiOA== b/None/OWVmODIyYjA0ZWRjODViMzMzYmE0NTJiNzVhY2M3YjFmODUwZDMyMWE2NDNmOTMwY2Q2M2IyOTNlMmUzZDdiOA== new file mode 100644 index 0000000..02fa5bb --- /dev/null +++ b/None/OWVmODIyYjA0ZWRjODViMzMzYmE0NTJiNzVhY2M3YjFmODUwZDMyMWE2NDNmOTMwY2Q2M2IyOTNlMmUzZDdiOA== @@ -0,0 +1 @@ +VUVDMgAAAC1ed3WvArnYY/AVYYSoIP742FENh1qPWa2KZzj676ZKwnyjTYjA \ No newline at end of file diff --git a/None/YTMzZWY3YjUyNTlhYzdiZWU4MzUzZjc3YjYyYTE2NmY0ZTJhNTJmMTJhODdiNDk4ZjdkMWRkMGFmN2NkZDQ5Mw== b/None/YTMzZWY3YjUyNTlhYzdiZWU4MzUzZjc3YjYyYTE2NmY0ZTJhNTJmMTJhODdiNDk4ZjdkMWRkMGFmN2NkZDQ5Mw== new file mode 100644 index 0000000..02fa5bb --- /dev/null +++ b/None/YTMzZWY3YjUyNTlhYzdiZWU4MzUzZjc3YjYyYTE2NmY0ZTJhNTJmMTJhODdiNDk4ZjdkMWRkMGFmN2NkZDQ5Mw== @@ -0,0 +1 @@ +VUVDMgAAAC1ed3WvArnYY/AVYYSoIP742FENh1qPWa2KZzj676ZKwnyjTYjA \ No newline at end of file diff --git a/None/YzZkMzk4YThjNDAxMmRhODg3YWM2NTA5YjI3OGJhZWFjMDY5MmY0MzFlMDEzNGJjZGQzMTgyZWI0ZmJiZjU3Zg== b/None/YzZkMzk4YThjNDAxMmRhODg3YWM2NTA5YjI3OGJhZWFjMDY5MmY0MzFlMDEzNGJjZGQzMTgyZWI0ZmJiZjU3Zg== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/YzZkMzk4YThjNDAxMmRhODg3YWM2NTA5YjI3OGJhZWFjMDY5MmY0MzFlMDEzNGJjZGQzMTgyZWI0ZmJiZjU3Zg== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/YzZkOWQ2YzYyODNjNWU0OGFiZGJjODVlNTM5ZDliM2MxODM4ZGVhNTFkMzJhMGU1ZmMyMjZjM2FkNDdiZTMxMA== b/None/YzZkOWQ2YzYyODNjNWU0OGFiZGJjODVlNTM5ZDliM2MxODM4ZGVhNTFkMzJhMGU1ZmMyMjZjM2FkNDdiZTMxMA== new file mode 100644 index 0000000..1487f17 --- /dev/null +++ b/None/YzZkOWQ2YzYyODNjNWU0OGFiZGJjODVlNTM5ZDliM2MxODM4ZGVhNTFkMzJhMGU1ZmMyMjZjM2FkNDdiZTMxMA== @@ -0,0 +1 @@ +VUVDMgAAAC08IiR+AhgajdBJV9HCmGlGfW0MR9+oS0a/vzZPyO1rMwiDRzqf \ No newline at end of file diff --git a/None/ZDE5YTczODdkNWJjN2E3ZTU2ZjMwOTZiM2U4OTBlMTEwOWIxMGFlZDZlODY1MzU0OTRkNzdiZjM3N2U4ZGRiZg== b/None/ZDE5YTczODdkNWJjN2E3ZTU2ZjMwOTZiM2U4OTBlMTEwOWIxMGFlZDZlODY1MzU0OTRkNzdiZjM3N2U4ZGRiZg== new file mode 100644 index 0000000..1c4fe85 --- /dev/null +++ b/None/ZDE5YTczODdkNWJjN2E3ZTU2ZjMwOTZiM2U4OTBlMTEwOWIxMGFlZDZlODY1MzU0OTRkNzdiZjM3N2U4ZGRiZg== @@ -0,0 +1 @@ +AAEBQAwAAAAQAAAALQAAAEDMioQYqkF/3sZF/A4rQ+oK6atM/NelMoCDHhHqsgD4cXiHc3+Vjk83TOEpRfLUgss82XBojdW2B4mALSv2WzGaqDOsh/QTlH4= \ No newline at end of file diff --git a/None/ZDRjMTgwNTc5YWEzOWQyMjQwNTI0NmNlZWVmYTI1ODBlNGEyMzk3ZWNhZTI1ZjJkYWI0ZWE2NTdhMGYyOTZkMw== b/None/ZDRjMTgwNTc5YWEzOWQyMjQwNTI0NmNlZWVmYTI1ODBlNGEyMzk3ZWNhZTI1ZjJkYWI0ZWE2NTdhMGYyOTZkMw== new file mode 100644 index 0000000..662179c --- /dev/null +++ b/None/ZDRjMTgwNTc5YWEzOWQyMjQwNTI0NmNlZWVmYTI1ODBlNGEyMzk3ZWNhZTI1ZjJkYWI0ZWE2NTdhMGYyOTZkMw== @@ -0,0 +1 @@ +VUVDMgAAAC0UyaNjA7F7+uhXQ/VI0fVaNVGO8buXXaV4n2ERtZJNJwi1/izr \ No newline at end of file diff --git a/None/ZDZlNThiZDU3NDEwN2Y3YjQ0NzNkODk1ZDgxY2RkODhlYWJhYzUzYWI4MDc4NTIzYmQyYTAwZjc4ZTg2ZWQxMg== b/None/ZDZlNThiZDU3NDEwN2Y3YjQ0NzNkODk1ZDgxY2RkODhlYWJhYzUzYWI4MDc4NTIzYmQyYTAwZjc4ZTg2ZWQxMg== new file mode 100644 index 0000000..662179c --- /dev/null +++ b/None/ZDZlNThiZDU3NDEwN2Y3YjQ0NzNkODk1ZDgxY2RkODhlYWJhYzUzYWI4MDc4NTIzYmQyYTAwZjc4ZTg2ZWQxMg== @@ -0,0 +1 @@ +VUVDMgAAAC0UyaNjA7F7+uhXQ/VI0fVaNVGO8buXXaV4n2ERtZJNJwi1/izr \ No newline at end of file diff --git a/None/ZTk5NTg2NDA2MjQ3ZGFhYmY4YmM2ZGUyZDFhMDc0MDg5YjcxMjdkYmQ3MDNhODRlYzExZTBmMjUwMmY1MmY4ZA== b/None/ZTk5NTg2NDA2MjQ3ZGFhYmY4YmM2ZGUyZDFhMDc0MDg5YjcxMjdkYmQ3MDNhODRlYzExZTBmMjUwMmY1MmY4ZA== new file mode 100644 index 0000000..1c4fe85 --- /dev/null +++ b/None/ZTk5NTg2NDA2MjQ3ZGFhYmY4YmM2ZGUyZDFhMDc0MDg5YjcxMjdkYmQ3MDNhODRlYzExZTBmMjUwMmY1MmY4ZA== @@ -0,0 +1 @@ +AAEBQAwAAAAQAAAALQAAAEDMioQYqkF/3sZF/A4rQ+oK6atM/NelMoCDHhHqsgD4cXiHc3+Vjk83TOEpRfLUgss82XBojdW2B4mALSv2WzGaqDOsh/QTlH4= \ No newline at end of file diff --git a/komrade/.builtin.keys b/komrade/.builtin.keys index ef467c5..959d9e4 100644 --- a/komrade/.builtin.keys +++ b/komrade/.builtin.keys @@ -1 +1 @@ -AqKr/dyY2DauVOg9s1E6ajdFZemS7aJNkIJ9r5jsVwB8fHx8fHx8fHx8AAEBQAwAAAAQAAAAogEAAJCIGy0W29KtMaQZvd/TWkM+OmHNBsf2j34wrE+adFEypBKCPsG1pSpimU95D7g0H6G8crLGtDTkXIGaqVb4yL3QFJ670xIKhr8Qo0NCLyTNnCXJn+w/XSA2Pl58Oh0oCFPLbbEdL3sfmZGBux8hwoXrbgpSiGbghpNFaE1IjLAnfMaYe4UYAx30wHwWfXmY6ONVuqddRyYH2uXx4crdxoAvFKccBqXBBeOqU01O9OykSE4BnGXvQHcgDiA5Kdha63vNHDapwFMdTHf78wMMAsXmwa70ybOHNbGdaH8OuYOWnGTQ5baW/us7EyE52d4dUh+FWMbnEuerZwrdmJ2NkPieojmwbj+ByWwvbPCRShLFRTHHpMKtqup/d7lom+tjGJxD+JMTdTMnU/idmS8tfyIrgP1/Upvlj5ubGFQkaVyQGsXZCvXujPC43AbgPYTyr2wev9N/LuqAh3nWe0TteRxaw/Nk2H4/L+hAhAqNb61hzFx3jZAH7e78cM9u0YWH1pPxCQ0UGtyHJbz9rSTaKCioEgFhigzYrTHsUwZ/qGOCdaV1VxSrygbz4qLZ2SJeeuJSaHxvGZMNmvNMCY29 \ No newline at end of file +ChVzFuYhnmZ3tDBgI+yZ6qnWRQxlKMzJ6gUsDNOzJSl8fHx8fHx8fHx8AAEBQAwAAAAQAAAAogEAAAIgfssgwCFuobYOb66zRHDDcIS8F4DmP4sBhfQNKssZwU60gspUoLHdEPIVSMovWX1HJZffmU5YqrGUXE8pN5Tpah6dWgED3pHmp/vARO1y782rFMCwTxuhpCYyAJts8gRRg/XKG8w2+F0pPRBGA2p3gAWmab2QNM5PWlyzHhxqXNcpAcigtZjSzXNGPmo5472eLSRZCTZf5OaUHx4+swe5LJfpYACWh+1B50W3o4uoycDHol5cvgwRkJkbzfaYbDYo4FwWzHYwh1WuL4d4Sf9r/lMD65oISKKvCSFASyFagmhFUyTPDed+EjGWdGXPFmVDlT9v949Yki4em37rfNPyEEqWoZLWTpbySLH1jrdb066LhaxqLX4dOgfmfmIPPIwC131FV/DTwAxFKYMW2SrWiT1QFJCtH213zbo9xSE2ktxi7izGH8y5RpOZktEm5Ca4SXqiuzqQ1z1hPsc5NsRoSX/u/0u7oDOxnVyBGvUG0JqjFmv54XmyMjU+5dLbeW99pD2YpdfrjhN5QNXjcZqJgiXPgMCxLbFb0A2LC3a70DYDLiWLYopQ6IVp/zk26WE5lUs0mTSjPLIk9O7n \ No newline at end of file diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py index 48c6234..5470ba3 100644 --- a/komrade/backend/keymaker.py +++ b/komrade/backend/keymaker.py @@ -237,18 +237,17 @@ class Keymaker(Logger): def find_pubkey(self): - global TELEPHONE_KEYCHAIN,OPERATOR_KEYCHAIN - #self.log('keychain?',self.keychain()) if 'pubkey' in self._keychain and self._keychain['pubkey']: return self._keychain['pubkey'] res = self.crypt_keys.get(self.name, prefix='/pubkey/') + self.log('result from crypt for name:',res) if res: return res res = self.load_qr(self.name) if res: return res - self.log('I don\'t know my public key! Do I need to register?',do_pause=False) + self.log('I don\'t know my public key! Do I need to register?') # raise KomradeException(f'I don\'t know my public key!\n{self}\n{self._keychain}') return None diff --git a/komrade/backend/operators.py b/komrade/backend/operators.py index a8d26f1..bf35960 100644 --- a/komrade/backend/operators.py +++ b/komrade/backend/operators.py @@ -30,13 +30,12 @@ class Operator(Keymaker): super().__init__(name=name,passphrase=passphrase, keychain=keychain, path_crypt_keys=path_crypt_keys, path_crypt_data=path_crypt_data) # self.boot(create=False) + from komrade.backend.phonelines import check_phonelines + check_phonelines() - # connect phonelines? - from komrade.backend.phonelines import connect_phonelines - try: - self.operator_keychain,self.telephone_keychain,self.world_keychain,self.omega_key = connect_phonelines() - except KeyError: - pass + print(self.crypt_keys.get(OPERATOR_NAME,prefix='/pubkey/')) + # stop + # def boot(self,create=False): # # Do I have my keys? diff --git a/komrade/backend/phonelines.py b/komrade/backend/phonelines.py index 34b5142..225e5d2 100644 --- a/komrade/backend/phonelines.py +++ b/komrade/backend/phonelines.py @@ -100,7 +100,46 @@ def create_secret(): with open(PATH_CRYPT_SECRET,'wb') as of: of.write(secret) -create_secret() + + +def check_phonelines(): + # if needed + create_secret() + + # is world there? + keycrypt = Crypt(PATH_CRYPT_OP_KEYS) + + # builtins + with open(PATH_BUILTIN_KEYCHAIN,'rb') as f: + builtin_keys_encr_b64 = f.read() + builtin_keys_encr = b64decode(builtin_keys_encr_b64) + omega_key_b,builtin_keys_encr = builtin_keys_encr.split(BSEP) + omega_key = KomradeSymmetricKeyWithoutPassphrase(omega_key_b) + builtin_keys_b = omega_key.decrypt(builtin_keys_encr) + builtin_keys = pickle.loads(builtin_keys_b) + # print(builtin_keys) + + for keyring in builtin_keys: + name = keyring.get('name') + keychain = dict((k,v) for k,v in keyring.items() if k!='name') + if not 'pubkey' in keyring: continue + uri = b64encode(keychain.get('pubkey')) + if not keycrypt.has(name,prefix='/pubkey/'): + keycrypt.set(name,keychain['pubkey'],prefix='/pubkey/') + for key in [k for k in keychain if k!='pubkey']: + if not keycrypt.has(uri,prefix=f'/{key}/'): + keycrypt.set(uri,keychain[key],prefix=f'/{key}/') + + # make sure world's qr is there too + if name==WORLD_NAME: + import pyqrcode + qr = pyqrcode.create(uri) + ofnfn = os.path.join(PATH_QRCODES,name+'.png') + qr.png(ofnfn,scale=5) + # print('>> saved:',ofnfn) + + + return builtin_keys @@ -302,8 +341,16 @@ create_secret() # # ##print('>>>> loaded TELEPHONE_KEYCHAIN',TELEPHONE_KEYCHAIN) # return (OPERATOR_KEYCHAIN,TELEPHONE_KEYCHAIN,WORLD_KEYCHAIN,OMEGA_KEY) +def test_phonelines(): + from komrade.backend.the_telephone import TheTelephone + from komrade.backend.the_operator import TheOperator - -if __name__ == '__main__': phone = TheTelephone() op = TheOperator() + + print('phone',dict_format(phone.keychain())) + print('op',dict_format(op.keychain())) + + +if __name__ == '__main__': + test_phonelines() \ No newline at end of file diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index 3760dcd..7a850dc 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -33,7 +33,7 @@ class TheOperator(Operator): path_crypt_keys=PATH_CRYPT_OP_KEYS, path_crypt_data=PATH_CRYPT_OP_DATA ) - self._keychain = self.load_keychain_from_bytes(self.operator_keychain) + # self._keychain = self.load_keychain_from_bytes(self.operator_keychain) def ring(self, from_caller=None, @@ -79,8 +79,8 @@ class TheOperator(Operator): return msg_sealed - def find_pubkey(self): - return self.operator_keychain['pubkey'] + # def find_pubkey(self): + # return self.operator_keychain['pubkey'] def send(self,encr_data_b): diff --git a/komrade/backend/the_telephone.py b/komrade/backend/the_telephone.py index 7f06af2..101e7cd 100644 --- a/komrade/backend/the_telephone.py +++ b/komrade/backend/the_telephone.py @@ -12,10 +12,10 @@ class TheTelephone(Operator): def __init__(self, caller=None): super().__init__(name=TELEPHONE_NAME) self.caller=caller - self._keychain = self.load_keychain_from_bytes(self.telephone_keychain) + # self._keychain = self.load_keychain_from_bytes(self.telephone_keychain) - def find_pubkey(self): - return self.telephone_keychain.get('pubkey') + # def find_pubkey(self): + # return self.telephone_keychain.get('pubkey') def send_and_receive(self,msg_d): # seal for transport