mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
ready for a new release
This commit is contained in:
parent
a43709eb8a
commit
6ccf4e0f80
32 changed files with 470 additions and 164 deletions
18
g10/seskey.c
18
g10/seskey.c
|
@ -87,6 +87,24 @@ encode_session_key( DEK *dek, unsigned nbits )
|
|||
i = nframe - 6 - dek->keylen;
|
||||
assert( i > 0 );
|
||||
p = get_random_bits( i*8, 1, 1 );
|
||||
/* replace zero bytes by new values */
|
||||
for(;;) {
|
||||
int j, k;
|
||||
byte *pp;
|
||||
|
||||
/* count the zero bytes */
|
||||
for(j=k=0; j < i; j++ )
|
||||
if( !p[j] )
|
||||
k++;
|
||||
if( !k )
|
||||
break; /* okay: no zero bytes */
|
||||
k += k/128; /* better get some more */
|
||||
pp = get_random_bits( k*8, 1, 1);
|
||||
for(j=0; j < i && k ; j++ )
|
||||
if( !p[j] )
|
||||
p[j] = pp[--k];
|
||||
m_free(pp);
|
||||
}
|
||||
memcpy( frame+n, p, i );
|
||||
m_free(p);
|
||||
n += i;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue