Debian Bug report logs - #164591
[MD5SUM] md5sum must not output '-' when no argument supplied

Package: dpkg; Maintainer for dpkg is Dpkg Developers <debian-dpkg@lists.debian.org>; Source for dpkg is src:dpkg.

Reported by: Eduard Bloch <blade@debian.org>

Date: Sun, 13 Oct 2002 17:48:01 UTC

Severity: important

Tags: fixed-in-experimental

Merged with 164889

Done: Scott James Remnant <scott@netsplit.com>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Eduard Bloch <blade@debian.org>:
New Bug report received and forwarded. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org. Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Eduard Bloch <blade@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: dpkg: md5sum output changed, breaks innocent programs
Date: Sun, 13 Oct 2002 19:40:43 +0200
Package: dpkg
Version: 1.10.9
Severity: grave

Compare output of testing's md5sum:

md5sum < MPlayer-0.90pre8.tar.bz2 
8c844865b05574a1cfb2813e8487d21b

and Sid's:

md5sum < ./acroread_5.05-0.am1_i386.deb
f1373c3ff6c1950b12055a050b677753  -

Gruss/Regards,
Eduard.

-- System Information
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux zombie 2.4.19 #6 Sam Sep 21 11:31:07 CEST 2002 i686
Locale: LANG=de_DE@euro, LC_CTYPE=de_DE@euro

Versions of packages dpkg depends on:
ii  dselect                       1.10.9     a user tool to manage Debian packa
hi  libc6                         2.2.5-14   GNU C Library: Shared libraries an





Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Eduard Bloch <edi@gmx.de>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org. Full text and rfc822 format available.

Message #10 received at 164591@bugs.debian.org (full text, mbox):

From: Eduard Bloch <edi@gmx.de>
To: Debian Bug Tracking System <164591@bugs.debian.org>
Subject: Re: dpkg: md5sum output changed, breaks innocent programs
Date: Sun, 13 Oct 2002 19:51:23 +0200
#include <hallo.h>
* Eduard Bloch [Sun, Oct 13 2002, 07:40:43PM]:

> Compare output of testing's md5sum:
> 
> md5sum < MPlayer-0.90pre8.tar.bz2 
> 8c844865b05574a1cfb2813e8487d21b

Actually, it was the Stable version.

Gruss/Regards,
Eduard.
-- 
Fernsehen ist das einzige Schlafmittel,
das mit den Augen eingenommen wird.




Reply sent to Adam Heath <doogie@debian.org>:
You have taken responsibility. Full text and rfc822 format available.

Notification sent to Eduard Bloch <blade@debian.org>:
Bug acknowledged by developer. Full text and rfc822 format available.

Message #15 received at 164591-done@bugs.debian.org (full text, mbox):

From: Adam Heath <doogie@debian.org>
To: Eduard Bloch <blade@debian.org>, <164591-done@bugs.debian.org>
Subject: Re: Bug#164591: dpkg: md5sum output changed, breaks innocent programs
Date: Sun, 13 Oct 2002 12:55:00 -0500 (CDT)
On Sun, 13 Oct 2002, Eduard Bloch wrote:

> Package: dpkg
> Version: 1.10.9
> Severity: grave
>
> Compare output of testing's md5sum:
>
> md5sum < MPlayer-0.90pre8.tar.bz2
> 8c844865b05574a1cfb2813e8487d21b
>
> and Sid's:
>
> md5sum < ./acroread_5.05-0.am1_i386.deb
> f1373c3ff6c1950b12055a050b677753  -

This is the way it is going to be.  Fix the other programs.

ps: textutils md5sum acts this way.




