e-CryptIt Engine Xojo Plugin

Serpent Class (console safe)

Serpent is a 128-bit block cipher designed by Ross Anderson, Eli Biham and Lars Knudsen as a candidate for the Advanced Encryption Standard. It was a finalist in the AES competition. The winner, Rijndael, got 86 votes at the last AES conference while Serpent got 59 votes, Twofish 31 votes, RC6 23 votes and MARS 13 votes.

Rijndael (AES) is faster than the Serpent, but some people consider Serpent to be more secure.
The key size in Serpent can be up to 256 bits.
The block size in AES is 128 bits (16 bytes).

The Serpent class supports both ECB non chained mode and CBC chained mode.

Object
   Serpent

class Serpent implements

IEncryptionAlgorithm

Constructors

SerpentA constructor that does not take IV vector for chaining mode.
SerpentA constructor that does take IV vector for chaining mode.

Methods

DecryptUse this function to decrypt a block of data. Because Serpent works on blocks of 16 bytes then you get the best performance if the block size that you pass to it is dividable by 16. The class has built in cache technology so it will work if the the block size is not dividable by 16, but it will be slower.
EncryptUse this function to encrypt a block of data. Because Serpent works on blocks of 16 bytes then you get the best performance if the block size that you pass to it is dividable by 16. The class has built in cache technology so it will work if the the block size is not dividable by 16, but it will be slower.
FinishDecryptUse this function to finish decrypting after you have decrypted all of the blocks.
FinishEncryptUse this function to finish encrypting after you have encrypted all of the blocks.
PaddingBlockSizeUse this property to get the padding value that is needed for this algorithm. (Serpent will always return 16 here).

Constants

ModeECB = 1A constant that specifies ECB mode encryption or decryption.
ModeCBC = 2A constant that specifies CBC mode encryption or decryption.
KeyTypeEncrypt = 0A constant that specifies that a Key is for encryption
KeyTypeDecrypt = 1A constant that specifies that a Key is for decryption
KeyTypeBoth = 2A constant that specifies that a Key is for either encryption or decryption

Supported Platforms:

  • MacOS X Cocoa 32 bit
  • MacOS X Cocoa 64 bit
  • Windows 32 bit
  • Windows 64 bit
  • Linux 32 bit
  • Linux 64 bit
  • Linux ARM