mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-17 14:07:03 +01:00
See ChangeLog: Tue Jun 29 21:44:25 CEST 1999 Werner Koch
This commit is contained in:
parent
38c47646ea
commit
75ed03c960
11
ChangeLog
11
ChangeLog
@ -1,6 +1,15 @@
|
|||||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
* configure.in (use_local_zlib): The lost dollar is back.
|
||||||
|
|
||||||
|
* acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add EMX case.
|
||||||
|
* configure.in: Another variant of the MX vendor string
|
||||||
|
|
||||||
|
* configure.in (--with-capabilities): Some test code (Remi).
|
||||||
|
|
||||||
|
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Support for HPUX and IRIX.
|
* acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Support for HPUX and IRIX.
|
||||||
* configure.in (HAVE_DL_SHL_LOAD): New for HPUX (Dave Dykstra).
|
* configure.in (HAVE_DL_SHL_LOAD): New for HPUX (Dave Dykstra).
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
#if COMPILE_LIBGCRYPT
|
if COMPILE_LIBGCRYPT
|
||||||
#gcrypt = gcrypt
|
gcrypt = gcrypt
|
||||||
#else
|
else
|
||||||
gcrypt =
|
gcrypt =
|
||||||
#endif
|
endif
|
||||||
|
|
||||||
SUBDIRS = intl zlib util mpi cipher tools g10 po doc checks ${gcrypt}
|
SUBDIRS = intl zlib util mpi cipher tools g10 po doc checks ${gcrypt}
|
||||||
EXTRA_DIST = VERSION PROJECTS BUGS
|
EXTRA_DIST = VERSION PROJECTS BUGS
|
||||||
|
4
NEWS
4
NEWS
@ -1,3 +1,7 @@
|
|||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 0.9.8
|
Noteworthy changes in version 0.9.8
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
8
TODO
8
TODO
@ -6,16 +6,10 @@
|
|||||||
|
|
||||||
* Speed up calculation of key validity.
|
* Speed up calculation of key validity.
|
||||||
|
|
||||||
* See why we always get this "Hmmm, public key not anymore available"
|
|
||||||
Rewrite that stuff.
|
|
||||||
|
|
||||||
* print a warning when a revoked/expired _secret_ key is used.
|
* print a warning when a revoked/expired _secret_ key is used.
|
||||||
|
|
||||||
* remove more "Fixmes"
|
* remove more "Fixmes"
|
||||||
|
|
||||||
* Use capabilities if available. glibc2 does not support it yet?
|
|
||||||
What about 2.2 or should we use the system calls directly?
|
|
||||||
|
|
||||||
* when decryptiong multiple key: print a warning only if no usable pubkey
|
* when decryptiong multiple key: print a warning only if no usable pubkey
|
||||||
encrypt package was found. Extension: display a list of all recipients.
|
encrypt package was found. Extension: display a list of all recipients.
|
||||||
|
|
||||||
@ -29,8 +23,6 @@
|
|||||||
|
|
||||||
* convert the given user ID to UTF-8 and add an option to suppress this.
|
* convert the given user ID to UTF-8 and add an option to suppress this.
|
||||||
|
|
||||||
* A way to disable keys.
|
|
||||||
|
|
||||||
|
|
||||||
Nice to have
|
Nice to have
|
||||||
------------
|
------------
|
||||||
|
@ -92,6 +92,7 @@
|
|||||||
* with special properties like no file modes */
|
* with special properties like no file modes */
|
||||||
#undef HAVE_DOSISH_SYSTEM
|
#undef HAVE_DOSISH_SYSTEM
|
||||||
|
|
||||||
|
#undef USE_CAPABILITIES
|
||||||
|
|
||||||
|
|
||||||
@BOTTOM@
|
@BOTTOM@
|
||||||
|
23
acinclude.m4
23
acinclude.m4
@ -560,11 +560,20 @@ AC_CHECK_TOOL(AS, as, false)
|
|||||||
# GNUPG_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
|
# GNUPG_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
|
||||||
# with an underscore?
|
# with an underscore?
|
||||||
AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
|
AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
|
||||||
[if test "$cross_compiling" = yes; then
|
[ac_cv_sys_symbol_underscore="check"
|
||||||
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
case "${target}" in
|
||||||
ac_cv_sys_symbol_underscore=yes
|
i386-emx-os2 | i[3456]86-pc-os2*emx )
|
||||||
AC_MSG_RESULT(assume yes)
|
ac_cv_sys_symbol_underscore=yes
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
|
if test "$cross_compiling" = yes; then
|
||||||
|
ac_cv_sys_symbol_underscore=yes
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "$ac_cv_sys_symbol_underscore" = "check"; then
|
||||||
|
ac_cv_sys_symbol_underscore=""
|
||||||
AC_REQUIRE([GNUPG_PROG_NM])dnl
|
AC_REQUIRE([GNUPG_PROG_NM])dnl
|
||||||
AC_REQUIRE([GNUPG_SYS_NM_PARSE])dnl
|
AC_REQUIRE([GNUPG_SYS_NM_PARSE])dnl
|
||||||
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
||||||
@ -597,8 +606,10 @@ else
|
|||||||
fi
|
fi
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
])
|
])
|
||||||
AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
|
else
|
||||||
|
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
||||||
fi
|
fi
|
||||||
|
AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
|
||||||
if test x$ac_cv_sys_symbol_underscore = xyes; then
|
if test x$ac_cv_sys_symbol_underscore = xyes; then
|
||||||
AC_DEFINE(WITH_SYMBOL_UNDERSCORE,1,
|
AC_DEFINE(WITH_SYMBOL_UNDERSCORE,1,
|
||||||
[define if compiled symbols have a leading underscore])
|
[define if compiled symbols have a leading underscore])
|
||||||
|
77
configure.in
77
configure.in
@ -102,16 +102,25 @@ AC_ARG_WITH(included-zlib,
|
|||||||
[g10_force_zlib=yes], [g10_force_zlib=no] )
|
[g10_force_zlib=yes], [g10_force_zlib=no] )
|
||||||
AC_MSG_RESULT($g10_force_zlib)
|
AC_MSG_RESULT($g10_force_zlib)
|
||||||
|
|
||||||
dnl This does not work because automakes install tareget still needs libtool
|
dnl
|
||||||
dnl dnl
|
dnl Check wether we want to compile libgcrypt
|
||||||
dnl dnl Check wether we want to compile libgcrypt
|
dnl
|
||||||
dnl dnl
|
AC_MSG_CHECKING([whether compilation of libgcrypt is requested])
|
||||||
dnl AC_MSG_CHECKING([whether compilation of libgcrypt is requested])
|
AC_ARG_ENABLE(libgcrypt,
|
||||||
dnl AC_ARG_ENABLE(libgcrypt,
|
[ --enable-libgcrypt compile the libgcrypt [default=no]],
|
||||||
dnl [ --enable-libgcrypt compile the libgcrypt [default=no]],
|
[compile_libgcrypt="$enableval"],[compile_libgcrypt=no])
|
||||||
dnl [compile_libgcrypt="$enableval"],[compile_libgcrypt=no])
|
AM_CONDITIONAL(COMPILE_LIBGCRYPT, test x$compile_libgcrypt = xyes)
|
||||||
dnl AM_CONDITIONAL(COMPILE_LIBGCRYPT, test x$compile_libgcrypt = xyes)
|
AC_MSG_RESULT($compile_libgcrypt)
|
||||||
dnl AC_MSG_RESULT($compile_libgcrypt)
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check whether we want to use Linux capabilities
|
||||||
|
dnl
|
||||||
|
AC_MSG_CHECKING([whether use of capabilities is requested])
|
||||||
|
AC_ARG_WITH(capabilities,
|
||||||
|
[ --with-capabilities use linux capabilities [default=no]],
|
||||||
|
[use_capabilities="$withval"],[use_capabilities=no])
|
||||||
|
AC_MSG_RESULT($use_capabilities)
|
||||||
|
|
||||||
|
|
||||||
dnl Checks for programs.
|
dnl Checks for programs.
|
||||||
@ -135,12 +144,11 @@ AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
|
|||||||
AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
|
AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
dnl if test x$compile_libgcrypt = xyes; then
|
dnl Don't default to build shared libs
|
||||||
dnl dnl Don't default to build shared libs
|
dnl
|
||||||
dnl AM_DISABLE_SHARED
|
AM_DISABLE_SHARED
|
||||||
dnl AM_PROG_LIBTOOL
|
AM_PROG_LIBTOOL
|
||||||
dnl fi
|
|
||||||
|
|
||||||
|
|
||||||
MPI_OPT_FLAGS=""
|
MPI_OPT_FLAGS=""
|
||||||
@ -165,7 +173,7 @@ case "${target}" in
|
|||||||
try_gettext="no"
|
try_gettext="no"
|
||||||
try_gdbm="no"
|
try_gdbm="no"
|
||||||
;;
|
;;
|
||||||
i386-emx-os2 | i[3456]86-pc-os2emx )
|
i386-emx-os2 | i[3456]86-pc-os2*emx )
|
||||||
# OS/2 with the EMX environment
|
# OS/2 with the EMX environment
|
||||||
ac_cv_have_dev_random=no
|
ac_cv_have_dev_random=no
|
||||||
AC_DEFINE(HAVE_DRIVE_LETTERS)
|
AC_DEFINE(HAVE_DRIVE_LETTERS)
|
||||||
@ -173,6 +181,7 @@ case "${target}" in
|
|||||||
try_gettext="no"
|
try_gettext="no"
|
||||||
try_gdbm="no"
|
try_gdbm="no"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*-*-hpux*)
|
*-*-hpux*)
|
||||||
if test -z "$GCC" ; then
|
if test -z "$GCC" ; then
|
||||||
CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
|
CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
|
||||||
@ -204,7 +213,7 @@ case "${target}" in
|
|||||||
i386--mingw32)
|
i386--mingw32)
|
||||||
PRINTABLE_OS_NAME="MingW32"
|
PRINTABLE_OS_NAME="MingW32"
|
||||||
;;
|
;;
|
||||||
i386-emx-os2 | i[3456]86-pc-os2emx)
|
i386-emx-os2 | i[3456]86-pc-os2*emx )
|
||||||
PRINTABLE_OS_NAME="OS/2"
|
PRINTABLE_OS_NAME="OS/2"
|
||||||
;;
|
;;
|
||||||
*-linux*)
|
*-linux*)
|
||||||
@ -356,12 +365,38 @@ fi
|
|||||||
|
|
||||||
dnl Checks for library functions.
|
dnl Checks for library functions.
|
||||||
AC_FUNC_VPRINTF
|
AC_FUNC_VPRINTF
|
||||||
AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mmap)
|
AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp 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 nl_langinfo)
|
AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo)
|
||||||
|
|
||||||
GNUPG_CHECK_MLOCK
|
GNUPG_CHECK_MLOCK
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check whether we can use Linux capabilities as requested
|
||||||
|
dnl
|
||||||
|
if test "$use_capabilities" = "yes" ; then
|
||||||
|
use_capabilities=no
|
||||||
|
AC_CHECK_HEADERS(sys/capability.h)
|
||||||
|
if test "$ac_cv_header_sys_capability_h" = "yes" ; then
|
||||||
|
AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
|
||||||
|
if test "$ac_cv_lib_cap_cap_init" = "yes"; then
|
||||||
|
AC_DEFINE(USE_CAPABILITIES)
|
||||||
|
use_capabilities=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "$use_capabilities" = "no" ; then
|
||||||
|
AC_MSG_WARN([[
|
||||||
|
*** The use of capabilities on this system is not possible.
|
||||||
|
*** You need a recent Linux kernel and some patches:
|
||||||
|
*** fcaps-2.2.9-990610.patch (kernel patch for 2.2.9)
|
||||||
|
*** fcap-module-990613.tar.gz (kernel module)
|
||||||
|
*** libcap-1.92.tar.gz (user mode library and utilities)
|
||||||
|
*** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
|
||||||
|
*** set (filesystems menu). Be warned: This code is *really* ALPHA.]])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
GNUPG_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)
|
||||||
@ -415,7 +450,7 @@ if test "$use_static_rnd" = default; then
|
|||||||
i386--mingw32)
|
i386--mingw32)
|
||||||
static_modules="$static_modules rndw32"
|
static_modules="$static_modules rndw32"
|
||||||
;;
|
;;
|
||||||
i386-emx-os2|i[3456]86-pc-os2emx)
|
i386-emx-os2|i[3456]86-pc-os2*emx)
|
||||||
static_modules="$static_modules rndos2"
|
static_modules="$static_modules rndos2"
|
||||||
;;
|
;;
|
||||||
m68k-atari-mint)
|
m68k-atari-mint)
|
||||||
@ -541,7 +576,7 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "use_local_zlib" = yes ; then
|
if test "$use_local_zlib" = yes ; then
|
||||||
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
|
||||||
GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
|
GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
|
||||||
GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
|
GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
|
||||||
|
26
debian/changelog
vendored
26
debian/changelog
vendored
@ -1,3 +1,29 @@
|
|||||||
|
gnupg (0.9.8-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
* debian/rules (binary-arch): don't create a gpgm manpage as the binary
|
||||||
|
no longer exists. Noticed by Wichert Akkerman
|
||||||
|
<wichert@cs.leidenuniv.nl>. [#38864]
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Sun, 27 Jun 1999 01:07:58 +0100
|
||||||
|
|
||||||
|
gnupg (0.9.7-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Tue, 25 May 1999 13:23:24 +0100
|
||||||
|
|
||||||
|
gnupg (0.9.6-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
* debian/copyright: update version number, noticed by Lazarus Long
|
||||||
|
<lazarus@frontiernet.net>.
|
||||||
|
* debian/control (Depends): depend on makedev (>= 2.3.1-13) to ensure
|
||||||
|
that /dev/urandom exists; reported by Steffen Markert
|
||||||
|
<smort@rz.tu-ilmenau.de>. [#32076]
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Tue, 11 May 1999 21:06:27 +0100
|
||||||
|
|
||||||
gnupg (0.9.5-1) unstable; urgency=low
|
gnupg (0.9.5-1) unstable; urgency=low
|
||||||
|
|
||||||
* New upstream version.
|
* New upstream version.
|
||||||
|
2
debian/control
vendored
2
debian/control
vendored
@ -6,7 +6,7 @@ Standards-Version: 2.5.0.0
|
|||||||
|
|
||||||
Package: gnupg
|
Package: gnupg
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}
|
Depends: ${shlibs:Depends}, makedev (>= 2.3.1-13)
|
||||||
Description: GNU privacy guard - a free PGP replacement.
|
Description: GNU privacy guard - a free PGP replacement.
|
||||||
GnuPG is the GNU encryption and signing tool. As you can see from the
|
GnuPG is the GNU encryption and signing tool. As you can see from the
|
||||||
version number, the program may have some bugs and some features may not
|
version number, the program may have some bugs and some features may not
|
||||||
|
4
debian/copyright
vendored
4
debian/copyright
vendored
@ -4,14 +4,14 @@ have some bugs and some features may not work at all.
|
|||||||
|
|
||||||
This package was put together by me, James Troup
|
This package was put together by me, James Troup
|
||||||
<james@nocrew.org>, from the sources, which I obtained from
|
<james@nocrew.org>, from the sources, which I obtained from
|
||||||
ftp://ftp.gnupg.org/pub/gcrypt/gnupg-0.9.2.tar.gz. The changes were
|
ftp://ftp.gnupg.org/pub/gcrypt/gnupg-0.9.8.tar.gz. The changes were
|
||||||
minimal, namely:
|
minimal, namely:
|
||||||
|
|
||||||
- adding support for the Debian package maintenance scheme, by adding
|
- adding support for the Debian package maintenance scheme, by adding
|
||||||
various debian/* files.
|
various debian/* files.
|
||||||
|
|
||||||
Program Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
Program Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||||
Modifications for Debian Copyright (C) 1998 James Troup.
|
Modifications for Debian Copyright (C) 1998,1999 James Troup.
|
||||||
|
|
||||||
GNUPG is free software; you can redistribute it and/or modify
|
GNUPG is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
4
debian/rules
vendored
4
debian/rules
vendored
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
# debian/rules file - for GNUPG (0.9.4)
|
# debian/rules file - for GNUPG (0.9.8)
|
||||||
# Based on sample debian/rules file - for GNU Hello (1.3).
|
# Based on sample debian/rules file - for GNU Hello (1.3).
|
||||||
# Copyright 1994,1995 by Ian Jackson.
|
# Copyright 1994,1995 by Ian Jackson.
|
||||||
# Copyright 1998 James Troup
|
# Copyright 1998 James Troup
|
||||||
@ -34,9 +34,7 @@ binary-arch: checkroot build # test
|
|||||||
install -d debian/tmp/DEBIAN/
|
install -d debian/tmp/DEBIAN/
|
||||||
install -m 755 debian/preinst debian/tmp/DEBIAN/preinst
|
install -m 755 debian/preinst debian/tmp/DEBIAN/preinst
|
||||||
$(MAKE) prefix=`pwd`/debian/tmp/usr install
|
$(MAKE) prefix=`pwd`/debian/tmp/usr install
|
||||||
rm debian/tmp/usr/man/man1/gpgm.1
|
|
||||||
gzip -9v debian/tmp/usr/man/man1/*
|
gzip -9v debian/tmp/usr/man/man1/*
|
||||||
ln -s gpg.1.gz debian/tmp/usr/man/man1/gpgm.1.gz
|
|
||||||
strip debian/tmp/usr/bin/*
|
strip debian/tmp/usr/bin/*
|
||||||
strip --strip-unneeded debian/tmp/usr/lib/gnupg/*
|
strip --strip-unneeded debian/tmp/usr/lib/gnupg/*
|
||||||
install -d debian/tmp/usr/doc/gnupg/
|
install -d debian/tmp/usr/doc/gnupg/
|
||||||
|
@ -238,8 +238,9 @@ the DB is always of type 2 and this is the only record of this type.
|
|||||||
1 byte ownertrust
|
1 byte ownertrust
|
||||||
1 byte dirflag
|
1 byte dirflag
|
||||||
1 byte maximum validity of all the user ids
|
1 byte maximum validity of all the user ids
|
||||||
4 byte time of last validity check.
|
1 u32 time of last validity check.
|
||||||
15 byte reserved
|
1 u32 Must check when this time has been reached.
|
||||||
|
(0 = no check required)
|
||||||
|
|
||||||
|
|
||||||
Record type 3: (key record)
|
Record type 3: (key record)
|
||||||
|
2
doc/FAQ
2
doc/FAQ
@ -191,6 +191,8 @@
|
|||||||
u = The key is ultimately trusted; this
|
u = The key is ultimately trusted; this
|
||||||
is only used for keys for which
|
is only used for keys for which
|
||||||
the secret key is also available.
|
the secret key is also available.
|
||||||
|
r = The key has been revoked
|
||||||
|
d = The key has been disabled
|
||||||
|
|
||||||
The value in the "pub" record is the best one of all "uid" records.
|
The value in the "pub" record is the best one of all "uid" records.
|
||||||
|
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
* trustdb.h (TRUST_FLAG_DISABLED): New.
|
||||||
|
|
||||||
|
* status.c (USE_CAPABILITIES): Capabilities support (Remi).
|
||||||
|
|
||||||
|
* tdbio.c : Added new fields to the DIR record.
|
||||||
|
(tdbio_write_record): Fixed the update of the hash tables.
|
||||||
|
(tdbio_delete_record): Drop the record from the hash tables.
|
||||||
|
(drop_from_hashtbl): New.
|
||||||
|
|
||||||
|
* status.c (cpr_get): Special online help mode.
|
||||||
|
* helptext.c ("keyedit.cmd"): Removed.
|
||||||
|
* keyedit.c (keyedit_menu): Use only help system.
|
||||||
|
(enable_disable_key): New bit doies not yet work.
|
||||||
|
|
||||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,10 +146,6 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
{ N_("keyedit.cmd"),
|
|
||||||
"Please enter \"help\" to see the list of commands."
|
|
||||||
},
|
|
||||||
|
|
||||||
{ N_("keyedit.save.okay"),
|
{ N_("keyedit.save.okay"),
|
||||||
"Answer \"yes\" or \"no\""
|
"Answer \"yes\" or \"no\""
|
||||||
},
|
},
|
||||||
|
@ -59,6 +59,7 @@ static int count_selected_uids( KBNODE keyblock );
|
|||||||
static int count_selected_keys( KBNODE keyblock );
|
static int count_selected_keys( KBNODE keyblock );
|
||||||
static int menu_revsig( KBNODE keyblock );
|
static int menu_revsig( KBNODE keyblock );
|
||||||
static int menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock );
|
static int menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock );
|
||||||
|
static int enable_disable_key( KBNODE keyblock, int disable );
|
||||||
|
|
||||||
#define CONTROL_D ('D' - 'A' + 1)
|
#define CONTROL_D ('D' - 'A' + 1)
|
||||||
|
|
||||||
@ -550,6 +551,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
|
|||||||
cmdLSIGN, cmdREVSIG, cmdREVKEY, cmdDELSIG,
|
cmdLSIGN, cmdREVSIG, cmdREVKEY, cmdDELSIG,
|
||||||
cmdDEBUG, cmdSAVE, cmdADDUID, cmdDELUID, cmdADDKEY, cmdDELKEY,
|
cmdDEBUG, cmdSAVE, cmdADDUID, cmdDELUID, cmdADDKEY, cmdDELKEY,
|
||||||
cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE,
|
cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE,
|
||||||
|
cmdENABLEKEY, cmdDISABLEKEY,
|
||||||
cmdNOP };
|
cmdNOP };
|
||||||
static struct { const char *name;
|
static struct { const char *name;
|
||||||
enum cmdids id;
|
enum cmdids id;
|
||||||
@ -586,6 +588,8 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
|
|||||||
{ N_("trust") , cmdTRUST , 0, N_("change the ownertrust") },
|
{ N_("trust") , cmdTRUST , 0, N_("change the ownertrust") },
|
||||||
{ N_("revsig") , cmdREVSIG , 0, N_("revoke signatures") },
|
{ N_("revsig") , cmdREVSIG , 0, N_("revoke signatures") },
|
||||||
{ N_("revkey") , cmdREVKEY , 1, N_("revoke a secondary key") },
|
{ N_("revkey") , cmdREVKEY , 1, N_("revoke a secondary key") },
|
||||||
|
{ N_("disable") , cmdDISABLEKEY , 0, N_("disable a key") },
|
||||||
|
{ N_("enable") , cmdENABLEKEY , 0, N_("enable a key") },
|
||||||
|
|
||||||
{ NULL, cmdNONE } };
|
{ NULL, cmdNONE } };
|
||||||
enum cmdids cmd;
|
enum cmdids cmd;
|
||||||
@ -662,7 +666,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
|
|||||||
have_commands = 0;
|
have_commands = 0;
|
||||||
}
|
}
|
||||||
if( !have_commands ) {
|
if( !have_commands ) {
|
||||||
answer = cpr_get("keyedit.cmd", _("Command> "));
|
answer = cpr_get("", _("Command> "));
|
||||||
cpr_kill_prompt();
|
cpr_kill_prompt();
|
||||||
}
|
}
|
||||||
trim_spaces(answer);
|
trim_spaces(answer);
|
||||||
@ -842,12 +846,10 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case cmdADDKEY:
|
case cmdADDKEY:
|
||||||
secmem_dump_stats();
|
|
||||||
if( generate_subkeypair( keyblock, sec_keyblock ) ) {
|
if( generate_subkeypair( keyblock, sec_keyblock ) ) {
|
||||||
redisplay = 1;
|
redisplay = 1;
|
||||||
sec_modified = modified = 1;
|
sec_modified = modified = 1;
|
||||||
}
|
}
|
||||||
secmem_dump_stats();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -934,6 +936,14 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case cmdENABLEKEY:
|
||||||
|
case cmdDISABLEKEY:
|
||||||
|
if( enable_disable_key( keyblock, cmd == cmdDISABLEKEY ) ) {
|
||||||
|
redisplay = 1;
|
||||||
|
modified = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
tty_printf("\n");
|
tty_printf("\n");
|
||||||
tty_printf(_("Invalid command (try \"help\")\n"));
|
tty_printf(_("Invalid command (try \"help\")\n"));
|
||||||
@ -1859,3 +1869,15 @@ menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
enable_disable_key( KBNODE keyblock, int disable )
|
||||||
|
{
|
||||||
|
int entire;
|
||||||
|
int changed = 0;
|
||||||
|
|
||||||
|
|
||||||
|
entire = !count_selected_keys( keyblock );
|
||||||
|
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
11
g10/status.c
11
g10/status.c
@ -25,6 +25,9 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#ifdef USE_SHM_COPROCESSING
|
#ifdef USE_SHM_COPROCESSING
|
||||||
|
#ifdef USE_CAPABILITIES
|
||||||
|
#include <sys/capability.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_SYS_IPC_H
|
#ifdef HAVE_SYS_IPC_H
|
||||||
#include <sys/ipc.h>
|
#include <sys/ipc.h>
|
||||||
#endif
|
#endif
|
||||||
@ -165,6 +168,9 @@ init_shm_coprocessing ( ulong requested_shm_size, int lock_mem )
|
|||||||
log_debug("mapped %uk shared memory at %p, id=%d\n",
|
log_debug("mapped %uk shared memory at %p, id=%d\n",
|
||||||
(unsigned)shm_size/1024, shm_area, shm_id );
|
(unsigned)shm_size/1024, shm_area, shm_id );
|
||||||
if( lock_mem ) {
|
if( lock_mem ) {
|
||||||
|
#ifdef USE_CAPABILITIES
|
||||||
|
cap_set_proc( cap_from_text("cap_ipc_lock+ep") );
|
||||||
|
#endif
|
||||||
#ifdef IPC_HAVE_SHM_LOCK
|
#ifdef IPC_HAVE_SHM_LOCK
|
||||||
if ( shmctl (shm_id, SHM_LOCK, 0) )
|
if ( shmctl (shm_id, SHM_LOCK, 0) )
|
||||||
log_info("locking shared memory %d failed: %s\n",
|
log_info("locking shared memory %d failed: %s\n",
|
||||||
@ -181,6 +187,9 @@ init_shm_coprocessing ( ulong requested_shm_size, int lock_mem )
|
|||||||
#else
|
#else
|
||||||
log_info("Locking shared memory %d failed: No way to do it\n", shm_id );
|
log_info("Locking shared memory %d failed: No way to do it\n", shm_id );
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_CAPABILITIES
|
||||||
|
cap_set_proc( cap_from_text("cap_ipc_lock+p") );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -279,7 +288,7 @@ cpr_get( const char *keyword, const char *prompt )
|
|||||||
#endif
|
#endif
|
||||||
for(;;) {
|
for(;;) {
|
||||||
p = tty_get( prompt );
|
p = tty_get( prompt );
|
||||||
if( *p == '?' && !p[1] ) {
|
if( *p=='?' && !p[1] && !(keyword && !*keyword)) {
|
||||||
m_free(p);
|
m_free(p);
|
||||||
display_online_help( keyword );
|
display_online_help( keyword );
|
||||||
}
|
}
|
||||||
|
145
g10/tdbio.c
145
g10/tdbio.c
@ -69,8 +69,8 @@ struct cmp_krec_fpr_struct {
|
|||||||
int fprlen;
|
int fprlen;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* a type used to pass infomation to cmp_sdir */
|
/* a type used to pass infomation to cmp_[s]dir */
|
||||||
struct cmp_sdir_struct {
|
struct cmp_xdir_struct {
|
||||||
int pubkey_algo;
|
int pubkey_algo;
|
||||||
u32 keyid[2];
|
u32 keyid[2];
|
||||||
};
|
};
|
||||||
@ -852,8 +852,9 @@ upd_hashtable( ulong table, byte *key, int keylen, ulong newrecnum )
|
|||||||
return rc; /* ready */
|
return rc; /* ready */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
log_error( "hashtbl %lu points to an invalid record\n",
|
log_error( "hashtbl %lu: %lu/%d points to an invalid record %lu\n",
|
||||||
item);
|
table, hashrec, (msb % ITEMS_PER_HTBL_RECORD), item);
|
||||||
|
list_trustdb(NULL);
|
||||||
return G10ERR_TRUSTDB;
|
return G10ERR_TRUSTDB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -862,6 +863,92 @@ upd_hashtable( ulong table, byte *key, int keylen, ulong newrecnum )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************
|
||||||
|
* Drop an entry from a hashtable
|
||||||
|
* table gives the start of the table, key and keylen is the key,
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
drop_from_hashtable( ulong table, byte *key, int keylen, ulong recnum )
|
||||||
|
{
|
||||||
|
TRUSTREC rec;
|
||||||
|
ulong hashrec, item;
|
||||||
|
int msb;
|
||||||
|
int level=0;
|
||||||
|
int rc, i;
|
||||||
|
|
||||||
|
hashrec = table;
|
||||||
|
next_level:
|
||||||
|
msb = key[level];
|
||||||
|
hashrec += msb / ITEMS_PER_HTBL_RECORD;
|
||||||
|
rc = tdbio_read_record( hashrec, &rec, RECTYPE_HTBL );
|
||||||
|
if( rc ) {
|
||||||
|
log_error( db_name, "drop_from_hashtable: read failed: %s\n",
|
||||||
|
g10_errstr(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
item = rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD];
|
||||||
|
if( !item ) /* not found - forget about it */
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if( item == recnum ) { /* tables points direct to the record */
|
||||||
|
rec.r.htbl.item[msb % ITEMS_PER_HTBL_RECORD] = 0;
|
||||||
|
rc = tdbio_write_record( &rec );
|
||||||
|
if( rc )
|
||||||
|
log_error( db_name, "drop_from_hashtable: write htbl failed: %s\n",
|
||||||
|
g10_errstr(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
rc = tdbio_read_record( item, &rec, 0 );
|
||||||
|
if( rc ) {
|
||||||
|
log_error( "drop_from_hashtable: read item failed: %s\n",
|
||||||
|
g10_errstr(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( rec.rectype == RECTYPE_HTBL ) {
|
||||||
|
hashrec = item;
|
||||||
|
level++;
|
||||||
|
if( level >= keylen ) {
|
||||||
|
log_error( "hashtable has invalid indirections.\n");
|
||||||
|
return G10ERR_TRUSTDB;
|
||||||
|
}
|
||||||
|
goto next_level;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( rec.rectype == RECTYPE_HLST ) {
|
||||||
|
for(;;) {
|
||||||
|
for(i=0; i < ITEMS_PER_HLST_RECORD; i++ ) {
|
||||||
|
if( rec.r.hlst.rnum[i] == recnum ) {
|
||||||
|
rec.r.hlst.rnum[i] = 0; /* drop */
|
||||||
|
rc = tdbio_write_record( &rec );
|
||||||
|
if( rc )
|
||||||
|
log_error( db_name, "drop_from_hashtable: write htbl failed: %s\n",
|
||||||
|
g10_errstr(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( rec.r.hlst.next ) {
|
||||||
|
rc = tdbio_read_record( rec.r.hlst.next,
|
||||||
|
&rec, RECTYPE_HLST);
|
||||||
|
if( rc ) {
|
||||||
|
log_error( "scan keyhashtbl read hlst failed: %s\n",
|
||||||
|
g10_errstr(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return 0; /* key not in table */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log_error( "hashtbl %lu: %lu/%d points to wrong record %lu\n",
|
||||||
|
table, hashrec, (msb % ITEMS_PER_HTBL_RECORD), item);
|
||||||
|
return G10ERR_TRUSTDB;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Lookup a record via the hashtable tablewith key/keylen and return the
|
* Lookup a record via the hashtable tablewith key/keylen and return the
|
||||||
@ -973,6 +1060,30 @@ update_sdirhashtbl( TRUSTREC *sr )
|
|||||||
return upd_hashtable( get_sdirhashrec(), key, 8, sr->recnum );
|
return upd_hashtable( get_sdirhashrec(), key, 8, sr->recnum );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************
|
||||||
|
* Drop the records from the key-hashtbl
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
drop_from_keyhashtbl( TRUSTREC *kr )
|
||||||
|
{
|
||||||
|
return drop_from_hashtable( get_keyhashrec(),
|
||||||
|
kr->r.key.fingerprint,
|
||||||
|
kr->r.key.fingerprint_len, kr->recnum );
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************
|
||||||
|
* Drop record drom the shadow dir hashtbl
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
drop_from_sdirhashtbl( TRUSTREC *sr )
|
||||||
|
{
|
||||||
|
byte key[8];
|
||||||
|
|
||||||
|
u32tobuf( key , sr->r.sdir.keyid[0] );
|
||||||
|
u32tobuf( key+4 , sr->r.sdir.keyid[1] );
|
||||||
|
return drop_from_hashtable( get_sdirhashrec(), key, 8, sr->recnum );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1009,6 +1120,8 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp )
|
|||||||
if( rec->r.dir.valcheck )
|
if( rec->r.dir.valcheck )
|
||||||
fprintf( fp, ", v=%02x/%s", rec->r.dir.validity,
|
fprintf( fp, ", v=%02x/%s", rec->r.dir.validity,
|
||||||
strtimestamp(rec->r.dir.valcheck) );
|
strtimestamp(rec->r.dir.valcheck) );
|
||||||
|
if( rec->r.dir.checkat )
|
||||||
|
fprintf( fp, ", a=%s", strtimestamp(rec->r.dir.checkat) );
|
||||||
if( rec->r.dir.dirflags & DIRF_CHECKED ) {
|
if( rec->r.dir.dirflags & DIRF_CHECKED ) {
|
||||||
if( rec->r.dir.dirflags & DIRF_VALID )
|
if( rec->r.dir.dirflags & DIRF_VALID )
|
||||||
fputs(", valid", fp );
|
fputs(", valid", fp );
|
||||||
@ -1071,7 +1184,8 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp )
|
|||||||
fprintf(fp, " %lu:", rec->r.sig.sig[i].lid );
|
fprintf(fp, " %lu:", rec->r.sig.sig[i].lid );
|
||||||
if( rec->r.sig.sig[i].flag & SIGF_CHECKED ) {
|
if( rec->r.sig.sig[i].flag & SIGF_CHECKED ) {
|
||||||
fprintf(fp,"%c%c%c",
|
fprintf(fp,"%c%c%c",
|
||||||
(rec->r.sig.sig[i].flag & SIGF_VALID) ? 'V':'-',
|
(rec->r.sig.sig[i].flag & SIGF_VALID) ? 'V':
|
||||||
|
(rec->r.sig.sig[i].flag & SIGF_IGNORED) ? 'I':'-',
|
||||||
(rec->r.sig.sig[i].flag & SIGF_EXPIRED) ? 'E':'-',
|
(rec->r.sig.sig[i].flag & SIGF_EXPIRED) ? 'E':'-',
|
||||||
(rec->r.sig.sig[i].flag & SIGF_REVOKED) ? 'R':'-');
|
(rec->r.sig.sig[i].flag & SIGF_REVOKED) ? 'R':'-');
|
||||||
}
|
}
|
||||||
@ -1196,6 +1310,7 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected )
|
|||||||
rec->r.dir.dirflags = *p++;
|
rec->r.dir.dirflags = *p++;
|
||||||
rec->r.dir.validity = *p++;
|
rec->r.dir.validity = *p++;
|
||||||
rec->r.dir.valcheck = buftoulong(p); p += 4;
|
rec->r.dir.valcheck = buftoulong(p); p += 4;
|
||||||
|
rec->r.dir.checkat = buftoulong(p); p += 4;
|
||||||
switch( rec->r.dir.validity ) {
|
switch( rec->r.dir.validity ) {
|
||||||
case 0:
|
case 0:
|
||||||
case TRUST_UNDEFINED:
|
case TRUST_UNDEFINED:
|
||||||
@ -1346,6 +1461,7 @@ tdbio_write_record( TRUSTREC *rec )
|
|||||||
*p++ = rec->r.dir.dirflags;
|
*p++ = rec->r.dir.dirflags;
|
||||||
*p++ = rec->r.dir.validity;
|
*p++ = rec->r.dir.validity;
|
||||||
ulongtobuf(p, rec->r.dir.valcheck); p += 4;
|
ulongtobuf(p, rec->r.dir.valcheck); p += 4;
|
||||||
|
ulongtobuf(p, rec->r.dir.checkat); p += 4;
|
||||||
assert( rec->r.dir.lid == recnum );
|
assert( rec->r.dir.lid == recnum );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1419,7 +1535,7 @@ tdbio_write_record( TRUSTREC *rec )
|
|||||||
rc = put_record_into_cache( recnum, buf );
|
rc = put_record_into_cache( recnum, buf );
|
||||||
if( rc )
|
if( rc )
|
||||||
;
|
;
|
||||||
if( rec->rectype == RECTYPE_KEY )
|
else if( rec->rectype == RECTYPE_KEY )
|
||||||
rc = update_keyhashtbl( rec );
|
rc = update_keyhashtbl( rec );
|
||||||
else if( rec->rectype == RECTYPE_SDIR )
|
else if( rec->rectype == RECTYPE_SDIR )
|
||||||
rc = update_sdirhashtbl( rec );
|
rc = update_sdirhashtbl( rec );
|
||||||
@ -1433,6 +1549,19 @@ tdbio_delete_record( ulong recnum )
|
|||||||
TRUSTREC vr, rec;
|
TRUSTREC vr, rec;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
/* Must read the record fist, so we can drop it from the hash tables */
|
||||||
|
rc = tdbio_read_record( recnum, &rec, 0 );
|
||||||
|
if( rc )
|
||||||
|
;
|
||||||
|
else if( rec.rectype == RECTYPE_KEY )
|
||||||
|
rc = drop_from_keyhashtbl( &rec );
|
||||||
|
else if( rec.rectype == RECTYPE_SDIR )
|
||||||
|
rc = drop_from_sdirhashtbl( &rec );
|
||||||
|
|
||||||
|
if( rc )
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
/* now we can chnage it to a free record */
|
||||||
rc = tdbio_read_record( 0, &vr, RECTYPE_VER );
|
rc = tdbio_read_record( 0, &vr, RECTYPE_VER );
|
||||||
if( rc )
|
if( rc )
|
||||||
log_fatal( _("%s: error reading version record: %s\n"),
|
log_fatal( _("%s: error reading version record: %s\n"),
|
||||||
@ -1595,7 +1724,7 @@ tdbio_search_dir_byfpr( const byte *fingerprint, size_t fingerlen,
|
|||||||
static int
|
static int
|
||||||
cmp_sdir( void *dataptr, const TRUSTREC *rec )
|
cmp_sdir( void *dataptr, const TRUSTREC *rec )
|
||||||
{
|
{
|
||||||
const struct cmp_sdir_struct *d = dataptr;
|
const struct cmp_xdir_struct *d = dataptr;
|
||||||
|
|
||||||
return rec->rectype == RECTYPE_SDIR
|
return rec->rectype == RECTYPE_SDIR
|
||||||
&& ( !d->pubkey_algo || rec->r.sdir.pubkey_algo == d->pubkey_algo )
|
&& ( !d->pubkey_algo || rec->r.sdir.pubkey_algo == d->pubkey_algo )
|
||||||
@ -1607,7 +1736,7 @@ cmp_sdir( void *dataptr, const TRUSTREC *rec )
|
|||||||
int
|
int
|
||||||
tdbio_search_sdir( u32 *keyid, int pubkey_algo, TRUSTREC *rec )
|
tdbio_search_sdir( u32 *keyid, int pubkey_algo, TRUSTREC *rec )
|
||||||
{
|
{
|
||||||
struct cmp_sdir_struct cmpdata;
|
struct cmp_xdir_struct cmpdata;
|
||||||
int rc;
|
int rc;
|
||||||
byte key[8];
|
byte key[8];
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
#define SIGF_VALID 2 /* the signature is valid */
|
#define SIGF_VALID 2 /* the signature is valid */
|
||||||
#define SIGF_EXPIRED 4 /* the key of this signature has expired */
|
#define SIGF_EXPIRED 4 /* the key of this signature has expired */
|
||||||
#define SIGF_REVOKED 8 /* this signature has been revoked */
|
#define SIGF_REVOKED 8 /* this signature has been revoked */
|
||||||
|
#define SIGF_IGNORED 64 /* this signature is ignored by the system */
|
||||||
#define SIGF_NOPUBKEY 128 /* there is no pubkey for this sig */
|
#define SIGF_NOPUBKEY 128 /* there is no pubkey for this sig */
|
||||||
|
|
||||||
struct trust_record {
|
struct trust_record {
|
||||||
@ -97,8 +98,9 @@ struct trust_record {
|
|||||||
ulong cacherec; /* the cache record */
|
ulong cacherec; /* the cache record */
|
||||||
byte ownertrust;
|
byte ownertrust;
|
||||||
byte dirflags;
|
byte dirflags;
|
||||||
byte validity; /* calculated trustlevel over all uids */
|
byte validity; /* calculated trustlevel over all uids */
|
||||||
ulong valcheck; /* timestamp of last validation check */
|
ulong valcheck; /* timestamp of last validation check */
|
||||||
|
ulong checkat; /* Check key when this time has been reached*/
|
||||||
} dir;
|
} dir;
|
||||||
struct { /* primary public key record */
|
struct { /* primary public key record */
|
||||||
ulong lid;
|
ulong lid;
|
||||||
@ -187,6 +189,7 @@ ulong tdbio_new_recnum(void);
|
|||||||
int tdbio_search_dir_bypk( PKT_public_key *pk, TRUSTREC *rec );
|
int tdbio_search_dir_bypk( PKT_public_key *pk, TRUSTREC *rec );
|
||||||
int tdbio_search_dir_byfpr( const byte *fingerprint, size_t fingerlen,
|
int tdbio_search_dir_byfpr( const byte *fingerprint, size_t fingerlen,
|
||||||
int pubkey_algo, TRUSTREC *rec );
|
int pubkey_algo, TRUSTREC *rec );
|
||||||
|
int tdbio_search_dir( u32 *keyid, int pubkey_algo, TRUSTREC *rec );
|
||||||
int tdbio_search_sdir( u32 *keyid, int pubkey_algo, TRUSTREC *rec );
|
int tdbio_search_sdir( u32 *keyid, int pubkey_algo, TRUSTREC *rec );
|
||||||
|
|
||||||
void tdbio_invalid(void);
|
void tdbio_invalid(void);
|
||||||
|
1742
g10/trustdb.c
1742
g10/trustdb.c
File diff suppressed because it is too large
Load Diff
@ -34,6 +34,7 @@
|
|||||||
/* trust values not covered by the mask */
|
/* trust values not covered by the mask */
|
||||||
#define TRUST_FLAG_REVOKED 32 /* r: revoked */
|
#define TRUST_FLAG_REVOKED 32 /* r: revoked */
|
||||||
#define TRUST_FLAG_SUB_REVOKED 64
|
#define TRUST_FLAG_SUB_REVOKED 64
|
||||||
|
#define TRUST_FLAG_DISABLED 128 /* d: key/uid disabled */
|
||||||
|
|
||||||
|
|
||||||
#define PREFTYPE_SYM 1
|
#define PREFTYPE_SYM 1
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
* util.h (stricmp): Use strcasecmp as replacement.
|
||||||
|
|
||||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
@ -175,8 +175,6 @@ char *native_to_utf8( const char *string );
|
|||||||
char *utf8_to_native( const char *string );
|
char *utf8_to_native( const char *string );
|
||||||
int check_utf8_string( const char *string );
|
int check_utf8_string( const char *string );
|
||||||
|
|
||||||
#define stricmp(a,b) strcasecmp((a),(b))
|
|
||||||
|
|
||||||
#ifndef HAVE_MEMICMP
|
#ifndef HAVE_MEMICMP
|
||||||
int memicmp( const char *a, const char *b, size_t n );
|
int memicmp( const char *a, const char *b, size_t n );
|
||||||
#endif
|
#endif
|
||||||
@ -192,7 +190,9 @@ char *strlwr(char *a);
|
|||||||
#ifndef HAVE_MEMMOVE
|
#ifndef HAVE_MEMMOVE
|
||||||
#define memmove(d, s, n) bcopy((s), (d), (n))
|
#define memmove(d, s, n) bcopy((s), (d), (n))
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef HAVE_STRICMP
|
||||||
|
#define stricmp(a,b) strcasecmp( (a), (b) )
|
||||||
|
#endif
|
||||||
|
|
||||||
/**** other missing stuff ****/
|
/**** other missing stuff ****/
|
||||||
#ifndef HAVE_ATEXIT /* For SunOS */
|
#ifndef HAVE_ATEXIT /* For SunOS */
|
||||||
|
@ -189,6 +189,7 @@ mpi_mul( MPI w, MPI u, MPI v)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
mpi_mulm( MPI w, MPI u, MPI v, MPI m)
|
mpi_mulm( MPI w, MPI u, MPI v, MPI m)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
* it.po: Updated (Marco).
|
||||||
|
|
||||||
|
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* pt_BR.po: Updated (Thiago).
|
* pt_BR.po: Updated (Thiago).
|
||||||
|
|
||||||
Thu Jun 10 14:18:23 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Thu Jun 10 14:18:23 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
124
po/it.po
124
po/it.po
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg-0.9.7\n"
|
"Project-Id-Version: gnupg-0.9.7\n"
|
||||||
"POT-Creation-Date: 1999-06-26 11:22+0200\n"
|
"POT-Creation-Date: 1999-06-26 11:22+0200\n"
|
||||||
"PO-Revision-Date: 1999-05-15 18:09+02:00\n"
|
"PO-Revision-Date: 1999-06-28 19:49+02:00\n"
|
||||||
"Last-Translator: Marco d'Itri <md@linux.it>\n"
|
"Last-Translator: Marco d'Itri <md@linux.it>\n"
|
||||||
"Language-Team: Italian <it@li.org>\n"
|
"Language-Team: Italian <it@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -38,9 +38,8 @@ msgid "quit"
|
|||||||
msgstr "quit"
|
msgstr "quit"
|
||||||
|
|
||||||
#: util/miscutil.c:176
|
#: util/miscutil.c:176
|
||||||
#, fuzzy
|
|
||||||
msgid "qQ"
|
msgid "qQ"
|
||||||
msgstr "q"
|
msgstr "qQ"
|
||||||
|
|
||||||
#: util/errors.c:54
|
#: util/errors.c:54
|
||||||
msgid "general error"
|
msgid "general error"
|
||||||
@ -448,7 +447,7 @@ msgstr "meno prolisso"
|
|||||||
|
|
||||||
#: g10/g10.c:234
|
#: g10/g10.c:234
|
||||||
msgid "don't use the terminal at all"
|
msgid "don't use the terminal at all"
|
||||||
msgstr ""
|
msgstr "non usa per niente il terminale"
|
||||||
|
|
||||||
#: g10/g10.c:235
|
#: g10/g10.c:235
|
||||||
msgid "force v3 signatures"
|
msgid "force v3 signatures"
|
||||||
@ -533,7 +532,7 @@ msgstr "emula il modo descritto in RFC 1991"
|
|||||||
|
|
||||||
#: g10/g10.c:258
|
#: g10/g10.c:258
|
||||||
msgid "set all packet, cipher and digest options to OpenPGP behavior"
|
msgid "set all packet, cipher and digest options to OpenPGP behavior"
|
||||||
msgstr ""
|
msgstr "imposta per OpenPGP le opzioni di pacchetto, cifrario e digest"
|
||||||
|
|
||||||
#: g10/g10.c:259
|
#: g10/g10.c:259
|
||||||
msgid "|N|use passphrase mode N"
|
msgid "|N|use passphrase mode N"
|
||||||
@ -565,7 +564,7 @@ msgstr "elimina il campo keyid dei pacchetti cifrati"
|
|||||||
|
|
||||||
#: g10/g10.c:268
|
#: g10/g10.c:268
|
||||||
msgid "|NAME=VALUE|use this notation data"
|
msgid "|NAME=VALUE|use this notation data"
|
||||||
msgstr ""
|
msgstr "|NOME=VALORE|usa questi dati per una nota"
|
||||||
|
|
||||||
#: g10/g10.c:270
|
#: g10/g10.c:270
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -651,7 +650,7 @@ msgstr "l'algoritmo di digest selezionato non
|
|||||||
|
|
||||||
#: g10/g10.c:849
|
#: g10/g10.c:849
|
||||||
msgid "the given policy URL is invalid\n"
|
msgid "the given policy URL is invalid\n"
|
||||||
msgstr ""
|
msgstr "L'URL della policy indicato non è valido\n"
|
||||||
|
|
||||||
#: g10/g10.c:852
|
#: g10/g10.c:852
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -764,20 +763,24 @@ msgstr "impossibile aprire `%s'\n"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"the first character of a notation name must be a letter or an underscore\n"
|
"the first character of a notation name must be a letter or an underscore\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"il primo carattere del nome di una nota deve essere una lettera o un\n"
|
||||||
|
"underscore\n"
|
||||||
|
|
||||||
#: g10/g10.c:1463
|
#: g10/g10.c:1463
|
||||||
msgid ""
|
msgid ""
|
||||||
"a notation name must have only letters, digits, dots or underscores and end "
|
"a notation name must have only letters, digits, dots or underscores and end "
|
||||||
"with an '='\n"
|
"with an '='\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"il nome di una nota deve essere formato solo da lettere, numeri, punti o\n"
|
||||||
|
"underscore e deve finire con `='\n"
|
||||||
|
|
||||||
#: g10/g10.c:1469
|
#: g10/g10.c:1469
|
||||||
msgid "dots in a notation name must be surrounded by other characters\n"
|
msgid "dots in a notation name must be surrounded by other characters\n"
|
||||||
msgstr ""
|
msgstr "nel nome di una nota i punti devono avere altri caratteri intorno\n"
|
||||||
|
|
||||||
#: g10/g10.c:1477
|
#: g10/g10.c:1477
|
||||||
msgid "a notation value must not use any control characters\n"
|
msgid "a notation value must not use any control characters\n"
|
||||||
msgstr ""
|
msgstr "il valore di una nota non deve usare caratteri di controllo\n"
|
||||||
|
|
||||||
#: g10/armor.c:296
|
#: g10/armor.c:296
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1052,9 +1055,9 @@ msgid "%s: skipped: %s\n"
|
|||||||
msgstr "%s: saltata: %s\n"
|
msgstr "%s: saltata: %s\n"
|
||||||
|
|
||||||
#: g10/pkclist.c:588 g10/pkclist.c:687
|
#: g10/pkclist.c:588 g10/pkclist.c:687
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%s: skipped: public key already present\n"
|
msgid "%s: skipped: public key already present\n"
|
||||||
msgstr "%s: il keyblock ha problemi di lettura: %s\n"
|
msgstr "%s: saltato: chiave pubblica già presente\n"
|
||||||
|
|
||||||
#: g10/pkclist.c:611
|
#: g10/pkclist.c:611
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1356,7 +1359,6 @@ msgid "DSA keypair will have 1024 bits.\n"
|
|||||||
msgstr "La coppia DSA avrà 1024 bit.\n"
|
msgstr "La coppia DSA avrà 1024 bit.\n"
|
||||||
|
|
||||||
#: g10/keygen.c:859
|
#: g10/keygen.c:859
|
||||||
#, fuzzy
|
|
||||||
msgid "Key generation canceled.\n"
|
msgid "Key generation canceled.\n"
|
||||||
msgstr "Generazione della chiave annullata.\n"
|
msgstr "Generazione della chiave annullata.\n"
|
||||||
|
|
||||||
@ -1467,7 +1469,7 @@ msgid "using secondary key %08lX instead of primary key %08lX\n"
|
|||||||
msgstr "uso la chiave secondaria %08lX invece della chiave primaria %08lX\n"
|
msgstr "uso la chiave secondaria %08lX invece della chiave primaria %08lX\n"
|
||||||
|
|
||||||
#: g10/import.c:116
|
#: g10/import.c:116
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "can't open `%s': %s\n"
|
msgid "can't open `%s': %s\n"
|
||||||
msgstr "impossibile aprire `%s': %s\n"
|
msgstr "impossibile aprire `%s': %s\n"
|
||||||
|
|
||||||
@ -1482,9 +1484,9 @@ msgid "%lu keys so far processed\n"
|
|||||||
msgstr "Per ora sono state esaminate %lu chiavi\n"
|
msgstr "Per ora sono state esaminate %lu chiavi\n"
|
||||||
|
|
||||||
#: g10/import.c:172
|
#: g10/import.c:172
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "error reading `%s': %s\n"
|
msgid "error reading `%s': %s\n"
|
||||||
msgstr "errore nella creazione della passhprase: %s\n"
|
msgstr "errore leggendo `%s': %s\n"
|
||||||
|
|
||||||
#: g10/import.c:175
|
#: g10/import.c:175
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1570,14 +1572,14 @@ msgid "writing to `%s'\n"
|
|||||||
msgstr "scrittura in `%s'\n"
|
msgstr "scrittura in `%s'\n"
|
||||||
|
|
||||||
#: g10/import.c:379 g10/import.c:435 g10/import.c:544 g10/import.c:645
|
#: g10/import.c:379 g10/import.c:435 g10/import.c:544 g10/import.c:645
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "can't lock keyring `%s': %s\n"
|
msgid "can't lock keyring `%s': %s\n"
|
||||||
msgstr "impossibile bloccare il portachiavi pubblico: %s\n"
|
msgstr "impossibile fare il lock del portachiavi `%s': %s\n"
|
||||||
|
|
||||||
#: g10/import.c:382 g10/import.c:438 g10/import.c:547 g10/import.c:648
|
#: g10/import.c:382 g10/import.c:438 g10/import.c:547 g10/import.c:648
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "error writing keyring `%s': %s\n"
|
msgid "error writing keyring `%s': %s\n"
|
||||||
msgstr "%s: errore durante la scrittura del record di versione: %s\n"
|
msgstr "errore scrivendo il portachiavi `%s': %s\n"
|
||||||
|
|
||||||
#: g10/import.c:387
|
#: g10/import.c:387
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1724,7 +1726,7 @@ msgstr "chiave %08lX: certificato di revoca non valido: %s - saltato\n"
|
|||||||
#: g10/import.c:915
|
#: g10/import.c:915
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "key %08lX: duplicated user ID detected - merged\n"
|
msgid "key %08lX: duplicated user ID detected - merged\n"
|
||||||
msgstr ""
|
msgstr "chiave %08lX: trovato un user ID duplicato - unito\n"
|
||||||
|
|
||||||
#: g10/import.c:966
|
#: g10/import.c:966
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1988,14 +1990,12 @@ msgid "delete a secondary key"
|
|||||||
msgstr "cancella una chiave secondaria"
|
msgstr "cancella una chiave secondaria"
|
||||||
|
|
||||||
#: g10/keyedit.c:579
|
#: g10/keyedit.c:579
|
||||||
#, fuzzy
|
|
||||||
msgid "delsig"
|
msgid "delsig"
|
||||||
msgstr "lsign"
|
msgstr "delsign"
|
||||||
|
|
||||||
#: g10/keyedit.c:579
|
#: g10/keyedit.c:579
|
||||||
#, fuzzy
|
|
||||||
msgid "delete signatures"
|
msgid "delete signatures"
|
||||||
msgstr "elenca le firme"
|
msgstr "cancella le firme"
|
||||||
|
|
||||||
#: g10/keyedit.c:580
|
#: g10/keyedit.c:580
|
||||||
msgid "expire"
|
msgid "expire"
|
||||||
@ -2152,35 +2152,33 @@ msgstr "Comando non valido (prova \"help\")\n"
|
|||||||
|
|
||||||
#: g10/keyedit.c:1294
|
#: g10/keyedit.c:1294
|
||||||
msgid "Delete this good signature? (y/N/q)"
|
msgid "Delete this good signature? (y/N/q)"
|
||||||
msgstr ""
|
msgstr "Cancellare questa firma corretta? (s/N/q)"
|
||||||
|
|
||||||
#: g10/keyedit.c:1298
|
#: g10/keyedit.c:1298
|
||||||
msgid "Delete this invalid signature? (y/N/q)"
|
msgid "Delete this invalid signature? (y/N/q)"
|
||||||
msgstr ""
|
msgstr "Cancellare questa firma non valida? (s/N/q)"
|
||||||
|
|
||||||
#: g10/keyedit.c:1302
|
#: g10/keyedit.c:1302
|
||||||
msgid "Delete this unknown signature? (y/N/q)"
|
msgid "Delete this unknown signature? (y/N/q)"
|
||||||
msgstr ""
|
msgstr "Cancellare questa firma sconosciuta? (s/N/q)"
|
||||||
|
|
||||||
#: g10/keyedit.c:1308
|
#: g10/keyedit.c:1308
|
||||||
#, fuzzy
|
|
||||||
msgid "Really delete this self-signature? (y/N)"
|
msgid "Really delete this self-signature? (y/N)"
|
||||||
msgstr "Creare davvero i certificati di revoca? (s/N)"
|
msgstr "Cancellare davvero questa autofirma? (s/N)"
|
||||||
|
|
||||||
#: g10/keyedit.c:1322
|
#: g10/keyedit.c:1322
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "Deleted %d signature.\n"
|
msgid "Deleted %d signature.\n"
|
||||||
msgstr "%d firme non corrette\n"
|
msgstr "Cancellata %d firma.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1323
|
#: g10/keyedit.c:1323
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "Deleted %d signatures.\n"
|
msgid "Deleted %d signatures.\n"
|
||||||
msgstr "%d firme non corrette\n"
|
msgstr "Cancellate %d firme.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1326
|
#: g10/keyedit.c:1326
|
||||||
#, fuzzy
|
|
||||||
msgid "Nothing deleted.\n"
|
msgid "Nothing deleted.\n"
|
||||||
msgstr "ATTENZIONE: non è stato esportato nulla\n"
|
msgstr "Non è stato cancellato nulla.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1395
|
#: g10/keyedit.c:1395
|
||||||
msgid "Please remove selections from the secret keys.\n"
|
msgid "Please remove selections from the secret keys.\n"
|
||||||
@ -2191,14 +2189,12 @@ msgid "Please select at most one secondary key.\n"
|
|||||||
msgstr "Seleziona al massimo una chiave secondaria.\n"
|
msgstr "Seleziona al massimo una chiave secondaria.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1405
|
#: g10/keyedit.c:1405
|
||||||
#, fuzzy
|
|
||||||
msgid "Changing expiration time for a secondary key.\n"
|
msgid "Changing expiration time for a secondary key.\n"
|
||||||
msgstr "Modifico il tempo di scadenza per una chiave secondaria.\n"
|
msgstr "Cambio la data di scadenza per una chiave secondaria.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1407
|
#: g10/keyedit.c:1407
|
||||||
#, fuzzy
|
|
||||||
msgid "Changing expiration time for the primary key.\n"
|
msgid "Changing expiration time for the primary key.\n"
|
||||||
msgstr "Modifico il tempo di scadenza per la chiave primaria.\n"
|
msgstr "Cambio la data di scadenza per la chiave primaria.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:1448
|
#: g10/keyedit.c:1448
|
||||||
msgid "You can't change the expiration date of a v3 key\n"
|
msgid "You can't change the expiration date of a v3 key\n"
|
||||||
@ -2285,17 +2281,16 @@ msgid "original file name='%.*s'\n"
|
|||||||
msgstr "nome del file originale='%.*s'\n"
|
msgstr "nome del file originale='%.*s'\n"
|
||||||
|
|
||||||
#: g10/mainproc.c:505 g10/mainproc.c:514
|
#: g10/mainproc.c:505 g10/mainproc.c:514
|
||||||
#, fuzzy
|
|
||||||
msgid "WARNING: invalid notation data found\n"
|
msgid "WARNING: invalid notation data found\n"
|
||||||
msgstr "Non sono stati trovati dati OpenPGP validi.\n"
|
msgstr "ATTENZIONE: trovati dati di una nota non validi\n"
|
||||||
|
|
||||||
#: g10/mainproc.c:517
|
#: g10/mainproc.c:517
|
||||||
msgid "Notation: "
|
msgid "Notation: "
|
||||||
msgstr ""
|
msgstr "Nota: "
|
||||||
|
|
||||||
#: g10/mainproc.c:524
|
#: g10/mainproc.c:524
|
||||||
msgid "Policy: "
|
msgid "Policy: "
|
||||||
msgstr ""
|
msgstr "Policy: "
|
||||||
|
|
||||||
#: g10/mainproc.c:929
|
#: g10/mainproc.c:929
|
||||||
msgid "signature verification suppressed\n"
|
msgid "signature verification suppressed\n"
|
||||||
@ -2638,9 +2633,8 @@ msgid "%s: failed to append a record: %s\n"
|
|||||||
msgstr "%s: accodatura a un record fallita: %s\n"
|
msgstr "%s: accodatura a un record fallita: %s\n"
|
||||||
|
|
||||||
#: g10/tdbio.c:1630
|
#: g10/tdbio.c:1630
|
||||||
#, fuzzy
|
|
||||||
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
|
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
|
||||||
msgstr "Il trustdb è danneggiato; eseguire \"gpgm --fix-trust-db\".\n"
|
msgstr "Il trustdb è danneggiato; eseguire \"gpg --fix-trust-db\".\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:163
|
#: g10/trustdb.c:163
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -3099,7 +3093,7 @@ msgstr "Sovrascrivo (s/N)? "
|
|||||||
#: g10/openfile.c:97
|
#: g10/openfile.c:97
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unknown suffix\n"
|
msgid "%s: unknown suffix\n"
|
||||||
msgstr ""
|
msgstr "%s: suffisso sconosciuto\n"
|
||||||
|
|
||||||
#: g10/openfile.c:122
|
#: g10/openfile.c:122
|
||||||
msgid "writing to stdout\n"
|
msgid "writing to stdout\n"
|
||||||
@ -3241,23 +3235,20 @@ msgid "keyedit.remove.subkey.okay"
|
|||||||
msgstr "keyedit.remove.subkey.okay"
|
msgstr "keyedit.remove.subkey.okay"
|
||||||
|
|
||||||
#: g10/helptext.c:176
|
#: g10/helptext.c:176
|
||||||
#, fuzzy
|
|
||||||
msgid "keyedit.delsig.valid"
|
msgid "keyedit.delsig.valid"
|
||||||
msgstr "keyedit.sign_all.okay"
|
msgstr "keyedit.delsig.valid"
|
||||||
|
|
||||||
#: g10/helptext.c:181
|
#: g10/helptext.c:181
|
||||||
#, fuzzy
|
|
||||||
msgid "keyedit.delsig.unknown"
|
msgid "keyedit.delsig.unknown"
|
||||||
msgstr "keyedit.sign_all.okay"
|
msgstr "keyedit.delsig.unknown"
|
||||||
|
|
||||||
#: g10/helptext.c:187
|
#: g10/helptext.c:187
|
||||||
#, fuzzy
|
|
||||||
msgid "keyedit.delsig.invalid"
|
msgid "keyedit.delsig.invalid"
|
||||||
msgstr "keyedit.sign_all.okay"
|
msgstr "keyedit.delsig.invalid"
|
||||||
|
|
||||||
#: g10/helptext.c:191
|
#: g10/helptext.c:191
|
||||||
msgid "keyedit.delsig.selfsig"
|
msgid "keyedit.delsig.selfsig"
|
||||||
msgstr ""
|
msgstr "keyedit.delsig.selfsig<"
|
||||||
|
|
||||||
#: g10/helptext.c:200
|
#: g10/helptext.c:200
|
||||||
msgid "passphrase.enter"
|
msgid "passphrase.enter"
|
||||||
@ -3283,30 +3274,3 @@ msgstr "Non
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "No help available for `%s'"
|
msgid "No help available for `%s'"
|
||||||
msgstr "Non è disponibile un aiuto per `%s'"
|
msgstr "Non è disponibile un aiuto per `%s'"
|
||||||
|
|
||||||
#~ msgid "can't open file: %s\n"
|
|
||||||
#~ msgstr "impossibile aprire il file: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "read error: %s\n"
|
|
||||||
#~ msgstr "errore di lettura: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "can't write to keyring: %s\n"
|
|
||||||
#~ msgstr "impossibile scrivere sul portachiavi pubblico: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "writing keyblock\n"
|
|
||||||
#~ msgstr "scrittura del keyblock\n"
|
|
||||||
|
|
||||||
#~ msgid "can't write keyblock: %s\n"
|
|
||||||
#~ msgstr "impossibile aprire il keyblock: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "can't lock secret keyring: %s\n"
|
|
||||||
#~ msgstr "impossibile bloccare il portachiavi segreto: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "can't write keyring: %s\n"
|
|
||||||
#~ msgstr "impossibile scrivere il portachiavi: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "encrypted message is valid\n"
|
|
||||||
#~ msgstr "il messaggio cifrato è valido\n"
|
|
||||||
|
|
||||||
#~ msgid "Can't check MDC: %s\n"
|
|
||||||
#~ msgstr "Impossibile controllare il MDC: %s\n"
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
* secmem.c (USE_CAPABILITIES): Capabilities support (Remi).
|
||||||
|
|
||||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +29,9 @@
|
|||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#ifdef USE_CAPABILITIES
|
||||||
|
#include <sys/capability.h>
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
@ -80,7 +83,26 @@ print_warn(void)
|
|||||||
static void
|
static void
|
||||||
lock_pool( void *p, size_t n )
|
lock_pool( void *p, size_t n )
|
||||||
{
|
{
|
||||||
#ifdef HAVE_MLOCK
|
#if defined(USE_CAPABILITIES) && defined(HAVE_MLOCK)
|
||||||
|
int err;
|
||||||
|
|
||||||
|
cap_set_proc( cap_from_text("cap_ipc_lock+ep") );
|
||||||
|
err = mlock( p, n );
|
||||||
|
if( err && errno )
|
||||||
|
err = errno;
|
||||||
|
cap_set_proc( cap_from_text("cap_ipc_lock+p") );
|
||||||
|
|
||||||
|
if( err ) {
|
||||||
|
if( errno != EPERM
|
||||||
|
#ifdef EAGAIN /* OpenBSD returns this */
|
||||||
|
&& errno != EAGAIN
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
log_error("can´t lock memory: %s\n", strerror(err));
|
||||||
|
show_warning = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined(HAVE_MLOCK)
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -216,7 +238,11 @@ void
|
|||||||
secmem_init( size_t n )
|
secmem_init( size_t n )
|
||||||
{
|
{
|
||||||
if( !n ) {
|
if( !n ) {
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
#ifdef USE_CAPABILITIES
|
||||||
|
/* drop all capabilities */
|
||||||
|
cap_set_proc( cap_from_text("all-eip") );
|
||||||
|
|
||||||
|
#elif !defined(HAVE_DOSISH_SYSTEM)
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
|
|
||||||
disable_secmem=1;
|
disable_secmem=1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user