summaryrefslogtreecommitdiff
path: root/src/crypto-types-random_source.ads
blob: 9ad55f6ff8c606c29d8caa2c745eb2da2c206eef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
with Ada.Finalization;

package Crypto.Types.Random_Source is
  use Crypto.Types;
  package Fin renames Ada.Finalization;
    
  type Random_Source is abstract new Fin.Controlled with null record;
  type Random_Source_Access is access Random_Source;
  
  Random_Source_Read_Error : exception;
  
  procedure Initialize (This: in out Random_Source) is abstract;
  
  procedure Read(This : in out Random_Source; B : out Byte)  is abstract;
  
  procedure Read(This : in out Random_Source; Byte_Array : out Bytes);
  
  procedure Read(This : in out Random_Source; B : out B_Block128);
  
  procedure Read(This : in out Random_Source; W : out Word);
  procedure Read(This : in out Random_Source; Word_Array : out Words);

  procedure Read(This : in out Random_Source; D : out DWord);
  procedure Read(This : in out Random_Source; DWord_Array : out DWords);
  
  pragma Inline(Read);
end Crypto.Types.Random_Source;