Severity set to `normal'. Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Merged 164591 164889. Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Bug reopened, originator not changed. Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Thomas Hood <jdthood@yahoo.co.uk>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>, dpkg@packages.qa.debian.org. Full text and rfc822 format available.

Message #26 received at 164591@bugs.debian.org (full text, mbox):

From: Thomas Hood <jdthood@yahoo.co.uk>
To: 164591@bugs.debian.org
Subject: tags 164591 wontfix
Date: 17 Oct 2002 09:09:04 +0200
tags 164591 wontfix
thanks

Adam Heath <doogie@debian.org> wrote:
> This is the way it is going to be.
--> Tagging "wontfix"

> ps: textutils md5sum acts this way

BTW, the meaning of the trailing "  -" is that this is
the md5sum of stdin.

jdthood@thanatos:~$ md5sum .bashrc
f1075ff35a46c75de41b84ac3039a8de  .bashrc
jdthood@thanatos:~$ md5sum < .bashrc
f1075ff35a46c75de41b84ac3039a8de  -

Please follow up at #164591.

--
Thomas Hood





Tags added: wontfix Request was from Thomas Hood <jdthood@yahoo.co.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Bug reassigned from package `dpkg' to `tech-ctte'. Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Technical Committee <debian-ctte@lists.debian.org>:
Bug#164591; Package tech-ctte. Full text and rfc822 format available.

Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
Extra info received and forwarded to list. Copy sent to Technical Committee <debian-ctte@lists.debian.org>. Full text and rfc822 format available.

Message #35 received at 164591@bugs.debian.org (full text, mbox):

