forked from CruiserX/sha256_plsql
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhash_util_pkg.pks
50 lines (39 loc) · 1.84 KB
/
hash_util_pkg.pks
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
create or replace package hash_util_pkg as
/*
Purpose:
Calculates SHA-1 and SHA-2 hashes.
Pure PL/SQL implementation. Uses decimal caclulations, works very slow.
Use DBMS_CRYPTO or external Java functions for quick hash calculation, whenever possible.
Author: Vadim Dvorovenko
Changes:
Who Date Description
------ ---------- --------------------------------
DVN 09.12.2014 Created
DVN 26.11.2016 Formatting code for Alexandria library, BLOB verison
DVN 27.11.2016 Fully rewritten process_bytes procedures.
DVN 27.11.2016 Added SHA-224, SHA-384, SHA-512, SHA-512/256, SHA-512/224
*/
subtype sha1_checksum_raw is raw(20);
subtype sha224_checksum_raw is raw(28);
subtype sha256_checksum_raw is raw(32);
subtype sha384_checksum_raw is raw(48);
subtype sha512_checksum_raw is raw(64);
-- Raw versions. Max p_buffer length - 16384 bytes
function sha1(p_buffer in raw) return sha1_checksum_raw;
function sha224(p_buffer in raw) return sha224_checksum_raw;
function sha256(p_buffer in raw) return sha256_checksum_raw;
function sha384(p_buffer in raw) return sha384_checksum_raw;
function sha512(p_buffer in raw) return sha512_checksum_raw;
function sha512_224(p_buffer in raw) return sha224_checksum_raw;
function sha512_256(p_buffer in raw) return sha256_checksum_raw;
-- Blob versions.
function sha1(p_buffer in blob) return sha1_checksum_raw;
function sha224(p_buffer in blob) return sha224_checksum_raw;
function sha256(p_buffer in blob) return sha256_checksum_raw;
function sha384(p_buffer in blob) return sha384_checksum_raw;
function sha512(p_buffer in blob) return sha512_checksum_raw;
function sha512_224(p_buffer in blob) return sha224_checksum_raw;
function sha512_256(p_buffer in blob) return sha256_checksum_raw;
procedure unittest;
end hash_util_pkg;
/