File: cryptobox.py

package info (click to toggle)
botan1.10 1.10.8-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 12,288 kB
  • sloc: cpp: 61,853; python: 1,687; asm: 1,247; ansic: 252; perl: 89; sh: 52; makefile: 38; lisp: 34
file content (36 lines) | stat: -rwxr-xr-x 759 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/python

import sys
import botan

def main(args = None):
    if args is None:
        args = sys.argv

    if len(args) != 3:
        raise Exception("Usage: <password> <input>");

    password = args[1]
    input = ''.join(open(args[2]).readlines())

    rng = botan.RandomNumberGenerator()

    ciphertext = botan.cryptobox_encrypt(input, password, rng)

    print ciphertext

    plaintext = ''

    try:
        plaintext = botan.cryptobox_decrypt(ciphertext, password + 'FAIL')
    except Exception, e:
        print "Good news: bad password caused exception: "
        print e

    plaintext = botan.cryptobox_decrypt(ciphertext, password)

    print "Original input was: "
    print plaintext

if __name__ == '__main__':
    sys.exit(main())