AminetAminet
Search:
85025 packages online
About
Recent
Browse
Search
Upload
Setup
Services

util/misc/asum.lha

Mirror:Random
Showing: m68k-amigaos icongeneric icon
No screenshot available
Short:Very fast MD5 checksum tool
Author:Patrik Axelsson, K-P Koljonen
Uploader:patrik bo gmail com
Type:util/misc
Version:1.0
Architecture:m68k-amigaos,ppc-amigaos,ppc-morphos,i386-aros,ppc-warpup
Date:2025-11-03
URL:https://github.com/patrikaxelsson/asum
Download:util/misc/asum.lha - View contents
Readme:util/misc/asum.readme
Downloads:37

This tool can be used both to generate a list of MD5 checksums and verify
such list. The format of the generated list is compatible with many other
similar tools.

The main idea with this tool is to offer as quick MD5 checksum calculations
as possible, in a simple way, without extra options required.

It uses highly optimized 68k MD5 code and reasonably optimized PPC MD5 code.
The latter is utilized automatically if WarpOS is available, or if the
MorphOS or AmigaOS4 versions are used. This is coupled with asynchronous
reads, to allow the CPU to calculate the checksums, while the files are
being read in the background, which makes it very efficient with DMA
controllers.


Thanks:

* K-P Koljonen for his tireless and inspiring efforts optimizing the
  HippoPlayer MD5 code this tool is based on.
* Crab at #amihelp for all the meticulous testing and feedback.


Usage:
> asum ? 
FILES/M,ALL/S,TO/K,CHECK/K: 

FILES: Files to checksum. If directories or volumes are supplied, the
       contained files will be checksummed. AmigaDOS patterns can be used.
ALL:   Traverse directories and volumes found in FILES recursively.
TO:    Output the generated list of checksums to this file, instead of the
       standard output.
CHECK: Validate this previously generated list of checksums. Resultcode 10
       for checksum mismatch and 5 for missing file.


Examples:

A couple of files:
> C:
C> asum Dir List Version
c896a610895a36be0dea489cd6dd83ee  Dir
f300978a06ba9e5e7258ad43241126eb  List
d5c482ac3cc004d57465db051db1365c  Version

Using AmigaDOS patterns:
> asum S:#?-Startup 
c23e2afc5cea3b09bc2dcb890b441a3a  S:Network-Startup
17ab20b698004d01f1197c4e9f27ec51  S:User-Startup
e979a38b5f13a3fb8a8e67d0d3873547  S:Shell-startup
14fa4c0562f540a9d250365eb5d65818  S:Network-User-Startup
d5cae30fc54900a314dd2c6cf2175825  S:WHDLoad-Startup

Generate a list of an entire partition and then verify it:
> asum Work: ALL TO=RAM:Work.md5sums
> asum CHECK=RAM:Work.md5sums
> echo $RC
0

Generate a list, change a file and then verify it catches the change:
> asum S: TO=RAM:checkfile.md5sums
> echo "" >>S:User-Startup
> asum CHECK=RAM:checkfile.md5sums
S:User-Startup: MD5 mismatch!
> echo $RC
10

Generate a list, remove a file and then verify it catches the missing file:
> copy S:User-Startup S:User-Startup.backup
> asum S: TO=RAM:checkfile.md5sums
> delete S:User-Startup.backup
S:User-Startup.backup  Deleted
> asum CHECK=RAM:checkfile.md5sums
S:User-Startup.backup: object not found
> echo $RC
5


Single file performance on various systems, controllers and OS's:

A500+ 68000@7MHz, GVP HD+8, AmigaOS 3.2:
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
1913.864809s

A3000 68030@25MHz, internal SCSI, AmigaOS 3.2.1:
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
239.916814s

A1200 Blizzard1260 68060@50MHz, internal IDE, AmigaOS 3.2.1:
Comment: Completely bottlenecked by internal IDE
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
67.635010s

A1200 Blizzard1260 68060@50MHz, Blizzard SCSI Kit IV, AmigaOS 3.2.1:
> UHC:C/time asum 1230SCSI:test100M.bin
2f282b84e7e608d5852449ed940bfc51  1230SCSI:test100M.bin
24.135190s

A4000 CSPPC 68060@50MHz, 604e@200MHz, CSPPC SCSI, AmigaOS 3.9 + NoWarpOS:
> Run NoWarpOS >NIL:
[CLI 1]
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
21.440839s

A4000 CSPPC 68060@50MHz, 604e@200MHz, CSPPC SCSI, AmigaOS 3.9 + WarpOS 16.1:
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
9.056016s

A4000 CSPPC 68060@50MHz, 604e@200MHz, CSPPC SCSI, MorphOS 1.4:
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
9.483412s

