mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
See ChangeLog: Thu Dec 10 20:15:36 CET 1998 Werner Koch
This commit is contained in:
parent
a45f824150
commit
af6e96e4f9
5
AUTHORS
5
AUTHORS
@ -55,6 +55,11 @@ pt_BR.po
|
|||||||
|
|
||||||
Other notes:
|
Other notes:
|
||||||
============
|
============
|
||||||
|
This program uses the zlib compression library written by
|
||||||
|
Jean-loup Gailly and Mark Adler.
|
||||||
|
|
||||||
|
Most of the stuff in mpi has been taken from the GMP library.
|
||||||
|
|
||||||
The file cipher/rndunix.c is heavily based on Peter Gutmann's
|
The file cipher/rndunix.c is heavily based on Peter Gutmann's
|
||||||
rndunix.c from cryptlib. - He promised to add the GPL as an alternative
|
rndunix.c from cryptlib. - He promised to add the GPL as an alternative
|
||||||
license to this and some other files. We don't have a dissclaimer for
|
license to this and some other files. We don't have a dissclaimer for
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* acinclude.m (GNUPG_CHECK_PIC): New
|
||||||
|
* configure.in, acinclude.m4: Renamed all WK_ to GNUPG_
|
||||||
|
|
||||||
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* VERSION: Set to 0.4.5
|
* VERSION: Set to 0.4.5
|
||||||
|
9
NEWS
9
NEWS
@ -1,3 +1,12 @@
|
|||||||
|
|
||||||
|
* --export does now only exports rfc2440 compatible keys; the
|
||||||
|
old behavious is available with --export-all.
|
||||||
|
Generation of v3 ElGamal (sign and encrypt) keys is not longer
|
||||||
|
supported.
|
||||||
|
|
||||||
|
* Fixed the uncompress bug.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 0.4.5
|
Noteworthy changes in version 0.4.5
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
1
THANKS
1
THANKS
@ -50,6 +50,7 @@ Michael Sobolev mss@despair.transas.com
|
|||||||
Nicolas Graner Nicolas.Graner@cri.u-psud.fr
|
Nicolas Graner Nicolas.Graner@cri.u-psud.fr
|
||||||
Niklas Hernaeus [Please don't spam him]
|
Niklas Hernaeus [Please don't spam him]
|
||||||
Nimrod Zimerman zimerman@forfree.at
|
Nimrod Zimerman zimerman@forfree.at
|
||||||
|
N J Doye nic@niss.ac.uk
|
||||||
Oskari Jääskeläinen f33003a@cc.hut.fi
|
Oskari Jääskeläinen f33003a@cc.hut.fi
|
||||||
Paul D. Smith psmith@baynetworks.com
|
Paul D. Smith psmith@baynetworks.com
|
||||||
Peter Gutmann pgut001@cs.auckland.ac.nz
|
Peter Gutmann pgut001@cs.auckland.ac.nz
|
||||||
|
19
TODO
19
TODO
@ -11,20 +11,11 @@
|
|||||||
a next pointer ro more records - check wehther the reuse code really
|
a next pointer ro more records - check wehther the reuse code really
|
||||||
works. Maybe this is the reason for the "Hmmm public key lost"
|
works. Maybe this is the reason for the "Hmmm public key lost"
|
||||||
|
|
||||||
* use zlib 1.1.13 to avoid a bug with 13 bit windows
|
|
||||||
but there are more problems with large files
|
|
||||||
|
|
||||||
* FreeBSD:
|
|
||||||
#define USE_DYNAMIC_LINKING
|
|
||||||
#define HAVE_DL_DLOPEN
|
|
||||||
and the ld option -export-dynamic.
|
|
||||||
Why does autoconf not figure that out?
|
|
||||||
|
|
||||||
* clearsig: keep lineendings as they are. Remember that trailings
|
* clearsig: keep lineendings as they are. Remember that trailings
|
||||||
blanks are not hashed.
|
blanks are not hashed.
|
||||||
|
|
||||||
* OpenBSD: dynamic loading with dlopen works on OpenBSD, but:
|
* OpenBSD: dynamic loading with dlopen works on OpenBSD, but:
|
||||||
OpenBSD binaries are a.out, so every symbol begins with "_"
|
OpenBSD binaries are a.out, so every symbol begins with "_"
|
||||||
|
|
||||||
* should we flush the getkey.c caches while doing an import?
|
* should we flush the getkey.c caches while doing an import?
|
||||||
|
|
||||||
@ -40,8 +31,6 @@
|
|||||||
|
|
||||||
* new menu to delete signatures and list signature in menu
|
* new menu to delete signatures and list signature in menu
|
||||||
|
|
||||||
* -rdynamic auf Solaris Problem
|
|
||||||
|
|
||||||
* Replace the SIGUSR1 stuff by semaphores to avoid loss of a signal.
|
* Replace the SIGUSR1 stuff by semaphores to avoid loss of a signal.
|
||||||
|
|
||||||
* add test cases for invalid data (scrambled armor or other random data)
|
* add test cases for invalid data (scrambled armor or other random data)
|
||||||
@ -66,3 +55,9 @@
|
|||||||
|
|
||||||
* Use "user ID", "trustdb", "NOTE" and "WARNING".
|
* Use "user ID", "trustdb", "NOTE" and "WARNING".
|
||||||
|
|
||||||
|
* Replace Blowfish by Twofish
|
||||||
|
|
||||||
|
* Print a warning when a experimental algorithm is used.
|
||||||
|
|
||||||
|
* Remove ElGamal signatures.
|
||||||
|
|
||||||
|
224
acinclude.m4
224
acinclude.m4
@ -1,41 +1,41 @@
|
|||||||
dnl macros to configure g10
|
dnl macros to configure g10
|
||||||
|
|
||||||
|
|
||||||
dnl WK_MSG_PRINT(STRING)
|
dnl GNUPG_MSG_PRINT(STRING)
|
||||||
dnl print a message
|
dnl print a message
|
||||||
dnl
|
dnl
|
||||||
define(WK_MSG_PRINT,
|
define(GNUPG_MSG_PRINT,
|
||||||
[ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
|
[ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME)
|
dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
|
||||||
dnl Check whether a typedef exists and create a #define $2 if it exists
|
dnl Check whether a typedef exists and create a #define $2 if it exists
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(WK_CHECK_TYPEDEF,
|
AC_DEFUN(GNUPG_CHECK_TYPEDEF,
|
||||||
[ AC_MSG_CHECKING(for $1 typedef)
|
[ AC_MSG_CHECKING(for $1 typedef)
|
||||||
AC_CACHE_VAL(wk_cv_typedef_$1,
|
AC_CACHE_VAL(gnupg_cv_typedef_$1,
|
||||||
[AC_TRY_COMPILE([#include <stdlib.h>
|
[AC_TRY_COMPILE([#include <stdlib.h>
|
||||||
#include <sys/types.h>], [
|
#include <sys/types.h>], [
|
||||||
#undef $1
|
#undef $1
|
||||||
int a = sizeof($1);
|
int a = sizeof($1);
|
||||||
], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
|
], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
|
||||||
AC_MSG_RESULT($wk_cv_typedef_$1)
|
AC_MSG_RESULT($gnupg_cv_typedef_$1)
|
||||||
if test "$wk_cv_typedef_$1" = yes; then
|
if test "$gnupg_cv_typedef_$1" = yes; then
|
||||||
AC_DEFINE($2)
|
AC_DEFINE($2)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dnl WK_LINK_FILES( SRC, DEST )
|
dnl GNUPG_LINK_FILES( SRC, DEST )
|
||||||
dnl same as AC_LINK_FILES, but collect the files to link in
|
dnl same as AC_LINK_FILES, but collect the files to link in
|
||||||
dnl some special variables and do the link
|
dnl some special variables and do the link
|
||||||
dnl when WK_DO_LINK_FILES is called
|
dnl when GNUPG_DO_LINK_FILES is called
|
||||||
dnl This is a workaround for AC_LINK_FILES, because it does not work
|
dnl This is a workaround for AC_LINK_FILES, because it does not work
|
||||||
dnl correct when using a caching scheme
|
dnl correct when using a caching scheme
|
||||||
dnl
|
dnl
|
||||||
define(WK_LINK_FILES,
|
define(GNUPG_LINK_FILES,
|
||||||
[ if test "x$wk_link_files_src" = "x"; then
|
[ if test "x$wk_link_files_src" = "x"; then
|
||||||
wk_link_files_src="$1"
|
wk_link_files_src="$1"
|
||||||
wk_link_files_dst="$2"
|
wk_link_files_dst="$2"
|
||||||
@ -44,21 +44,21 @@ define(WK_LINK_FILES,
|
|||||||
wk_link_files_dst="$wk_link_files_dst $2"
|
wk_link_files_dst="$wk_link_files_dst $2"
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
define(WK_DO_LINK_FILES,
|
define(GNUPG_DO_LINK_FILES,
|
||||||
[ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
|
[ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl WK_CHECK_ENDIAN
|
dnl GNUPG_CHECK_ENDIAN
|
||||||
dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
|
dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
|
||||||
dnl
|
dnl
|
||||||
define(WK_CHECK_ENDIAN,
|
define(GNUPG_CHECK_ENDIAN,
|
||||||
[ if test "$cross_compiling" = yes; then
|
[ if test "$cross_compiling" = yes; then
|
||||||
AC_MSG_WARN(cross compiling; assuming little endianess)
|
AC_MSG_WARN(cross compiling; assuming little endianess)
|
||||||
fi
|
fi
|
||||||
AC_MSG_CHECKING(endianess)
|
AC_MSG_CHECKING(endianess)
|
||||||
AC_CACHE_VAL(wk_cv_c_endian,
|
AC_CACHE_VAL(gnupg_cv_c_endian,
|
||||||
[ wk_cv_c_endian=unknown
|
[ gnupg_cv_c_endian=unknown
|
||||||
# See if sys/param.h defines the BYTE_ORDER macro.
|
# See if sys/param.h defines the BYTE_ORDER macro.
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
AC_TRY_COMPILE([#include <sys/types.h>
|
||||||
#include <sys/param.h>], [
|
#include <sys/param.h>], [
|
||||||
@ -69,8 +69,8 @@ define(WK_CHECK_ENDIAN,
|
|||||||
#include <sys/param.h>], [
|
#include <sys/param.h>], [
|
||||||
#if BYTE_ORDER != BIG_ENDIAN
|
#if BYTE_ORDER != BIG_ENDIAN
|
||||||
not big endian
|
not big endian
|
||||||
#endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
|
#endif], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)])
|
||||||
if test "$wk_cv_c_endian" = unknown; then
|
if test "$gnupg_cv_c_endian" = unknown; then
|
||||||
AC_TRY_RUN([main () {
|
AC_TRY_RUN([main () {
|
||||||
/* Are we little or big endian? From Harbison&Steele. */
|
/* Are we little or big endian? From Harbison&Steele. */
|
||||||
union
|
union
|
||||||
@ -81,27 +81,27 @@ define(WK_CHECK_ENDIAN,
|
|||||||
u.l = 1;
|
u.l = 1;
|
||||||
exit (u.c[sizeof (long) - 1] == 1);
|
exit (u.c[sizeof (long) - 1] == 1);
|
||||||
}],
|
}],
|
||||||
wk_cv_c_endian=little,
|
gnupg_cv_c_endian=little,
|
||||||
wk_cv_c_endian=big,
|
gnupg_cv_c_endian=big,
|
||||||
wk_cv_c_endian=little
|
gnupg_cv_c_endian=little
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
AC_MSG_RESULT([$wk_cv_c_endian])
|
AC_MSG_RESULT([$gnupg_cv_c_endian])
|
||||||
if test "$wk_cv_c_endian" = little; then
|
if test "$gnupg_cv_c_endian" = little; then
|
||||||
AC_DEFINE(LITTLE_ENDIAN_HOST)
|
AC_DEFINE(LITTLE_ENDIAN_HOST)
|
||||||
else
|
else
|
||||||
AC_DEFINE(BIG_ENDIAN_HOST)
|
AC_DEFINE(BIG_ENDIAN_HOST)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl WK_CHECK_CACHE
|
dnl GNUPG_CHECK_CACHE
|
||||||
dnl
|
dnl
|
||||||
define(WK_CHECK_CACHE,
|
define(GNUPG_CHECK_CACHE,
|
||||||
[ AC_MSG_CHECKING(cached information)
|
[ AC_MSG_CHECKING(cached information)
|
||||||
wk_hostcheck="$target"
|
gnupg_hostcheck="$target"
|
||||||
AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ])
|
AC_CACHE_VAL(gnupg_cv_hostcheck, [ gnupg_cv_hostcheck="$gnupg_hostcheck" ])
|
||||||
if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then
|
if test "$gnupg_cv_hostcheck" != "$gnupg_hostcheck"; then
|
||||||
AC_MSG_RESULT(changed)
|
AC_MSG_RESULT(changed)
|
||||||
AC_MSG_WARN(config.cache exists!)
|
AC_MSG_WARN(config.cache exists!)
|
||||||
AC_MSG_ERROR(you must do 'make distclean' first to compile for
|
AC_MSG_ERROR(you must do 'make distclean' first to compile for
|
||||||
@ -112,65 +112,138 @@ define(WK_CHECK_CACHE,
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Check for SysV IPC (from GIMP)
|
# Check for -fPIC etc (taken from libtool)
|
||||||
# And see whether we have a SHM_LOCK (FreeBSD does not have it).
|
# This sets CFLAGS_PIC to the required flags
|
||||||
|
# NO_PIC to yes if it is not possible to
|
||||||
|
# generate PIC
|
||||||
######################################################################
|
######################################################################
|
||||||
dnl WK_CHECK_IPC
|
dnl GNUPG_CHECK_PIC
|
||||||
dnl
|
dnl
|
||||||
define(WK_CHECK_IPC,
|
define(GNUPG_CHECK_PIC,
|
||||||
[ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
|
[ AC_MSG_CHECKING(for option to create PIC)
|
||||||
if test "$ac_cv_header_sys_shm_h" = "yes"; then
|
CFLAGS_PIC=
|
||||||
AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
|
NO_PIC=no
|
||||||
AC_TRY_RUN([
|
if test "$cross_compiling" = yes; then
|
||||||
#include <sys/types.h>
|
AC_MSG_RESULT(assume none)
|
||||||
#include <sys/ipc.h>
|
else
|
||||||
#include <sys/shm.h>
|
if test "$GCC" = yes; then
|
||||||
int main()
|
CFLAGS_PIC="-fPIC"
|
||||||
{
|
else
|
||||||
int id;
|
case "$host_os" in
|
||||||
char *shmaddr;
|
aix3* | aix4*)
|
||||||
id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
|
# All rs/6000 code is PIC
|
||||||
if (id == -1)
|
# but is there any non-rs/6000 AIX platform?
|
||||||
exit (2);
|
;;
|
||||||
shmaddr = shmat (id, 0, 0);
|
|
||||||
shmctl (id, IPC_RMID, 0);
|
hpux9* | hpux10*)
|
||||||
if ((char*) shmat (id, 0, 0) == (char*) -1)
|
CFLAGS_PIC="+Z"
|
||||||
{
|
;;
|
||||||
shmdt (shmaddr);
|
|
||||||
exit (1);
|
irix5* | irix6*)
|
||||||
}
|
# PIC (with -KPIC) is the default.
|
||||||
shmdt (shmaddr);
|
;;
|
||||||
shmdt (shmaddr);
|
|
||||||
exit (0);
|
osf3* | osf4*)
|
||||||
}
|
# FIXME - pic_flag is probably required for
|
||||||
],
|
# hppa*-osf* and i860-osf*
|
||||||
AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
|
;;
|
||||||
AC_MSG_RESULT(yes),
|
|
||||||
AC_MSG_RESULT(no),
|
sco3.2v5*)
|
||||||
AC_MSG_RESULT(assuming no))
|
CFLAGS_PIC='-Kpic'
|
||||||
AC_MSG_CHECKING(whether SHM_LOCK is available)
|
;;
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
|
||||||
#include <sys/ipc.h>
|
solaris2* | solaris7* )
|
||||||
#include <sys/shm.h>],[
|
CFLAGS_PIC='-KPIC'
|
||||||
int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); }
|
;;
|
||||||
],
|
|
||||||
AC_DEFINE(IPC_HAVE_SHM_LOCK)
|
sunos4*)
|
||||||
AC_MSG_RESULT(yes),
|
CFLAGS_PIC='-PIC'
|
||||||
AC_MSG_RESULT(no))
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NO_PIC=yes
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$host_cpu" in
|
||||||
|
rs6000 | powerpc | powerpcle)
|
||||||
|
# Yippee! All RS/6000 and PowerPC code is position-independent.
|
||||||
|
CFLAGS_PIC=""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "$NO_PIC" = yes; then
|
||||||
|
AC_MSG_RESULT(not possible)
|
||||||
|
else
|
||||||
|
if test -z "$CFLAGS_PIC"; then
|
||||||
|
AC_MSG_RESULT(none)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT($CFLAGS_PIC)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Check for SysV IPC (from GIMP)
|
||||||
|
# And see whether we have a SHM_LOCK (FreeBSD does not have it).
|
||||||
|
#####################################################################
|
||||||
|
dnl GNUPG_CHECK_IPC
|
||||||
|
dnl
|
||||||
|
define(GNUPG_CHECK_IPC,
|
||||||
|
[ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
|
||||||
|
if test "$ac_cv_header_sys_shm_h" = "yes"; then
|
||||||
|
AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
|
||||||
|
AC_TRY_RUN([
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/ipc.h>
|
||||||
|
#include <sys/shm.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
char *shmaddr;
|
||||||
|
id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
|
||||||
|
if (id == -1)
|
||||||
|
exit (2);
|
||||||
|
shmaddr = shmat (id, 0, 0);
|
||||||
|
shmctl (id, IPC_RMID, 0);
|
||||||
|
if ((char*) shmat (id, 0, 0) == (char*) -1)
|
||||||
|
{
|
||||||
|
shmdt (shmaddr);
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
shmdt (shmaddr);
|
||||||
|
shmdt (shmaddr);
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
],
|
||||||
|
AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
|
||||||
|
AC_MSG_RESULT(yes),
|
||||||
|
AC_MSG_RESULT(no),
|
||||||
|
AC_MSG_RESULT(assuming no))
|
||||||
|
AC_MSG_CHECKING(whether SHM_LOCK is available)
|
||||||
|
AC_TRY_COMPILE([#include <sys/types.h>
|
||||||
|
#include <sys/ipc.h>
|
||||||
|
#include <sys/shm.h>],[
|
||||||
|
int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); }
|
||||||
|
],
|
||||||
|
AC_DEFINE(IPC_HAVE_SHM_LOCK)
|
||||||
|
AC_MSG_RESULT(yes),
|
||||||
|
AC_MSG_RESULT(no))
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
|
# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
|
||||||
# is not called from uid 0 (not tested whether uid 0 works)
|
# is not called from uid 0 (not tested whether uid 0 works)
|
||||||
######################################################################
|
######################################################################
|
||||||
dnl WK_CHECK_MLOCK
|
dnl GNUPG_CHECK_MLOCK
|
||||||
dnl
|
dnl
|
||||||
define(WK_CHECK_MLOCK,
|
define(GNUPG_CHECK_MLOCK,
|
||||||
[ AC_CHECK_FUNCS(mlock)
|
[ AC_CHECK_FUNCS(mlock)
|
||||||
if test "$ac_cv_func_mlock" = "yes"; then
|
if test "$ac_cv_func_mlock" = "yes"; then
|
||||||
AC_MSG_CHECKING(whether mlock is broken)
|
AC_MSG_CHECKING(whether mlock is broken)
|
||||||
@ -533,3 +606,4 @@ strdup __argz_count __argz_stringify __argz_next])
|
|||||||
< $srcdir/po/POTFILES.in > po/POTFILES
|
< $srcdir/po/POTFILES.in > po/POTFILES
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl *-*wedit:notab*-* Please keep this as the last line.
|
||||||
|
@ -13,7 +13,6 @@ fi
|
|||||||
LANG=
|
LANG=
|
||||||
LANGUAGE=
|
LANGUAGE=
|
||||||
|
|
||||||
|
|
||||||
expect - <<EOF
|
expect - <<EOF
|
||||||
#set timeout -1
|
#set timeout -1
|
||||||
set timeout 8
|
set timeout 8
|
||||||
@ -22,9 +21,8 @@ spawn ../g10/gpg --no-batch --quick-random --homedir . --gen-key
|
|||||||
expect {
|
expect {
|
||||||
-exact "Please select what kind of key you want:\r
|
-exact "Please select what kind of key you want:\r
|
||||||
(1) DSA and ElGamal (default)\r
|
(1) DSA and ElGamal (default)\r
|
||||||
(2) ElGamal (sign and encrypt)\r
|
(2) DSA (sign only)\r
|
||||||
(4) DSA (sign only)\r
|
(4) ElGamal (sign and encrypt)\r
|
||||||
(5) ElGamal in a v3 packet\r
|
|
||||||
Your selection? " { send -- "1\r" }
|
Your selection? " { send -- "1\r" }
|
||||||
timeout { exit 1 } }
|
timeout { exit 1 } }
|
||||||
expect {
|
expect {
|
||||||
@ -105,3 +103,4 @@ expect {
|
|||||||
exit 1
|
exit 1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
#*-*wedit:notab*-*
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* dynload.c (load_extension): increased needed verbosity level.
|
||||||
|
|
||||||
|
* random.c (fast_random_poll): Fallback to a default fast random
|
||||||
|
poll function.
|
||||||
|
(read_random_source): Always use the faked entroy gatherer if no
|
||||||
|
gather module is available.
|
||||||
|
* rndlinux.c (fast_poll): Removed.
|
||||||
|
* rndunix.c (fast_poll): Removed.
|
||||||
|
|
||||||
|
|
||||||
Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de)
|
Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
* rand-*.c: Removed.
|
* rand-*.c: Removed.
|
||||||
|
@ -231,7 +231,7 @@ load_extension( EXTLIST el )
|
|||||||
name = (char**)addr;
|
name = (char**)addr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( g10_opt_verbose )
|
if( g10_opt_verbose > 1 )
|
||||||
log_info("%s: %s%s%s%s\n", el->name, *name,
|
log_info("%s: %s%s%s%s\n", el->name, *name,
|
||||||
el->hintstr? " (":"",
|
el->hintstr? " (":"",
|
||||||
el->hintstr? el->hintstr:"",
|
el->hintstr? el->hintstr:"",
|
||||||
@ -262,7 +262,7 @@ load_extension( EXTLIST el )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DL_DLOPEN
|
#ifdef HAVE_DL_DLOPEN
|
||||||
if( g10_opt_verbose > 1 ) {
|
if( g10_opt_verbose > 2 ) {
|
||||||
/* list the contents of the module */
|
/* list the contents of the module */
|
||||||
while( (sym = (*el->enumfunc)(0, &seq, &class, &vers)) ) {
|
while( (sym = (*el->enumfunc)(0, &seq, &class, &vers)) ) {
|
||||||
if( vers != 1 ) {
|
if( vers != 1 ) {
|
||||||
|
@ -32,6 +32,18 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#ifdef HAVE_GETHRTIME
|
||||||
|
#include <sys/times.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_GETTIMEOFDAY
|
||||||
|
#include <sys/times.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_GETRUSAGE
|
||||||
|
#include <sys/resource.h>
|
||||||
|
#endif
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "rmd.h"
|
#include "rmd.h"
|
||||||
#include "ttyio.h"
|
#include "ttyio.h"
|
||||||
@ -83,9 +95,7 @@ static void read_pool( byte *buffer, size_t length, int level );
|
|||||||
static void add_randomness( const void *buffer, size_t length, int source );
|
static void add_randomness( const void *buffer, size_t length, int source );
|
||||||
static void random_poll(void);
|
static void random_poll(void);
|
||||||
static void read_random_source( byte *buffer, size_t length, int level );
|
static void read_random_source( byte *buffer, size_t length, int level );
|
||||||
#ifndef HAVE_DEV_RANDOM
|
|
||||||
static int gather_faked( byte *buffer, size_t *r_length, int level );
|
static int gather_faked( byte *buffer, size_t *r_length, int level );
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -329,11 +339,39 @@ fast_random_poll()
|
|||||||
initialize();
|
initialize();
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
fnc = dynload_getfnc_fast_random_poll();
|
fnc = dynload_getfnc_fast_random_poll();
|
||||||
if( !fnc )
|
|
||||||
log_info("Ooops: No fast random poll function\n");
|
|
||||||
}
|
}
|
||||||
if( fnc )
|
if( fnc ) {
|
||||||
(*fnc)( add_randomness );
|
(*fnc)( add_randomness );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* fall back to the generic function */
|
||||||
|
#if HAVE_GETHRTIME
|
||||||
|
{ hrtime_t tv;
|
||||||
|
tv = gethrtime();
|
||||||
|
add_randomness( &tv, sizeof(tv), 1 );
|
||||||
|
}
|
||||||
|
#elif HAVE_GETTIMEOFDAY
|
||||||
|
{ struct timeval tv;
|
||||||
|
if( gettimeofday( &tv, NULL ) )
|
||||||
|
BUG();
|
||||||
|
add_randomness( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
|
||||||
|
add_randomness( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
|
||||||
|
}
|
||||||
|
#else /* use times */
|
||||||
|
{ struct tms buf;
|
||||||
|
times( &buf );
|
||||||
|
add_randomness( &buf, sizeof buf, 1 );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_GETRUSAGE
|
||||||
|
{ struct rusage buf;
|
||||||
|
if( getrusage( RUSAGE_SELF, &buf ) )
|
||||||
|
BUG();
|
||||||
|
add_randomness( &buf, sizeof buf, 1 );
|
||||||
|
memset( &buf, 0, sizeof buf );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -351,11 +389,7 @@ read_random_source( byte *buffer, size_t length, int level )
|
|||||||
fnc = dynload_getfnc_gather_random();
|
fnc = dynload_getfnc_gather_random();
|
||||||
if( !fnc ) {
|
if( !fnc ) {
|
||||||
faked_rng = 1;
|
faked_rng = 1;
|
||||||
#ifndef HAVE_DEV_RANDOM
|
|
||||||
fnc = gather_faked;
|
fnc = gather_faked;
|
||||||
#else
|
|
||||||
BUG();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while( length ) {
|
while( length ) {
|
||||||
@ -368,7 +402,6 @@ read_random_source( byte *buffer, size_t length, int level )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_DEV_RANDOM
|
|
||||||
static int
|
static int
|
||||||
gather_faked( byte *buffer, size_t *r_length, int level )
|
gather_faked( byte *buffer, size_t *r_length, int level )
|
||||||
{
|
{
|
||||||
@ -378,7 +411,7 @@ gather_faked( byte *buffer, size_t *r_length, int level )
|
|||||||
if( !initialized ) {
|
if( !initialized ) {
|
||||||
log_info(_("WARNING: using insecure random number generator!!\n"));
|
log_info(_("WARNING: using insecure random number generator!!\n"));
|
||||||
tty_printf(_("The random number generator is only a kludge to let\n"
|
tty_printf(_("The random number generator is only a kludge to let\n"
|
||||||
"it compile - it is in no way a strong RNG!\n\n"
|
"it run - it is in no way a strong RNG!\n\n"
|
||||||
"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n\n"));
|
"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n\n"));
|
||||||
initialized=1;
|
initialized=1;
|
||||||
#ifdef HAVE_RAND
|
#ifdef HAVE_RAND
|
||||||
@ -398,5 +431,3 @@ gather_faked( byte *buffer, size_t *r_length, int level )
|
|||||||
return 100; /* We really fake it ;-) */
|
return 100; /* We really fake it ;-) */
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* ! HAVE_DEV_RANDOM */
|
|
||||||
|
|
||||||
|
@ -27,15 +27,9 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#ifdef HAVE_GETHRTIME
|
|
||||||
#include <sys/times.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_GETTIMEOFDAY
|
#ifdef HAVE_GETTIMEOFDAY
|
||||||
#include <sys/times.h>
|
#include <sys/times.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_GETRUSAGE
|
|
||||||
#include <sys/resource.h>
|
|
||||||
#endif
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -61,38 +55,6 @@ static void tty_printf(const char *fmt, ... )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
fast_poll( void (*add)(const void*, size_t, int) )
|
|
||||||
{
|
|
||||||
#if HAVE_GETHRTIME
|
|
||||||
{ hrtime_t tv;
|
|
||||||
tv = gethrtime();
|
|
||||||
(*add)( &tv, sizeof(tv), 1 );
|
|
||||||
}
|
|
||||||
#elif HAVE_GETTIMEOFDAY
|
|
||||||
{ struct timeval tv;
|
|
||||||
if( gettimeofday( &tv, NULL ) )
|
|
||||||
BUG();
|
|
||||||
(*add)( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
|
|
||||||
(*add)( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
|
|
||||||
}
|
|
||||||
#else /* use times */
|
|
||||||
{ struct tms buf;
|
|
||||||
times( &buf );
|
|
||||||
(*add)( &buf, sizeof buf, 1 );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_GETRUSAGE
|
|
||||||
{ struct rusage buf;
|
|
||||||
if( getrusage( RUSAGE_SELF, &buf ) )
|
|
||||||
BUG();
|
|
||||||
(*add)( &buf, sizeof buf, 1 );
|
|
||||||
memset( &buf, 0, sizeof buf );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Used to open the Linux and xBSD /dev/random devices
|
* Used to open the Linux and xBSD /dev/random devices
|
||||||
@ -192,7 +154,6 @@ static struct {
|
|||||||
void *func;
|
void *func;
|
||||||
} func_table[] = {
|
} func_table[] = {
|
||||||
{ 40, 1, gather_random },
|
{ 40, 1, gather_random },
|
||||||
{ 41, 1, fast_poll },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -617,38 +617,6 @@ slowPoll(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
fast_poll( void (*add)(const void*, size_t, int) )
|
|
||||||
{
|
|
||||||
#if HAVE_GETHRTIME
|
|
||||||
{ hrtime_t tv;
|
|
||||||
tv = gethrtime();
|
|
||||||
(*add)( &tv, sizeof(tv), 1 );
|
|
||||||
}
|
|
||||||
#elif HAVE_GETTIMEOFDAY
|
|
||||||
{ struct timeval tv;
|
|
||||||
if( gettimeofday( &tv, NULL ) )
|
|
||||||
BUG();
|
|
||||||
(*add)( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
|
|
||||||
(*add)( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
|
|
||||||
}
|
|
||||||
#else /* use times */
|
|
||||||
{ struct tms buf;
|
|
||||||
times( &buf );
|
|
||||||
(*add)( &buf, sizeof buf, 1 );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_GETRUSAGE
|
|
||||||
{ struct rusage buf;
|
|
||||||
if( getrusage( RUSAGE_SELF, &buf ) )
|
|
||||||
BUG();
|
|
||||||
(*add)( &buf, sizeof buf, 1 );
|
|
||||||
memset( &buf, 0, sizeof buf );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
gather_random( byte *buffer, size_t *r_length, int level )
|
gather_random( byte *buffer, size_t *r_length, int level )
|
||||||
@ -698,7 +666,6 @@ static struct {
|
|||||||
void *func;
|
void *func;
|
||||||
} func_table[] = {
|
} func_table[] = {
|
||||||
{ 40, 1, gather_random },
|
{ 40, 1, gather_random },
|
||||||
{ 41, 1, fast_poll },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
|
55
configure.in
55
configure.in
@ -55,9 +55,13 @@ else
|
|||||||
fi
|
fi
|
||||||
if test "$use_m_guard" = yes ; then
|
if test "$use_m_guard" = yes ; then
|
||||||
AC_DEFINE(M_GUARD)
|
AC_DEFINE(M_GUARD)
|
||||||
CFLAGS="$CFLAGS -g -Wall"
|
CFLAGS="$CFLAGS -g"
|
||||||
else
|
else
|
||||||
CFLAGS="$CFLAGS -O2 -Wall"
|
CFLAGS="$CFLAGS -O2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$GCC" = yes; then
|
||||||
|
CFLAGS="$CFLAGS -Wall"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -87,7 +91,6 @@ AC_PROG_INSTALL
|
|||||||
AM_CYGWIN32
|
AM_CYGWIN32
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case "${target}" in
|
case "${target}" in
|
||||||
i386--mingw32)
|
i386--mingw32)
|
||||||
# special stuff for Windoze NT
|
# special stuff for Windoze NT
|
||||||
@ -108,6 +111,13 @@ case "${target}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
GNUPG_CHECK_PIC
|
||||||
|
if test "$NO_PIC" = yes; then
|
||||||
|
try_dynload=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
case "${target}" in
|
case "${target}" in
|
||||||
i386--mingw32)
|
i386--mingw32)
|
||||||
PRINTABLE_OS_NAME="MingW32"
|
PRINTABLE_OS_NAME="MingW32"
|
||||||
@ -131,7 +141,7 @@ case "${target}" in
|
|||||||
*)
|
*)
|
||||||
NAME_OF_DEV_RANDOM="/dev/random"
|
NAME_OF_DEV_RANDOM="/dev/random"
|
||||||
NAME_OF_DEV_URANDOM="/dev/urandom"
|
NAME_OF_DEV_URANDOM="/dev/urandom"
|
||||||
DYNLINK_MOD_CFLAGS="-shared -fPIC -lc"
|
DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC -lc"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
|
AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
|
||||||
@ -144,19 +154,20 @@ AM_GNU_GETTEXT
|
|||||||
|
|
||||||
AC_CHECK_LIB(gdbm,gdbm_firstkey)
|
AC_CHECK_LIB(gdbm,gdbm_firstkey)
|
||||||
|
|
||||||
|
|
||||||
if test "$try_dynload" = yes ; then
|
if test "$try_dynload" = yes ; then
|
||||||
AC_CHECK_LIB(dl,dlopen)
|
AC_CHECK_LIB(dl,dlopen)
|
||||||
if test "$ac_cv_lib_dl_dlopen" = "yes"; then
|
if test "$ac_cv_lib_dl_dlopen" = "yes"; then
|
||||||
AC_DEFINE(USE_DYNAMIC_LINKING)
|
AC_DEFINE(USE_DYNAMIC_LINKING)
|
||||||
AC_DEFINE(HAVE_DL_DLOPEN)
|
AC_DEFINE(HAVE_DL_DLOPEN)
|
||||||
DYNLINK_LDFLAGS=-rdynamic
|
DYNLINK_LDFLAGS="-Wl,-export-dynamic"
|
||||||
use_gnupg_extensions=yes
|
use_gnupg_extensions=yes
|
||||||
else
|
else
|
||||||
AC_CHECK_LIB(dld,dld_link)
|
AC_CHECK_LIB(dld,dld_link)
|
||||||
if test "$ac_cv_lib_dld_dld_link" = "yes"; then
|
if test "$ac_cv_lib_dld_dld_link" = "yes"; then
|
||||||
AC_DEFINE(USE_DYNAMIC_LINKING)
|
AC_DEFINE(USE_DYNAMIC_LINKING)
|
||||||
AC_DEFINE(HAVE_DLD_DLD_LINK)
|
AC_DEFINE(HAVE_DLD_DLD_LINK)
|
||||||
DYNLINK_LDFLAGS=-rdynamic
|
DYNLINK_LDFLAGS="-Wl,-export-dynamic"
|
||||||
use_gnupg_extensions=yes
|
use_gnupg_extensions=yes
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -185,14 +196,14 @@ AC_TYPE_SIZE_T
|
|||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
AC_DECL_SYS_SIGLIST
|
AC_DECL_SYS_SIGLIST
|
||||||
|
|
||||||
WK_CHECK_ENDIAN
|
GNUPG_CHECK_ENDIAN
|
||||||
|
|
||||||
|
|
||||||
WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
|
GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
|
||||||
WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
|
GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
|
||||||
WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
|
GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
|
||||||
WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
|
GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
|
||||||
WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
|
GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
|
||||||
|
|
||||||
AC_CHECK_SIZEOF(unsigned short, 2)
|
AC_CHECK_SIZEOF(unsigned short, 2)
|
||||||
AC_CHECK_SIZEOF(unsigned int, 4)
|
AC_CHECK_SIZEOF(unsigned int, 4)
|
||||||
@ -212,9 +223,9 @@ AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mmap)
|
|||||||
AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
|
AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
|
||||||
AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime)
|
AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime)
|
||||||
|
|
||||||
WK_CHECK_MLOCK
|
GNUPG_CHECK_MLOCK
|
||||||
|
|
||||||
WK_CHECK_IPC
|
GNUPG_CHECK_IPC
|
||||||
if test "$ac_cv_header_sys_shm_h" = "yes"; then
|
if test "$ac_cv_header_sys_shm_h" = "yes"; then
|
||||||
AC_DEFINE(USE_SHM_COPROCESSING)
|
AC_DEFINE(USE_SHM_COPROCESSING)
|
||||||
fi
|
fi
|
||||||
@ -239,7 +250,7 @@ dnl setup assembler stuff
|
|||||||
AC_MSG_CHECKING(for mpi assembler functions)
|
AC_MSG_CHECKING(for mpi assembler functions)
|
||||||
if test -f $srcdir/mpi/config.links ; then
|
if test -f $srcdir/mpi/config.links ; then
|
||||||
. $srcdir/mpi/config.links
|
. $srcdir/mpi/config.links
|
||||||
WK_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
|
GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
|
||||||
ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
|
ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
|
||||||
ac_cv_mpi_sflags="$mpi_sflags"
|
ac_cv_mpi_sflags="$mpi_sflags"
|
||||||
ac_cv_mpi_config_done="yes"
|
ac_cv_mpi_config_done="yes"
|
||||||
@ -250,9 +261,9 @@ else
|
|||||||
fi
|
fi
|
||||||
MPI_EXTRA_ASM_OBJS=""
|
MPI_EXTRA_ASM_OBJS=""
|
||||||
if test "$ac_cv_mpi_extra_asm_modules" != ""; then
|
if test "$ac_cv_mpi_extra_asm_modules" != ""; then
|
||||||
WK_MSG_PRINT([mpi extra asm functions:])
|
GNUPG_MSG_PRINT([mpi extra asm functions:])
|
||||||
for i in $ac_cv_mpi_extra_asm_modules; do
|
for i in $ac_cv_mpi_extra_asm_modules; do
|
||||||
WK_MSG_PRINT([$i])
|
GNUPG_MSG_PRINT([$i])
|
||||||
MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
|
MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
|
||||||
done
|
done
|
||||||
AC_MSG_RESULT()
|
AC_MSG_RESULT()
|
||||||
@ -266,8 +277,8 @@ dnl when compiling a conftest (due to the "-lz" from LIBS).
|
|||||||
if test "$g10_force_zlib" = "yes"; then
|
if test "$g10_force_zlib" = "yes"; then
|
||||||
ZLIBS="../zlib/libzlib.a"
|
ZLIBS="../zlib/libzlib.a"
|
||||||
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
||||||
WK_LINK_FILES(zlib/zlib.h, zlib.h )
|
GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
|
||||||
WK_LINK_FILES(zlib/zconf.h, zconf.h )
|
GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
|
||||||
else
|
else
|
||||||
AC_CHECK_HEADERS(zlib.h)
|
AC_CHECK_HEADERS(zlib.h)
|
||||||
if test "$ac_cv_header_zlib_h" = yes ; then
|
if test "$ac_cv_header_zlib_h" = yes ; then
|
||||||
@ -277,13 +288,13 @@ if test "$ac_cv_header_zlib_h" = yes ; then
|
|||||||
else
|
else
|
||||||
ZLIBS="../zlib/libzlib.a"
|
ZLIBS="../zlib/libzlib.a"
|
||||||
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
||||||
WK_LINK_FILES(zlib/zlib.h, zlib.h )
|
GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
|
||||||
WK_LINK_FILES(zlib/zconf.h, zconf.h )
|
GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AC_SUBST(ZLIBS)
|
AC_SUBST(ZLIBS)
|
||||||
|
|
||||||
WK_DO_LINK_FILES
|
GNUPG_DO_LINK_FILES
|
||||||
|
|
||||||
|
|
||||||
AC_OUTPUT([
|
AC_OUTPUT([
|
||||||
|
@ -1,3 +1,35 @@
|
|||||||
|
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* ringedit.c (gdbm_store): Fix for inserts
|
||||||
|
|
||||||
|
* g10.c (main): New option --export-all
|
||||||
|
* export.c (export_pubkeys): New arg.
|
||||||
|
(do_export): Now may skip old keys.
|
||||||
|
|
||||||
|
* status.c: Minor patches for Sun's cc
|
||||||
|
|
||||||
|
* keygen.c (ask_algo): Disabled v3 ElGamal choice, rearranged
|
||||||
|
the numbers. Add a warning question when a sign+encrypt key
|
||||||
|
is selected.
|
||||||
|
|
||||||
|
* g10.c (do_not_use_RSA): Removed.
|
||||||
|
* misc.c (print_pubkey_algo_note): New as replacement for the
|
||||||
|
do_not_use_RSA() and chnaged all callers.
|
||||||
|
(print_cipher_algo_note): New.
|
||||||
|
(print_hash_algo_note): New.
|
||||||
|
|
||||||
|
* cipher.c (write_header): Add a call to print_cipher_algo_note.
|
||||||
|
* seckey-cert.c (protect_secret_key): Ditto
|
||||||
|
* sign.c (do_sign): Add a call to print_digest_algo_note.
|
||||||
|
|
||||||
|
* getkey.c (get_long_user_id_string): New.
|
||||||
|
* mainproc.c (check_sig_and_print): Changed the format of the
|
||||||
|
status output.
|
||||||
|
|
||||||
|
* encrypt.c (write_pubkey_enc_from_list): print used symmetric cipher.
|
||||||
|
|
||||||
|
* pkclist.c (do_we_trust): Changed a message.
|
||||||
|
|
||||||
Wed Dec 9 13:41:06 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
Wed Dec 9 13:41:06 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* misc.c (trap_unaligned) [ALPHA]: Only if UAC_SIGBUS is defined.
|
* misc.c (trap_unaligned) [ALPHA]: Only if UAC_SIGBUS is defined.
|
||||||
|
@ -59,6 +59,7 @@ write_header( cipher_filter_context_t *cfx, IOBUF a )
|
|||||||
randomize_buffer( temp, blocksize, 1 );
|
randomize_buffer( temp, blocksize, 1 );
|
||||||
temp[blocksize] = temp[blocksize-2];
|
temp[blocksize] = temp[blocksize-2];
|
||||||
temp[blocksize+1] = temp[blocksize-1];
|
temp[blocksize+1] = temp[blocksize-1];
|
||||||
|
print_cipher_algo_note( cfx->dek->algo );
|
||||||
cfx->cipher_hd = cipher_open( cfx->dek->algo, CIPHER_MODE_AUTO_CFB, 1 );
|
cfx->cipher_hd = cipher_open( cfx->dek->algo, CIPHER_MODE_AUTO_CFB, 1 );
|
||||||
cipher_setkey( cfx->cipher_hd, cfx->dek->key, cfx->dek->keylen );
|
cipher_setkey( cfx->cipher_hd, cfx->dek->key, cfx->dek->keylen );
|
||||||
cipher_setiv( cfx->cipher_hd, NULL );
|
cipher_setiv( cfx->cipher_hd, NULL );
|
||||||
|
@ -379,8 +379,8 @@ write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out )
|
|||||||
MPI frame;
|
MPI frame;
|
||||||
|
|
||||||
pk = pk_list->pk;
|
pk = pk_list->pk;
|
||||||
if( is_RSA(pk->pubkey_algo) )
|
|
||||||
do_not_use_RSA();
|
print_pubkey_algo_note( pk->pubkey_algo );
|
||||||
enc = m_alloc_clear( sizeof *enc );
|
enc = m_alloc_clear( sizeof *enc );
|
||||||
enc->pubkey_algo = pk->pubkey_algo;
|
enc->pubkey_algo = pk->pubkey_algo;
|
||||||
keyid_from_pk( pk, enc->keyid );
|
keyid_from_pk( pk, enc->keyid );
|
||||||
@ -394,8 +394,9 @@ write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out )
|
|||||||
else {
|
else {
|
||||||
if( opt.verbose ) {
|
if( opt.verbose ) {
|
||||||
char *ustr = get_user_id_string( enc->keyid );
|
char *ustr = get_user_id_string( enc->keyid );
|
||||||
log_info(_("%s encrypted for: %s\n"),
|
log_info(_("%s/%s encrypted for: %s\n"),
|
||||||
pubkey_algo_to_string(enc->pubkey_algo), ustr );
|
pubkey_algo_to_string(enc->pubkey_algo),
|
||||||
|
cipher_algo_to_string(dek->algo), ustr );
|
||||||
m_free(ustr);
|
m_free(ustr);
|
||||||
}
|
}
|
||||||
/* and write it */
|
/* and write it */
|
||||||
|
26
g10/export.c
26
g10/export.c
@ -34,27 +34,28 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
|
||||||
static int do_export( STRLIST users, int secret );
|
static int do_export( STRLIST users, int secret, int onlyrfc );
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Export the public keys (to standard out or --output).
|
* Export the public keys (to standard out or --output).
|
||||||
* Depending on opt.armor the output is armored.
|
* Depending on opt.armor the output is armored.
|
||||||
|
* If onlyrfc is True only RFC24404 compatible keys are exported.
|
||||||
* If USERS is NULL, the complete ring will be exported.
|
* If USERS is NULL, the complete ring will be exported.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
export_pubkeys( STRLIST users )
|
export_pubkeys( STRLIST users, int onlyrfc )
|
||||||
{
|
{
|
||||||
return do_export( users, 0 );
|
return do_export( users, 0, onlyrfc );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
export_seckeys( STRLIST users )
|
export_seckeys( STRLIST users )
|
||||||
{
|
{
|
||||||
return do_export( users, 1 );
|
return do_export( users, 1, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
do_export( STRLIST users, int secret )
|
do_export( STRLIST users, int secret, int onlyrfc )
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
armor_filter_context_t afx;
|
armor_filter_context_t afx;
|
||||||
@ -110,7 +111,7 @@ do_export( STRLIST users, int secret )
|
|||||||
rc = secret? find_secret_keyblock_byname( &kbpos, sl->d )
|
rc = secret? find_secret_keyblock_byname( &kbpos, sl->d )
|
||||||
: find_keyblock_byname( &kbpos, sl->d );
|
: find_keyblock_byname( &kbpos, sl->d );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error("%s: user not found: %s\n", sl->d, g10_errstr(rc) );
|
log_error(_("%s: user not found: %s\n"), sl->d, g10_errstr(rc));
|
||||||
rc = 0;
|
rc = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -119,10 +120,21 @@ do_export( STRLIST users, int secret )
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error("certificate read problem: %s\n", g10_errstr(rc));
|
log_error(_("certificate read problem: %s\n"), g10_errstr(rc));
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* do not export keys which are incompatible with rfc2440 */
|
||||||
|
if( onlyrfc && (node = find_kbnode( keyblock, PKT_PUBLIC_KEY )) ) {
|
||||||
|
PKT_public_key *pk = node->pkt->pkt.public_key;
|
||||||
|
if( pk->version == 3 && pk->pubkey_algo > 3 ) {
|
||||||
|
log_info(_("key %08lX: not a rfc2440 key - skipped\n"),
|
||||||
|
(ulong)keyid_from_pk( pk, NULL) );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* and write it */
|
/* and write it */
|
||||||
for( kbctx=NULL; (node = walk_kbnode( keyblock, &kbctx, 0 )); ) {
|
for( kbctx=NULL; (node = walk_kbnode( keyblock, &kbctx, 0 )); ) {
|
||||||
/* don't export any comment packets but those in the
|
/* don't export any comment packets but those in the
|
||||||
|
19
g10/g10.c
19
g10/g10.c
@ -84,6 +84,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
aListSigs,
|
aListSigs,
|
||||||
aListSecretKeys,
|
aListSecretKeys,
|
||||||
aExport,
|
aExport,
|
||||||
|
aExportAll,
|
||||||
aExportSecret,
|
aExportSecret,
|
||||||
aCheckKeys,
|
aCheckKeys,
|
||||||
aGenRevoke,
|
aGenRevoke,
|
||||||
@ -180,7 +181,8 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ aEditKey, "edit-key" ,256, N_("sign or edit a key")},
|
{ aEditKey, "edit-key" ,256, N_("sign or edit a key")},
|
||||||
{ aGenRevoke, "gen-revoke",256, N_("generate a revocation certificate")},
|
{ aGenRevoke, "gen-revoke",256, N_("generate a revocation certificate")},
|
||||||
#endif
|
#endif
|
||||||
{ aExport, "export" , 256, N_("export keys") },
|
{ aExport, "export" , 256, N_("export keys") },
|
||||||
|
{ aExportAll, "export-all" , 256, "@" },
|
||||||
{ aExportSecret, "export-secret-keys" , 256, "@" },
|
{ aExportSecret, "export-secret-keys" , 256, "@" },
|
||||||
{ aImport, "import", 256 , N_("import/merge keys")},
|
{ aImport, "import", 256 , N_("import/merge keys")},
|
||||||
{ aFastImport, "fast-import", 256 , "@"},
|
{ aFastImport, "fast-import", 256 , "@"},
|
||||||
@ -634,6 +636,7 @@ main( int argc, char **argv )
|
|||||||
case aImport: set_cmd( &cmd, aImport); break;
|
case aImport: set_cmd( &cmd, aImport); break;
|
||||||
case aFastImport: set_cmd( &cmd, aFastImport); break;
|
case aFastImport: set_cmd( &cmd, aFastImport); break;
|
||||||
case aExport: set_cmd( &cmd, aExport); break;
|
case aExport: set_cmd( &cmd, aExport); break;
|
||||||
|
case aExportAll: set_cmd( &cmd, aExportAll); break;
|
||||||
case aListKeys: set_cmd( &cmd, aListKeys); break;
|
case aListKeys: set_cmd( &cmd, aListKeys); break;
|
||||||
case aListSigs: set_cmd( &cmd, aListSigs); break;
|
case aListSigs: set_cmd( &cmd, aListSigs); break;
|
||||||
case aExportSecret: set_cmd( &cmd, aExportSecret); break;
|
case aExportSecret: set_cmd( &cmd, aExportSecret); break;
|
||||||
@ -1084,10 +1087,11 @@ main( int argc, char **argv )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case aExport:
|
case aExport:
|
||||||
|
case aExportAll:
|
||||||
sl = NULL;
|
sl = NULL;
|
||||||
for( ; argc; argc--, argv++ )
|
for( ; argc; argc--, argv++ )
|
||||||
add_to_strlist( &sl, *argv );
|
add_to_strlist( &sl, *argv );
|
||||||
export_pubkeys( sl );
|
export_pubkeys( sl, (cmd == aExport) );
|
||||||
free_strlist(sl);
|
free_strlist(sl);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1315,17 +1319,6 @@ g10_exit( int rc )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
do_not_use_RSA()
|
|
||||||
{
|
|
||||||
static int did_rsa_note = 0;
|
|
||||||
|
|
||||||
if( !did_rsa_note ) {
|
|
||||||
did_rsa_note = 1;
|
|
||||||
log_info(_("RSA keys are deprecated; please consider "
|
|
||||||
"creating a new key and use this key in the future\n"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef IS_G10MAINT
|
#ifdef IS_G10MAINT
|
||||||
|
21
g10/getkey.c
21
g10/getkey.c
@ -1413,6 +1413,27 @@ get_user_id_string( u32 *keyid )
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char*
|
||||||
|
get_long_user_id_string( u32 *keyid )
|
||||||
|
{
|
||||||
|
user_id_db_t r;
|
||||||
|
char *p;
|
||||||
|
int pass=0;
|
||||||
|
/* try it two times; second pass reads from key resources */
|
||||||
|
do {
|
||||||
|
for(r=user_id_db; r; r = r->next )
|
||||||
|
if( r->keyid[0] == keyid[0] && r->keyid[1] == keyid[1] ) {
|
||||||
|
p = m_alloc( r->len + 20 );
|
||||||
|
sprintf(p, "%08lX%08lX %.*s",
|
||||||
|
(ulong)keyid[0], (ulong)keyid[1], r->len, r->name );
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
} while( ++pass < 2 && !get_pubkey( NULL, keyid ) );
|
||||||
|
p = m_alloc( 25 );
|
||||||
|
sprintf(p, "%08lX%08lX [?]", (ulong)keyid[0], (ulong)keyid[1] );
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
char*
|
char*
|
||||||
get_user_id( u32 *keyid, size_t *rn )
|
get_user_id( u32 *keyid, size_t *rn )
|
||||||
{
|
{
|
||||||
|
12
g10/gpgd.c
12
g10/gpgd.c
@ -258,18 +258,6 @@ g10_exit( int rc )
|
|||||||
exit(rc );
|
exit(rc );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
do_not_use_RSA()
|
|
||||||
{
|
|
||||||
static int did_rsa_note = 0;
|
|
||||||
|
|
||||||
if( !did_rsa_note ) {
|
|
||||||
did_rsa_note = 1;
|
|
||||||
log_info("RSA keys are depreciated; please consider "
|
|
||||||
"creating a new key and use this key in the future\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
become_daemon()
|
become_daemon()
|
||||||
|
@ -72,11 +72,17 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
|
|||||||
"does this but other OpenPGP implemenations are not required to understand\n"
|
"does this but other OpenPGP implemenations are not required to understand\n"
|
||||||
"the signature+encryption flavor.\n"
|
"the signature+encryption flavor.\n"
|
||||||
"The first (primary) key must always be a key which is capable of signing;\n"
|
"The first (primary) key must always be a key which is capable of signing;\n"
|
||||||
"this is the reason why the ecrytion only ElGamal key is disabled in this.\n"
|
"this is the reason why the ecrytion only ElGamal key is disabled in this."
|
||||||
"You should not select the \"ElGamal in a v3 packet\", because that key is\n"
|
|
||||||
"not compatible to other OpenPGP implementations."
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{ N_("keygen.algo.elg_se"),
|
||||||
|
"Although these keys are defined in RFC2440 they are not suggested\n"
|
||||||
|
"because they are not supported by all programs and signatures created\n"
|
||||||
|
"with them are quite large and very slow to verify."
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
{ N_("keygen.size"),
|
{ N_("keygen.size"),
|
||||||
"Enter the size of the key"
|
"Enter the size of the key"
|
||||||
},
|
},
|
||||||
|
@ -145,6 +145,7 @@ int get_seckey_byname( PKT_secret_key *sk, const char *name, int unlock );
|
|||||||
int enum_secret_keys( void **context, PKT_secret_key *sk, int with_subkeys );
|
int enum_secret_keys( void **context, PKT_secret_key *sk, int with_subkeys );
|
||||||
void merge_keys_and_selfsig( KBNODE keyblock );
|
void merge_keys_and_selfsig( KBNODE keyblock );
|
||||||
char*get_user_id_string( u32 *keyid );
|
char*get_user_id_string( u32 *keyid );
|
||||||
|
char*get_long_user_id_string( u32 *keyid );
|
||||||
char*get_user_id( u32 *keyid, size_t *rn );
|
char*get_user_id( u32 *keyid, size_t *rn );
|
||||||
|
|
||||||
/*-- keyid.c --*/
|
/*-- keyid.c --*/
|
||||||
|
19
g10/keygen.c
19
g10/keygen.c
@ -388,11 +388,13 @@ ask_algo( int *ret_v4, int addmode )
|
|||||||
tty_printf(_("Please select what kind of key you want:\n"));
|
tty_printf(_("Please select what kind of key you want:\n"));
|
||||||
if( !addmode )
|
if( !addmode )
|
||||||
tty_printf(_(" (%d) DSA and ElGamal (default)\n"), 1 );
|
tty_printf(_(" (%d) DSA and ElGamal (default)\n"), 1 );
|
||||||
tty_printf( _(" (%d) ElGamal (sign and encrypt)\n"), 2 );
|
tty_printf( _(" (%d) DSA (sign only)\n"), 2 );
|
||||||
if( addmode )
|
if( addmode )
|
||||||
tty_printf( _(" (%d) ElGamal (encrypt only)\n"), 3 );
|
tty_printf( _(" (%d) ElGamal (encrypt only)\n"), 3 );
|
||||||
tty_printf( _(" (%d) DSA (sign only)\n"), 4 );
|
tty_printf( _(" (%d) ElGamal (sign and encrypt)\n"), 4 );
|
||||||
|
#if 0
|
||||||
tty_printf( _(" (%d) ElGamal in a v3 packet\n"), 5 );
|
tty_printf( _(" (%d) ElGamal in a v3 packet\n"), 5 );
|
||||||
|
#endif
|
||||||
|
|
||||||
*ret_v4 = 1;
|
*ret_v4 = 1;
|
||||||
for(;;) {
|
for(;;) {
|
||||||
@ -404,23 +406,28 @@ ask_algo( int *ret_v4, int addmode )
|
|||||||
algo = 0; /* create both keys */
|
algo = 0; /* create both keys */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( algo == 2 ) {
|
else if( algo == 4 ) {
|
||||||
algo = PUBKEY_ALGO_ELGAMAL;
|
if( cpr_get_answer_is_yes("keygen.algo.elg_se",_(
|
||||||
break;
|
"Do you really want to create a sign and encrypt key? "))) {
|
||||||
|
algo = PUBKEY_ALGO_ELGAMAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if( algo == 3 && addmode ) {
|
else if( algo == 3 && addmode ) {
|
||||||
algo = PUBKEY_ALGO_ELGAMAL_E;
|
algo = PUBKEY_ALGO_ELGAMAL_E;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( algo == 4 ) {
|
else if( algo == 2 ) {
|
||||||
algo = PUBKEY_ALGO_DSA;
|
algo = PUBKEY_ALGO_DSA;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
else if( algo == 5 ) {
|
else if( algo == 5 ) {
|
||||||
algo = PUBKEY_ALGO_ELGAMAL_E;
|
algo = PUBKEY_ALGO_ELGAMAL_E;
|
||||||
*ret_v4 = 0;
|
*ret_v4 = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
tty_printf(_("Invalid selection.\n"));
|
tty_printf(_("Invalid selection.\n"));
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,9 @@ extern int g10_errors_seen;
|
|||||||
#else
|
#else
|
||||||
void g10_exit(int rc);
|
void g10_exit(int rc);
|
||||||
#endif
|
#endif
|
||||||
void do_not_use_RSA(void);
|
void print_pubkey_algo_note( int algo );
|
||||||
|
void print_cipher_algo_note( int algo );
|
||||||
|
void print_digest_algo_note( int algo );
|
||||||
|
|
||||||
/*-- misc.c --*/
|
/*-- misc.c --*/
|
||||||
void trap_unaligned(void);
|
void trap_unaligned(void);
|
||||||
@ -108,7 +110,7 @@ KBNODE make_mpi_comment_node( const char *s, MPI a );
|
|||||||
/*-- import.c --*/
|
/*-- import.c --*/
|
||||||
int import_keys( const char *filename, int fast );
|
int import_keys( const char *filename, int fast );
|
||||||
/*-- export.c --*/
|
/*-- export.c --*/
|
||||||
int export_pubkeys( STRLIST users );
|
int export_pubkeys( STRLIST users, int onlyrfc );
|
||||||
int export_seckeys( STRLIST users );
|
int export_seckeys( STRLIST users );
|
||||||
|
|
||||||
/* dearmor.c --*/
|
/* dearmor.c --*/
|
||||||
|
@ -841,7 +841,7 @@ check_sig_and_print( CTX c, KBNODE node )
|
|||||||
|
|
||||||
rc = do_check_sig(c, node, NULL );
|
rc = do_check_sig(c, node, NULL );
|
||||||
if( !rc || rc == G10ERR_BAD_SIGN ) {
|
if( !rc || rc == G10ERR_BAD_SIGN ) {
|
||||||
char *us = get_user_id_string( sig->keyid );
|
char *us = get_long_user_id_string( sig->keyid );
|
||||||
write_status_text( rc? STATUS_BADSIG : STATUS_GOODSIG, us );
|
write_status_text( rc? STATUS_BADSIG : STATUS_GOODSIG, us );
|
||||||
m_free(us);
|
m_free(us);
|
||||||
log_info(rc? _("BAD signature from \"")
|
log_info(rc? _("BAD signature from \"")
|
||||||
|
58
g10/misc.c
58
g10/misc.c
@ -187,3 +187,61 @@ buffer_to_u32( const byte *buffer )
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
no_exp_algo(void)
|
||||||
|
{
|
||||||
|
static int did_note = 0;
|
||||||
|
|
||||||
|
if( !did_note ) {
|
||||||
|
did_note = 1;
|
||||||
|
log_info(_("Experimental algorithms should not be used!\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
print_pubkey_algo_note( int algo )
|
||||||
|
{
|
||||||
|
if( algo >= 100 && algo <= 110 )
|
||||||
|
no_exp_algo();
|
||||||
|
else if( is_RSA( algo ) ) {
|
||||||
|
static int did_note = 0;
|
||||||
|
|
||||||
|
if( !did_note ) {
|
||||||
|
did_note = 1;
|
||||||
|
log_info(_("RSA keys are deprecated; please consider "
|
||||||
|
"creating a new key and use this key in the future\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
print_cipher_algo_note( int algo )
|
||||||
|
{
|
||||||
|
if( algo >= 100 && algo <= 110 )
|
||||||
|
no_exp_algo();
|
||||||
|
else if( algo == CIPHER_ALGO_3DES
|
||||||
|
|| algo == CIPHER_ALGO_CAST5
|
||||||
|
|| algo == CIPHER_ALGO_BLOWFISH
|
||||||
|
)
|
||||||
|
;
|
||||||
|
else {
|
||||||
|
static int did_note = 0;
|
||||||
|
|
||||||
|
if( !did_note ) {
|
||||||
|
did_note = 1;
|
||||||
|
log_info(_("This cipher algorithm is depreciated; "
|
||||||
|
"please use a more standard one!\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
print_digest_algo_note( int algo )
|
||||||
|
{
|
||||||
|
if( algo >= 100 && algo <= 110 )
|
||||||
|
no_exp_algo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
|
|||||||
|
|
||||||
case TRUST_ULTIMATE:
|
case TRUST_ULTIMATE:
|
||||||
if( opt.verbose )
|
if( opt.verbose )
|
||||||
log_info(_("This key belongs to us (we have the secret key)\n"));
|
log_info(_("This key belongs to us\n"));
|
||||||
return 1; /* yes */
|
return 1; /* yes */
|
||||||
|
|
||||||
default: BUG();
|
default: BUG();
|
||||||
|
@ -249,7 +249,7 @@ add_keyblock_resource( const char *url, int force, int secret )
|
|||||||
goto leave;
|
goto leave;
|
||||||
|
|
||||||
case rt_RING:
|
case rt_RING:
|
||||||
iobuf = iobuf_fopen( filename, "rb" );
|
iobuf = iobuf_open( filename );
|
||||||
if( !iobuf && !force ) {
|
if( !iobuf && !force ) {
|
||||||
rc = G10ERR_OPEN_FILE;
|
rc = G10ERR_OPEN_FILE;
|
||||||
goto leave;
|
goto leave;
|
||||||
@ -689,7 +689,7 @@ enum_keyblocks( int mode, KBPOS *kbpos, KBNODE *ret_root )
|
|||||||
kbpos->rt = resource_table[i].rt;
|
kbpos->rt = resource_table[i].rt;
|
||||||
switch( kbpos->rt ) {
|
switch( kbpos->rt ) {
|
||||||
case rt_RING:
|
case rt_RING:
|
||||||
kbpos->fp = iobuf_fopen( rentry->fname, "rb" );
|
kbpos->fp = iobuf_open( rentry->fname );
|
||||||
if( !kbpos->fp ) {
|
if( !kbpos->fp ) {
|
||||||
log_error("can't open '%s'\n", rentry->fname );
|
log_error("can't open '%s'\n", rentry->fname );
|
||||||
return G10ERR_OPEN_FILE;
|
return G10ERR_OPEN_FILE;
|
||||||
@ -1083,7 +1083,7 @@ keyring_read( KBPOS *kbpos, KBNODE *ret_root )
|
|||||||
if( !(rentry=check_pos(kbpos)) )
|
if( !(rentry=check_pos(kbpos)) )
|
||||||
return G10ERR_GENERAL;
|
return G10ERR_GENERAL;
|
||||||
|
|
||||||
a = iobuf_fopen( rentry->fname, "rb" );
|
a = iobuf_open( rentry->fname );
|
||||||
if( !a ) {
|
if( !a ) {
|
||||||
log_error("can't open '%s'\n", rentry->fname );
|
log_error("can't open '%s'\n", rentry->fname );
|
||||||
return G10ERR_OPEN_FILE;
|
return G10ERR_OPEN_FILE;
|
||||||
@ -1246,7 +1246,7 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root )
|
|||||||
log_fatal("can't lock '%s'\n", rentry->fname );
|
log_fatal("can't lock '%s'\n", rentry->fname );
|
||||||
|
|
||||||
/* open the source file */
|
/* open the source file */
|
||||||
fp = iobuf_fopen( rentry->fname, "rb" );
|
fp = iobuf_open( rentry->fname );
|
||||||
if( mode == 1 && !fp && errno == ENOENT ) { /* no file yet */
|
if( mode == 1 && !fp && errno == ENOENT ) { /* no file yet */
|
||||||
KBNODE kbctx, node;
|
KBNODE kbctx, node;
|
||||||
|
|
||||||
@ -1526,6 +1526,9 @@ do_gdbm_store( KBPOS *kbpos, KBNODE root, int update )
|
|||||||
content.dsize = iobuf_get_temp_length( fp );
|
content.dsize = iobuf_get_temp_length( fp );
|
||||||
rc = gdbm_store( rentry->dbf, key, content,
|
rc = gdbm_store( rentry->dbf, key, content,
|
||||||
update? GDBM_REPLACE : GDBM_INSERT );
|
update? GDBM_REPLACE : GDBM_INSERT );
|
||||||
|
if( rc == 1 && !update )
|
||||||
|
rc = gdbm_store( rentry->dbf, key, content, GDBM_REPLACE );
|
||||||
|
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error("%s: gdbm_store failed: %s\n", rentry->fname,
|
log_error("%s: gdbm_store failed: %s\n", rentry->fname,
|
||||||
rc == 1 ? "already stored"
|
rc == 1 ? "already stored"
|
||||||
|
@ -209,6 +209,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
|
|||||||
else if( cipher_get_blocksize( sk->protect.algo ) != 8 )
|
else if( cipher_get_blocksize( sk->protect.algo ) != 8 )
|
||||||
rc = G10ERR_CIPHER_ALGO; /* unsupport protection algorithm */
|
rc = G10ERR_CIPHER_ALGO; /* unsupport protection algorithm */
|
||||||
else {
|
else {
|
||||||
|
print_cipher_algo_note( sk->protect.algo );
|
||||||
cipher_hd = cipher_open( sk->protect.algo,
|
cipher_hd = cipher_open( sk->protect.algo,
|
||||||
CIPHER_MODE_AUTO_CFB, 1 );
|
CIPHER_MODE_AUTO_CFB, 1 );
|
||||||
if( cipher_setkey( cipher_hd, dek->key, dek->keylen ) )
|
if( cipher_setkey( cipher_hd, dek->key, dek->keylen ) )
|
||||||
|
@ -47,12 +47,12 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
|
|||||||
byte *dp;
|
byte *dp;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if( is_RSA(sk->pubkey_algo) )
|
print_pubkey_algo_note(sk->pubkey_algo);
|
||||||
do_not_use_RSA();
|
|
||||||
|
|
||||||
if( !digest_algo )
|
if( !digest_algo )
|
||||||
digest_algo = md_get_algo(md);
|
digest_algo = md_get_algo(md);
|
||||||
|
|
||||||
|
print_digest_algo_note( digest_algo );
|
||||||
dp = md_read( md, digest_algo );
|
dp = md_read( md, digest_algo );
|
||||||
sig->digest_algo = digest_algo;
|
sig->digest_algo = digest_algo;
|
||||||
sig->digest_start[0] = dp[0];
|
sig->digest_start[0] = dp[0];
|
||||||
|
@ -152,7 +152,8 @@ init_shm_coprocessing ( ulong requested_shm_size, int lock_mem )
|
|||||||
else
|
else
|
||||||
shm_is_locked = 1;
|
shm_is_locked = 1;
|
||||||
#elif defined(HAVE_MLOCK) && !defined(HAVE_BROKEN_MLOCK)
|
#elif defined(HAVE_MLOCK) && !defined(HAVE_BROKEN_MLOCK)
|
||||||
if ( mlock (shm_area, shm_size) )
|
/* (need the cast for Solaris with Sun's workshop compilers) */
|
||||||
|
if ( mlock ( (char*)shm_area, shm_size) )
|
||||||
log_info("locking shared memory %d failed: %s\n",
|
log_info("locking shared memory %d failed: %s\n",
|
||||||
shm_id, strerror(errno));
|
shm_id, strerror(errno));
|
||||||
else
|
else
|
||||||
@ -307,7 +308,8 @@ cpr_kill_prompt(void)
|
|||||||
if( opt.shm_coprocess )
|
if( opt.shm_coprocess )
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
return tty_kill_prompt();
|
tty_kill_prompt();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* *.po: Changed some english strings.
|
||||||
|
|
||||||
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* pt_BR.po: Add translation by Thiago Jung Bauermann.
|
* pt_BR.po: Add translation by Thiago Jung Bauermann.
|
||||||
|
426
po/es_ES.po
426
po/es_ES.po
File diff suppressed because it is too large
Load Diff
426
po/pt_BR.po
426
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,7 @@
|
|||||||
|
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* mpicalc.c (main): Moved initialization out of definition.
|
||||||
|
|
||||||
Mon May 18 15:39:22 1998 Werner Koch (wk@isil.d.shuttle.de)
|
Mon May 18 15:39:22 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
* mk-tdata.c: New.
|
* mk-tdata.c: New.
|
||||||
|
@ -211,12 +211,16 @@ main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
static ARGPARSE_OPTS opts[] = {
|
static ARGPARSE_OPTS opts[] = {
|
||||||
{0} };
|
{0} };
|
||||||
ARGPARSE_ARGS pargs = { &argc, &argv, 0 };
|
ARGPARSE_ARGS pargs;
|
||||||
int i, c;
|
int i, c;
|
||||||
int state = 0;
|
int state = 0;
|
||||||
char strbuf[1000];
|
char strbuf[1000];
|
||||||
int stridx=0;
|
int stridx=0;
|
||||||
|
|
||||||
|
pargs.argc = &argc;
|
||||||
|
pargs.argv = &argv;
|
||||||
|
pargs.flags = 0;
|
||||||
|
|
||||||
i18n_init();
|
i18n_init();
|
||||||
while( arg_parse( &pargs, opts) ) {
|
while( arg_parse( &pargs, opts) ) {
|
||||||
switch( pargs.r_opt ) {
|
switch( pargs.r_opt ) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user