API Reference

type Round_Offset , type Word_Offset , type Bias , type Subkeys , type Mars_Key , procedure New_Key , procedure Encrypt , procedure Decrypt

  
   type Round_Offset is range 0 .. 15;  
  
   type Word_Offset is range 0 .. 3;  
  
   type Bias is array (Word_Offset) of Interfaces.Unsigned_32;  
  
   type Subkeys is array (Round_Offset, 0 .. 1) of  
      Interfaces.Unsigned_32;  
  
   type Mars_Key is new Symmetric_Key_Variable_Length with  
      record  
         Initial_Add : Bias;  
         Round_Keys : Subkeys;  
         Final_Subtract : Bias;  
      end record;  
  
   procedure New_Key (Key_Schedule : out Mars_Key;  
                      Key_Bits : in Key_Block_Variable_Length);  
  
   procedure Encrypt (Key    : Mars_Key;  
                      Input  : in Cipher_Block;  
                      Output : out Cipher_Block);  
  
   procedure Decrypt (Key    : Mars_Key;  
                      Input  : in Cipher_Block;  
                      Output : out Cipher_Block);  
  
end ASCL.Cryptography.Ciphers.Symmetric.Mars;