Integrate pad rewriting into cli.
[easyotp.git] / cotp.py
blob586b5916c6be6844c16b7e7cbfecc2d72af85c1f
1 #!/bin/env python
2 import popen2
4 def decode(ct):
5 o, i, e = popen2.popen3("./cotp -d")
6 i.write(ct)
7 i.close()
8 pt = o.read()
9 errors = e.read()
10 if errors:
11 raise errors
12 return pt
14 def replace(ct_plus_new):
15 o, i, e = popen2.popen3("./cotp -r")
16 i.write(ct_plus_new)
17 i.close()
18 pt = o.read()
19 errors = e.read()
20 if errors:
21 raise errors
22 return True # success
24 # TODO: support padname
25 def encode(pt):
26 o, i, e = popen2.popen3("./cotp -e")
27 i.write(pt)
28 i.close()
29 ct = o.read()
30 errors = e.read()
31 if errors:
32 raise errors
33 return ct
35 if __name__ == "__main__":
36 ct = encode("hello world")
37 print ct
38 pt = decode(ct)
39 print pt
40 assert pt == "hello world", "decode failed to match"