eucrypt_ch14_crc32 1
eucrypt_ch14_crc32 2
eucrypt_ch14_crc32 3
eucrypt_ch14_crc32 4
eucrypt_ch14_crc32 5
eucrypt_ch14_crc32 6
eucrypt_ch14_crc32 7
eucrypt_ch14_crc32 8
eucrypt_ch14_crc32 9
eucrypt_ch14_crc32 10
eucrypt_ch14_crc32 11
eucrypt_ch14_crc32 12
eucrypt_ch14_crc32 13
eucrypt_ch14_crc32 14
eucrypt_ch14_crc32 15
eucrypt_ch14_crc32 16
eucrypt_ch14_crc32 17
eucrypt_ch14_crc32 18
eucrypt_ch14_crc32 19
eucrypt_ch14_crc32 20 package body CRC32 is
eucrypt_ch14_crc32 21 function CRC( S: in String ) return CRC32 is
eucrypt_ch14_crc32 22 Result : CRC32 := Init_Value;
eucrypt_ch14_crc32 23 Value : CRC32;
eucrypt_ch14_crc32 24 begin
eucrypt_ch14_crc32 25
eucrypt_ch14_crc32 26 for C of S loop
eucrypt_ch14_crc32 27 Value := CRC32( Character'Pos( C ) );
eucrypt_ch14_crc32 28 Result := Shift_Right(Result, 8) xor
eucrypt_ch14_crc32 29 Lookup( Value xor (Result and LSB_MASK));
eucrypt_ch14_crc32 30 end loop;
eucrypt_ch14_crc32 31
eucrypt_ch14_crc32 32 Result := Result xor Xor_Out;
eucrypt_ch14_crc32 33
eucrypt_ch14_crc32 34 return Result;
eucrypt_ch14_crc32 35 end CRC;
eucrypt_ch14_crc32 36
eucrypt_ch14_crc32 37 function CRC( Data: in Octet_Array ) return CRC32 is
eucrypt_ch14_crc32 38 Result : CRC32 := Init_Value;
eucrypt_ch14_crc32 39 begin
eucrypt_ch14_crc32 40
eucrypt_ch14_crc32 41 for C of Data loop
eucrypt_ch14_crc32 42 Result := Shift_Right(Result, 8) xor
eucrypt_ch14_crc32 43 Lookup( CRC32(C) xor (Result and LSB_MASK));
eucrypt_ch14_crc32 44 end loop;
eucrypt_ch14_crc32 45
eucrypt_ch14_crc32 46 Result := Result xor Xor_Out;
eucrypt_ch14_crc32 47
eucrypt_ch14_crc32 48 return Result;
eucrypt_ch14_crc32 49 end CRC;
eucrypt_ch14_crc32 50
eucrypt_ch14_crc32 51 end CRC32;
eucrypt_ch14_crc32 52