Package Crypto :: Package Protocol :: Module AllOrNothing :: Class AllOrNothing
[frames] | no frames]

Class AllOrNothing

Class implementing the All-or-Nothing package transform.

Methods for subclassing:

_inventkey(key_size):
Returns a randomly generated key. Subclasses can use this to implement better random key generating algorithms. The default algorithm is probably not very cryptographically secure.
Instance Methods
 
__init__(ciphermodule, mode=None, IV=None)
ciphermodule is a module implementing the cipher algorithm to use. It must provide the PEP272 interface.
 
digest(self, text)
digest(text:string) : [string]
 
undigest(self, blocks)
undigest(blocks : [string]) : string
Method Details

__init__(ciphermodule, mode=None, IV=None)
(Constructor)

 

ciphermodule is a module implementing the cipher algorithm to use. It must provide the PEP272 interface.

Note that the encryption key is randomly generated automatically when needed. Optional arguments mode and IV are passed directly through to the ciphermodule.new() method; they are the feedback mode and initialization vector to use. All three arguments must be the same for the object used to create the digest, and to undigest'ify the message blocks.

digest(self, text)

 

digest(text:string) : [string]

Perform the All-or-Nothing package transform on the given string. Output is a list of message blocks describing the transformed text, where each block is a string of bit length equal to the ciphermodule's block_size.

undigest(self, blocks)

 

undigest(blocks : [string]) : string

Perform the reverse package transformation on a list of message blocks. Note that the ciphermodule used for both transformations must be the same. blocks is a list of strings of bit length equal to the ciphermodule's block_size.