From: Ian Jackson <ian@davenant.greenend.org.uk>
To: debian-ctte@lists.debian.org
Subject: md5sum <FILE produces spurious ` -' in output
Date: Fri, 7 May 2004 13:56:47 +0100
This bug has been sitting on our todo list for some time, mainly
because I've been too slack.  My apologies.  As promised, I'm now
picking it up again.

I've gone and reread the bug reports #164591 and #164889, of which I'm
the submitter of the latter, and I've written a summary of my
position, below.  Just to clarify: I would like the committee to
overrule the maintainer.

I have BCC'd this message to both bug reports, to 164591's submitter,
and to dpkg@packages, to make sure everyone knows about this
discussion.  But the discussion should probably continue on the
debian-ctte list, and not get crossposted to the bug and the package
maintainer hat.

On to the substance:

 * The question is, what should  md5sum < filename  do ?
   Using /dev/null as an example, the two behaviours are:

   Bare:         -davenant:~> md5sum </dev/null
   (IMO good)	 d41d8cd98f00b204e9800998ecf8427e
   		 -davenant:~>

   Annotated:    -anarres:~> md5sum </dev/null
   (IMO bad)     d41d8cd98f00b204e9800998ecf8427e  -
		 -anarres:~>

 * Note that there is no suggestion that the output of
   md5sum filename  should change.  It is essential that that still
   produce the `Annotated' form, eg in this case:

   With filename:  davenant:~> md5sum /dev/null
   (Good)          d41d8cd98f00b204e9800998ecf8427e  /dev/null
	           davenant:~>

   This is because that output format is used as input to `md5sum -c'.

 * I claim that the annotated behaviour is inferior, for two reasons:

   Firstly, it is less convenient.  When md5sum is used in scripts and
   the like, it is significantly easier to use if a script can get it
   not to annotate the output for a single file on stdin, but just
   produces the bare checksum (in hex, with a trailing newline, of
   course).

   Otherwise callers which want the unvarnished md5sum have to use
   seddery to strip the spurious `  -'.  While the advantage for any
   individual caller is small, the extra complexity and risk of bugs
   is avoidable, and of course there are many callers of md5sum - both
   actual Debian packages, and in the rest of the world - so the pain
   is multiplied.

   Secondly, it is not compatible with many existing programs.  Even
   though many things in Debian have already had extra code added to
   cope, programs have been using and relying on the historical
   behaviour for some time, and breaking them is a bad idea.

   I also contend that the upstream coreutils md5sum should be changed
   to match the this desirable behaviour, although that's not really a
   question for the Debian TC.

 * Opponents of my suggestion claim that the annotated behaviour is
   superior because of some need to be `compatible' with coreutils
   md5sum.

   This is a red herring.  The only case where I'm suggesting changing
   the behaviour is when the filename is _not_ supplied by the
   caller.  Ie, when you say
      md5sum < filename
   rather than
      md5sum first-file [second-file third-file ...]

   It is true that my proposed behaviour in the case of
      md5sum < filename
   is different.  It produces eg
      d41d8cd98f00b204e9800998ecf8427e
   instead of
      d41d8cd98f00b204e9800998ecf8427e  -

   But the former is very nearly strictly superior.  The latter output
   is pretty much useless as input to `md5sum -c' precisely because it
   also doesn't include the filename.

   It is possible that a small proportion of the programs which were
   changed to accept the new output by stripping the `  -' were
   changed so that they would no longer accept the old unvarnished
   form - but such programs will be rare because that makes them
   incompatible with the old behaviour of dpkg's md5sum.

 * Opponents of my suggestion have also claimed that it is not
   appropriate for the Debian maintainer to make this change and that
   instead I should get upstream coreutils to make the change first.

   I agree that it would be good for coreutils to change.  But, as a
   Debian maintainer I have to write programs which are compatible
   with the md5sum shipped in Debian.  If Debian's md5sum's behaviour
   is not restored then I will have to change my packages so that they
   cope with the new broken behaviour.  This is quite different to the
   upstream coreutils, where I can blow off bug reports saying `the
   GNU people broke it - get them to fix it again'.

   Debian has never shied away from making technically correct changes
   even if the face of opposition from upstream, and we should not do
   so now - when there is little evidence of any opposition from
   upstream.  I would of course encourage the Debian coreutils
   maintainer to talk to the GNU maintainer to try to rationalise the
   situation, but in the Debian project it's primarily the Debian
   package maintainer's responsibility to do any necessary
   communication with upstream.  I can't reasonably demand that a
   volunteer Debian maintainer actually do that work, but I don't
   think that their lack of time to do so is a good excuse for not
   fixing the bug in Debian.

   The remaining argument for waiting for the reversion to be accepted
   upstream is that we should be `compatible' with GNU coreutils so
   that other 3rd-party programs will work well on Debian.  However,
   the change does not introduce any significant incompatibility:
   programs outside Debian which feed stdin to md5sum already have to
   work with the GNU version, old PGP versions, etc., some of which
   include the spurious `  -' and some of which don't.  Programs which
   _fail_ when they cannot strip the spurious `  -' because it's
   missing will be very rare and easy to fix.

 * There has been some suggestion that there is a need to trawl
   through packages looking for ones which will break.

   As discussed above, the compatibility problems are nearly
   nonexistent.  Very probably nothing will break.  There is a small
   chance that there is some program was unwisely modified to insist
   on stripping `  -' and which now fails if it's not present.  Any
   such program should be fixed anyway to enhance its compatibility
   with non-GNU versions of md5sum including those from older Debian
   versions.

 * Historical context:

   Debian has used an md5sum in the dpkg package.  This md5sum came
   originally from PGP2.x (circa 1992/1993), and was originally
   written by Colin Plumb.  It produced the bare checksum when the
   filename wasn't supplied.  (It also provided `md5sum -c' and
   produced the corresponding output format for when the filenames
   were supplied.)

   Some time in the last few years, GNU textutils gained a version of
   md5sum.  This md5sum has slightly different behaviours - it
   interprets unexpected input slightly differently for md5sum -c, and
   it also produces the annotated output in the case at issue.

   As I recall (but I could be wrong) the dpkg md5sum was, when
   textutils gained its own md5sum, briefly retired in favour of the
   textutils one.  However, the dpkg one was quickly restored, mainly
   because of the behavioural differences, including the annotation
   when taking input from stdin.

   AIUI, most recently, a version of dpkg was been uploaded whose
   md5sum has been modified to produce the annotated output.

Thanks,
Ian.



Message sent on to Eduard Bloch <blade@debian.org>:
Bug#164591. Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Technical Committee <debian-ctte@lists.debian.org>:
Bug#164591; Package tech-ctte. Full text and rfc822 format available.

Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
Extra info received and forwarded to list. Copy sent to Technical Committee <debian-ctte@lists.debian.org>. Full text and rfc822 format available.

Message #43 received at 164591@bugs.debian.org (full text, mbox):

