[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#451355: ITP: libgfshare -- library and utilities for multi-way secret sharing



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

(Cc'ing the author)

On Thu, 15 Nov 2007 at 11:29:18 +0100, Soren Hansen wrote:
> I already packaged this in Ubuntu. Feel free to adopt it for Debian.

Having looked at the Ubuntu packaging, I'm somewhat concerned about it -
it seems you don't have the changes I made in upstream bzr to make
gfsplit cryptographically safe. In 1.0.2 it uses pseudo-random numbers from
rand() to do the splitting - I haven't proved whether any connection between
the "random" coefficients breaks the useful cryptographic properties of the
Shamir method, but I suspect it does, and my analysis of it
(doc/theory.tex in bzr) assumes that the random numbers used are uniform
and independent.

In upstream bzr I patched gfsplit to use /dev/urandom if it exists, and warn
if it doesn't; this is why I'm packaging a bzr snapshot rather than a
release. I've asked Daniel to make a 1.0.3 release, but presumably he's
been too busy recently.

The patch to gfcombine to support "-" as meaning standard output looks
reasonable, but I'm not sure what it's doing in Ubuntu but not
upstream... perhaps we could get that in 1.0.3. The patch is:

- --- libgfshare-1.0.2.orig/tools/gfcombine.c
+++ libgfshare-1.0.2/tools/gfcombine.c
@@ -88,9 +88,13 @@
   gfshare_ctx *G;
   unsigned int len1;
   
- -  outfile = fopen( outputfilename, "wb" );
+  if (strcmp(outputfilename, "-") == 0)
+    outfile = fdopen(STDOUT_FILENO, "w");
+  else 
+  	outfile = fopen( outputfilename, "wb" );
+
   if( outfile == NULL ) {
- -    perror(outputfilename);
+    perror((strcmp(outputfilename, "-") == 0) ? "standard out" : outputfilename);
     return 1;
   }
   for( i = 0; i < filecount; ++i ) {

although I'd be inclined to change it to just use stdout instead of fdopening
STDOUT_FILENO, and make the indentation consistent (the rest of the package
consistently uses 2 spaces, the "else" clause in the patch has a tab).

Regards,
    Simon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHPXFqWSc8zVUw7HYRAo3bAJ9LIJ+S7GUYs7feTpUgsJoI/ycVxQCeJ9oc
TguC+Rxp4KLY5Hn4ShgZCEE=
=Iqj7
-----END PGP SIGNATURE-----




Reply to: