smg_comms_skeys_s...    1  
smg_comms_skeys_s...    2  
smg_comms_skeys_s...    3 
smg_comms_skeys_s...    4 with Interfaces; 
smg_comms_skeys_s...    5 with Raw_Types;  
smg_comms_skeys_s...    6 with System;     
smg_comms_skeys_s...    7 with Serpent;    
smg_comms_keymgm        8 with Ada.Unchecked_Conversion; 
smg_comms_skeys_s...    9 
smg_comms_skeys_s...   10 package Data_Structs is
smg_comms_skeys_s...   11   Pragma Pure(Data_Structs);
smg_comms_skeys_s...   12 
smg_comms_skeys_s...   13   
smg_comms_skeys_s...   14   
smg_comms_skeys_s...   15   
smg_comms_skeys_s...   16   
smg_comms_skeys_s...   17 
smg_comms_skeys_s...   18   type SMG_Object is
smg_comms_skeys_s...   19     record
smg_comms_skeys_s...   20       
smg_comms_skeys_s...   21       ID         : Interfaces.Unsigned_32;
smg_comms_skeys_s...   22 
smg_comms_skeys_s...   23       
smg_comms_skeys_s...   24       
smg_comms_skeys_s...   25       
smg_comms_skeys_s...   26       
smg_comms_skeys_s...   27       
smg_comms_skeys_s...   28       X, Y, Z    : Interfaces.Integer_16;
smg_comms_skeys_s...   29 
smg_comms_skeys_s...   30       
smg_comms_skeys_s...   31       
smg_comms_skeys_s...   32       RX, RY, RZ : Interfaces.Unsigned_8;
smg_comms_skeys_s...   33     end record;
smg_comms_skeys_s...   34   for SMG_Object'Size use 104; 
smg_comms_skeys_s...   35   for SMG_Object'Bit_Order use System.Low_Order_First;
smg_comms_skeys_s...   36   for SMG_Object use
smg_comms_skeys_s...   37     record
smg_comms_skeys_s...   38       ID at 0  range 0 .. 31;
smg_comms_skeys_s...   39       X  at 4  range 0 .. 15;
smg_comms_skeys_s...   40       Y  at 6  range 0 .. 15;
smg_comms_skeys_s...   41       Z  at 8  range 0 .. 15;
smg_comms_skeys_s...   42       RX at 10 range 0 .. 7;
smg_comms_skeys_s...   43       RY at 11 range 0 .. 7;
smg_comms_skeys_s...   44       RZ at 12 range 0 .. 7;
smg_comms_skeys_s...   45     end record;
smg_comms_skeys_s...   46 
smg_comms_files        47   
smg_comms_files        48   subtype Text_Len is Positive range 1..2**16-1;
smg_comms_files        49 
smg_comms_files        50   
smg_comms_files        51   
smg_comms_files        52   
smg_comms_files        53   type U16_Array is array (Text_Len range <> ) of Interfaces.Unsigned_16;
smg_comms_files        54   type Filenames( F_No: Text_Len := 1; Sz: Text_Len := 1 ) is
smg_comms_files        55     record
smg_comms_files        56       
smg_comms_files        57       S : String( 1 .. Sz ) := (others => '0');
smg_comms_files        58       
smg_comms_files        59       Starts: U16_Array( 1 .. F_No ) := (others => 1);
smg_comms_files        60     end record;  
smg_comms_files        61 
smg_comms_files        62   
smg_comms_files        63   type File_Chunk( Len     : Text_Len := 1;
smg_comms_files        64                    Count   : Interfaces.Unsigned_16 := 1;
smg_comms_files        65                    Name_Len: Text_len := 1) is
smg_comms_files        66     record
smg_comms_files        67       Filename: String(1..Name_Len);
smg_comms_files        68       Content : Raw_Types.Octets(1..Len);
smg_comms_files        69     end record;
smg_comms_files        70 
smg_comms_skeys_s...   71   
smg_comms_skeys_s...   72   
smg_comms_skeys_s...   73   
smg_comms_skeys_s...   74   
smg_comms_skeys_s...   75   
smg_comms_skeys_s...   76   
smg_comms_skeys_s...   77 
smg_comms_skeys_s...   78   
smg_comms_skeys_s...   79   
smg_comms_skeys_s...   80   subtype Keys_Count is Interfaces.Unsigned_8 range 1..40;
smg_comms_skeys_s...   81   type SKeys_Array is array( Keys_Count range <>) of Serpent.Key;
smg_comms_skeys_s...   82 
smg_comms_skeys_s...   83   type Serpent_Keyset( N : Keys_Count := Keys_Count'Last) is
smg_comms_skeys_s...   84     record
smg_comms_skeys_s...   85       
smg_comms_skeys_s...   86       Keys      : SKeys_Array( 1..N );
smg_comms_skeys_s...   87       
smg_comms_skeys_s...   88       Flag      : Interfaces.Unsigned_8;
smg_comms_skeys_s...   89     end record;
smg_comms_skeys_s...   90 
smg_comms_skeys_s...   91   
smg_comms_skeys_s...   92   
smg_comms_keymgm       93   subtype Counter_8bits is Natural range 0..255;
smg_comms_keymgm       94   function Cast is new Ada.Unchecked_Conversion( Counter_8bits, 
smg_comms_keymgm       95                                                  Raw_Types.Octets_1 );  
smg_comms_keymgm       96   function Cast is new Ada.Unchecked_Conversion( Raw_Types.Octets_1, 
smg_comms_keymgm       97                                                  Counter_8bits );
smg_comms_keymgm       98   type Keys_Mgm (N_Burnt: Counter_8bits := 0) is
smg_comms_skeys_s...   99     record
smg_comms_skeys_s...  100       
smg_comms_skeys_s...  101       N_Server: Interfaces.Unsigned_8; 
smg_comms_skeys_s...  102       
smg_comms_skeys_s...  103       N_Client: Interfaces.Unsigned_8;
smg_comms_skeys_s...  104       
smg_comms_skeys_s...  105       Key_ID  : Interfaces.Unsigned_8;
smg_comms_skeys_s...  106       
smg_comms_keymgm      107       case N_Burnt is
smg_comms_keymgm      108         when 0 =>
smg_comms_keymgm      109           null;
smg_comms_keymgm      110         when others =>
smg_comms_keymgm      111           Burnt   : Raw_Types.Octets( 1..N_Burnt );
smg_comms_keymgm      112       end case;
smg_comms_skeys_s...  113     end record;
smg_comms_skeys_s...  114 
smg_comms_skeys_s...  115 end Data_Structs;