diff options
Diffstat (limited to 'gcc-4.7/gcc/ada/g-sechas.ads')
-rw-r--r-- | gcc-4.7/gcc/ada/g-sechas.ads | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/gcc-4.7/gcc/ada/g-sechas.ads b/gcc-4.7/gcc/ada/g-sechas.ads deleted file mode 100644 index 7fe34b172..000000000 --- a/gcc-4.7/gcc/ada/g-sechas.ads +++ /dev/null @@ -1,193 +0,0 @@ ------------------------------------------------------------------------------- --- -- --- GNAT LIBRARY COMPONENTS -- --- -- --- G N A T . S E C U R E _ H A S H E S -- --- -- --- S p e c -- --- -- --- Copyright (C) 2009, Free Software Foundation, Inc. -- --- -- --- GNAT is free software; you can redistribute it and/or modify it under -- --- terms of the GNU General Public License as published by the Free Soft- -- --- ware Foundation; either version 3, or (at your option) any later ver- -- --- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- --- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. -- --- -- --- As a special exception under Section 7 of GPL version 3, you are granted -- --- additional permissions described in the GCC Runtime Library Exception, -- --- version 3.1, as published by the Free Software Foundation. -- --- -- --- You should have received a copy of the GNU General Public License and -- --- a copy of the GCC Runtime Library Exception along with this program; -- --- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- --- <http://www.gnu.org/licenses/>. -- --- -- --- GNAT was originally developed by the GNAT team at New York University. -- --- Extensive contributions were provided by Ada Core Technologies Inc. -- --- -- ------------------------------------------------------------------------------- - --- This package provides common supporting code for a family of secure --- hash functions (including MD5 and the FIPS PUB 180-3 functions SHA-1, --- SHA-224, SHA-256, SHA-384 and SHA-512). - --- This is an internal unit and should be not used directly in applications. --- Use GNAT.MD5 and GNAT.SHA* instead. - -with Ada.Streams; -with Interfaces; -with System; - -package GNAT.Secure_Hashes is - - type Buffer_Type is new String; - for Buffer_Type'Alignment use 8; - -- Secure hash functions use a string buffer that is also accessed as an - -- array of words, which may require up to 64 bit alignment. - - -- The function-independent part of processing state: A buffer of data - -- being accumulated until a complete block is ready for hashing. - - type Message_State (Block_Length : Natural) is record - Last : Natural := 0; - -- Index of last used element in Buffer - - Length : Interfaces.Unsigned_64 := 0; - -- Total length of processed data - - Buffer : Buffer_Type (1 .. Block_Length); - -- Data buffer - end record; - - -- The function-specific part of processing state: - - -- Each hash function maintains an internal state as an array of words, - -- which is ultimately converted to a stream representation with the - -- appropriate bit order. - - generic - type Word is mod <>; - -- Either 32 or 64 bits - - with procedure Swap (X : System.Address); - -- Byte swapping function for a Word at X - - Hash_Bit_Order : System.Bit_Order; - -- Bit order of the produced hash - - package Hash_Function_State is - - type State is array (Natural range <>) of Word; - -- Used to store a hash function's internal state - - procedure To_Hash - (H : State; - H_Bits : out Ada.Streams.Stream_Element_Array); - -- Convert H to stream representation with the given bit order. - -- If H_Bits is smaller than the internal hash state, then the state - -- is truncated. - - end Hash_Function_State; - - -- Generic hashing framework: - -- The user interface for each implemented secure hash function is an - -- instance of this generic package. - - generic - Block_Words : Natural; - -- Number of words in each block - - State_Words : Natural; - -- Number of words in internal state - - Hash_Words : Natural; - -- Number of words in the final hash (must be no greater than - -- State_Words). - - Hash_Bit_Order : System.Bit_Order; - -- Bit order used for conversion between bit representation and word - -- representation. - - with package Hash_State is new Hash_Function_State (<>); - -- Hash function state package - - Initial_State : Hash_State.State; - -- Initial value of the hash function state - - with procedure Transform - (H : in out Hash_State.State; - M : in out Message_State); - -- Transformation function updating H by processing a complete data - -- block from M. - - package H is - - -- The visible part of H is the interface to secure hashing functions - -- that is exposed to user applications, and is intended to remain - -- a stable interface. - - pragma Assert (Hash_Words <= State_Words); - - type Context is private; - -- The internal processing state of the hashing function - - function "=" (L, R : Context) return Boolean is abstract; - -- Context is the internal, implementation defined intermediate state - -- in a hash computation, and no specific semantics can be expected on - -- equality of context values. Only equality of final hash values (as - -- returned by the [Wide_]Digest functions below) is meaningful. - - Initial_Context : constant Context; - -- Initial value of a Context object. May be used to reinitialize - -- a Context value by simple assignment of this value to the object. - - procedure Update (C : in out Context; Input : String); - procedure Wide_Update (C : in out Context; Input : Wide_String); - procedure Update - (C : in out Context; - Input : Ada.Streams.Stream_Element_Array); - -- Update C to process the given input. Successive calls to Update are - -- equivalent to a single call with the concatenation of the inputs. For - -- the Wide_String version, each Wide_Character is processed low order - -- byte first. - - Word_Length : constant Natural := Hash_State.Word'Size / 8; - Hash_Length : constant Natural := Hash_Words * Word_Length; - - subtype Message_Digest is String (1 .. 2 * Hash_Length); - -- The fixed-length string returned by Digest, providing the hash in - -- hexadecimal representation. - - function Digest (C : Context) return Message_Digest; - -- Return hash for the data accumulated with C in hexadecimal - -- representation. - - function Digest (S : String) return Message_Digest; - function Wide_Digest (W : Wide_String) return Message_Digest; - function Digest - (A : Ada.Streams.Stream_Element_Array) return Message_Digest; - -- These functions are equivalent to the corresponding Update (or - -- Wide_Update) on a default initialized Context, followed by Digest - -- on the resulting Context. - - private - - Block_Length : constant Natural := Block_Words * Word_Length; - -- Length in bytes of a data block - - type Context is record - H_State : Hash_State.State (0 .. State_Words - 1) := Initial_State; - -- Function-specific state - - M_State : Message_State (Block_Length); - -- Function-independent state (block buffer) - end record; - - Initial_Context : constant Context := (others => <>); - -- Initial values are provided by default initialization of Context - - end H; - -end GNAT.Secure_Hashes; |