From: Ian Jackson <ian@davenant.greenend.org.uk>
To: debian-ctte@lists.debian.org, dpkg@packages.debian.org, 164591@bugs.debian.org, 164889@bugs.debian.org
Subject: md5sum <FILE produces spurious ` -' in output
Date: Thu, 10 Jun 2004 00:15:13 +0100
Thanks to everyone for your contributions, and to the voting committee
members for your votes.  The Technical Committee has passed the
following resolution:

 1. The Technical Committe has considered the questions raised in
    Bug#164591 and Bug#164889, concerning the output format from
    md5sum when the input is stdin.

 2. For the reasons discussed below we agree with the submitters of
    the bugs, that md5sum without arguments should print only the
    checksum.

 3. We will refer to the alternative output formats as follows:
    * The `bare' format: the checksum (in hex) followed by a single
      newline.
    * The `annotated' format: the checksum (in hex) followed by two
      spaces, a hyphen, and a newline.

 4. This decision discusses and covers only the case where md5sum
    calculates and prints a single checksum, of data fed to it on
    standard input.  Other uses of md5sum are not discussed, except to
    note that we do not see any need to suggest any changes to those
    behaviours.

 5. The bare format is usually more convenient.  It would therefore be
    good for there to be a simple way to produce it.

 6. Regarding the compatibility risks of changing the behaviour, we
    note that:
    i.   The behaviour of Debian's md5sum has varied, changing several
         times between the bare and the annotated format.
    ii.  Different implementations of md5sum have different output
         formats, so that the most widespread behaviour has not been
         consistent either.
    iii. It seems unlikely to us that there are significant numbers of
         programs which depend on the annotated format.

 7. Although we do not believe the annotated format is useful except
    for compatibility reasons, it is acceptable for there to be a way
    to generate the annotated format.

 8. Other GNU utilities for reporting on the contents of files are not
    very consistent regarding when they print input filenames, but few
    utilities print the `-' when the program reads from stdin and `-'
    was not supplied as a command line argument.

 9. At least two versions of md5sum have been used in Debian - the one
    currently in the dpkg package which originated with Colin Plumb,
    and the GNU version.  Likewise, there is some discussion as to
    whether md5sum should continue to be supplied by dpkg or by the
    Debian coreutils package.  We do not address the issue of which
    version of md5sum should be used, or which package it should
    reside in.  Our conclusions apply to the utility md5sum no matter
    which version is chosen and no matter which package it is in.

10. Accordingly we request (or require, if the required supermajority
    is reached according to the Constitution) that the maintainer(s)
    of the package(s) containing md5sum cooperate to change the
    behaviour, as shown in the following examples:

    i.   Output format when no argument supplied:
	   $ md5sum </dev/null | cat -vet
	   d41d8cd98f00b204e9800998ecf8427e$
	   $

    ii.  Output when single `-' argument supplied: either
	   $ md5sum - </dev/null | cat -vet
	   d41d8cd98f00b204e9800998ecf8427e  -$
	   $
         or
	   $ md5sum - </dev/null | cat -vet
	   d41d8cd98f00b204e9800998ecf8427e$
	   $
         We recommend, but do not insist on, the former.

    iii. For other combinations of arguments we do not request
         any change in behaviour.

11. We request (or require) that the package maintainer indicate
    whether they would prefer the bug submitter to prepare a patch.
    If so then when the submitter has prepared a reasonable patch, the
    maintainer should accept and apply it if they approve; otherwise,
    or if they prefer, they should do the necessary work themselves.

12. We recommend that, if applicable, the resulting patch be sent
    upstream for inclusion in the GNU coreutils.  If Debian continues
    to use the non-GNU version, we recommend that the bug submitter
    prepare a patch to GNU coreutils and submit it to the GNU
    project.

13. We note that the issues surrounding sha1sum are similar to those
    surrounding md5sum.  We have not been asked to rule on sha1sum but
    expect that if the question arose our decision would be the same.

Votes in favour: Ian, Raul, Manoj, Guy
No other votes.

We have achieved the (AFAICT) 4:1 majority required to overrule the
maintainer.  I'll retag and reassign the bug to dpkg, and update the
committee web page.

Ian.



Tags removed: wontfix Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Bug reassigned from package `tech-ctte' to `dpkg'. Request was from Ian Jackson <ian@davenant.greenend.org.uk> to control@bugs.debian.org. Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Adam Heath <doogie@debian.org>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>. Full text and rfc822 format available.

Message #52 received at 164591@bugs.debian.org (full text, mbox):

