diff options
Diffstat (limited to 'src/crypto-types-random_source-file.adb')
-rw-r--r-- | src/crypto-types-random_source-file.adb | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/src/crypto-types-random_source-file.adb b/src/crypto-types-random_source-file.adb deleted file mode 100644 index e665990..0000000 --- a/src/crypto-types-random_source-file.adb +++ /dev/null @@ -1,144 +0,0 @@ -package body Crypto.Types.Random_Source.File is - use Ada.Strings.Unbounded; - use Ada.Streams.Stream_IO; - - --------------------------------------------------------------------------- - ------------------------ Initialization ----------------------------------- - --------------------------------------------------------------------------- - - - procedure Initialize(This : in out Random_Source_File) is - Path : constant String := "/dev/random"; - Mode : constant File_Mode := In_File; - begin - if This.Source_File = null then - This.Source_File := new Ada.Streams.Stream_IO.File_Type; - end if; - if not Is_Open(This.Source_File.all) then - Open(This.Source_File.all, Mode, Path, "shared=yes"); - This.Source_Path := To_Unbounded_String(Path); - end if; - end Initialize; - - --------------------------------------------------------------------------- - - procedure Initialize(This : in out Random_Source_File; - File_Path : in String) is - Mode : constant File_Mode := In_File; - begin - if Is_Open(This.Source_File.all) then - Close(This.Source_File.all); - end if; - if not Is_Open(This.Source_File.all) then - Open(This.Source_File.all, Mode, File_Path, "shared=yes"); - This.Source_Path := To_Unbounded_String(File_Path); - end if; - end Initialize; - - --------------------------------------------------------------------------- - ------------------------------- Read Byte --------------------------------- - --------------------------------------------------------------------------- - - - procedure Read(This : in out Random_Source_File; B : out Byte) is - - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - Byte'Read(Stream(This.Source_File.all), B); - end if; - end Read; - - --------------------------------------------------------------------------- - - procedure Read(This : in out Random_Source_File; Byte_Array : out Bytes) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - Bytes'Read(Stream(This.Source_File.all), Byte_Array); - end if; - end Read; - - --------------------------------------------------------------------------- - - procedure Read(This : in out Random_Source_File; B : out B_Block128) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - B_Block128'Read(Stream(This.Source_File.all), B); - end if; - end Read; - - --------------------------------------------------------------------------- - ------------------------------- Read Word --------------------------------- - --------------------------------------------------------------------------- - - procedure Read(This : in out Random_Source_File; W : out Word) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - Word'Read(Stream(This.Source_File.all), W); - end if; - end Read; - - --------------------------------------------------------------------------- - - procedure Read(This : in out Random_Source_File; Word_Array : out Words) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - Words'Read(Stream(This.Source_File.all), Word_Array); - end if; - end Read; - - --------------------------------------------------------------------------- - ------------------------------- Read DWord -------------------------------- - --------------------------------------------------------------------------- - - - procedure Read(This : in out Random_Source_File; D : out DWord) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - DWord'Read(Stream(This.Source_File.all), D); - end if; - end Read; - - procedure Read(This : in out Random_Source_File; DWord_Array : out DWords) is - begin - if not Path_Starts_With(This, "/dev/") and then End_Of_File(This.Source_File.all) then - raise RANDOM_SOURCE_READ_ERROR with To_String(This.Source_Path); - else - DWords'Read(Stream(This.Source_File.all), DWord_Array); - end if; - end Read; - - - --------------------------------------------------------------------------- - ------------------------------- Finalize ---------------------------------- - --------------------------------------------------------------------------- - - procedure Finalize(This : in out Random_Source_File) is - begin - if Is_Open(This.Source_File.all) then - Close(This.Source_File.all); - end if; - end Finalize; - - --------------------------------------------------------------------------- - --------------------------- Path_Starts_With ------------------------------ - --------------------------------------------------------------------------- - - function Path_Starts_With(This : Random_Source_File; S : String) return Boolean is - Path : constant String := To_String(This.Source_Path); - begin - return Path(Path'First..S'Last) = S; - end; - -end Crypto.Types.Random_Source.File; |