mirror of
https://github.com/twisterarmy/DarkenedAges.git
synced 2025-03-12 05:21:20 +00:00
Move urls from gist to git and related README edits
index.html (test run output) is now called output.txt Also added hash64 function (for paste integrity checks).
This commit is contained in:
parent
3e510e6c14
commit
1e601adaaf
13
README.md
13
README.md
@ -12,7 +12,8 @@
|
||||
= ______________________________________________________________________________________________________________
|
||||
Unlike Alice, Bob doesn't get dropped packets when pinging legal department, and delays are no serious problem
|
||||
|
||||
#### Slightly longer examples [here](http://bl.ocks.org/thedod/raw/7a4a81224b5bed676b00/) and [here](https://pastee.org/v46af).
|
||||
#### Slightly longer examples [here](https://raw.githubusercontent.com/Knights-of-Redact/DarkenedAges/master/output.txt)
|
||||
and [here](https://pastee.org/v46af).
|
||||
|
||||
For public moves and gossip, see [#DarkenedAges](https://twisterio.com/search?kw=%23darkenedages) on [twister](http://twister.net.co)
|
||||
|
||||
@ -59,10 +60,14 @@ Perhaps you could trade this information with their adversaries? The possibiliti
|
||||
More info soon, meanwhile here's how to become a player:
|
||||
|
||||
* Every player should have a [twister](http://twister.net.co) account
|
||||
* <del>Fork this, add a line about yourself to `players.csv`, and mention `@darkenedages` on twister with a link to your forked gist.</del> Bugger it. Just twist `@darkenedages I want to play #DarkenedAges` ;)
|
||||
* It is recommended to follow `@darkenedages` and have `#DarkenedAges` in your profile, but the formal definition of "player" is "one who appears at [players.csv](https://gist.github.com/thedod/7a4a81224b5bed676b00#file-players-csv)" ;)
|
||||
* <del>If you know how, add a line about yourself to [players.csv](https://github.com/Knights-of-Redact/DarkenedAges/blob/master/players.csv),
|
||||
(as a pull-request or something).</del> Bugger it. Just twist `@darkenedages I want to play #DarkenedAges` ;)
|
||||
* It is recommended to follow `@darkenedages` and have `#DarkenedAges` in your profile, but the formal definition of "player" is
|
||||
"one who appears at [players.csv](https://github.com/Knights-of-Redact/DarkenedAges/blob/master/players.csv)" ;)
|
||||
|
||||
The file [output.txt](https://raw.githubusercontent.com/Knights-of-Redact/DarkenedAges/master/output.txt)
|
||||
was produced with `python darkened.py > output.txt`. You should get a similar output if everything works well.
|
||||
|
||||
Essentially [index.html](http://bl.ocks.org/thedod/raw/7a4a81224b5bed676b00/) was produced with `python darkened.py > index.html`.
|
||||
The motivation behind this "full retard crypto suite" is to create an environment where everyone can have a go at code breaking.
|
||||
|
||||
_______________________________________
|
||||
|
12
darkened.py
12
darkened.py
@ -2,6 +2,7 @@
|
||||
import random
|
||||
import time
|
||||
import codecs
|
||||
import hashlib
|
||||
import json
|
||||
import csv
|
||||
import textwrap
|
||||
@ -112,6 +113,10 @@ def unredact(cipher, pads, trustees=[]):
|
||||
mapmsgs(base642bytes,
|
||||
mapmsgs(integrate, *pads64))))
|
||||
|
||||
def hash64(b):
|
||||
"Returns base64 of sha1 (appended as hash to paste urls against evil eye)"
|
||||
return str(codecs.encode(hashlib.sha1(b).digest(),'base64').strip(),'ascii')
|
||||
|
||||
## Game functions
|
||||
|
||||
def makeid():
|
||||
@ -181,7 +186,7 @@ prefab = {
|
||||
["sbuL", "qhM8EFAOWM0=", "oxO8cg==", None, "/eYQidGv/nc=", "epMLVQA=",
|
||||
None, None, "i5dv", "Dh9fFA==", None, "gNKi", "lrEPMyg=", None],
|
||||
[None, None, "+UoxOmBAFcvrFg==", "Xo4=", None, "4f56t0C6WA=="]]},
|
||||
"recipients": ["bob", "carol"], "subject": "Hey, sport. YOU connect"
|
||||
"recipients": ["bob", "carol"], "subject": "Hey, sport. YOU connect "
|
||||
"the dots."}, "ted": {"trustees": ["ted", "dan"], "sender": "alice",
|
||||
"msgid": "DA14341968415407", "pads": {"ted": [["xWusIv5F", "29q4dg==",
|
||||
"zAa7Rc4K", "pqY7HvIXqHA1RRWMhA==", None, None, "lSXD+g==", None,
|
||||
@ -197,7 +202,6 @@ prefab = {
|
||||
|
||||
def testit():
|
||||
"Todo: turn this into proper unit tests, anyone?"
|
||||
print('<!DOCTYPE html>\n<html lang="en"><head><title>Testing DarkenedAges library</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><pre>')
|
||||
print('### Players')
|
||||
for p in getplayers().values():
|
||||
print('\n# {name} ({player}, @{twister}):'.format(**p))
|
||||
@ -214,11 +218,9 @@ def testit():
|
||||
print('\n\n### Unredaction of prefab message (with conflicting pads)')
|
||||
for t in prefab['__public__']['trustees']:
|
||||
print('\n# >>> Unredaction for trustee: {}'.format(t))
|
||||
print(unredact(prefab['__public__'], prefab[t]))
|
||||
print(unredact(prefab['__public__'], prefab['__to__'],trustees=[t]))
|
||||
print('\n### >>> integration >>>')
|
||||
print(unredact(prefab['__public__'], prefab['__to__']))
|
||||
|
||||
print('</pre></body></html>')
|
||||
|
||||
if __name__=='__main__':
|
||||
testit()
|
||||
|
@ -1,9 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en"><head><title>Testing DarkenedAges library</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><pre>
|
||||
### Players
|
||||
|
||||
# Sandy Claws (sandyclaws, @sandyclaws):
|
||||
From the Magic Tuna Show (ask your kids).
|
||||
# Forth Inc. (forth, @forth):
|
||||
Registered ████████.
|
||||
|
||||
# Rabbi Yoav (broyo, @thedod):
|
||||
Confession sensor technician (CST) and ChurchApproved Rabbi (CAR)
|
||||
@ -13,40 +11,40 @@
|
||||
(mainly due to family and origin). 77% heterosexual. No other known
|
||||
dominant deviatoins.
|
||||
|
||||
# Forth Inc. (forth, @forth):
|
||||
Registered ████████.
|
||||
# Sandy Claws (sandyclaws, @sandyclaws):
|
||||
From the Magic Tuna Show (ask your kids).
|
||||
|
||||
# Daan II (daanii, @black_puppydog):
|
||||
██ ███ ███████ of ██████.
|
||||
|
||||
|
||||
### Redacting prefab plaintext (2 trustees)
|
||||
{"daanii": {"pads": {"daanii": [["krEZr3A9", null, "Ew+m5z8=",
|
||||
"zMwQeJk="], [null, "oDo=", "Gg==", null, "LSr3"]]}, "subject": "Is
|
||||
this thing on?", "sender": "alice", "trustees": ["daanii", "broyo"],
|
||||
"msgid": "DA14341999781041", "recipients": ["bob", "carol"]},
|
||||
"__public__": {"cipher": [["2tRryldO", "5F+i", "dWbUlEs=",
|
||||
"oKV+HbU="], ["to5RIGi8VsQ=", "wkM=", "ew==", "mIQCOq/5", "QkSS"]],
|
||||
"subject": "Is this thing on?", "sender": "alice", "trustees":
|
||||
["daanii", "broyo"], "msgid": "DA14341999781041", "recipients":
|
||||
["bob", "carol"]}, "__to__": {"pads": {"daanii": [["krEZr3A9", null,
|
||||
"Ew+m5z8=", "zMwQeJk="], [null, "oDo=", "Gg==", null, "LSr3"]],
|
||||
"broyo": [[null, "kDfH", null, null], ["0OE9TAfLM6A=", null, null,
|
||||
"6+FhVcGd", null]]}, "subject": "Is this thing on?", "sender":
|
||||
"alice", "trustees": ["daanii", "broyo"], "msgid": "DA14341999781041",
|
||||
"recipients": ["bob", "carol"]}, "broyo": {"pads": {"broyo": [[null,
|
||||
"kDfH", null, null], ["0OE9TAfLM6A=", null, null, "6+FhVcGd", null]]},
|
||||
"subject": "Is this thing on?", "sender": "alice", "trustees":
|
||||
["daanii", "broyo"], "msgid": "DA14341999781041", "recipients":
|
||||
["bob", "carol"]}}
|
||||
{"__to__": {"msgid": "DA14342296128997", "sender": "alice",
|
||||
"recipients": ["bob", "carol"], "subject": "Is this thing on?",
|
||||
"pads": {"broyo": [["DeQiOr6R", null, null, "ql8ABmM="],
|
||||
["wKFeiKus9u8=", "VLY=", "Kg==", null, null]], "daanii": [[null,
|
||||
"oM8O", "wBgmWVc=", null], [null, null, null, "z8G1nS+/", "zLhb"]]},
|
||||
"trustees": ["daanii", "broyo"]}, "broyo": {"msgid":
|
||||
"DA14342296128997", "sender": "alice", "recipients": ["bob", "carol"],
|
||||
"subject": "Is this thing on?", "pads": {"broyo": [["DeQiOr6R", null,
|
||||
null, "ql8ABmM="], ["wKFeiKus9u8=", "VLY=", "Kg==", null, null]]},
|
||||
"trustees": ["daanii", "broyo"]}, "__public__": {"msgid":
|
||||
"DA14342296128997", "sender": "alice", "recipients": ["bob", "carol"],
|
||||
"cipher": [["RYFQX5ni", "1Kdr", "pnFUKiM=", "xjZuY08="],
|
||||
["ps4y5MTbk4s=", "Ns8=", "Sw==", "vKTW8kHb", "o9Y+"]], "subject": "Is
|
||||
this thing on?", "trustees": ["daanii", "broyo"]}, "daanii": {"msgid":
|
||||
"DA14342296128997", "sender": "alice", "recipients": ["bob", "carol"],
|
||||
"subject": "Is this thing on?", "pads": {"daanii": [[null, "oM8O",
|
||||
"wBgmWVc=", null], [null, null, null, "z8G1nS+/", "zLhb"]]},
|
||||
"trustees": ["daanii", "broyo"]}}
|
||||
|
||||
# >>> Unredaction for trustee: daanii
|
||||
Here's ███ first line,
|
||||
████████ by a ██████ one
|
||||
██████ the first █████
|
||||
████████ ██ █ second one
|
||||
|
||||
# >>> Unredaction for trustee: broyo
|
||||
██████ the █████ █████
|
||||
followed ██ █ second ███
|
||||
Here's ███ █████ line,
|
||||
followed by a ██████ ███
|
||||
|
||||
### >>> integration >>>
|
||||
Here's the first line,
|
||||
@ -75,4 +73,3 @@ access to the Pujinda paper. As far as we know, it may have never leaked.
|
||||
The El-Hamdan encryption crack is a result of independent research by FTT.
|
||||
DHQ predicts that the official story (that FTT has died in the ╳╳╳╳╳ crash)
|
||||
won't be challenged by the public.
|
||||
</pre></body></html>
|
Loading…
x
Reference in New Issue
Block a user