diff options
author | Werner Koch <wk@gnupg.org> | 2009-07-02 14:12:44 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2009-07-02 14:12:44 +0000 |
commit | ab9ff33b9b55db3077af87bf321937e3fd9826c8 (patch) | |
tree | f31e7adbb9cd16e69a9bba96cd85ace324394186 | |
parent | 72cf93388c0aedc50e66dc2ece236a919d4eaf42 (diff) | |
download | libgcrypt-ab9ff33b9b55db3077af87bf321937e3fd9826c8.tar.gz |
Get more in sync to the Fedora version.
-rw-r--r-- | random/ChangeLog | 6 | ||||
-rw-r--r-- | random/rndhw.c | 9 | ||||
-rw-r--r-- | src/ChangeLog | 3 | ||||
-rw-r--r-- | src/fips.c | 1 |
4 files changed, 13 insertions, 6 deletions
diff --git a/random/ChangeLog b/random/ChangeLog index c3bcb584..c64671c4 100644 --- a/random/ChangeLog +++ b/random/ChangeLog @@ -1,3 +1,7 @@ +2009-07-02 Werner Koch <wk@g10code.com> + + * rndhw.c (poll_padlock): Asm change from Fedora. + 2009-01-22 Werner Koch <wk@g10code.com> * random.c (_gcry_random_deinit_external_test): Do not return a @@ -125,4 +129,4 @@ This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -
\ No newline at end of file + diff --git a/random/rndhw.c b/random/rndhw.c index 2c78b47c..0961d106 100644 --- a/random/rndhw.c +++ b/random/rndhw.c @@ -41,8 +41,8 @@ static size_t poll_padlock (void (*add)(const void*, size_t, enum random_origins), enum random_origins origin, int fast) { - char buffer[64+8] __attribute__ ((aligned (8))); - char *p; + volatile char buffer[64+8] __attribute__ ((aligned (8))); + volatile char *p; unsigned int nbytes, status; /* Peter Gutmann's cryptlib tests again whether the RNG is enabled @@ -59,8 +59,7 @@ poll_padlock (void (*add)(const void*, size_t, enum random_origins), ("movl %1, %%edi\n\t" /* Set buffer. */ "xorl %%edx, %%edx\n\t" /* Request up to 8 bytes. */ ".byte 0x0f, 0xa7, 0xc0\n\t" /* XSTORE RNG. */ - "movl %%eax, %0\n" /* Return the status. */ - : "=g" (status) + : "=a" (status) : "g" (p) : "%edx", "%edi", "cc" ); @@ -88,7 +87,7 @@ poll_padlock (void (*add)(const void*, size_t, enum random_origins), if (nbytes) { - (*add) (buffer, nbytes, origin); + (*add) ((void*)buffer, nbytes, origin); wipememory (buffer, nbytes); } return nbytes; diff --git a/src/ChangeLog b/src/ChangeLog index 94cc4be9..f7bcc628 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2009-07-02 Werner Koch <wk@g10code.com> + * fips.c (_gcry_initialize_fips_mode): Do not use FIPS mode if + /proc/.../fips_enabled has insufficient permissions. + * dumpsexp.c (main): Fix handling multiple files. (parse_and_print): Implement hex and octal escaping. @@ -155,6 +155,7 @@ _gcry_initialize_fips_mode (int force) fclose (fp); } else if ((saved_errno = errno) != ENOENT + && saved_errno != EACCES && !access ("/proc/version", F_OK) ) { /* Problem reading the fips file despite that we have the proc |