From: Adam Heath <doogie@debian.org>
To: Ian Jackson <ian@davenant.greenend.org.uk>
Cc: debian-ctte@lists.debian.org, dpkg@packages.debian.org, 164591@bugs.debian.org, 164889@bugs.debian.org, debian-dpkg@lists.debian.org
Subject: Re: md5sum <FILE produces spurious ` -' in output
Date: Mon, 21 Jun 2004 14:26:28 -0500 (CDT)
Please don't do anything to resolve this bug, until I have had time to write a
proper reply.



Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Scott James Remnant <scott@netsplit.com>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>. Full text and rfc822 format available.

Message #57 received at 164591@bugs.debian.org (full text, mbox):

From: Scott James Remnant <scott@netsplit.com>
To: Adam Heath <doogie@debian.org>
Cc: Ian Jackson <ian@davenant.greenend.org.uk>, debian-ctte@lists.debian.org, dpkg@packages.debian.org, 164591@bugs.debian.org, 164889@bugs.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>
Subject: Re: md5sum <FILE produces spurious ` -' in output
Date: Mon, 21 Jun 2004 21:53:34 +0100
[Message part 1 (text/plain, inline)]
On Mon, 2004-06-21 at 14:26 -0500, Adam Heath wrote:

> Please don't do anything to resolve this bug, until I have had time to write a
> proper reply.
> 
What is the "proper reply" you are writing?

Scott
-- 
Have you ever, ever felt like this?
Had strange things happen?  Are you going round the twist?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Adam Heath <doogie@debian.org>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>. Full text and rfc822 format available.

Message #62 received at 164591@bugs.debian.org (full text, mbox):

From: Adam Heath <doogie@debian.org>
To: Scott James Remnant <scott@netsplit.com>
Cc: Ian Jackson <ian@davenant.greenend.org.uk>, debian-ctte@lists.debian.org, dpkg@packages.debian.org, 164591@bugs.debian.org, 164889@bugs.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>
Subject: Re: md5sum <FILE produces spurious ` -' in output
Date: Mon, 21 Jun 2004 17:04:35 -0500 (CDT)
On Mon, 21 Jun 2004, Scott James Remnant wrote:

> On Mon, 2004-06-21 at 14:26 -0500, Adam Heath wrote:
>
> > Please don't do anything to resolve this bug, until I have had time to write a
> > proper reply.
> >
> What is the "proper reply" you are writing?

Something more than the single line I sent.

There are issues not discussed with the decision.



Information forwarded to debian-bugs-dist@lists.debian.org, Dpkg Development <debian-dpkg@lists.debian.org>:
Bug#164591; Package dpkg. Full text and rfc822 format available.

Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
Extra info received and forwarded to list. Copy sent to Dpkg Development <debian-dpkg@lists.debian.org>. Full text and rfc822 format available.

Message #67 received at 164591@bugs.debian.org (full text, mbox):

From: Ian Jackson <ian@davenant.greenend.org.uk>
To: Adam Heath <doogie@debian.org>
Cc: debian-ctte@lists.debian.org, dpkg@packages.debian.org, 164591@bugs.debian.org, 164889@bugs.debian.org, debian-dpkg@lists.debian.org
Subject: Re: md5sum <FILE produces spurious ` -' in output
Date: Tue, 22 Jun 2004 20:49:36 +0100
Adam Heath writes ("Re: md5sum <FILE produces spurious ` -' in output"):
> Please don't do anything to resolve this bug, until I have had time
> to write a proper reply.

How soon can we expect that to be ?

Adam Heath writes ("Re: md5sum <FILE produces spurious ` -' in output"):
> There are issues not discussed with the decision.

If they're relevant, it's a shame that you didn't raise them earlier.
Nevertheless, I look forward to hearing about them.

Ian.



Severity set to `important'. Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Changed Bug title. Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Tags added: pending Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Tags added: fixed-in-experimental Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Tags added: fixed-in-experimental Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Tags removed: pending Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Tags removed: pending Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Bug closed, send any further explanations to Eduard Bloch <blade@debian.org> Request was from Scott James Remnant <scott@netsplit.com> to control@bugs.debian.org. Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed Apr 23 14:42:19 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.