Fwd: EccGnuPG Bug Report
Sergi Blanch i Torne
sbt at megacceso.com
Sat Mar 31 00:37:13 CEST 2007
Maybe, is there a solution (or this is what I want to try).
The problem was in the call to wipememory(_ptr,_len), exactly in the _len
parameter. With an 'sizeof _ptr', could be some architectures where it does
not work fine.
A candidate to patch is:
http://www.calcurco.cat/eccGnuPG/src/gnupg-1.4.7-ecc0.2.0beta2rc1.diff
http://www.calcurco.cat/eccGnuPG/src/gnupg-1.4.7-ecc0.1.7rc1.diff
As far as I know, the call to 'mpi_get_secure_buffer(MPI a,unsigned
*nbytes,int *sign)' that returns the pointer that will be wiped, also show
the size with in 'nbytes'. Then a call like 'wipememory(hash_inp_buf,nbytes)'
had the data from a previous call
like 'hash_inp_buf=mpi_get_secure_buffer(input,&nbytes,&sign);', isn't it?
Only one doubt. In the function 'sha256_hashing()' use two vbles related with
this problem: 'byte *hash_inp_buf;' and 'byte hash_out_buf[32];'. The first
one, use this call to 'mpi_get_secure_buffer()' does not need it. IMHO I
should be enough with 'wipememory(hash_out_buf,32*sizeof(byte));', isn't it?
I will wait for your comments
/Sergi.
A Divendres, 30 de Març de 2007 23:19, Sergi Blanch i Torne va escriure:
> Hi,
>
> To day I receive a bug report. The affected functions are not in the
> Libgcrypt port. The solution was discussed also to day with Timo, but the
> patch is not yet. Sorry, I will do as soon as possible.
>
> This bad use of the wipememory() function can be found in sha256_hashing()
> and aes256_{encrypting,decrypting}() functions.
>
> Oh, this bug affect also the other branch, the 0.1.
>
> Thanks Timo
>
> /Sergi.
>
> ---------- Missatge reenviat ----------
>
> Subject: EccGnuPG Bug Report
> Date: Divendres, 30 de Març de 2007 13:20
> From: Timo Schulz <twoaday at gmx.net>
> To: d4372211 at alumnes.eup.udl.es
>
> Hi,
>
> based on your 0.2.0beta1 patch, I'm couldn't find any information
> that this problem has been reported before, there is a 'bug' in
> the way you use the wipememory function:
>
> byte *hash_input_buf;
>
> wipememory( hash_inp_buf, sizeof hash_inp_buf );
>
>
> actually it should be
> wipememory (hash_inp_buf, nbytes);
> otherwise only sizeof (unsigned char *) == (4 or 8)
> bytes would be overwritten.
>
>
> Timo
>
> -------------------------------------------------------
>
>
> _______________________________________________
> Gnupg-devel mailing list
> Gnupg-devel at gnupg.org
> http://lists.gnupg.org/mailman/listinfo/gnupg-devel
More information about the Gnupg-devel
mailing list