Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CAST-128
- Warning
- Use AES. This module is provided only for legacy purposes.
- CAST-128 (or CAST5) is a symmetric block cipher specified in RFC2144.
- It has a fixed data block size of 8 bytes. Its key can vary in length from 40 to 128 bits.
- CAST is deemed to be cryptographically secure, but its usage is not widespread. Keys of sufficient length should be used to prevent brute force attacks (128 bits are recommended).
- As an example, encryption can be done as follows:
- from Crypto.Cipher import CAST
- key = b'Sixteen byte key'
- cipher = CAST.new(key, CAST.MODE_OPENPGP)
- plaintext = b'??? '
- msg = cipher.encrypt(plaintext)
- ...
- eiv = msg[:CAST.block_size+8]
- ciphertext = msg[CAST.block_size+8:]
- cipher = CAST.new(key, CAST.MODE_OPENPGP, eiv)
- print cipher.decrypt(ciphertext)
- Module’s constants for the modes of operation supported with CAST:
- var MODE_ECB: Electronic Code Book (ECB)
- var MODE_CBC: Cipher-Block Chaining (CBC)
- var MODE_CFB: Cipher FeedBack (CFB)
- var MODE_OFB: Output FeedBack (OFB)
- var MODE_CTR: CounTer Mode (CTR)
- var MODE_OPENPGP:
- OpenPGP Mode
- var MODE_EAX: EAX Mode
- Crypto.Cipher.CAST.new(key, mode, *args, **kwargs)
- Create a new CAST cipher
- Parameters:
- key (bytes, bytearray, memoryview) – The secret key to use in the symmetric cipher. Its length can vary from 5 to 16 bytes.
- mode (One of the supported MODE_* constants) – The chaining mode to use for encryption or decryption.
- Keyword Arguments:
- ---> iv (bytes, bytearray, memoryview) – (Only applicable for MODE_CBC, MODE_CFB, MODE_OFB, and MODE_OPENPGP modes).
- The initialization vector to use for encryption or decryption.
- For MODE_CBC, MODE_CFB, and MODE_OFB it must be 8 bytes long.
- For MODE_OPENPGP mode only, it must be 8 bytes long for encryption and 10 bytes for decryption (in the latter case, it is actually the encrypted IV which was prefixed to the ciphertext).
- If not provided, a random byte string is generated (you must then read its value with the iv attribute).
- nonce (bytes, bytearray, memoryview) – (Only applicable for MODE_EAX and MODE_CTR).
- A value that must never be reused for any other encryption done with this key.
- For MODE_EAX there are no restrictions on its length (recommended: 16 bytes).
- For MODE_CTR, its length must be in the range [0..7].
- If not provided for MODE_EAX, a random byte string is generated (you can read it back via the nonce attribute).
- segment_size (integer) – (Only MODE_CFB).The number of bits the plaintext and ciphertext are segmented in. It must be a multiple of 8. If not specified, it will be assumed to be 8.
- mac_len : (integer) – (Only MODE_EAX) Length of the authentication tag, in bytes. It must be no longer than 8 (default).
- initial_value : (integer) – (Only MODE_CTR). The initial value for the counter within the counter block. By default it is 0.
- Return:
- a CAST object, of the applicable mode.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement