Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | natools-gnat_hmac-*: new packages instances of Natools.HMAC with NAT-provided hash functions |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
20773f86edc4fa1f4d0ec10c1cbde824 |
| User & Date: | nat 2014-04-05 17:08:53.397 |
Context
|
2014-04-06
| ||
| 17:01 | hmac_tests: fully-covering test suite for HMAC check-in: 29a0283a2f user: nat tags: trunk | |
|
2014-04-05
| ||
| 17:08 | natools-gnat_hmac-*: new packages instances of Natools.HMAC with NAT-provided hash functions check-in: 20773f86ed user: nat tags: trunk | |
|
2014-04-04
| ||
| 21:18 | hmac: new package providing a generic HMAC implementation using a formal hash function check-in: 0f22d2b71f user: nat tags: trunk | |
Changes
Added src/natools-gnat_hmac-md5.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with GNAT.MD5; with Natools.HMAC; package Natools.GNAT_HMAC.MD5 is new Natools.HMAC (Hash_Context => GNAT.MD5.Context, Initial_Context => GNAT.MD5.Initial_Context, Update => GNAT.MD5.Update, Digest => Natools.GNAT_HMAC.Digest, Block_Size_In_SE => 64); |
Added src/natools-gnat_hmac-sha1.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with GNAT.SHA1; with Natools.HMAC; package Natools.GNAT_HMAC.SHA1 is new Natools.HMAC (Hash_Context => GNAT.SHA1.Context, Initial_Context => GNAT.SHA1.Initial_Context, Update => GNAT.SHA1.Update, Digest => Natools.GNAT_HMAC.Digest, Block_Size_In_SE => 64); |
Added src/natools-gnat_hmac-sha256.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with GNAT.SHA256; with Natools.HMAC; package Natools.GNAT_HMAC.SHA256 is new Natools.HMAC (Hash_Context => GNAT.SHA256.Context, Initial_Context => GNAT.SHA256.Initial_Context, Update => GNAT.SHA256.Update, Digest => Natools.GNAT_HMAC.Digest, Block_Size_In_SE => 64); |
Added src/natools-gnat_hmac.adb.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
------------------------------------------------------------------------------
-- Copyright (c) 2014, Natacha Porté --
-- --
-- Permission to use, copy, modify, and distribute this software for any --
-- purpose with or without fee is hereby granted, provided that the above --
-- copyright notice and this permission notice appear in all copies. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR --
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES --
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN --
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF --
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --
------------------------------------------------------------------------------
with Natools.S_Expressions.Encodings;
package body Natools.GNAT_HMAC is
----------------------------
-- Generic Implementation --
----------------------------
function Generic_Digest (C : Context)
return Ada.Streams.Stream_Element_Array is
begin
return S_Expressions.Encodings.Decode_Hex
(S_Expressions.To_Atom (Hex_Digest (C)));
end Generic_Digest;
---------------------------
-- Specialized Instances --
---------------------------
function MD5_Digest is new Generic_Digest
(GNAT.MD5.Context, GNAT.MD5.Digest);
function Digest (C : GNAT.MD5.Context)
return Ada.Streams.Stream_Element_Array
renames MD5_Digest;
function SHA1_Digest is new Generic_Digest
(GNAT.SHA1.Context, GNAT.SHA1.Digest);
function Digest (C : GNAT.SHA1.Context)
return Ada.Streams.Stream_Element_Array
renames SHA1_Digest;
function SHA256_Digest is new Generic_Digest
(GNAT.SHA256.Context, GNAT.SHA256.Digest);
function Digest (C : GNAT.SHA256.Context)
return Ada.Streams.Stream_Element_Array
renames SHA256_Digest;
end Natools.GNAT_HMAC;
|
Added src/natools-gnat_hmac.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
------------------------------------------------------------------------------
-- Copyright (c) 2014, Natacha Porté --
-- --
-- Permission to use, copy, modify, and distribute this software for any --
-- purpose with or without fee is hereby granted, provided that the above --
-- copyright notice and this permission notice appear in all copies. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR --
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES --
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN --
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF --
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- Natools.GNAT_HMAC is a root for HMAC instances using hash functions --
-- provided by GNAT. Is also provides glue functions. --
------------------------------------------------------------------------------
with Ada.Streams;
with GNAT.MD5;
with GNAT.SHA1;
with GNAT.SHA256;
package Natools.GNAT_HMAC is
generic
type Context is private;
with function Hex_Digest (C : Context) return String;
function Generic_Digest (C : Context)
return Ada.Streams.Stream_Element_Array;
function Digest (C : GNAT.MD5.Context)
return Ada.Streams.Stream_Element_Array;
function Digest (C : GNAT.SHA1.Context)
return Ada.Streams.Stream_Element_Array;
function Digest (C : GNAT.SHA256.Context)
return Ada.Streams.Stream_Element_Array;
end Natools.GNAT_HMAC;
|