diff options
Diffstat (limited to 'misc/swig/tests/block.py')
-rw-r--r-- | misc/swig/tests/block.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/misc/swig/tests/block.py b/misc/swig/tests/block.py new file mode 100644 index 000000000..593937c81 --- /dev/null +++ b/misc/swig/tests/block.py @@ -0,0 +1,52 @@ +#!/usr/bin/python + +import botan, base64 + +class MyCipher(botan.BlockCipher): + def __init__(self): + botan.BlockCipher.__init__(self, 16, 16, 32, 8) + def encrypt(self, val): + print "encrypt", val + return val.swapcase() + def decrypt(self, val): + print "decrypt", val + return val.swapcase() + def set_key(self, key): + print "set_key", key + def clone(self): + print "cloning" + return MyCipher() + def name(self): + print "naming" + return "MyCipher" + +cipher = botan.BlockCipher("AES-128") + +print cipher.block_size +print cipher.keylength_min +print cipher.keylength_max +print cipher.keylength_mod +print cipher.name() + +for kl in range(1, 128): + if cipher.valid_keylength(kl): + print "1", + else: + print "0", +print +key = botan.SymmetricKey(16) + +cipher.set_key(key) +ciphertext = cipher.encrypt("ABCDEFGH12345678") +print base64.b16encode(ciphertext) + +cipher2 = cipher.clone() +cipher2.set_key(key) + +plaintext = cipher2.decrypt(ciphertext) +print plaintext + +botan.get_info(cipher) + +mycipher = MyCipher() +botan.get_info(mycipher) |