summaryrefslogtreecommitdiff
path: root/packages/hash
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-09-16 20:32:07 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-09-16 20:32:07 +0000
commitdf3fdc8f2d2381d4c4e9557a539e7c6d463d4a0c (patch)
treea576c290305e036538b3ff18c4862e36f95d1831 /packages/hash
parent6abaa554bca7e219e13e0cf095cb259c045a8fd8 (diff)
downloadfpc-df3fdc8f2d2381d4c4e9557a539e7c6d463d4a0c.tar.gz
* sha1test demo + fpmake
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@13728 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/hash')
-rw-r--r--packages/hash/examples/Makefile118
-rw-r--r--packages/hash/examples/Makefile.fpc2
-rw-r--r--packages/hash/examples/sha1test.pp38
-rw-r--r--packages/hash/fpmake.pp3
4 files changed, 101 insertions, 60 deletions
diff --git a/packages/hash/examples/Makefile b/packages/hash/examples/Makefile
index aa4fd34b9d..3a9071cb5a 100644
--- a/packages/hash/examples/Makefile
+++ b/packages/hash/examples/Makefile
@@ -1,5 +1,5 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/08/02]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/08/28]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
@@ -265,178 +265,178 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_PROGRAMS+=mdtest crctest
+override TARGET_PROGRAMS+=mdtest crctest sha1test
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
diff --git a/packages/hash/examples/Makefile.fpc b/packages/hash/examples/Makefile.fpc
index ea30058cd7..285ac70250 100644
--- a/packages/hash/examples/Makefile.fpc
+++ b/packages/hash/examples/Makefile.fpc
@@ -3,7 +3,7 @@
#
[target]
-programs=mdtest crctest
+programs=mdtest crctest sha1test
[require]
packages=hash
diff --git a/packages/hash/examples/sha1test.pp b/packages/hash/examples/sha1test.pp
new file mode 100644
index 0000000000..c3340d66ef
--- /dev/null
+++ b/packages/hash/examples/sha1test.pp
@@ -0,0 +1,38 @@
+program sha1test;
+{$mode objfpc}{$h+}
+
+uses sha1;
+
+var
+ code: cardinal;
+ s, sdig: string;
+ i: integer;
+ ctx: TSHA1Context;
+ d: TSHA1Digest;
+begin
+ code := 0;
+ sdig := SHA1Print(SHA1String('abc'));
+ if sdig <> 'a9993e364706816aba3e25717850c26c9cd0d89d' then
+ code := code or 1;
+
+ sdig := SHA1Print(SHA1String('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'));
+ if sdig <> '84983e441c3bd26ebaae4aa1f95129e5e54670f1' then
+ code := code or 2;
+
+ // SHA-1 of a million 'a' symbols
+ SetLength(s, 1000);
+ for i := 1 to 1000 do s[i] := 'a';
+ SHA1Init(ctx);
+ for i := 0 to 999 do
+ SHA1Update(ctx, PChar(s)^, 1000);
+ SHA1Final(ctx, d);
+ sdig := SHA1Print(d);
+ if sdig <> '34aa973cd4c4daa4f61eeb2bdbad27316534016f' then
+ code := code or 4;
+
+ if code = 0 then
+ writeln('Basic SHA-1 tests passed')
+ else
+ writeln('SHA-1 tests failed: ', code);
+ Halt(code);
+end. \ No newline at end of file
diff --git a/packages/hash/fpmake.pp b/packages/hash/fpmake.pp
index f281d1f0fe..68283b9954 100644
--- a/packages/hash/fpmake.pp
+++ b/packages/hash/fpmake.pp
@@ -29,10 +29,13 @@ begin
T:=P.Targets.AddUnit('src/sha1.pp');
T:=P.Targets.AddUnit('src/crc.pas');
T:=P.Targets.AddUnit('src/ntlm.pas');
+ T:=P.Targets.AddUnit('src/sha1.pas');
T:=P.Targets.AddUnit('src/uuid.pas');
T:=P.Targets.AddUnit('src/unixcrypt.pas');
T.OSes:=[Linux];
T:=P.Targets.AddExampleunit('examples/mdtest.pas');
+ T:=P.Targets.AddExampleunit('examples/crctest.pas');
+ T:=P.Targets.AddExampleunit('examples/sha1test.pas');
// md5.ref
{$ifndef ALLPACKAGES}
Run;