A4000 CSPPC 68060@50MHz, 604e@200MHz, CSPPC SCSI, AmigaOS 4.1 FE Update 3:
> UHC:C/time asum Work:test100M.bin
2f282b84e7e608d5852449ed940bfc51  Work:test100M.bin
10.414447


Contents of util/misc/asum.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                    272     628  43.3% -lh5- d1ec Nov  3 21:01 asum.info
[Amiga]                   5943   10808  55.0% -lh5- f5a4 Nov  3 20:53 asum/asum
[Amiga]                   4065    7668  53.0% -lh5- 0341 Nov  3 20:53 asum/asum.aros-i386
[Amiga]                    191     462  41.3% -lh5- 64b3 Nov  3 21:01 asum/asum.aros-i386.info
[Amiga]                    187     462  40.5% -lh5- 962f Nov  3 21:01 asum/asum.info
[Amiga]                   4579    9580  47.8% -lh5- 694a Nov  3 20:53 asum/asum.mos
[Amiga]                    190     462  41.1% -lh5- 0e89 Nov  3 21:01 asum/asum.mos.info
[Amiga]                   4715    9304  50.7% -lh5- 4172 Nov  3 20:53 asum/asum.os4
[Amiga]                    189     462  40.9% -lh5- fc15 Nov  3 21:01 asum/asum.os4.info
[Amiga]                   1764    4256  41.4% -lh5- a37f Nov  3 20:43 asum/asum.readme
[Amiga]                    217     464  46.8% -lh5- 8eb2 Nov  3 21:01 asum/asum.readme.info
[Amiga]                   2904   10128  28.7% -lh5- 41a2 Nov  3 20:43 asum/source/asum.c
[Amiga]                    775    2538  30.5% -lh5- 265b Oct 25 12:04 asum/source/AsyncFile.c
[Amiga]                    312     674  46.3% -lh5- fbf4 Oct 25 12:04 asum/source/AsyncFile.h
[Amiga]                    735    2383  30.8% -lh5- 5fc8 Oct 30 20:42 asum/source/Makefile
[Amiga]                    120     134  89.6% -lh5- 4ff0 Oct  1 19:27 asum/source/MD5/HiP/Makefile
[Amiga]                    260     520  50.0% -lh5- d433 Oct  7 00:05 asum/source/MD5/HiP/md5.h
[Amiga]                  11863  108460  10.9% -lh5- 612a Nov  2 17:33 asum/source/MD5/HiP/md5.s
[Amiga]                  10000   10000 100.0% -lh0- 80a0 Oct  1 19:27 asum/source/MD5/HiP/test10000b
[Amiga]                    150     150 100.0% -lh0- be71 Oct  1 19:27 asum/source/MD5/HiP/test150b
[Amiga]                      1       1 100.0% -lh0- 6d40 Oct  1 19:27 asum/source/MD5/HiP/test1b
[Amiga]                     65      65 100.0% -lh0- 4053 Oct  1 19:27 asum/source/MD5/HiP/test65b
[Amiga]                     88     111  79.3% -lh5- 7fd7 Oct  5 20:42 asum/source/MD5/solar/Makefile
[Amiga]                    489    1005  48.7% -lh5- 1729 Oct  5 20:42 asum/source/MD5/solar/md5-test.c
[Amiga]                   3158    8677  36.4% -lh5- 330f Oct 10 16:24 asum/source/MD5/solar/md5.c
[Amiga]                    731    1334  54.8% -lh5- 79f2 Oct  7 00:05 asum/source/MD5/solar/md5.h
[Amiga]                   3719   16621  22.4% -lh5- ce22 Oct 30 20:42 asum/source/MD5/UHC/md5-ppc.s
[Amiga]                    200     404  49.5% -lh5- a087 Oct 10 00:23 asum/source/MD5/UHC/md5.h
[Amiga]                    379     703  53.9% -lh5- bbd4 Oct 15 22:12 asum/source/OS4Compatibility.h
[Amiga]                    231     411  56.2% -lh5- 551f Oct 15 22:12 asum/source/Startup.c
[Amiga]                    266     461  57.7% -lh5- ad49 Oct 15 22:14 asum/source/StartupAROS.c
[Amiga]                    243     432  56.2% -lh5- 7d70 Oct 15 22:12 asum/source/StartupMOS.c
[Amiga]                    350     733  47.7% -lh5- ba66 Oct 15 22:12 asum/source/StartupOS4.c
[Amiga]                    354    1193  29.7% -lh5- c773 Oct 21 20:28 asum/source/WarpOSMD5Wrapper.c
[Amiga]                    179     328  54.6% -lh5- e5e1 Oct  7 00:05 asum/source/WarpOSMD5Wrapper.h
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        35 files   59884  212022  28.2%            Nov  3 22:47
Page generated in 0.06 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>