diff --git a/AUTHORS b/AUTHORS index b9e56d9..b902299 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,20 +1,22 @@ Package: gpgol Contact: info-gpgol@g10code.com Bugs: bug-gpgol@g10code.com License: LGPLv2.1+ g10 Code GmbH New code and packet maintainer. Timo Schulz All code from the years 2003, 2004 Daniel Nylander Swedish translation. +Marco A.G.Pinto + Portuguese translation. Some files may still contain code from the orginal plugin: Copyright (C) 2001 G Data Software AG, http://www.gdata.de diff --git a/ChangeLog b/ChangeLog index 7f72c6d..1fcdbb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,296 +1,309 @@ +2010-07-21 Werner Koch + + Release 1.1.2. + +2010-07-21 Marco A.G.Pinto (wk) + + * po/pt.po: New. + * po/LINGUAS: Add pt. + +2010-07-21 Werner Koch + + * configure.ac: Require libgpg-error 1.9 due to gpg_err_deinit. + 2010-04-21 Marcus Brinkmann * configure.ac (NEED_LIBASSUAN_API, NEED_LIBASSUAN_VERSION): Bump to 2/2.0.0. (_ASSUAN_ONLY_GPG_ERRORS): Remove. 2010-01-13 Werner Koch Release 1.1.1. 2010-01-12 Werner Koch * po/POTFILES.in (explorers.cpp, inspectors.cpp, mailitem.cpp): New. 2010-01-08 Werner Koch * forms/encr-s.ico, forms/sign-s.ico: Fix them. 2010-01-05 Werner Koch Release 1.1.0. 2009-12-22 Werner Koch * forms/encr-l.ico, forms/encr-s.ico: Update. * forms/sign-l.ico, forms/encr-l.ico: Update. 2009-11-02 Werner Koch * forms/Makefile.am (cfg_english): New. 2009-10-30 Werner Koch * forms/Makefile.am (icons): Udpate all icons. 2009-10-08 Werner Koch * configure.ac (CFLAGS): Add -fno-strict-aliasing. 2009-09-28 Werner Koch Release 1.0.1. 2009-08-28 Werner Koch * configure.ac [GCC]: Test for -Wno-pointer-sign. 2009-06-18 Werner Koch Release 1.0.0. 2009-02-27 Werner Koch Release 0.10.19. 2009-01-28 Werner Koch Release 0.10.18. * po/de.po: s/Unterschrift/Signatur/. 2008-11-14 Werner Koch Release 0.10.17. 2008-11-11 Werner Koch Release 0.10.16. 2008-10-27 Werner Koch * forms/gpgol-cs_de.cfg: New. 2008-08-06 Werner Koch Release 0.10.15. * forms/sign-l.ico, forms/sign-s.ico: New. * forms/encr-l.ico, forms/encr-s.ico: New 2008-08-04 Werner Koch * Makefile.am (SUBDIRS): Add forms. * forms/Makefile.am: New. * forms/gpgol_de.cfg, forms/gpgol-ms_de.cfg: New. 2008-06-04 Werner Koch * doc/gpgol.texi (Assuan Protocol): Remove protocol specs. They are now part of the GPGME manual. 2008-05-28 Werner Koch * Release 0.10.14. 2008-05-06 Werner Koch * Release 0.10.13. 2008-04-16 Werner Koch * Release 0.10.12. 2008-04-04 Werner Koch * Release 0.10.11. 2008-04-02 Werner Koch * Release 0.10.10. 2008-04-01 Werner Koch * configure.ac (AC_INIT): Fix quoting. 2008-03-19 Werner Koch * Release 0.10.9. 2008-03-18 Werner Koch * Release 0.10.8. 2008-03-11 Werner Koch * Release 0.10.7. 2008-03-10 Werner Koch * Release 0.10.6. 2008-03-07 Werner Koch * configure.ac (SVN_REVISION): New AC_DEFINE. 2008-03-06 Werner Koch * doc/gpgol.texi (SIGN): Extend the SIGNER command to allow suggestion of a protocol. 2008-02-18 Werner Koch Release 0.10.5 development version. 2008-02-15 Werner Koch * po/de.po: Describe more explicit on how to start the UI-server. 2008-02-06 Werner Koch Released 0.10.4 development version. 2007-12-10 Werner Koch Released 0.10.3 development version. 2007-11-12 Werner Koch Released 0.10.2 development version. 2007-10-22 Werner Koch Released 0.10.1 development version. 2007-10-12 Werner Koch * po/POTFILES.in: Add more files. 2007-10-11 Werner Koch Released 0.10.0 development version. 2007-10-05 Werner Koch * doc/: New. * doc/Makefile.am: New. * doc/gpgol.texi: New. * doc/gpl.texi: New. 2007-09-25 Werner Koch * configure.ac: Check for libassuan. 2007-09-17 Werner Koch * autogen.sh (FORCE): Add --force option. 2007-08-13 Marcus Brinkmann * configure.ac (svn_revision): Update to latest version from gnupg. 2006-12-13 Werner Koch * po/LINGUAS: Added sv. 2006-12-13 Daniel Nylander (wk) * po/sv.po: New. 2006-10-13 Werner Koch Released 0.9.91. 2006-08-28 Werner Koch Released 0.9.90. 2006-04-25 Werner Koch Released 0.9.10. 2006-04-24 Werner Koch Released 0.9.9. * configure.ac: Use M4 macros to get the actual SVN revision. 2006-03-28 Werner Koch 2006-03-21 Werner Koch Released 0.9.7. 2006-01-26 Werner Koch Released 0.9.6. 2005-12-07 Werner Koch Released 0.9.5. 2005-12-06 Werner Koch Released 0.9.4. 2005-12-02 Werner Koch * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New. 2005-11-30 Werner Koch * po/de.po: New. * po/: New; created by autopoint. * po/Makevars: New. * m4/Makefile.am: Add new m4 files. * autogen.sh: Detect gettext. * configure.ac: Check for gettext. 2005-11-15 Werner Koch * configure.ac (BUILD_TIMESTAMP): Include SVN revision. (AM_INIT_AUTOMAKE): Fixed invocation. 2005-10-21 Marcus Brinkmann * m4/gpg-error.m4: New file. * configure.ac: Also check for gpg-error. 2005-10-11 Werner Koch * configure.ac: Use MS style bitfields. 2005-10-06 Marcus Brinkmann * configure.ac: Change AC_CONFIG_SRCDIR argument to src/gpgol.def. 2005-09-29 Werner Koch Released 0.9.3. 2005-09-22 Werner Koch Released 0.9.2. 2005-09-19 Werner Koch Released 0.9.1. 2005-09-04 Werner Koch Released 0.9.0. 2005-08-30 Werner Koch Renamed project to gpgol. 2005-08-14 Werner Koch * configure.ac: Build src/versioninfo.rc. 2005-08-10 Werner Koch * configure.ac: Check for and define DLLTOOL. diff --git a/NEWS b/NEWS index 4fad915..f1fcd42 100644 --- a/NEWS +++ b/NEWS @@ -1,423 +1,431 @@ +Noteworthy changes for version 1.1.2 (2010-07-21) +================================================= + + * Add Portuguese translation + + * Fixed linking problems with latest libgpg-error. + + Noteworthy changes for version 1.1.1 (2010-01-13) ================================================= * Cleaned up some icons. Noteworthy changes for version 1.1.0 (2010-01-05) ================================================= * Replaced most ECE code by direct OOM code. This was required to support better icons; i.e. icons not limited to a 16 color palette. * New icons. * Removed protocol selection. The UI-server is now expected to select the protocol (i.e. the auto selection mode is now the only one). Noteworthy changes for version 1.0.1 (2009-09-28) ================================================= * No more event loop peeking to avoid problem with Office programs. * S/MIME support is now enabled by default. Noteworthy changes for version 1.0.0 (2009-06-18) ================================================= * Show a notice about potential problems. * After about 2 years of development, the 1.0 version is now due. Noteworthy changes for version 0.10.19 (2009-02-27) =================================================== * Save the crypto settings in a message draft. * Unnamed attachments are now shown with a suffix matching its MIME type. Noteworthy changes for version 0.10.18 (2009-01-28) =================================================== * Handle OL created S/MIME messages. Noteworthy changes for version 0.10.17 (2008-11-14) =================================================== * Minor cleanups. * All operations are now somewhat faster. Noteworthy changes for version 0.10.16 (2008-11-11) =================================================== * Fixed a regression in the last release with opaque signatures. * Fixed PGP cleartext signature verification. * Encryption of attachments is now much faster. Noteworthy changes for version 0.10.15 (2008-08-06) =================================================== * New option to present the body of a message as an attachment. This is useful to make sure that the body will never show up as plaintext in the message store. * New menu item to remove all GpgOL created flags and attachments from all messages in a folder. * Icons are now installed for messages processed by GpgOL. For now only for the German version of Outlook. Noteworthy changes for version 0.10.14 (2008-05-28) =================================================== * Minor fixes. Noteworthy changes for version 0.10.13 (2008-05-06) =================================================== * Properly handle the disposition of text attachments. Noteworthy changes for version 0.10.12 (2008-04-16) =================================================== * Added icons. * Minor usuability changes. Noteworthy changes for version 0.10.11 (2008-04-04) =================================================== * Fixed a performance problem with signed+encrypted. Noteworthy changes for version 0.10.10 (2008-04-02) =================================================== * Visual cleanups. * Changes to the I/O dispatcher. Noteworthy changes for version 0.10.9 (2008-03-19) ================================================== * Decrypt opaque signed and encrypted S/MIME mails. * Handle old-style PGP message with attachments. Note that the signature verification currently may indicate a bad signature. Noteworthy changes for version 0.10.8 (2008-03-18) ================================================== * Fixed a segv introduced with 0.10.6. Noteworthy changes for version 0.10.7 (2008-03-11) ================================================== * Changed the way sign+encrypt works to help the UI-server. Noteworthy changes for version 0.10.6 (2008-03-10) ================================================== * More tweaks to allow processing of opaque encrypted or signed S/MIME. * Shows an error message when trying to decrypt/verify messages not signed or encrypted. * Soft line breaks in QP encoded messages are now correctly processed. * The sender's address is send to the UI server to allow it to select an appropriate signing key. * Automatic protocol selection works now also with signing. * Processing large messages is faster. Noteworthy changes for version 0.10.5 (2008-02-18) ================================================== * PGP inline encrypted mails are not anymore deleted after the first decryption. Noteworthy changes for version 0.10.4 (2008-02-06) ================================================== * Sign and encrypt works now. * Texts with embedded attachments are now concatenated. * Encrypted message are now viewable in the sent messages folder. Noteworthy changes for version 0.10.3 (2007-12-10) ================================================== * Minor fixes. Noteworthy changes for version 0.10.2 (2007-11-12) ================================================== * New menu items to select the default protocol. * Code cleanups. Noteworthy changes for version 0.10.1 (2007-10-22) ================================================== * Auto start the server. * Code cleanups. * Made all dialogs language neutral. * The manual has some notes about the Registry usage and new MAPI properties. Noteworthy changes for version 0.10.0 (2007-10-11) ================================================== * Basically a complete rewrite. A lot of things are still missing but if might be useful to see the direction the development takes. Noteworthy changes for version 0.9.91 (2006-10-13) ================================================== * Fixed a crash in the recipients dialog. Noteworthy changes for version 0.9.90 (2006-08-28) ================================================== * Fix problem that message would be sent in clear text if the user cancelled the operation. * Cosmetic updates for some dialogs. * Do not show the 'select signer dialog' when only one secret key is available in the keyring. * Fixes for the automatic key selection algorithm used in the recipient key dialog. Noteworthy changes for version 0.9.10 (2006-04-25) ================================================== * Fixes for Umlaut problems. Noteworthy changes for version 0.9.9 (2006-04-24) ================================================= * Some cosmetic changes. * Encryption to the default key works again. Noteworthy changes for version 0.9.8 (2006-03-28) ================================================= * PGP/MIME signature verification may now work in some cases. * New option to prefer displaying of the HTML part. Noteworthy changes for version 0.9.7 (2006-03-21) ================================================= * Minor changes Noteworthy changes for version 0.9.6 (2006-01-26) ================================================= * Cosmetic fixes. Noteworthy changes for version 0.9.5 (2005-12-07) ================================================= * Fixed problems related to use on non-admin accounts. * Print a warning if used with OL prior to OL2003 SP2. Noteworthy changes for version 0.9.4 (2005-12-06) ================================================= * Added translation framework. Provided German translation. * New option to enable automatic decryption in the preview window. * Removed deprecated options to configure gpg path and homedir. * Default key from the option dialog works. * Support for HTML mails. Noteworthy changes for version 0.9.3 (2005-09-29) ================================================= * Fixed bugs introduced with the last release. * PGP/MIME decryption works now correctly with Latin-1 and utf-8. * No more pop-ups to ask whether to save changes after just decrypting a message. * Fixed a couple of bugs possibly leading to crashes. Noteworthy changes for version 0.9.2 (2005-09-22) ================================================= * Saving attachments from PGP/MIME encrypted messages works. Noteworthy changes for version 0.9.1 (2005-09-19) ================================================= * Bug fixes Noteworthy changes for version 0.9.0 (2005-09-04) ================================================= * Major rewrite. Renamed the package to GPGol. Note, that there used to be intermediate versions unter the name OutlGPG * The package as been renamed to GPGol and consist of only one DLL named "gpgol.dll". Installation of gpgme.dll and libgpg-error.dll is required. * It may by now only be build using the Mingw32 toolchain. * GPGol now uses the standard GPGME. Noteworthy changes for version 0.6.1 (unreleased) ================================================= * Fix the problem that the user can just reply with the encrypted text. * Fixes for a lot of minor problems with NT5 based systems and for Outlook version 2003. * Support for handling HTML mails. This includes the encryption of the contents and the proper decryption without losing the special (html) text attributes like colors. * Support for '%ENV%' strings for the log file. Noteworthy changes for version 0.5.5 (2005-07-12) ================================================= * Support to sign all outgoing attachments. * Support for logging. * Fixed some memory leaks. Noteworthy changes for version 0.5.4 (2005-07-03) ================================================= * Support for securing attachments. This means the all attachments will be encrypted if encryption has been selected for the message. * A new option to allow to save decrypted attachments to the disk. * Several bug fixes all over the place. Noteworthy changes for version 0.5.3 (2005-06-16) ================================================= * Allow to set a default key which is used automatically for encryption. * Handle old V3 keys in the signature verification dialog. * Issue and error if the encrypt process returned invalid recipients. Noteworthy changes for version 0.5.2 (2005-06-05) ================================================= * Differ between possible decryption failures. - General errors. - No secret key available. * Add a 'encrypt-to' listbox to the decryption dialog to know the recipients the message was encrypted for. * Add some checks to report problems with permissions related to the Registry. * Fixed a format string problem which was possible for crashes when the signature has been expired. Noteworthy changes for version 0.5.1 (2005-05-29) ================================================= * Issue a warning if the user cancels the sign or encryption procedure. * Support to read and write X- headers for messages. * Fixed a problem which crashes Outlook if the keyManager exe did not exist but was set in the registry. Noteworthy changes for version 0.4.0 (2005-05-10) ================================================= * Verify dialog is automatically shown whenever needed. Plus it contains a hint-label whenever the signature is special. For example the signature has expire or it was issued by a key which is not trustworthy. * Offer a GPG configuration dialog to set the path to GPG, the home directory and an optional field to specify a key manager. * Common dialogs for the following procedures: - verify a clearsign signature - decrypt a message (and verify a signature) - encrypt a message (and sign the plaintext) - clearsign a message * Provide a class to encapsulate MAPI messages and high-level functions for all crypto operations. diff --git a/configure.ac b/configure.ac index 8832feb..7be38de 100644 --- a/configure.ac +++ b/configure.ac @@ -1,277 +1,277 @@ # configure.ac - for GpgOL # Copyright (C) 2005, 2006, 2007, 2008 g10 Code GmbH # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) min_automake_version="1.9.4" # Remember to change the version number immediately *after* a release. # Set my_issvn to "yes" for non-released code. Remember to run an # "svn up" and "autogen.sh" right before creating a distribution. m4_define([my_version], [1.1.2]) -m4_define([my_issvn], [yes]) +m4_define([my_issvn], [no]) m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \ || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')])) AC_INIT([gpgol], [my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])], [bug-gpgol@g10code.com]) -NEED_GPG_ERROR_VERSION=1.4 +NEED_GPG_ERROR_VERSION=1.9 NEED_GPGME_API=1 NEED_GPGME_VERSION=1.1.0 NEED_LIBASSUAN_API=2 NEED_LIBASSUAN_VERSION=2.0.0 SVN_REVISION=svn_revision PACKAGE=$PACKAGE_NAME PACKAGE_GT=${PACKAGE_NAME} VERSION=$PACKAGE_VERSION AC_CONFIG_SRCDIR(src/gpgol.def) AM_CONFIG_HEADER(config.h) AC_CANONICAL_TARGET() AM_INIT_AUTOMAKE AC_GNU_SOURCE have_gpg_error=no have_libassuan=no AC_SUBST(PACKAGE) AC_SUBST(PACKAGE_GT) AC_SUBST(VERSION) AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package]) AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT", [Name of this package for gettext]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package]) AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT", [Bug report address]) AC_DEFINE_UNQUOTED(NEED_GPGME_VERSION, "$NEED_GPGME_VERSION", [Required version of GPGME]) AC_DEFINE_UNQUOTED(SVN_REVISION, ${SVN_REVISION}, [Current SVN revision]) BUILD_TIMESTAMP=`date --iso-8601=minutes` AC_SUBST(BUILD_TIMESTAMP) changequote(,)dnl BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'` changequote([,])dnl BUILD_FILEVERSION="${BUILD_FILEVERSION}${SVN_REVISION}" AC_SUBST(BUILD_FILEVERSION) AH_BOTTOM([ /* Some global constants. */ /* Force using of NLS for W32 even if no libintl has been found. This is okay because we have our own gettext implementation for W32. */ #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS) #define ENABLE_NLS 1 #endif ]) AM_MAINTAINER_MODE # Checks for programs. AC_PROG_MAKE_SET AM_SANITY_CHECK missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_PROG_AWK AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_RANLIB AC_CHECK_TOOL(AR, ar, :) AC_CHECK_TOOL(DLLTOOL, dlltool, :) AC_CHECK_TOOL(WINDRES, windres, :) have_dosish_system=no have_w32_system=no case "${host}" in *-mingw32*) # special stuff for Windoze NT ac_cv_have_dev_random=no AC_DEFINE(USE_ONLY_8DOT3,1, [set this to limit filenames to the 8.3 format]) AC_DEFINE(HAVE_DRIVE_LETTERS,1, [defined if we must run on a stupid file system]) have_dosish_system=yes have_w32_system=yes ;; *) AC_MSG_ERROR([[ *** *** This software my only be build for W32 systems. Use *** ./autogen.sh --build-w32 *** to prepare it for such a build. ***]]) ;; esac if test "$have_dosish_system" = yes; then AC_DEFINE(HAVE_DOSISH_SYSTEM,1, [Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) with special properties like no file modes]) fi AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes) if test "$have_w32_system" = yes; then AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system]) fi AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes) # # Checks for libraries. # AM_PATH_GPGME("$NEED_GPGME_API:$NEED_GPGME_VERSION", have_gpgme=yes,have_gpgme=no) AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION", have_gpg_error=yes,have_gpg_error=no) AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_USER_2, [The default error source for GpgOL.]) AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION", have_libassuan=yes,have_libassuan=no) # Note, that autogen.sh greps for the next line. AM_GNU_GETTEXT_VERSION(0.12.1) AM_GNU_GETTEXT([external]) # We always want NLs, despite what the above macro figures out. USE_NLS=yes # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h) AC_CHECK_FUNCS(stpcpy) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_TYPE_SIGNAL AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes) # Add some extra libs here so that previous tests don't fail for # mysterious reasons - the final link step should bail out. if test "$have_w32_system" = yes; then W32LIBS="-lwsock32" fi if test "$GCC" = yes; then CFLAGS="$CFLAGS -Wall -mms-bitfields -fno-strict-aliasing" CXXFLAGS="$CXXFLAGS -Wall -mms-bitfields -fno-strict-aliasing" if test "$USE_MAINTAINER_MODE" = "yes"; then CFLAGS="$CFLAGS -Wcast-align -Wshadow -Wstrict-prototypes" CFLAGS="$CFLAGS -Wno-format-y2k -Wformat-security" CFLAGS="$CFLAGS -W -Wno-sign-compare" CXXFLAGS="$CXXFLAGS -Wcast-align -Wshadow" CXXFLAGS="$CXXFLAGS -Wno-format-y2k -Wformat-security" CXXFLAGS="$CXXFLAGS -W -Wno-sign-compare" AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wno-missing-field-initializers" AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_mfi=yes,_gcc_mfi=no) AC_MSG_RESULT($_gcc_mfi) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_mfi" = xyes ; then CFLAGS="$CFLAGS -Wno-missing-field-initializers" CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers" fi fi AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wno-pointer-sign" AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_psign=yes,_gcc_psign=no) AC_MSG_RESULT($_gcc_psign) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_psign" = xyes ; then CFLAGS="$CFLAGS -Wno-pointer-sign" fi fi AC_SUBST(W32LIBS) # # Print errors here so that they are visible all # together and the user can acquire them all together. # die=no if test "$have_gpg_error" = "no"; then die=yes AC_MSG_NOTICE([[ *** *** You need libgpg-error to build this program. ** This library is for example available at *** ftp://ftp.gnupg.org/pub/gcrypt/libgpg-error *** (at least version $NEED_GPG_ERROR_VERSION is required.) ***]]) fi if test "$have_gpgme" = "no"; then die=yes AC_MSG_NOTICE([[ *** *** You need gpgme to build this program. ** This library is for example available at *** ftp://ftp.gnupg.org/gcrypt/gpgme/ *** (at least version $NEED_GPGME_VERSION is required.) ***]]) fi if test "$have_libassuan" = "no"; then die=yes AC_MSG_NOTICE([[ *** *** You need libassuan to build this program. *** This library is for example available at *** ftp://ftp.gnupg.org/pub/gcrypt/libassuan/ *** (at least version $NEED_LIBASSUAN_VERSION is required). ***]]) fi if test "$die" = "yes"; then AC_MSG_ERROR([[ *** *** Required libraries not found. Please consult the above messages *** and install them before running configure again. ***]]) fi AC_CONFIG_FILES([ Makefile src/Makefile src/versioninfo.rc forms/Makefile doc/Makefile po/Makefile.in m4/Makefile ]) AC_OUTPUT diff --git a/po/LINGUAS b/po/LINGUAS index 132e45f..a991b7e 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,5 +1,6 @@ # Set of available languages. de sv +pt diff --git a/po/de.po b/po/de.po index 87a4e81..c4c5e17 100644 --- a/po/de.po +++ b/po/de.po @@ -1,1048 +1,1048 @@ # de.po - German translation for GpgOL # Copyright (C) 2005, 2007 g10 Code GmbH # This file is distributed under the same license as the GpgOL package. # Werner Koch , 2005, 2007. # msgid "" msgstr "" "Project-Id-Version: GpgOL 1.0.0\n" "Report-Msgid-Bugs-To: bug-gpgol@g10code.com\n" -"POT-Creation-Date: 2010-01-12 19:34+0100\n" +"POT-Creation-Date: 2010-07-21 11:04+0200\n" "PO-Revision-Date: 2009-06-18 19:18+0200\n" "Last-Translator: Werner Koch \n" "Language-Team: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/attached-file-events.cpp:58 msgid "Error creating file for attachment." msgstr "Fehler bei der Erstellung der Datei für das Attachment." #: src/attached-file-events.cpp:71 msgid "Error reading attachment." msgstr "Fehler beim Lesen des Attachments." #: src/attached-file-events.cpp:82 src/attached-file-events.cpp:95 msgid "Error writing attachment." msgstr "Fehler beim Schreiben des Attachments." #: src/attached-file-events.cpp:216 msgid "" "Sorry, we are not able to decrypt this attachment.\n" "\n" "Please use the decrypt/verify button to decrypt the\n" "entire message again. Then open this attachment." msgstr "" "Es ist leider nicht mehr möglich, diese Attachment zu öffnen.\n" "\n" "Bitten benutzen Sie den \"Entschlüsseln/Ãœberprüfen\" Menüpunkt\n" "um die gesamte Nachricht nochmal zu entschlüsseln. Danach können\n" "Sie das Attachment wieder öffenen." #: src/common.c:216 msgid "GpgOL - Save decrypted attachment" msgstr "GpgOL - Sichern der entschlüsselten Anlage" #: src/config-dialog.c:137 msgid "Debug output (for analysing problems)" msgstr "Debugausgabe (zur Problemanalyse)" #: src/engine.c:392 msgid "" "The user interface server is not available or could not be started in time. " "You may want to try again." msgstr "" "Die GnuPG Benutzeroberfläche \"Kleopatra\" konnte nicht gefunden oder " "rechtzeitig gestartet werden. Sie sollten es noch einmal versuchen." -#: src/engine.c:395 src/engine.c:405 src/main.c:695 src/main.c:701 +#: src/engine.c:395 src/engine.c:405 src/main.c:699 src/main.c:705 #: src/message.cpp:303 src/explorers.cpp:204 src/explorers.cpp:209 msgid "GpgOL" msgstr "GpgOL" #: src/engine.c:401 msgid "" "The user interface server is not available or does not work. Using an " "internal user interface.\n" "\n" "This is limited to the PGP/MIME protocol and thus S/MIME protected message " "are not readable." msgstr "" "Achtung: Die GnuPG Benutzeroberfläche \"Kleopatra\" konnte nicht gefunden " "werden.\n" "\n" "Um GpgOL zu nutzen probieren Sie bitte eine der folgenden Möglichkeiten " "aus:\n" "\n" "1. Entweder: Outlook beenden und erneut starten.\n" "\n" "2. Oder: Outlook beenden. Dann \"Kleopatra\" aus dem Startmenü\n" " (unter \"GnuPG für Windows\") oder auf einem anderen Weg starten.\n" " Sobald \"Kleopatra\" läuft, erneut Outlook starten." #: src/engine-gpgme.c:368 msgid "" "The configured default encryption certificate is not available or does not " "unambigiously specify one. Please fix this in the option dialog.\n" "\n" "This message won't be be encrypted to this certificate!" msgstr "" "Das voreingestellte zusätzliche Zertifikat zum Verschlüsseln ist nicht\n" "vorhanden oder nicht eindeutig. Bitte beheben Sie dies in den\n" "Optionseinstellungen.\n" "\n" "Die Nachricht wird deswegen nicht für dieses Zertifikat verschlüsselt!" #: src/engine-gpgme.c:372 msgid "Encryption" msgstr "Verschlüsselung" #: src/engine-gpgme.c:788 msgid "Fingerprint: " msgstr "Fingerabdruck: " #: src/engine-gpgme.c:845 msgid "This signature is valid\n" msgstr "Diese Signatur ist korrekt\n" #: src/engine-gpgme.c:847 msgid "signature state is \"green\"\n" msgstr "Status der Signatur ist \"grün\"\n" #: src/engine-gpgme.c:849 msgid "signature state is \"red\"\n" msgstr "Status der Signatur ist \"rot\"\n" #: src/engine-gpgme.c:853 msgid "Warning: One of the certificates has been revoked\n" msgstr "Warnung: Eines der Zertifikate wurde widerrufen\n" #: src/engine-gpgme.c:863 msgid "Warning: The certificate used to create the signature expired at: " msgstr "" "Warnung: Das Zertifikat mit der diese Signatur erzeugt wurde verfiel am: " #: src/engine-gpgme.c:869 msgid "Warning: At least one certification certificate has expired\n" msgstr "" "Warnung: Mindestens eines der Zertifizierungs-Zertifikate ist abgelaufen\n" #: src/engine-gpgme.c:875 msgid "Warning: The signature expired at: " msgstr "Die Signatur verfiel am: " #: src/engine-gpgme.c:881 msgid "Can't verify due to a missing certificate\n" msgstr "" "Aufrund eines fehlenden Zertifikats ist eine Ãœberprüfung nicht möglich\n" #: src/engine-gpgme.c:885 msgid "The CRL is not available\n" msgstr "Die CRL ist nicht verfügbar\n" #: src/engine-gpgme.c:891 msgid "Available CRL is too old\n" msgstr "Die vorhandene CRL ist zu alt\n" #: src/engine-gpgme.c:896 msgid "A policy requirement was not met\n" msgstr "Eine Richtlinie wurde nicht erfüllt\n" #: src/engine-gpgme.c:902 msgid "A system error occured" msgstr "Ein Systemfehler ist aufgetreten" #: src/engine-gpgme.c:939 msgid "" "WARNING: We have NO indication whether this certificate belongs to the " "person named as shown above\n" msgstr "" "WARNUNG: Es gibt keinen Hinweis darauf, ob dieses Zertifikat wirklich der " "Person gehört, die oben angezeigt ist\n" #: src/engine-gpgme.c:946 msgid "" "WARNING: The certificate does NOT BELONG to the person named as shown above\n" msgstr "" "WARNUNG: Das Zertifikat gehört NICHT der Person die oben angezeigt ist\n" #: src/engine-gpgme.c:950 msgid "" "WARNING: It is NOT certain that the certificate belongs to the person named " "as shown above\n" msgstr "" "WARNING: Es ist nicht sicher, daß das Zertifikat der Person gehört, die oben " "angezeigt ist\n" #: src/engine-gpgme.c:983 msgid "Verification started at: " msgstr "Ãœberprüfung begann am: " #: src/engine-gpgme.c:988 msgid "Verification result for: " msgstr "Prüfungsresultat für: " #: src/engine-gpgme.c:989 msgid "[unnamed part]" msgstr "[Unbenannter Teil]" #: src/engine-gpgme.c:1007 src/engine-gpgme.c:1037 msgid "Good signature from: " msgstr "Korrekte Signatur von: " #: src/engine-gpgme.c:1014 msgid " aka: " msgstr " alias: " #: src/engine-gpgme.c:1018 src/engine-gpgme.c:1040 msgid " created: " msgstr " erzeugt: " #: src/engine-gpgme.c:1027 msgid "*BAD* signature claimed to be from: " msgstr "*FALSCHE* Signatur, vorgeblich von: " #: src/engine-gpgme.c:1050 msgid "Error checking signature" msgstr "Fehler beim Prüfen der Signatur" #: src/engine-gpgme.c:1066 msgid "*** Begin Notation (signature by: " msgstr "*** Anfang Notation (Signatur von: " #: src/engine-gpgme.c:1086 msgid "*** End Notation ***\n" msgstr "*** Ende Notation ***\n" -#: src/main.c:694 +#: src/main.c:698 #, c-format msgid "Note: Using compatibility flags: %s" msgstr "Notiz: Diese Kompatibilitätsflags werden verwendet: %s" -#: src/main.c:700 +#: src/main.c:704 #, c-format msgid "" "Note: Writing debug logs to\n" "\n" "\"%s\"" msgstr "" "Notiz: Debug-Logausgaben werden nach\n" "\n" "\"%s\"\n" "\n" "geschrieben." #: src/mapihelp.cpp:1527 src/mapihelp.cpp:1535 src/mapihelp.cpp:1543 msgid "[no subject]" msgstr "[Kein Betreff]" #: src/mapihelp.cpp:2152 msgid "" "[The content of this message is not visible because it has been decrypted by " "another Outlook session. Use the \"decrypt/verify\" command to make it " "visible]" msgstr "" "[Der Inhalt dieser Nachricht ist nicht sichtbar, da sie in einer anderen " "Outlook Sitzung entschlüsselt wurde. Verwenden Sie den Menüpunkt " "\"entschlüsseln/überprüfen\" um den Inhalt wieder sichtbar zu machen.]" #: src/mapihelp.cpp:3004 msgid "" "[The content of this message is not visible due to an processing error in " "GpgOL.]" msgstr "" "[Aufgrund eines Verarbeitungsfehlers in GpgOL ist der Inhalt dieser " "Nachricht nicht sichtbar.]" #: src/message-events.cpp:284 src/mailitem.cpp:164 msgid "" "Sorry, we can only encrypt plain text messages and\n" "no RTF messages. Please make sure that only the text\n" "format has been selected." msgstr "" "Leider ist es nur möglich reine Textnachrichten aber keine\n" "Nachrichten im RTF Format zu verschlüsseln. Bitte stellen \n" "Sie sicher, daß lediglich das Text Format ausgewählt wurde.\n" "(In der Menüleiste: \"Format\" => \"Nur Text\")" #: src/message.cpp:181 msgid "[Crypto operation failed - can't show the body of the message]" msgstr "" "[Krypto-Operation ist fehlgeschlagen - Der Text der Nachricht kann nicht " "angezeigt werden.]" #: src/message.cpp:283 #, c-format msgid "" "Signature status: %s\n" "Message class ..: %s\n" "MIME structure .:\n" "%s" msgstr "" "Status der Signatur ...: %s\n" "Nachrichtenklasse .....: %s\n" "Struktur der Nachricht :\n" "%s" #: src/message.cpp:291 msgid "GpgOL - Message Information" msgstr "GpgOL - Informationen zu der Nachricht" #: src/message.cpp:523 msgid "Signature verification of an encrypted message is not possible." msgstr "" "Die Prüfung der Signatur ist bei einer verschlüsselten Nachrichten nicht " "möglich." #: src/message.cpp:534 msgid "Signature verification of this message class is not possible." msgstr "" "Die Prüfung der Signatur ist bei dieser Nachrichtenklasse nicht möglich." #: src/message.cpp:537 msgid "" "Signature verification of this S/MIME message is not possible. Please check " "that S/MIME processing has been enabled." msgstr "" "Die Prüfung der Signatur ist bei dieser S/MIME Nachricht nicht möglich. " "Bitte überprüfen Sie in den Einstellungen, daß die Verarbeitung von S/MIME " "eingeschaltet ist." #: src/message.cpp:541 msgid "This message has no signature." msgstr "Diese Nachricht hat keine Signatur." #: src/message.cpp:839 msgid "This message is not encrypted." msgstr "Diese Nachricht ist nicht verschlüsselt." #: src/message.cpp:1066 #, c-format msgid "" "Decryption failed\n" "(%s)" msgstr "" "Entschlüsselungsfehler\n" "(%s)" #: src/message.cpp:1213 msgid "No recipients to encrypt to are given" msgstr "Empfänger zum Verschlüsseln wurde nicht angegeben" #: src/message.cpp:1226 src/message.cpp:1253 msgid "Encrypting or signing an empty message is not possible." msgstr "Eine leere Nachricht kann nicht signiert oder verschlüsselt werden." #: src/message.cpp:1235 #, c-format msgid "Encryption failed (%s)" msgstr "Verschlüsselungsfehler (%s)" #: src/message.cpp:1262 #, c-format msgid "Signing failed (%s)" msgstr "Signaturerstellungsfehler (%s)" #: src/mimeparser.c:1203 msgid "Error writing to stream" msgstr "Dateischreibfehler" #: src/mimeparser.c:1204 msgid "I/O-Error" msgstr "Ein-/Ausgabefehler" #: src/olflange-dlgs.cpp:43 msgid "General" msgstr "Allgemein" #: src/olflange-dlgs.cpp:44 msgid "Enable the S/MIME support" msgstr "S/MIME Unterstützung einschalten" #: src/olflange-dlgs.cpp:46 msgid "Message sending" msgstr "Senden von Nachrichten" #: src/olflange-dlgs.cpp:47 msgid "&Encrypt new messages by default" msgstr "Neue Nachrichten per Voreinstellung verschlüsseln" #: src/olflange-dlgs.cpp:48 msgid "&Sign new messages by default" msgstr "Neue Nachrichten per Voreinstellung signieren" #: src/olflange-dlgs.cpp:50 msgid "Message receiving" msgstr "Lesen von Nachrichten" #: src/olflange-dlgs.cpp:52 msgid "Show HTML view if possible" msgstr "HTML Darstellung anzeigen wenn möglich" #: src/olflange-dlgs.cpp:53 msgid "Present encrypted message as attachment" msgstr "Verschlüsselte Nachricht als Anlage anzeigen" #: src/olflange-dlgs.cpp:56 msgid "Crypto Engine" msgstr "Zertifikatsserver ..." #. TRANSLATORS: See the source for the full english text. #: src/olflange-dlgs.cpp:256 msgid "-#GpgOLFullHelpText#-" msgstr "" "GpgOL ist ein Plugin für Microsoft Outlook, welches es ermöglicht\n" "Nachrichten mittels der Internet-Standards PGP/MIME oder S/MIME\n" "zu verschlüsseln und digital zu signieren. Im Hintergrund wird\n" "dazu die GnuPG Software () benutzt.\n" "Aktuelle Informationen zu GpgOL erhalten Sie durch eine Anklicken\n" "des Firmennames auf der Einstellungsseite oder auf der Webseite\n" ".\n" "\n" "GpgOL ist Freie Software. Sie können es unter den Bedingungen\n" "der GNU Lesser General Public License, wie von der Free Software\n" "Foundation veröffentlicht, weitergeben und/oder modifizieren;\n" "entweder gemäß Version 2.1 der Lizenz oder (nach Ihrer Wahl)\n" "jeder späteren Version.\n" "\n" "GpgOL wird in der Hoffnung veröffentlicht, daß es Ihnen von Nutzen\n" "sein wird, aber ohne irgendeine Garantie, sogar ohne die implizite\n" "Garantie der Marktreife oder der Verwendbarkeit für einen bestimmten\n" "Zweck. Details finden Sie in der GNU Lesser General Public License.\n" "\n" "Zusammen mit GpgOL sollten Sie eine Kopie der GNU Lesser General\n" "Public License erhalten haben. Falls nicht, finden Sie diese\n" "unter der Webadresse ." #: src/olflange-dlgs.cpp:262 #, c-format msgid "This is GpgOL version %s" msgstr "Dies ist GpgOL Version %s" #: src/olflange.cpp:444 msgid "" "Welcome to GpgOL 1.0\n" "\n" "GpgOL adds integrated OpenPGP and S/MIME encryption and digital signing " "support to Outlook 2003 and 2007.\n" "\n" "Although we tested this software extensively, we can't give you any " "guarantee that it will work as expected. The programming interface we are " "using has not been properly documented by Microsoft and thus the " "functionality of GpgOL may cease to work with an update of your Windows " "system.\n" "\n" "WE STRONGLY ADVISE TO RUN ENCRYPTION TESTS BEFORE YOU START TO USE GPGOL ON " "ANY SENSITIVE DATA!\n" "\n" "There are some known problems, the most severe being that sending encrypted " "or signed mails using an Exchange based account does not work. Using GpgOL " "along with other Outlook plugins may in some cases not work.\n" msgstr "" "Willkommen zu GpgOL 1.0 !\n" "\n" "GpgOL erweitert Outlook 2003 und 2007 um integrierte OpenPGP und S/MIME " "Verschlüsselung und digitale Signaturen.\n" "\n" "Obgleich wir diese Software ausgiebig getestet haben, können wir leider " "nicht garantieren, daß sie einwandfrei funktionieren wird. Die benutzte " "Programmierschnittstelle zu Outlook ist von Microsoft nur sehr ungenügend " "dokumentiert worden. Möglicherweise könnte die korrekte Funktion von GpgOL " "durch ein Update von Windows beeinträchtig werden.\n" "\n" "WIR RATEN DRINGEND DAZU, TESTS DER VERSCHLÃœSSELUNG DURCHZUFÃœHREN, BEVOR " "GPGOL FÃœR SENSIBLE DATEN BENUTZT WIRD!\n" "\n" "Es sind einige Problem bekannt: Insbesondere funktioniert das Senden von " "verschlüsselten oder signierten Nachrichten über ein Exchange basiertes " "Konto nicht. Wird GpgOL zusammen mit anderen Outlook Plugins benutzt, kann " "es möglicherweise nicht richtig arbeiten.\n" #: src/olflange.cpp:472 msgid "" "You have installed a new version of GpgOL.\n" "\n" "Please open the option dialog and confirm that the settings are correct for " "your needs. The option dialog can be found in the main menu at: Extras-" ">Options->GpgOL.\n" msgstr "" "Eine neue Version von GpgOL ist installiert worden.\n" "\n" "Bitte öffnen Sie das Fenster mit den Einstellungen und bestätigen Sie, daß " "die Einstellungen für Sie noch stimmen. Sie finden die Einstellungen im " "Hauptmenu unter: Extras->Optionen->GpgOL.\n" #: src/olflange.cpp:672 msgid "" "This version of Outlook is too old!\n" "\n" "At least versions of Outlook 2003 older than SP2 exhibit crashes when " "sending messages and messages might get stuck in the outgoing queue.\n" "\n" "Please update at least to SP2 before trying to send a message" msgstr "" "Diese Version von Outlook ist zu alt!\n" "\n" "Einige Versionen von Outlook 2003, älter als SP2, verursachen\n" "Programmabrüche beim Senden von Nachrichten und diese Nachrichten\n" "können dabei in der Ausgabewarteschlange stecken bleiben.\n" "\n" "Bitte updaten Sie auf SP2 bevor Sie versuchen eine Nachricht zu versenden." #: src/passphrase-dialog.c:85 msgid "No certificate hint given." msgstr "Kein Hinweis auf das Zertifikat" #: src/passphrase-dialog.c:313 src/passphrase-dialog.c:464 msgid "Enter passphrase to unlock the secret key" msgstr "Passphrase um geheimen Schlüssel zu entsperren" #: src/passphrase-dialog.c:314 src/passphrase-dialog.c:465 msgid "Hide typing" msgstr "&Eingabe ausblenden" #: src/passphrase-dialog.c:315 src/passphrase-dialog.c:466 #: src/recipient-dialog.c:385 msgid "&Cancel" msgstr "&Abbrechen" #: src/passphrase-dialog.c:350 src/passphrase-dialog.c:499 msgid "Invalid passphrase; please try again..." msgstr "Ungültige Passphrase; bitte nochmal versuchen..." #: src/passphrase-dialog.c:379 msgid "Select Signing Key" msgstr "Signaturschlüssel auswählen" #: src/passphrase-dialog.c:463 msgid "Encrypted to the following certificates:" msgstr "Verschlüsselt für diese Zertifikate:" #: src/recipient-dialog.c:88 msgid "Name" msgstr "Name" #: src/recipient-dialog.c:93 msgid "E-Mail" msgstr "E-Mail" #: src/recipient-dialog.c:98 msgid "Key-Info" msgstr "Key-Info" #: src/recipient-dialog.c:103 msgid "Key ID" msgstr "Key-ID" #: src/recipient-dialog.c:108 msgid "Validity" msgstr "Gültigkeit" #: src/recipient-dialog.c:383 msgid "Selected recipients:" msgstr "Ausgewählte Empfänger:" #: src/recipient-dialog.c:384 msgid "Recipient which were NOT found" msgstr "Empfänger die NICHT gefunden wurden:" #: src/recipient-dialog.c:444 msgid "Please select at least one recipient certificate." msgstr "Bitte wählen Sie mindestens ein Empfängerzertifikat." #: src/recipient-dialog.c:445 msgid "Recipient Dialog" msgstr "Auswahl des Empfängerschlüssels" #: src/verify-dialog.c:124 msgid "BAD signature!" msgstr "FALSCHE Signatur!" #: src/verify-dialog.c:126 msgid "Good signature" msgstr "Korrekte Signatur" #: src/verify-dialog.c:128 msgid "Good signature from revoked certificate" msgstr "Korrekte Signatur; aber Zertifikat wurde widerrufen" #: src/verify-dialog.c:130 msgid "Good signature from expired certificate" msgstr "Korrekte Signatur; allerdings ist das Zertifikat abgelaufen" #: src/verify-dialog.c:132 msgid "Good expired signature" msgstr "Korrekte aber abgelaufene Signatur" #: src/verify-dialog.c:135 msgid "Could not check signature: missing certificate" msgstr "Signatur konnte nicht geprüft werden: Zertifikat fehlt" #: src/verify-dialog.c:139 msgid "Verification error" msgstr "Ãœberprüfungsfehler" #: src/verify-dialog.c:156 msgid "User-ID not found" msgstr "User-ID nicht gefunden" #: src/verify-dialog.c:168 msgid "This may be due to a wrong option setting" msgstr "Möglicherweise durch falsche Einstellungen verursacht" #: src/verify-dialog.c:174 #, c-format msgid "Signature expired on %s" msgstr "Signatur abgelaufen am %s" #: src/verify-dialog.c:186 msgid "Signature issued by a certificate we do NOT trust." msgstr "Die Signatur stammt von einem Zertifikat dem wir NICHT vertrauen." #: src/verify-dialog.c:193 msgid "Signature issued by a non-valid certificate." msgstr "Die Signatur stammt von einem ungültigen Zertifikat." #: src/verify-dialog.c:209 msgid "Signature made" msgstr "Signatur erstellt" #: src/verify-dialog.c:210 msgid "using" msgstr "mit" #: src/verify-dialog.c:211 msgid "cert-ID" msgstr "Key-Id" #: src/verify-dialog.c:212 msgid "from" msgstr "von" #: src/verify-dialog.c:213 msgid "also known as" msgstr "auch bekannt als" #: src/verify-dialog.c:244 msgid "PGP/MIME Verification Result" msgstr "PGP/MIME Prüfungsresultat" #: src/verify-dialog.c:247 msgid "S/MIME Verification Result" msgstr "S/MIME Prüfungsresultat" #: src/inspectors.cpp:687 msgid "&encrypt message with GnuPG" msgstr "Nachricht verschlüsseln" #: src/inspectors.cpp:701 msgid "&sign message with GnuPG" msgstr "Nachricht signieren" #: src/inspectors.cpp:727 msgid "GpgOL Decrypt/Verify" msgstr "GpgOL Enschlüsseln/Prüfen" #: src/inspectors.cpp:788 msgid "Encrypt message with GnuPG" msgstr "Nachricht verschlüsseln" #: src/inspectors.cpp:804 msgid "Sign message with GnuPG" msgstr "Nachricht signieren" #: src/inspectors.cpp:921 msgid "" "This is a signed and encrypted message.\n" "Click for more information. " msgstr "" "Dies ist eine signierte und verschlüsselte Nachricht.\n" "Klicken Sie hier um weitere Informationen zu erhalten. " #: src/inspectors.cpp:927 msgid "" "This is a signed message.\n" "Click for more information. " msgstr "" "Dies ist eine signierte Nachricht.\n" "Klicken Sie hier um weitere Informationen zu erhalten. " #: src/inspectors.cpp:933 msgid "" "This is an encrypted message.\n" "Click for more information. " msgstr "" "Dies ist eine verschlüsselte Nachricht.\n" "Klicken Sie hier um weitere Informationen zu erhalten. " #: src/explorers.cpp:126 msgid "GnuPG Certificate &Manager" msgstr "GnuPG Zertifikats&verwaltung" #: src/explorers.cpp:140 msgid "Remove GpgOL flags from this folder" msgstr "GpgOL Eigenschaften aus diesem Ordner entfernen" #: src/explorers.cpp:167 msgid "Open the certificate manager" msgstr "Die Zertifikatsverwaltung öffnen" #: src/explorers.cpp:194 msgid "" "You are about to start the process of reversing messages created by GpgOL to " "prepare deinstalling of GpgOL. Running this command will put GpgOL into a " "disabled state so that messages are not anymore processed by GpgOL.\n" "\n" "You should convert all folders one after the other with this command, close " "Outlook and then deinstall GpgOL.\n" "\n" "Note that if you start Outlook again with GpgOL still being installed, GpgOL " "will again process messages." msgstr "" "Sie sind dabei, eine Deinstallation von GpgOL vorzubereiten. Hierzu wird " "GpgOL ausgeschaltet, so das Nachrichten nicht mehr durch GpgOL angezeigt " "werden.\n" "\n" "Sie sollten nacheinander dieses Kommandos für alle Ordner aufrufen, danach " "Outlook schliessen und GpgOL deinstallieren.\n" "\n" "Bitte beachten Sie, daß nach einem erneuten Start von Outlook - mit " "weiterhin installiertem GpgOL - Nachrichten wieder wie gewohnt von GpgOL " "angezeigt werden." #: src/explorers.cpp:208 msgid "Do you want to revert this folder?" msgstr "Möchten Sie diesen Ordner von GpgOL befreien?" #~ msgid "Select this option to encrypt the message." #~ msgstr "Wählen Sie diese Option zum Verschlüsseln der Nachricht." #~ msgid "Select this option to sign the message." #~ msgstr "Wählen Sie diese Option zum Signieren der Nachricht." #~ msgid "Select this option to open the certificate manager" #~ msgstr "Wählen Sie diese Option zum die Zertifikatsverwaltung zu öffenen." #~ msgid "Open the GpgOL certificate manager" #~ msgstr "Zertifikatsverwaltung von GpgOL öffnen" #~ msgid ">GnuPG protocol" #~ msgstr ">GnuPG Protokoll" #~ msgid "auto" #~ msgstr "automatisch" #~ msgid "PGP/MIME" #~ msgstr "PGP/MIME" #~ msgid "S/MIME" #~ msgstr "S/MIME" #~ msgid "" #~ "Support for S/MIME has not been enabled.\n" #~ "\n" #~ "To enable S/MIME support, open the option dialog and check \"Enable the S/" #~ "MIME support\". The option dialog can be found in the main menu at: " #~ "Extras->Options->GpgOL.\n" #~ msgstr "" #~ "Unterstützung für S/MIME ist nicht eingeschaltet.\n" #~ "\n" #~ "Um die S/MIME Unterstützung einzuschalten, öffnen Sie bitte das Fenster " #~ "mit den Einstellungen um dort die Option \"S/MIME Unterstützung " #~ "einschalten\" zu aktivieren. Sie finden die Einstellungen im Hauptmenu " #~ "unter: Extras->Optionen->GpgOL.\n" #~ msgid "Could not start certificate manager" #~ msgstr "Die Zertifikatsverwaltung konnte nicht aufgerufen werden" #~ msgid "Select this option to automatically select the protocol." #~ msgstr "Wählen Sie diese Option zum das Protokoll automatisch auszuwählen." #~ msgid "Select this option to select the PGP/MIME protocol." #~ msgstr "Wählen Sie diese Option zum das PGP/MIME Protokoll auszuwählen." #~ msgid "Select this option to select the S/MIME protocol." #~ msgstr "Wählen Sie diese Option zum das S/MIME Protokoll auszuwählen." #~ msgid "Automatically select the protocol for sign/encrypt" #~ msgstr "Wählen Sie diese Option um das Protokoll automatisch auszuwählen." #~ msgid "Use PGP/MIME for sign/encrypt" #~ msgstr "PGP/MIME zum signieren/verschlüsseln verwenden." #~ msgid "Use S/MIME for sign/encrypt" #~ msgstr "S/MIME zum signieren/verschlüsseln verwenden." #~ msgid "Use PGP/MIME by default" #~ msgstr "PGP/MIME per Voreinstellung verwenden" #~ msgid "Use S/MIME by default" #~ msgstr "S/MIME per Voreinstellung verwenden" #~ msgid "" #~ "You have enabled GpgOL's support for the S/MIME protocol.\n" #~ "\n" #~ "New S/MIME messages are thus only viewable with GpgOL and not anymore " #~ "with Outlook's internal S/MIME support. Those message will even be " #~ "unreadable by Outlook after GpgOL has been deinstalled. A tool to " #~ "mitigate this problem will be provided when GpgOL arrives at production " #~ "quality status." #~ msgstr "" #~ "Sie haben die S/MIME Unterstützung von GpgOL eingeschaltet.\n" #~ "\n" #~ "Neue S/MIME Nachrichten werden jetzt nur noch mittels GpgOL sichtbar sein " #~ "und nicht mehr über Outlooks interne S/MIME Unterstützung. Diese " #~ "Nachrichten werden auch dann nicht mehr mit Outlook lesbar sein, wenn " #~ "GpgOL deinstalliert wurde. Mit dem Erscheinen der endgültigen Version " #~ "von GpgOL wird aber ein Werkzeug bereitgestellt werden, welches dieses " #~ "Problem lösen kann." #~ msgid "Also decrypt in preview window" #~ msgstr "Auch im Vorschaufenster entschlüsseln" #~ msgid "&Decrypt and verify message" #~ msgstr "Entschlüsseln/Prüfen der Nachricht" #~ msgid "&Verify signature" #~ msgstr "&Unterschrift prüfen" #~ msgid "Select this option to decrypt and verify the message." #~ msgstr "" #~ "Wählen Sie diese Option um die Nachricht zu entschlüsseln bzw. zu " #~ "verifizieren." #~ msgid "Check the signature now and display the result" #~ msgstr "Die digitale Unterschrift jetzt prüfen und das Resultat anzeigen" #~ msgid "Path to certificate manager binary" #~ msgstr "Dateiname der Zertifikatsverwaltung" #~ msgid "Select Certificate Manager" #~ msgstr "GnuPG Zertifikats&verwaltung" #~ msgid "Passphrase" #~ msgstr "Passphrase" #~ msgid "Cache &passphrase for" #~ msgstr "Passphrase speichern für" #~ msgid "minutes" #~ msgstr "Minuten" #~ msgid "Ad&vanced.." #~ msgstr "&Erweitert..." #~ msgid "&Display crypto information" #~ msgstr "~Krypto Informationen anzeigen" #~ msgid "Select this option to show information on the crypto status" #~ msgstr "" #~ "Wählen Sie diese Option um Informationen über den Krypto-Status der " #~ "Nachricht anzuzeigen." #~ msgid "Show S/MIME status info" #~ msgstr "S/MIME Status Informationen anzeigen" #~ msgid "" #~ "Message class: %s\n" #~ "Sig Status : %s\n" #~ "Structure of the message:\n" #~ "%s" #~ msgstr "" #~ "Nachrichtenklasse: %s\n" #~ "Signatur-Status: %s\n" #~ "Struktur der Nachricht:\n" #~ "%s" #~ msgid "Also encrypt message with the default certificate" #~ msgstr "Nachricht ebenfalls an das voreingestellte Zertifikat verschlüsseln" #~ msgid "The default certificate may not contain any spaces." #~ msgstr "" #~ "Der Bezeichner für das Standardzertifikat darf keine Leerzeichen " #~ "enthalten." #~ msgid "Select GPG Key Manager" #~ msgstr "Das Schlüsselverwaltungsprogramm festlegen" #~ msgid "Encrypt message with GPG" #~ msgstr "Nachricht mit GnuPG verschlüsseln" #~ msgid "Sign message with GPG" #~ msgstr "Nachricht mit GnuPG unterschreiben" #~ msgid "use S/MIME protocol" #~ msgstr "S/MIME verwenden" #~ msgid "Use the S/MIME protocol" #~ msgstr "S/MIME Unterstützung einschalten" #~ msgid "Debug-1 (open_inspector)" #~ msgstr "Debug-1 (Inspektor Fenster öffnen)" #~ msgid "No valid OpenPGP data found." #~ msgstr "Keine gültigen OpenPGP Daten gefunden" #~ msgid "Decryption" #~ msgstr "Entschlüsselung" #~ msgid "" #~ "[This is a PGP/MIME message]\r\n" #~ "\r\n" #~ "[Use the \"Decrypt\" button in the message window to show its content.]" #~ msgstr "" #~ "[Dies ist eine PGP/MIME Nachricht]\n" #~ "\n" #~ "[Benutzen Sie den \"Entschlüsselungs\"-Button im großen\n" #~ "Nachrichtenfenster um den Inhalt anzuzeigen.]" #~ msgid "" #~ "Note: This is a PGP/MIME signed message. The GpgOL plugin is not always " #~ "able to verify such a message due to missing support in Outlook.\n" #~ "\n" #~ "(This message will be shown only once per session)" #~ msgstr "" #~ "Hinweis: Dies is eine PGP/MIME signierte Nachricht. Das GpgOL Plugin\n" #~ "ist nicht immer in der Lage, eine solche Nachricht zu verifizieren.\n" #~ "Der Grund hierzu liegt in der fehlenden Unterstützung von Outlook.\n" #~ "\n" #~ "(Dieser Hinweis wird nur einmalig pro Sitzung angezeigt)" #~ msgid "Verification" #~ msgstr "Ãœberprüfung" #~ msgid "[This is a PGP/MIME message]" #~ msgstr "[PGP/MIME Nachricht]" #~ msgid "Problem decrypting PGP/MIME message" #~ msgstr "Problem bei Entschlüsseln einer PGP/MIME Nachricht" #~ msgid "Verification Failure" #~ msgstr "Ãœberprüfungsfehler" #~ msgid "Decryption Failure" #~ msgstr "Entschlüsselungsfehler" #~ msgid "" #~ "The message text cannot be displayed.\n" #~ "You have to save the decrypted message to view it.\n" #~ "Then you need to re-open the message.\n" #~ "\n" #~ "Do you want to save the decrypted message?" #~ msgstr "" #~ "Der Text der Nachricht kann nicht angezeigt werden.\n" #~ "Sie sollten die entschlüsselte Nachricht abspeichern und\n" #~ "sie dann wieder zum Betrachten öffnen.\n" #~ "\n" #~ "Möchten Sie die entschlüsselte Nachricht abspeichern?" #~ msgid "" #~ "Signed attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to verify the signatures?" #~ msgstr "" #~ "Es wurden unterschriebene Anhänge gefunden.\n" #~ "\n" #~ "@LIST@\n" #~ "Möchten Sie diese Unterschriften überprüfen?" #~ msgid "Attachment Verification" #~ msgstr "Ãœberprüfung der Anhänge" #~ msgid "" #~ "Encrypted attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to decrypt and save them?" #~ msgstr "" #~ "Es wurde verschlüsselte Anhange gefunden.\n" #~ "\n" #~ "@LIST@\n" #~ "Möchten Sie diese entschlüsseln und abspeichern?" #~ msgid "Attachment Decryption" #~ msgstr "Entschlüsselung eines Anhangs" #~ msgid "Attachment Encryption Failure" #~ msgstr "Verschlüsselungsfehler eines Anhangs" #~ msgid "Attachment Verification Failure" #~ msgstr "Ãœberprüfungsfehler eines Anhangs" #~ msgid "Attachment Decryption Failure" #~ msgstr "Entschlüsselungsfehler eines Anhangs" #~ msgid "Attachment Signing Failure" #~ msgstr "Unterschrifterstellungsfehler eines Anhangs" #~ msgid "[PGP/MIME message]" #~ msgstr "[PGP/MIME Nachricht]" #~ msgid "[PGP/MIME message without plain text body]" #~ msgstr "[PGP/MIME Nachricht ohne reinen Textkörper]" #~ msgid "[PGP/MIME signed message without a plain text body]" #~ msgstr "[PGP/MIME signierte Nachricht ohne reinen Textkörper]" #~ msgid "[PGP/MIME signature]" #~ msgstr "[PGP/MIME Signatur]" #~ msgid "GPG &encrypt message" #~ msgstr "Mit GPG &verschlüsseln" #~ msgid "GPG &sign message" #~ msgstr "Mit GPG unter&schreiben" #~ msgid "Decrypt and verify the message." #~ msgstr "Entschlüsseln und Prüfen der Nachricht." #~ msgid "Open GPG Key Manager" #~ msgstr "Die GPG Schlüsselverwaltung öffnen" #~ msgid "" #~ "If you cancel this dialog, the message will be sent in cleartext!\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, wird die Nachricht im Klartext " #~ "ausgesendet!\n" #~ "\n" #~ "Möchten Sie wirklich abbrechen?" #~ msgid "" #~ "If you cancel this dialog, the message will be sent without signing.\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die Nachricht ohne Unterschrift " #~ "versendet.\n" #~ "\n" #~ "Möchten Sie wirklich abbrechen?" #~ msgid "Secret Key Dialog" #~ msgstr "Auswahl des geheimen Schlüssels" #~ msgid "" #~ "If you cancel this dialog, the message will be sent without signing.\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die Nachricht ohne Unterschrift " #~ "versendet.\n" #~ "\n" #~ "Möchten Sie wirklich abbrechen?" #~ msgid "" #~ "If you cancel this dialog, the message will be sent in cleartext.\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die NAchricht im Klartext " #~ "versendet!\n" #~ "\n" #~ "Möchten Sie wirklich abbrechen?" #~ msgid "[No attestation computed (e.g. messages was not signed)" #~ msgstr "" #~ "[Kein Testat berechnet (z.B. da die Nachricht nicht unterschrieben war)" diff --git a/po/de.po b/po/pt.po similarity index 58% copy from po/de.po copy to po/pt.po index 87a4e81..dc77937 100644 --- a/po/de.po +++ b/po/pt.po @@ -1,1048 +1,1027 @@ -# de.po - German translation for GpgOL +# pt.po - Portuguese translation for GpgOL # Copyright (C) 2005, 2007 g10 Code GmbH # This file is distributed under the same license as the GpgOL package. # Werner Koch , 2005, 2007. # msgid "" msgstr "" -"Project-Id-Version: GpgOL 1.0.0\n" +"Project-Id-Version: GpgOL 1.1.1\n" "Report-Msgid-Bugs-To: bug-gpgol@g10code.com\n" -"POT-Creation-Date: 2010-01-12 19:34+0100\n" -"PO-Revision-Date: 2009-06-18 19:18+0200\n" -"Last-Translator: Werner Koch \n" -"Language-Team: de\n" +"POT-Creation-Date: 2010-07-21 11:04+0200\n" +"PO-Revision-Date: 2010-07-18 20:41-0000\n" +"Last-Translator: Marco A.G.Pinto \n" +"Language-Team: Portuguese \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: PORTUGAL\n" +"X-Poedit-SourceCharset: iso-8859-1\n" #: src/attached-file-events.cpp:58 msgid "Error creating file for attachment." -msgstr "Fehler bei der Erstellung der Datei für das Attachment." +msgstr "Erro ao criar ficheiro para anexo." #: src/attached-file-events.cpp:71 msgid "Error reading attachment." -msgstr "Fehler beim Lesen des Attachments." +msgstr "Erro ao ler anexo." #: src/attached-file-events.cpp:82 src/attached-file-events.cpp:95 msgid "Error writing attachment." -msgstr "Fehler beim Schreiben des Attachments." +msgstr "Erro ao escrever anexo." #: src/attached-file-events.cpp:216 msgid "" "Sorry, we are not able to decrypt this attachment.\n" "\n" "Please use the decrypt/verify button to decrypt the\n" "entire message again. Then open this attachment." msgstr "" -"Es ist leider nicht mehr möglich, diese Attachment zu öffnen.\n" +"Desculpa, não conseguimos desencriptar este anexo.\n" "\n" -"Bitten benutzen Sie den \"Entschlüsseln/Ãœberprüfen\" Menüpunkt\n" -"um die gesamte Nachricht nochmal zu entschlüsseln. Danach können\n" -"Sie das Attachment wieder öffenen." +"Por favor usa o botão Desencriptar/Verificar para desencriptar\n" +"a mensagem completa novamente. Depois abre este anexo." #: src/common.c:216 msgid "GpgOL - Save decrypted attachment" -msgstr "GpgOL - Sichern der entschlüsselten Anlage" +msgstr "GpgOL - Gravar anexo desencriptado" #: src/config-dialog.c:137 msgid "Debug output (for analysing problems)" -msgstr "Debugausgabe (zur Problemanalyse)" +msgstr "Debug output (para analisar problemas)" #: src/engine.c:392 msgid "" "The user interface server is not available or could not be started in time. " "You may want to try again." msgstr "" -"Die GnuPG Benutzeroberfläche \"Kleopatra\" konnte nicht gefunden oder " -"rechtzeitig gestartet werden. Sie sollten es noch einmal versuchen." +"O servidor de interface do utilizador não está disponível ou não pôde ser " +"iniciado a tempo. Podes querer tentar novamente. " -#: src/engine.c:395 src/engine.c:405 src/main.c:695 src/main.c:701 +#: src/engine.c:395 src/engine.c:405 src/main.c:699 src/main.c:705 #: src/message.cpp:303 src/explorers.cpp:204 src/explorers.cpp:209 msgid "GpgOL" msgstr "GpgOL" #: src/engine.c:401 msgid "" "The user interface server is not available or does not work. Using an " "internal user interface.\n" "\n" "This is limited to the PGP/MIME protocol and thus S/MIME protected message " "are not readable." msgstr "" -"Achtung: Die GnuPG Benutzeroberfläche \"Kleopatra\" konnte nicht gefunden " -"werden.\n" +"O servidor de interface do utilizador não está disponível ou não funciona. A " +"usar um interface de utilizador interno.\n" "\n" -"Um GpgOL zu nutzen probieren Sie bitte eine der folgenden Möglichkeiten " -"aus:\n" -"\n" -"1. Entweder: Outlook beenden und erneut starten.\n" -"\n" -"2. Oder: Outlook beenden. Dann \"Kleopatra\" aus dem Startmenü\n" -" (unter \"GnuPG für Windows\") oder auf einem anderen Weg starten.\n" -" Sobald \"Kleopatra\" läuft, erneut Outlook starten." +"Isto está limitado ao protocolo PGP/MIME e daí as mensagens protegidas S/" +"MIME não são legíveis." #: src/engine-gpgme.c:368 msgid "" "The configured default encryption certificate is not available or does not " "unambigiously specify one. Please fix this in the option dialog.\n" "\n" "This message won't be be encrypted to this certificate!" msgstr "" -"Das voreingestellte zusätzliche Zertifikat zum Verschlüsseln ist nicht\n" -"vorhanden oder nicht eindeutig. Bitte beheben Sie dies in den\n" -"Optionseinstellungen.\n" +"O certificado de encriptação configurado por defeito não está disponível ou " +"não especifica um inequivocamente. Por favor corrige isto no diálogo de " +"opções\n" "\n" -"Die Nachricht wird deswegen nicht für dieses Zertifikat verschlüsselt!" +"Esta mensagem não será encriptada para este certificado!" #: src/engine-gpgme.c:372 msgid "Encryption" -msgstr "Verschlüsselung" +msgstr "Encriptação" #: src/engine-gpgme.c:788 msgid "Fingerprint: " -msgstr "Fingerabdruck: " +msgstr "Fingerprint: " #: src/engine-gpgme.c:845 msgid "This signature is valid\n" -msgstr "Diese Signatur ist korrekt\n" +msgstr "Esta assinatura é válida\n" #: src/engine-gpgme.c:847 msgid "signature state is \"green\"\n" -msgstr "Status der Signatur ist \"grün\"\n" +msgstr "Status da assinatura é \"verde\"\n" #: src/engine-gpgme.c:849 msgid "signature state is \"red\"\n" -msgstr "Status der Signatur ist \"rot\"\n" +msgstr "Status da assinatura é \"vermelho\"\n" #: src/engine-gpgme.c:853 msgid "Warning: One of the certificates has been revoked\n" -msgstr "Warnung: Eines der Zertifikate wurde widerrufen\n" +msgstr "Aviso: Um dos certificados foi revogado\n" #: src/engine-gpgme.c:863 msgid "Warning: The certificate used to create the signature expired at: " -msgstr "" -"Warnung: Das Zertifikat mit der diese Signatur erzeugt wurde verfiel am: " +msgstr "Aviso: O certificado usado para criar a assinatura expirou a: " #: src/engine-gpgme.c:869 msgid "Warning: At least one certification certificate has expired\n" -msgstr "" -"Warnung: Mindestens eines der Zertifizierungs-Zertifikate ist abgelaufen\n" +msgstr "Aviso: Pelo menos um certificado de certificação expirou\n" #: src/engine-gpgme.c:875 msgid "Warning: The signature expired at: " -msgstr "Die Signatur verfiel am: " +msgstr "Aviso: A assinatura expirou a: " #: src/engine-gpgme.c:881 msgid "Can't verify due to a missing certificate\n" -msgstr "" -"Aufrund eines fehlenden Zertifikats ist eine Ãœberprüfung nicht möglich\n" +msgstr "Não é possível verificar devido a um certificado em falta\n" #: src/engine-gpgme.c:885 msgid "The CRL is not available\n" -msgstr "Die CRL ist nicht verfügbar\n" +msgstr "O CRL não está disponível\n" #: src/engine-gpgme.c:891 msgid "Available CRL is too old\n" -msgstr "Die vorhandene CRL ist zu alt\n" +msgstr "O CRL disponível é demasiado antigo\n" #: src/engine-gpgme.c:896 msgid "A policy requirement was not met\n" -msgstr "Eine Richtlinie wurde nicht erfüllt\n" +msgstr "Um requisito de política não foi satisfeito\n" #: src/engine-gpgme.c:902 msgid "A system error occured" -msgstr "Ein Systemfehler ist aufgetreten" +msgstr "Ocorreu um erro de sistema" #: src/engine-gpgme.c:939 msgid "" "WARNING: We have NO indication whether this certificate belongs to the " "person named as shown above\n" msgstr "" -"WARNUNG: Es gibt keinen Hinweis darauf, ob dieses Zertifikat wirklich der " -"Person gehört, die oben angezeigt ist\n" +"AVISO: NÃO temos indicação se este certificado pertence ao nome da pessoa " +"como mostrado acima\n" #: src/engine-gpgme.c:946 msgid "" "WARNING: The certificate does NOT BELONG to the person named as shown above\n" msgstr "" -"WARNUNG: Das Zertifikat gehört NICHT der Person die oben angezeigt ist\n" +"AVISO: O certificado NÃO PERTENCE ao nome da pessoa como mostrado acima\n" #: src/engine-gpgme.c:950 msgid "" "WARNING: It is NOT certain that the certificate belongs to the person named " "as shown above\n" msgstr "" -"WARNING: Es ist nicht sicher, daß das Zertifikat der Person gehört, die oben " -"angezeigt ist\n" +"AVISO: NÃO é certo que o certificado pertença ao nome da pessoa como " +"mostrado acima\n" #: src/engine-gpgme.c:983 msgid "Verification started at: " -msgstr "Ãœberprüfung begann am: " +msgstr "Verificação começou a: " #: src/engine-gpgme.c:988 msgid "Verification result for: " -msgstr "Prüfungsresultat für: " +msgstr "Resultado de verificação para: " #: src/engine-gpgme.c:989 msgid "[unnamed part]" -msgstr "[Unbenannter Teil]" +msgstr "[parte sem nome]" #: src/engine-gpgme.c:1007 src/engine-gpgme.c:1037 msgid "Good signature from: " -msgstr "Korrekte Signatur von: " +msgstr "Boa assinatura de: " #: src/engine-gpgme.c:1014 msgid " aka: " msgstr " alias: " #: src/engine-gpgme.c:1018 src/engine-gpgme.c:1040 msgid " created: " -msgstr " erzeugt: " +msgstr " criada: " #: src/engine-gpgme.c:1027 msgid "*BAD* signature claimed to be from: " -msgstr "*FALSCHE* Signatur, vorgeblich von: " +msgstr "*MÁ* assinatura alegada ser de: " #: src/engine-gpgme.c:1050 msgid "Error checking signature" -msgstr "Fehler beim Prüfen der Signatur" +msgstr "Erro ao verificar assinatura" #: src/engine-gpgme.c:1066 msgid "*** Begin Notation (signature by: " -msgstr "*** Anfang Notation (Signatur von: " +msgstr "*** Início de notação (assinatura por: " #: src/engine-gpgme.c:1086 msgid "*** End Notation ***\n" -msgstr "*** Ende Notation ***\n" +msgstr "*** Fim de Notação ***\n" -#: src/main.c:694 +#: src/main.c:698 #, c-format msgid "Note: Using compatibility flags: %s" -msgstr "Notiz: Diese Kompatibilitätsflags werden verwendet: %s" +msgstr "Nota: A usar flags de compatibilidade: %s" -#: src/main.c:700 +#: src/main.c:704 #, c-format msgid "" "Note: Writing debug logs to\n" "\n" "\"%s\"" msgstr "" -"Notiz: Debug-Logausgaben werden nach\n" +"Nota: A escrever logs de debug para\n" "\n" -"\"%s\"\n" -"\n" -"geschrieben." +"\"%s\"" #: src/mapihelp.cpp:1527 src/mapihelp.cpp:1535 src/mapihelp.cpp:1543 msgid "[no subject]" -msgstr "[Kein Betreff]" +msgstr "[sem assunto]" #: src/mapihelp.cpp:2152 msgid "" "[The content of this message is not visible because it has been decrypted by " "another Outlook session. Use the \"decrypt/verify\" command to make it " "visible]" msgstr "" -"[Der Inhalt dieser Nachricht ist nicht sichtbar, da sie in einer anderen " -"Outlook Sitzung entschlüsselt wurde. Verwenden Sie den Menüpunkt " -"\"entschlüsseln/überprüfen\" um den Inhalt wieder sichtbar zu machen.]" +"[O conteúdo desta mensagem não é visível porque foi desencriptado noutra " +"sessão do Outlook. Usa o comando \"Desencriptar/Verificar\" para torná-lo " +"visível]" #: src/mapihelp.cpp:3004 msgid "" "[The content of this message is not visible due to an processing error in " "GpgOL.]" msgstr "" -"[Aufgrund eines Verarbeitungsfehlers in GpgOL ist der Inhalt dieser " -"Nachricht nicht sichtbar.]" +"[O conteúdo desta mensagem não é visível devido a um erro de processamento " +"no GpgOL.]" #: src/message-events.cpp:284 src/mailitem.cpp:164 msgid "" "Sorry, we can only encrypt plain text messages and\n" "no RTF messages. Please make sure that only the text\n" "format has been selected." msgstr "" -"Leider ist es nur möglich reine Textnachrichten aber keine\n" -"Nachrichten im RTF Format zu verschlüsseln. Bitte stellen \n" -"Sie sicher, daß lediglich das Text Format ausgewählt wurde.\n" -"(In der Menüleiste: \"Format\" => \"Nur Text\")" +"Desculpa, só podemos encriptar mensagens de texto pleno e\n" +"não mensagens RTF. Por favor certifica-te que apenas o formato\n" +"texto foi seleccionado." #: src/message.cpp:181 msgid "[Crypto operation failed - can't show the body of the message]" msgstr "" -"[Krypto-Operation ist fehlgeschlagen - Der Text der Nachricht kann nicht " -"angezeigt werden.]" +"[A operação Crypto falhou - Não é possível mostrar o corpo da mensagem]" #: src/message.cpp:283 #, c-format msgid "" "Signature status: %s\n" "Message class ..: %s\n" "MIME structure .:\n" "%s" msgstr "" -"Status der Signatur ...: %s\n" -"Nachrichtenklasse .....: %s\n" -"Struktur der Nachricht :\n" +"Status da assinatura: %s\n" +"Classe da mensagem: %s\n" +"Estrutura MIME.......:\n" "%s" #: src/message.cpp:291 msgid "GpgOL - Message Information" -msgstr "GpgOL - Informationen zu der Nachricht" +msgstr "GpgOL - Informação da Mensagem" #: src/message.cpp:523 msgid "Signature verification of an encrypted message is not possible." -msgstr "" -"Die Prüfung der Signatur ist bei einer verschlüsselten Nachrichten nicht " -"möglich." +msgstr "A verificação da assinatura de uma mensagem encriptada não é possível." #: src/message.cpp:534 msgid "Signature verification of this message class is not possible." -msgstr "" -"Die Prüfung der Signatur ist bei dieser Nachrichtenklasse nicht möglich." +msgstr "A verificação da assinatura desta classe de mensagem não é possível." #: src/message.cpp:537 msgid "" "Signature verification of this S/MIME message is not possible. Please check " "that S/MIME processing has been enabled." msgstr "" -"Die Prüfung der Signatur ist bei dieser S/MIME Nachricht nicht möglich. " -"Bitte überprüfen Sie in den Einstellungen, daß die Verarbeitung von S/MIME " -"eingeschaltet ist." +"A verificação da assinatura desta mensagem S/MIME não é possível. Por favor " +"verifica se o processamento S/MIME foi activado." #: src/message.cpp:541 msgid "This message has no signature." -msgstr "Diese Nachricht hat keine Signatur." +msgstr "Esta mensagem não tem assinatura." #: src/message.cpp:839 msgid "This message is not encrypted." -msgstr "Diese Nachricht ist nicht verschlüsselt." +msgstr "Esta mensagem não está encriptada." #: src/message.cpp:1066 #, c-format msgid "" "Decryption failed\n" "(%s)" msgstr "" -"Entschlüsselungsfehler\n" +"A desencriptação falhou\n" "(%s)" #: src/message.cpp:1213 msgid "No recipients to encrypt to are given" -msgstr "Empfänger zum Verschlüsseln wurde nicht angegeben" +msgstr "Não foram seleccionados destinatários para a encriptação" #: src/message.cpp:1226 src/message.cpp:1253 msgid "Encrypting or signing an empty message is not possible." -msgstr "Eine leere Nachricht kann nicht signiert oder verschlüsselt werden." +msgstr "Encriptar ou assinar uma mensagem em branco não é possível." #: src/message.cpp:1235 #, c-format msgid "Encryption failed (%s)" -msgstr "Verschlüsselungsfehler (%s)" +msgstr "A encriptação falhou (%s)" #: src/message.cpp:1262 #, c-format msgid "Signing failed (%s)" -msgstr "Signaturerstellungsfehler (%s)" +msgstr "A assinatura falhou (%s)" #: src/mimeparser.c:1203 msgid "Error writing to stream" -msgstr "Dateischreibfehler" +msgstr "Erro ao escrever no stream" #: src/mimeparser.c:1204 msgid "I/O-Error" -msgstr "Ein-/Ausgabefehler" +msgstr "I/O-Erro" #: src/olflange-dlgs.cpp:43 msgid "General" -msgstr "Allgemein" +msgstr "Geral" #: src/olflange-dlgs.cpp:44 msgid "Enable the S/MIME support" -msgstr "S/MIME Unterstützung einschalten" +msgstr "Activa o suporte S/MIME" #: src/olflange-dlgs.cpp:46 msgid "Message sending" -msgstr "Senden von Nachrichten" +msgstr "Envio de mensagem" #: src/olflange-dlgs.cpp:47 msgid "&Encrypt new messages by default" -msgstr "Neue Nachrichten per Voreinstellung verschlüsseln" +msgstr "Encriptar novas mensagens por defeito" #: src/olflange-dlgs.cpp:48 msgid "&Sign new messages by default" -msgstr "Neue Nachrichten per Voreinstellung signieren" +msgstr "Assinar novas mensagens por defeito" #: src/olflange-dlgs.cpp:50 msgid "Message receiving" -msgstr "Lesen von Nachrichten" +msgstr "Mensagem a receber" #: src/olflange-dlgs.cpp:52 msgid "Show HTML view if possible" -msgstr "HTML Darstellung anzeigen wenn möglich" +msgstr "Mostrar vista HTML se possível" #: src/olflange-dlgs.cpp:53 msgid "Present encrypted message as attachment" -msgstr "Verschlüsselte Nachricht als Anlage anzeigen" +msgstr "Apresentar mensagem encriptada como anexo" #: src/olflange-dlgs.cpp:56 msgid "Crypto Engine" -msgstr "Zertifikatsserver ..." +msgstr "Motor Crypto" #. TRANSLATORS: See the source for the full english text. #: src/olflange-dlgs.cpp:256 msgid "-#GpgOLFullHelpText#-" msgstr "" -"GpgOL ist ein Plugin für Microsoft Outlook, welches es ermöglicht\n" -"Nachrichten mittels der Internet-Standards PGP/MIME oder S/MIME\n" -"zu verschlüsseln und digital zu signieren. Im Hintergrund wird\n" -"dazu die GnuPG Software () benutzt.\n" -"Aktuelle Informationen zu GpgOL erhalten Sie durch eine Anklicken\n" -"des Firmennames auf der Einstellungsseite oder auf der Webseite\n" -".\n" +"O GpgOL é um plugin para o Outlook que permite a encriptação e\n" +"assinatura de mensagens usando o standard OpenPGP e S/MIME.\n" +"Utiliza o software GnuPG (http://www.gnupg.org). A mais recente\n" +"informação de lançamento é acessível ao clicar no logo.\n" "\n" -"GpgOL ist Freie Software. Sie können es unter den Bedingungen\n" -"der GNU Lesser General Public License, wie von der Free Software\n" -"Foundation veröffentlicht, weitergeben und/oder modifizieren;\n" -"entweder gemäß Version 2.1 der Lizenz oder (nach Ihrer Wahl)\n" -"jeder späteren Version.\n" +"O GpgOL é software livre; podes redistribuí-lo e/ou\n" +"modificá-lo nos termos da GNU Lesser General Public\n" +"License como publicado pela Free Software Foundation; quer\n" +"a versão 2.1 da licença, ou (à tua escolha) qualquer versão posterior.\n" "\n" -"GpgOL wird in der Hoffnung veröffentlicht, daß es Ihnen von Nutzen\n" -"sein wird, aber ohne irgendeine Garantie, sogar ohne die implizite\n" -"Garantie der Marktreife oder der Verwendbarkeit für einen bestimmten\n" -"Zweck. Details finden Sie in der GNU Lesser General Public License.\n" +"O GpgOL é distribuído na esperança de ser útil,\n" +"mas SEM QUALQUER GARANTIA; nem mesmo a garantia implícita de\n" +"COMERCIALIZAÇÃO ou APTIDÃO PARA UMA FINALIDADE PARTICULAR. Vê a\n" +"GNU Lesser General Public License para mais detalhes.\n" "\n" -"Zusammen mit GpgOL sollten Sie eine Kopie der GNU Lesser General\n" -"Public License erhalten haben. Falls nicht, finden Sie diese\n" -"unter der Webadresse ." +"Deves ter recebido uma cópia da GNU Lesser General Public License\n" +"junto com este programa; se não, vê ." #: src/olflange-dlgs.cpp:262 #, c-format msgid "This is GpgOL version %s" -msgstr "Dies ist GpgOL Version %s" +msgstr "Esta é a versão do GpgOL %s" #: src/olflange.cpp:444 msgid "" "Welcome to GpgOL 1.0\n" "\n" "GpgOL adds integrated OpenPGP and S/MIME encryption and digital signing " "support to Outlook 2003 and 2007.\n" "\n" "Although we tested this software extensively, we can't give you any " "guarantee that it will work as expected. The programming interface we are " "using has not been properly documented by Microsoft and thus the " "functionality of GpgOL may cease to work with an update of your Windows " "system.\n" "\n" "WE STRONGLY ADVISE TO RUN ENCRYPTION TESTS BEFORE YOU START TO USE GPGOL ON " "ANY SENSITIVE DATA!\n" "\n" "There are some known problems, the most severe being that sending encrypted " "or signed mails using an Exchange based account does not work. Using GpgOL " "along with other Outlook plugins may in some cases not work.\n" msgstr "" -"Willkommen zu GpgOL 1.0 !\n" +"Bem-vindo ao GpgOL 1.0\n" "\n" -"GpgOL erweitert Outlook 2003 und 2007 um integrierte OpenPGP und S/MIME " -"Verschlüsselung und digitale Signaturen.\n" +"O GpgOL adiciona suporte de encriptação e assinatura digital OpenPGP e S/" +"MIME integrado ao Outlook 2003 e 2007.\n" "\n" -"Obgleich wir diese Software ausgiebig getestet haben, können wir leider " -"nicht garantieren, daß sie einwandfrei funktionieren wird. Die benutzte " -"Programmierschnittstelle zu Outlook ist von Microsoft nur sehr ungenügend " -"dokumentiert worden. Möglicherweise könnte die korrekte Funktion von GpgOL " -"durch ein Update von Windows beeinträchtig werden.\n" +"Embora testámos este software extensivamente, não podemos dar qualquer " +"garantia que funcione da forma esperada. O interface de programação em uso " +"não foi propriamente documentado pela Microsoft e daí a funcionalidade do " +"GpgOL pode deixar de funcionar com uma actualização do teu sistema Windows.\n" "\n" -"WIR RATEN DRINGEND DAZU, TESTS DER VERSCHLÃœSSELUNG DURCHZUFÃœHREN, BEVOR " -"GPGOL FÃœR SENSIBLE DATEN BENUTZT WIRD!\n" +"ACONSELHAMOS FORTEMENTE A EXECUTAR TESTES DE ENCRIPTAÇÃO ANTES DE COMEÇARES " +"A USAR O GPGOL EM DADOS SENSÍVEIS!\n" "\n" -"Es sind einige Problem bekannt: Insbesondere funktioniert das Senden von " -"verschlüsselten oder signierten Nachrichten über ein Exchange basiertes " -"Konto nicht. Wird GpgOL zusammen mit anderen Outlook Plugins benutzt, kann " -"es möglicherweise nicht richtig arbeiten.\n" +"Existem alguns problemas conhecidos, os mais graves são o não funcionamento " +"de enviar e-mails encriptados ou assinados usando uma conta com base no " +"Exchange. Usar o GpgOL com outros plugins do Outlook poderá não funcionar em " +"alguns casos.\n" #: src/olflange.cpp:472 msgid "" "You have installed a new version of GpgOL.\n" "\n" "Please open the option dialog and confirm that the settings are correct for " "your needs. The option dialog can be found in the main menu at: Extras-" ">Options->GpgOL.\n" msgstr "" -"Eine neue Version von GpgOL ist installiert worden.\n" +"Instalaste uma versão nova do GpgOL.\n" "\n" -"Bitte öffnen Sie das Fenster mit den Einstellungen und bestätigen Sie, daß " -"die Einstellungen für Sie noch stimmen. Sie finden die Einstellungen im " -"Hauptmenu unter: Extras->Optionen->GpgOL.\n" +"Por favor abre o diálogo de opções e confirma se as definições estão " +"correctas para as tuas necessidades. O diálogo de opções pode ser encontrado " +"em: Extras->Opções->GpgOL\n" #: src/olflange.cpp:672 msgid "" "This version of Outlook is too old!\n" "\n" "At least versions of Outlook 2003 older than SP2 exhibit crashes when " "sending messages and messages might get stuck in the outgoing queue.\n" "\n" "Please update at least to SP2 before trying to send a message" msgstr "" -"Diese Version von Outlook ist zu alt!\n" +"Esta versão do Outlook é muito antiga!\n" "\n" -"Einige Versionen von Outlook 2003, älter als SP2, verursachen\n" -"Programmabrüche beim Senden von Nachrichten und diese Nachrichten\n" -"können dabei in der Ausgabewarteschlange stecken bleiben.\n" +"Pelo menos as versões do Outlook 2003 mais antigas que o SP2 exibem crashes " +"ao enviar as mensagens e estas podem ficar presas na fila de saída.\n" "\n" -"Bitte updaten Sie auf SP2 bevor Sie versuchen eine Nachricht zu versenden." +"Por favor actualiza pelos menos para o SP2 antes de tentares enviar uma " +"mensagem." #: src/passphrase-dialog.c:85 msgid "No certificate hint given." -msgstr "Kein Hinweis auf das Zertifikat" +msgstr "Não foi dada nenhuma dica do certificado." #: src/passphrase-dialog.c:313 src/passphrase-dialog.c:464 msgid "Enter passphrase to unlock the secret key" -msgstr "Passphrase um geheimen Schlüssel zu entsperren" +msgstr "Introduz a palavra-passe para desbloquear a chave secreta" #: src/passphrase-dialog.c:314 src/passphrase-dialog.c:465 msgid "Hide typing" -msgstr "&Eingabe ausblenden" +msgstr "Esconder escrita" #: src/passphrase-dialog.c:315 src/passphrase-dialog.c:466 #: src/recipient-dialog.c:385 msgid "&Cancel" -msgstr "&Abbrechen" +msgstr "Cancelar" #: src/passphrase-dialog.c:350 src/passphrase-dialog.c:499 msgid "Invalid passphrase; please try again..." -msgstr "Ungültige Passphrase; bitte nochmal versuchen..." +msgstr "Palavra-passe inválida; por favor tenta novamente..." #: src/passphrase-dialog.c:379 msgid "Select Signing Key" -msgstr "Signaturschlüssel auswählen" +msgstr "Selecciona chave de assinatura" #: src/passphrase-dialog.c:463 msgid "Encrypted to the following certificates:" -msgstr "Verschlüsselt für diese Zertifikate:" +msgstr "Encriptado para os seguintes certificados:" #: src/recipient-dialog.c:88 msgid "Name" -msgstr "Name" +msgstr "Nome" #: src/recipient-dialog.c:93 msgid "E-Mail" msgstr "E-Mail" #: src/recipient-dialog.c:98 msgid "Key-Info" msgstr "Key-Info" #: src/recipient-dialog.c:103 msgid "Key ID" msgstr "Key-ID" #: src/recipient-dialog.c:108 msgid "Validity" -msgstr "Gültigkeit" +msgstr "Validade" #: src/recipient-dialog.c:383 msgid "Selected recipients:" -msgstr "Ausgewählte Empfänger:" +msgstr "Destinatários seleccionados:" #: src/recipient-dialog.c:384 msgid "Recipient which were NOT found" -msgstr "Empfänger die NICHT gefunden wurden:" +msgstr "Destinatários NÃO encontrados" #: src/recipient-dialog.c:444 msgid "Please select at least one recipient certificate." -msgstr "Bitte wählen Sie mindestens ein Empfängerzertifikat." +msgstr "Por favor selecciona pelo menos um certificado de destinatário." #: src/recipient-dialog.c:445 msgid "Recipient Dialog" -msgstr "Auswahl des Empfängerschlüssels" +msgstr "Diálogo de destinatário" #: src/verify-dialog.c:124 msgid "BAD signature!" -msgstr "FALSCHE Signatur!" +msgstr "MÁ assinatura!" #: src/verify-dialog.c:126 msgid "Good signature" -msgstr "Korrekte Signatur" +msgstr "Boa assinatura" #: src/verify-dialog.c:128 msgid "Good signature from revoked certificate" -msgstr "Korrekte Signatur; aber Zertifikat wurde widerrufen" +msgstr "Boa assinatura de certificado revogado" #: src/verify-dialog.c:130 msgid "Good signature from expired certificate" -msgstr "Korrekte Signatur; allerdings ist das Zertifikat abgelaufen" +msgstr "Boa assinatura de certificado expirado" #: src/verify-dialog.c:132 msgid "Good expired signature" -msgstr "Korrekte aber abgelaufene Signatur" +msgstr "Boa assinatura expirada" #: src/verify-dialog.c:135 msgid "Could not check signature: missing certificate" -msgstr "Signatur konnte nicht geprüft werden: Zertifikat fehlt" +msgstr "Assinatura não pôde ser verificada: falta certificado" #: src/verify-dialog.c:139 msgid "Verification error" -msgstr "Ãœberprüfungsfehler" +msgstr "Erro de verificação" #: src/verify-dialog.c:156 msgid "User-ID not found" -msgstr "User-ID nicht gefunden" +msgstr "User-ID não encontrado" #: src/verify-dialog.c:168 msgid "This may be due to a wrong option setting" -msgstr "Möglicherweise durch falsche Einstellungen verursacht" +msgstr "Isto pode dever-se a uma configuração errada de opções" #: src/verify-dialog.c:174 #, c-format msgid "Signature expired on %s" -msgstr "Signatur abgelaufen am %s" +msgstr "Assinatura expirou a %s" #: src/verify-dialog.c:186 msgid "Signature issued by a certificate we do NOT trust." -msgstr "Die Signatur stammt von einem Zertifikat dem wir NICHT vertrauen." +msgstr "Assinatura emitida por um certificado que NÃO confiamos." #: src/verify-dialog.c:193 msgid "Signature issued by a non-valid certificate." -msgstr "Die Signatur stammt von einem ungültigen Zertifikat." +msgstr "Assinatura emitida por um certificado inválido." #: src/verify-dialog.c:209 msgid "Signature made" -msgstr "Signatur erstellt" +msgstr "Assinatura criada" #: src/verify-dialog.c:210 msgid "using" -msgstr "mit" +msgstr "usando" #: src/verify-dialog.c:211 msgid "cert-ID" -msgstr "Key-Id" +msgstr "cert-ID" #: src/verify-dialog.c:212 msgid "from" -msgstr "von" +msgstr "de" #: src/verify-dialog.c:213 msgid "also known as" -msgstr "auch bekannt als" +msgstr "também conhecido por" #: src/verify-dialog.c:244 msgid "PGP/MIME Verification Result" -msgstr "PGP/MIME Prüfungsresultat" +msgstr "PGP/MIME Resultado de Verificação" #: src/verify-dialog.c:247 msgid "S/MIME Verification Result" -msgstr "S/MIME Prüfungsresultat" +msgstr "S/MIME Resultado de Verificação" #: src/inspectors.cpp:687 msgid "&encrypt message with GnuPG" -msgstr "Nachricht verschlüsseln" +msgstr "Encriptar mensagem com GnuPG" #: src/inspectors.cpp:701 msgid "&sign message with GnuPG" -msgstr "Nachricht signieren" +msgstr "Assinar mensagem com GnuPG" #: src/inspectors.cpp:727 msgid "GpgOL Decrypt/Verify" -msgstr "GpgOL Enschlüsseln/Prüfen" +msgstr "GpgOL Desencriptar/Verificar" #: src/inspectors.cpp:788 msgid "Encrypt message with GnuPG" -msgstr "Nachricht verschlüsseln" +msgstr "Encriptar mensagem com GnuPG" #: src/inspectors.cpp:804 msgid "Sign message with GnuPG" -msgstr "Nachricht signieren" +msgstr "Assinar mensagem com GnuPG" #: src/inspectors.cpp:921 msgid "" "This is a signed and encrypted message.\n" "Click for more information. " msgstr "" -"Dies ist eine signierte und verschlüsselte Nachricht.\n" -"Klicken Sie hier um weitere Informationen zu erhalten. " +"Esta é uma mensagem assinada e encriptada.\n" +"Clica para mais informação. " #: src/inspectors.cpp:927 msgid "" "This is a signed message.\n" "Click for more information. " msgstr "" -"Dies ist eine signierte Nachricht.\n" -"Klicken Sie hier um weitere Informationen zu erhalten. " +"Esta é uma mensagem assinada.\n" +"Clica para mais informação. " #: src/inspectors.cpp:933 msgid "" "This is an encrypted message.\n" "Click for more information. " msgstr "" -"Dies ist eine verschlüsselte Nachricht.\n" -"Klicken Sie hier um weitere Informationen zu erhalten. " +"Esta é uma mensagem encriptada.\n" +"Clica para mais informação. " #: src/explorers.cpp:126 msgid "GnuPG Certificate &Manager" -msgstr "GnuPG Zertifikats&verwaltung" +msgstr "GnuPG Gestor de Certificados" #: src/explorers.cpp:140 msgid "Remove GpgOL flags from this folder" -msgstr "GpgOL Eigenschaften aus diesem Ordner entfernen" +msgstr "Remover as flags GpgOL desta pasta" #: src/explorers.cpp:167 msgid "Open the certificate manager" -msgstr "Die Zertifikatsverwaltung öffnen" +msgstr "Abrir o gestor de certificados" #: src/explorers.cpp:194 msgid "" "You are about to start the process of reversing messages created by GpgOL to " "prepare deinstalling of GpgOL. Running this command will put GpgOL into a " "disabled state so that messages are not anymore processed by GpgOL.\n" "\n" "You should convert all folders one after the other with this command, close " "Outlook and then deinstall GpgOL.\n" "\n" "Note that if you start Outlook again with GpgOL still being installed, GpgOL " "will again process messages." msgstr "" -"Sie sind dabei, eine Deinstallation von GpgOL vorzubereiten. Hierzu wird " -"GpgOL ausgeschaltet, so das Nachrichten nicht mehr durch GpgOL angezeigt " -"werden.\n" +"Estás prestes a iniciar o processo de reverter mensagens criadas pelo GpgOL " +"para preparar a desinstalação do GpgOL. Executar este comando colocará o " +"GpgOL num estado desactivado de forma a que as mensagens não sejam mais " +"processadas pelo GpgOL.\n" "\n" -"Sie sollten nacheinander dieses Kommandos für alle Ordner aufrufen, danach " -"Outlook schliessen und GpgOL deinstallieren.\n" +"Deves converter todas as pastas uma após a outra com este comando, fechar o " +"Outlook e depois desinstalar o GpgOL.\n" "\n" -"Bitte beachten Sie, daß nach einem erneuten Start von Outlook - mit " -"weiterhin installiertem GpgOL - Nachrichten wieder wie gewohnt von GpgOL " -"angezeigt werden." +"Nota que se iniciares o Outlook novamente com o GpgOL ainda a ser instalado, " +"o GpgOL voltará a processar as mensagens." #: src/explorers.cpp:208 msgid "Do you want to revert this folder?" -msgstr "Möchten Sie diesen Ordner von GpgOL befreien?" +msgstr "Queres reverter esta pasta?" #~ msgid "Select this option to encrypt the message." -#~ msgstr "Wählen Sie diese Option zum Verschlüsseln der Nachricht." +#~ msgstr "Wählen Sie diese Option zum Verschlüsseln der Nachricht." #~ msgid "Select this option to sign the message." -#~ msgstr "Wählen Sie diese Option zum Signieren der Nachricht." +#~ msgstr "Wählen Sie diese Option zum Signieren der Nachricht." #~ msgid "Select this option to open the certificate manager" -#~ msgstr "Wählen Sie diese Option zum die Zertifikatsverwaltung zu öffenen." +#~ msgstr "Wählen Sie diese Option zum die Zertifikatsverwaltung zu öffenen." #~ msgid "Open the GpgOL certificate manager" -#~ msgstr "Zertifikatsverwaltung von GpgOL öffnen" +#~ msgstr "Zertifikatsverwaltung von GpgOL öffnen" #~ msgid ">GnuPG protocol" #~ msgstr ">GnuPG Protokoll" #~ msgid "auto" #~ msgstr "automatisch" #~ msgid "PGP/MIME" #~ msgstr "PGP/MIME" #~ msgid "S/MIME" #~ msgstr "S/MIME" #~ msgid "" #~ "Support for S/MIME has not been enabled.\n" #~ "\n" #~ "To enable S/MIME support, open the option dialog and check \"Enable the S/" #~ "MIME support\". The option dialog can be found in the main menu at: " #~ "Extras->Options->GpgOL.\n" #~ msgstr "" -#~ "Unterstützung für S/MIME ist nicht eingeschaltet.\n" +#~ "Unterstützung für S/MIME ist nicht eingeschaltet.\n" #~ "\n" -#~ "Um die S/MIME Unterstützung einzuschalten, öffnen Sie bitte das Fenster " -#~ "mit den Einstellungen um dort die Option \"S/MIME Unterstützung " +#~ "Um die S/MIME Unterstützung einzuschalten, öffnen Sie bitte das Fenster " +#~ "mit den Einstellungen um dort die Option \"S/MIME Unterstützung " #~ "einschalten\" zu aktivieren. Sie finden die Einstellungen im Hauptmenu " #~ "unter: Extras->Optionen->GpgOL.\n" #~ msgid "Could not start certificate manager" #~ msgstr "Die Zertifikatsverwaltung konnte nicht aufgerufen werden" #~ msgid "Select this option to automatically select the protocol." -#~ msgstr "Wählen Sie diese Option zum das Protokoll automatisch auszuwählen." +#~ msgstr "Wählen Sie diese Option zum das Protokoll automatisch auszuwählen." #~ msgid "Select this option to select the PGP/MIME protocol." -#~ msgstr "Wählen Sie diese Option zum das PGP/MIME Protokoll auszuwählen." +#~ msgstr "Wählen Sie diese Option zum das PGP/MIME Protokoll auszuwählen." #~ msgid "Select this option to select the S/MIME protocol." -#~ msgstr "Wählen Sie diese Option zum das S/MIME Protokoll auszuwählen." +#~ msgstr "Wählen Sie diese Option zum das S/MIME Protokoll auszuwählen." #~ msgid "Automatically select the protocol for sign/encrypt" -#~ msgstr "Wählen Sie diese Option um das Protokoll automatisch auszuwählen." +#~ msgstr "Wählen Sie diese Option um das Protokoll automatisch auszuwählen." #~ msgid "Use PGP/MIME for sign/encrypt" -#~ msgstr "PGP/MIME zum signieren/verschlüsseln verwenden." +#~ msgstr "PGP/MIME zum signieren/verschlüsseln verwenden." #~ msgid "Use S/MIME for sign/encrypt" -#~ msgstr "S/MIME zum signieren/verschlüsseln verwenden." +#~ msgstr "S/MIME zum signieren/verschlüsseln verwenden." #~ msgid "Use PGP/MIME by default" #~ msgstr "PGP/MIME per Voreinstellung verwenden" #~ msgid "Use S/MIME by default" #~ msgstr "S/MIME per Voreinstellung verwenden" #~ msgid "" #~ "You have enabled GpgOL's support for the S/MIME protocol.\n" #~ "\n" #~ "New S/MIME messages are thus only viewable with GpgOL and not anymore " #~ "with Outlook's internal S/MIME support. Those message will even be " #~ "unreadable by Outlook after GpgOL has been deinstalled. A tool to " #~ "mitigate this problem will be provided when GpgOL arrives at production " #~ "quality status." #~ msgstr "" -#~ "Sie haben die S/MIME Unterstützung von GpgOL eingeschaltet.\n" +#~ "Sie haben die S/MIME Unterstützung von GpgOL eingeschaltet.\n" #~ "\n" #~ "Neue S/MIME Nachrichten werden jetzt nur noch mittels GpgOL sichtbar sein " -#~ "und nicht mehr über Outlooks interne S/MIME Unterstützung. Diese " +#~ "und nicht mehr über Outlooks interne S/MIME Unterstützung. Diese " #~ "Nachrichten werden auch dann nicht mehr mit Outlook lesbar sein, wenn " -#~ "GpgOL deinstalliert wurde. Mit dem Erscheinen der endgültigen Version " +#~ "GpgOL deinstalliert wurde. Mit dem Erscheinen der endgültigen Version " #~ "von GpgOL wird aber ein Werkzeug bereitgestellt werden, welches dieses " -#~ "Problem lösen kann." +#~ "Problem lösen kann." #~ msgid "Also decrypt in preview window" -#~ msgstr "Auch im Vorschaufenster entschlüsseln" +#~ msgstr "Auch im Vorschaufenster entschlüsseln" #~ msgid "&Decrypt and verify message" -#~ msgstr "Entschlüsseln/Prüfen der Nachricht" +#~ msgstr "Entschlüsseln/Prüfen der Nachricht" #~ msgid "&Verify signature" -#~ msgstr "&Unterschrift prüfen" +#~ msgstr "&Unterschrift prüfen" #~ msgid "Select this option to decrypt and verify the message." #~ msgstr "" -#~ "Wählen Sie diese Option um die Nachricht zu entschlüsseln bzw. zu " +#~ "Wählen Sie diese Option um die Nachricht zu entschlüsseln bzw. zu " #~ "verifizieren." #~ msgid "Check the signature now and display the result" -#~ msgstr "Die digitale Unterschrift jetzt prüfen und das Resultat anzeigen" +#~ msgstr "Die digitale Unterschrift jetzt prüfen und das Resultat anzeigen" #~ msgid "Path to certificate manager binary" #~ msgstr "Dateiname der Zertifikatsverwaltung" #~ msgid "Select Certificate Manager" #~ msgstr "GnuPG Zertifikats&verwaltung" #~ msgid "Passphrase" #~ msgstr "Passphrase" #~ msgid "Cache &passphrase for" -#~ msgstr "Passphrase speichern für" +#~ msgstr "Passphrase speichern für" #~ msgid "minutes" #~ msgstr "Minuten" #~ msgid "Ad&vanced.." #~ msgstr "&Erweitert..." #~ msgid "&Display crypto information" #~ msgstr "~Krypto Informationen anzeigen" #~ msgid "Select this option to show information on the crypto status" #~ msgstr "" -#~ "Wählen Sie diese Option um Informationen über den Krypto-Status der " +#~ "Wählen Sie diese Option um Informationen über den Krypto-Status der " #~ "Nachricht anzuzeigen." #~ msgid "Show S/MIME status info" #~ msgstr "S/MIME Status Informationen anzeigen" #~ msgid "" #~ "Message class: %s\n" #~ "Sig Status : %s\n" #~ "Structure of the message:\n" #~ "%s" #~ msgstr "" #~ "Nachrichtenklasse: %s\n" #~ "Signatur-Status: %s\n" #~ "Struktur der Nachricht:\n" #~ "%s" #~ msgid "Also encrypt message with the default certificate" -#~ msgstr "Nachricht ebenfalls an das voreingestellte Zertifikat verschlüsseln" +#~ msgstr "Nachricht ebenfalls an das voreingestellte Zertifikat verschlüsseln" #~ msgid "The default certificate may not contain any spaces." #~ msgstr "" -#~ "Der Bezeichner für das Standardzertifikat darf keine Leerzeichen " +#~ "Der Bezeichner für das Standardzertifikat darf keine Leerzeichen " #~ "enthalten." #~ msgid "Select GPG Key Manager" -#~ msgstr "Das Schlüsselverwaltungsprogramm festlegen" +#~ msgstr "Das Schlüsselverwaltungsprogramm festlegen" #~ msgid "Encrypt message with GPG" -#~ msgstr "Nachricht mit GnuPG verschlüsseln" +#~ msgstr "Nachricht mit GnuPG verschlüsseln" #~ msgid "Sign message with GPG" #~ msgstr "Nachricht mit GnuPG unterschreiben" #~ msgid "use S/MIME protocol" #~ msgstr "S/MIME verwenden" #~ msgid "Use the S/MIME protocol" -#~ msgstr "S/MIME Unterstützung einschalten" +#~ msgstr "S/MIME Unterstützung einschalten" #~ msgid "Debug-1 (open_inspector)" -#~ msgstr "Debug-1 (Inspektor Fenster öffnen)" +#~ msgstr "Debug-1 (Inspektor Fenster öffnen)" #~ msgid "No valid OpenPGP data found." -#~ msgstr "Keine gültigen OpenPGP Daten gefunden" +#~ msgstr "Keine gültigen OpenPGP Daten gefunden" #~ msgid "Decryption" -#~ msgstr "Entschlüsselung" +#~ msgstr "Entschlüsselung" #~ msgid "" #~ "[This is a PGP/MIME message]\r\n" #~ "\r\n" #~ "[Use the \"Decrypt\" button in the message window to show its content.]" #~ msgstr "" #~ "[Dies ist eine PGP/MIME Nachricht]\n" #~ "\n" -#~ "[Benutzen Sie den \"Entschlüsselungs\"-Button im großen\n" +#~ "[Benutzen Sie den \"Entschlüsselungs\"-Button im großen\n" #~ "Nachrichtenfenster um den Inhalt anzuzeigen.]" #~ msgid "" #~ "Note: This is a PGP/MIME signed message. The GpgOL plugin is not always " #~ "able to verify such a message due to missing support in Outlook.\n" #~ "\n" #~ "(This message will be shown only once per session)" #~ msgstr "" #~ "Hinweis: Dies is eine PGP/MIME signierte Nachricht. Das GpgOL Plugin\n" #~ "ist nicht immer in der Lage, eine solche Nachricht zu verifizieren.\n" -#~ "Der Grund hierzu liegt in der fehlenden Unterstützung von Outlook.\n" +#~ "Der Grund hierzu liegt in der fehlenden Unterstützung von Outlook.\n" #~ "\n" #~ "(Dieser Hinweis wird nur einmalig pro Sitzung angezeigt)" #~ msgid "Verification" -#~ msgstr "Ãœberprüfung" +#~ msgstr "Überprüfung" #~ msgid "[This is a PGP/MIME message]" #~ msgstr "[PGP/MIME Nachricht]" #~ msgid "Problem decrypting PGP/MIME message" -#~ msgstr "Problem bei Entschlüsseln einer PGP/MIME Nachricht" +#~ msgstr "Problem bei Entschlüsseln einer PGP/MIME Nachricht" #~ msgid "Verification Failure" -#~ msgstr "Ãœberprüfungsfehler" +#~ msgstr "Überprüfungsfehler" #~ msgid "Decryption Failure" -#~ msgstr "Entschlüsselungsfehler" +#~ msgstr "Entschlüsselungsfehler" #~ msgid "" #~ "The message text cannot be displayed.\n" #~ "You have to save the decrypted message to view it.\n" #~ "Then you need to re-open the message.\n" #~ "\n" #~ "Do you want to save the decrypted message?" #~ msgstr "" #~ "Der Text der Nachricht kann nicht angezeigt werden.\n" -#~ "Sie sollten die entschlüsselte Nachricht abspeichern und\n" -#~ "sie dann wieder zum Betrachten öffnen.\n" +#~ "Sie sollten die entschlüsselte Nachricht abspeichern und\n" +#~ "sie dann wieder zum Betrachten öffnen.\n" #~ "\n" -#~ "Möchten Sie die entschlüsselte Nachricht abspeichern?" +#~ "Möchten Sie die entschlüsselte Nachricht abspeichern?" #~ msgid "" #~ "Signed attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to verify the signatures?" #~ msgstr "" -#~ "Es wurden unterschriebene Anhänge gefunden.\n" +#~ "Es wurden unterschriebene Anhänge gefunden.\n" #~ "\n" #~ "@LIST@\n" -#~ "Möchten Sie diese Unterschriften überprüfen?" +#~ "Möchten Sie diese Unterschriften überprüfen?" #~ msgid "Attachment Verification" -#~ msgstr "Ãœberprüfung der Anhänge" +#~ msgstr "Überprüfung der Anhänge" #~ msgid "" #~ "Encrypted attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to decrypt and save them?" #~ msgstr "" -#~ "Es wurde verschlüsselte Anhange gefunden.\n" +#~ "Es wurde verschlüsselte Anhange gefunden.\n" #~ "\n" #~ "@LIST@\n" -#~ "Möchten Sie diese entschlüsseln und abspeichern?" +#~ "Möchten Sie diese entschlüsseln und abspeichern?" #~ msgid "Attachment Decryption" -#~ msgstr "Entschlüsselung eines Anhangs" +#~ msgstr "Entschlüsselung eines Anhangs" #~ msgid "Attachment Encryption Failure" -#~ msgstr "Verschlüsselungsfehler eines Anhangs" +#~ msgstr "Verschlüsselungsfehler eines Anhangs" #~ msgid "Attachment Verification Failure" -#~ msgstr "Ãœberprüfungsfehler eines Anhangs" +#~ msgstr "Überprüfungsfehler eines Anhangs" #~ msgid "Attachment Decryption Failure" -#~ msgstr "Entschlüsselungsfehler eines Anhangs" +#~ msgstr "Entschlüsselungsfehler eines Anhangs" #~ msgid "Attachment Signing Failure" #~ msgstr "Unterschrifterstellungsfehler eines Anhangs" #~ msgid "[PGP/MIME message]" #~ msgstr "[PGP/MIME Nachricht]" #~ msgid "[PGP/MIME message without plain text body]" -#~ msgstr "[PGP/MIME Nachricht ohne reinen Textkörper]" +#~ msgstr "[PGP/MIME Nachricht ohne reinen Textkörper]" #~ msgid "[PGP/MIME signed message without a plain text body]" -#~ msgstr "[PGP/MIME signierte Nachricht ohne reinen Textkörper]" +#~ msgstr "[PGP/MIME signierte Nachricht ohne reinen Textkörper]" #~ msgid "[PGP/MIME signature]" #~ msgstr "[PGP/MIME Signatur]" #~ msgid "GPG &encrypt message" -#~ msgstr "Mit GPG &verschlüsseln" +#~ msgstr "Mit GPG &verschlüsseln" #~ msgid "GPG &sign message" #~ msgstr "Mit GPG unter&schreiben" #~ msgid "Decrypt and verify the message." -#~ msgstr "Entschlüsseln und Prüfen der Nachricht." +#~ msgstr "Entschlüsseln und Prüfen der Nachricht." #~ msgid "Open GPG Key Manager" -#~ msgstr "Die GPG Schlüsselverwaltung öffnen" +#~ msgstr "Die GPG Schlüsselverwaltung öffnen" #~ msgid "" #~ "If you cancel this dialog, the message will be sent in cleartext!\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, wird die Nachricht im Klartext " #~ "ausgesendet!\n" #~ "\n" -#~ "Möchten Sie wirklich abbrechen?" +#~ "Möchten Sie wirklich abbrechen?" #~ msgid "" #~ "If you cancel this dialog, the message will be sent without signing.\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die Nachricht ohne Unterschrift " #~ "versendet.\n" #~ "\n" -#~ "Möchten Sie wirklich abbrechen?" +#~ "Möchten Sie wirklich abbrechen?" #~ msgid "Secret Key Dialog" -#~ msgstr "Auswahl des geheimen Schlüssels" +#~ msgstr "Auswahl des geheimen Schlüssels" #~ msgid "" #~ "If you cancel this dialog, the message will be sent without signing.\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die Nachricht ohne Unterschrift " #~ "versendet.\n" #~ "\n" -#~ "Möchten Sie wirklich abbrechen?" +#~ "Möchten Sie wirklich abbrechen?" #~ msgid "" #~ "If you cancel this dialog, the message will be sent in cleartext.\n" #~ "\n" #~ "Do you really want to cancel?" #~ msgstr "" #~ "Wenn Sie diesen Dialog abbrechen, so wird die NAchricht im Klartext " #~ "versendet!\n" #~ "\n" -#~ "Möchten Sie wirklich abbrechen?" +#~ "Möchten Sie wirklich abbrechen?" #~ msgid "[No attestation computed (e.g. messages was not signed)" #~ msgstr "" #~ "[Kein Testat berechnet (z.B. da die Nachricht nicht unterschrieben war)" diff --git a/po/sv.po b/po/sv.po index eff7796..cdbe247 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,831 +1,831 @@ # Swedish translation for GPGol. # Copyright (C) 2006 Free Software Foundation # This file is distributed under the same license as the gpgol package. # Daniel Nylander , 2006. # msgid "" msgstr "" "Project-Id-Version: GPGol\n" "Report-Msgid-Bugs-To: bug-gpgol@g10code.com\n" -"POT-Creation-Date: 2010-01-12 19:34+0100\n" +"POT-Creation-Date: 2010-07-21 11:04+0200\n" "PO-Revision-Date: 2006-12-12 23:52+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/attached-file-events.cpp:58 #, fuzzy msgid "Error creating file for attachment." msgstr "" "Fel vid skapande av fil\n" "Välj en annan" #: src/attached-file-events.cpp:71 msgid "Error reading attachment." msgstr "" #: src/attached-file-events.cpp:82 src/attached-file-events.cpp:95 #, fuzzy msgid "Error writing attachment." msgstr "Fel vid skrivning av fil" #: src/attached-file-events.cpp:216 msgid "" "Sorry, we are not able to decrypt this attachment.\n" "\n" "Please use the decrypt/verify button to decrypt the\n" "entire message again. Then open this attachment." msgstr "" #: src/common.c:216 #, fuzzy msgid "GpgOL - Save decrypted attachment" msgstr "GPG - Spara dekrypterad bilaga" #: src/config-dialog.c:137 msgid "Debug output (for analysing problems)" msgstr "" #: src/engine.c:392 msgid "" "The user interface server is not available or could not be started in time. " "You may want to try again." msgstr "" -#: src/engine.c:395 src/engine.c:405 src/main.c:695 src/main.c:701 +#: src/engine.c:395 src/engine.c:405 src/main.c:699 src/main.c:705 #: src/message.cpp:303 src/explorers.cpp:204 src/explorers.cpp:209 msgid "GpgOL" msgstr "" #: src/engine.c:401 msgid "" "The user interface server is not available or does not work. Using an " "internal user interface.\n" "\n" "This is limited to the PGP/MIME protocol and thus S/MIME protected message " "are not readable." msgstr "" #: src/engine-gpgme.c:368 #, fuzzy msgid "" "The configured default encryption certificate is not available or does not " "unambigiously specify one. Please fix this in the option dialog.\n" "\n" "This message won't be be encrypted to this certificate!" msgstr "" "Den konfigurerade standardkrypteringsnyckeln är inte tillgänglig eller anger " "inte uttryckligen en nyckel. Rätta till det här i inställningarna.\n" "\n" "Det här meddelandet kommer inte att krypteras med den här nyckeln!" #: src/engine-gpgme.c:372 msgid "Encryption" msgstr "Kryptering" #: src/engine-gpgme.c:788 msgid "Fingerprint: " msgstr "Fingeravtryck: " #: src/engine-gpgme.c:845 msgid "This signature is valid\n" msgstr "Den här signaturen är giltig\n" #: src/engine-gpgme.c:847 msgid "signature state is \"green\"\n" msgstr "signaturens tillstÃ¥nd är \"grön\"\n" #: src/engine-gpgme.c:849 msgid "signature state is \"red\"\n" msgstr "signaturens tillstÃ¥nd är \"röd\"\n" #: src/engine-gpgme.c:853 #, fuzzy msgid "Warning: One of the certificates has been revoked\n" msgstr "Varning: En av nycklarna har spärrats\n" #: src/engine-gpgme.c:863 #, fuzzy msgid "Warning: The certificate used to create the signature expired at: " msgstr "Varning: Nyckeln som användes för att skapa signaturen gick ut den: " #: src/engine-gpgme.c:869 #, fuzzy msgid "Warning: At least one certification certificate has expired\n" msgstr "Varning: Ã…tminstone en certifieringsnyckel har gÃ¥tt ut\n" #: src/engine-gpgme.c:875 msgid "Warning: The signature expired at: " msgstr "Varning: Signaturen gick ut den: " #: src/engine-gpgme.c:881 #, fuzzy msgid "Can't verify due to a missing certificate\n" msgstr "Kan inte validera pÃ¥ grund av en saknad nyckel eller certifikat\n" #: src/engine-gpgme.c:885 msgid "The CRL is not available\n" msgstr "Spärrlistan är inte tillgänglig\n" #: src/engine-gpgme.c:891 msgid "Available CRL is too old\n" msgstr "Tillgänglig spärrlista är för gammal\n" #: src/engine-gpgme.c:896 msgid "A policy requirement was not met\n" msgstr "Ett policykrav matchades inte\n" #: src/engine-gpgme.c:902 msgid "A system error occured" msgstr "Ett systemfel inträffade" #: src/engine-gpgme.c:939 #, fuzzy msgid "" "WARNING: We have NO indication whether this certificate belongs to the " "person named as shown above\n" msgstr "" "VARNING: Vi har INGA indikationer pÃ¥ huruvida nyckeln tillhör personen vars " "namn visas ovanför\n" #: src/engine-gpgme.c:946 #, fuzzy msgid "" "WARNING: The certificate does NOT BELONG to the person named as shown above\n" msgstr "VARNING: Nyckeln TILLHÖR INTE personen vars namn visas ovanför\n" #: src/engine-gpgme.c:950 #, fuzzy msgid "" "WARNING: It is NOT certain that the certificate belongs to the person named " "as shown above\n" msgstr "" "VARNING: Det är INTE säkert att nyckeln tillhör den person vars namn visas " "ovanför\n" #: src/engine-gpgme.c:983 msgid "Verification started at: " msgstr "Validering startad: " #: src/engine-gpgme.c:988 msgid "Verification result for: " msgstr "Valideringsresultat för: " #: src/engine-gpgme.c:989 msgid "[unnamed part]" msgstr "[ej namngiven del]" #: src/engine-gpgme.c:1007 src/engine-gpgme.c:1037 msgid "Good signature from: " msgstr "Korrekt signatur frÃ¥n: " #: src/engine-gpgme.c:1014 msgid " aka: " msgstr "även känd som:" #: src/engine-gpgme.c:1018 src/engine-gpgme.c:1040 msgid " created: " msgstr " skapad: " #: src/engine-gpgme.c:1027 msgid "*BAD* signature claimed to be from: " msgstr "*FELAKTIG* signatur hävdades komma frÃ¥n: " #: src/engine-gpgme.c:1050 msgid "Error checking signature" msgstr "Fel vid kontroll av signatur" #: src/engine-gpgme.c:1066 msgid "*** Begin Notation (signature by: " msgstr "*** Notation start (signatur av: " #: src/engine-gpgme.c:1086 msgid "*** End Notation ***\n" msgstr "*** Notation slut ***\n" -#: src/main.c:694 +#: src/main.c:698 #, c-format msgid "Note: Using compatibility flags: %s" msgstr "" -#: src/main.c:700 +#: src/main.c:704 #, c-format msgid "" "Note: Writing debug logs to\n" "\n" "\"%s\"" msgstr "" #: src/mapihelp.cpp:1527 src/mapihelp.cpp:1535 src/mapihelp.cpp:1543 msgid "[no subject]" msgstr "" #: src/mapihelp.cpp:2152 msgid "" "[The content of this message is not visible because it has been decrypted by " "another Outlook session. Use the \"decrypt/verify\" command to make it " "visible]" msgstr "" #: src/mapihelp.cpp:3004 msgid "" "[The content of this message is not visible due to an processing error in " "GpgOL.]" msgstr "" # A bit unclear in the original text #: src/message-events.cpp:284 src/mailitem.cpp:164 msgid "" "Sorry, we can only encrypt plain text messages and\n" "no RTF messages. Please make sure that only the text\n" "format has been selected." msgstr "" "Tyvärr, vi kan endast kryptera vanliga textmeddelanden\n" "och inte RTF-meddelanden. Se till att endast textformatet\n" "har valts i inställningarna." #: src/message.cpp:181 msgid "[Crypto operation failed - can't show the body of the message]" msgstr "" #: src/message.cpp:283 #, c-format msgid "" "Signature status: %s\n" "Message class ..: %s\n" "MIME structure .:\n" "%s" msgstr "" #: src/message.cpp:291 msgid "GpgOL - Message Information" msgstr "" #: src/message.cpp:523 msgid "Signature verification of an encrypted message is not possible." msgstr "" #: src/message.cpp:534 msgid "Signature verification of this message class is not possible." msgstr "" #: src/message.cpp:537 msgid "" "Signature verification of this S/MIME message is not possible. Please check " "that S/MIME processing has been enabled." msgstr "" #: src/message.cpp:541 #, fuzzy msgid "This message has no signature." msgstr "Dekryptera meddelandet och validera signaturen" #: src/message.cpp:839 msgid "This message is not encrypted." msgstr "" #: src/message.cpp:1066 #, fuzzy, c-format msgid "" "Decryption failed\n" "(%s)" msgstr "Kryptering misslyckades" #: src/message.cpp:1213 msgid "No recipients to encrypt to are given" msgstr "" #: src/message.cpp:1226 src/message.cpp:1253 msgid "Encrypting or signing an empty message is not possible." msgstr "" #: src/message.cpp:1235 #, fuzzy, c-format msgid "Encryption failed (%s)" msgstr "Kryptering misslyckades" #: src/message.cpp:1262 #, fuzzy, c-format msgid "Signing failed (%s)" msgstr "Signering misslyckades" #: src/mimeparser.c:1203 #, fuzzy msgid "Error writing to stream" msgstr "Fel vid skrivning av fil" #: src/mimeparser.c:1204 msgid "I/O-Error" msgstr "In-/Ut-fel" #: src/olflange-dlgs.cpp:43 msgid "General" msgstr "" #: src/olflange-dlgs.cpp:44 msgid "Enable the S/MIME support" msgstr "" #: src/olflange-dlgs.cpp:46 msgid "Message sending" msgstr "" #: src/olflange-dlgs.cpp:47 #, fuzzy msgid "&Encrypt new messages by default" msgstr "Kryptera meddelandet med GPG" #: src/olflange-dlgs.cpp:48 msgid "&Sign new messages by default" msgstr "" #: src/olflange-dlgs.cpp:50 msgid "Message receiving" msgstr "" #: src/olflange-dlgs.cpp:52 msgid "Show HTML view if possible" msgstr "" #: src/olflange-dlgs.cpp:53 msgid "Present encrypted message as attachment" msgstr "" #: src/olflange-dlgs.cpp:56 msgid "Crypto Engine" msgstr "" #. TRANSLATORS: See the source for the full english text. #: src/olflange-dlgs.cpp:256 msgid "-#GpgOLFullHelpText#-" msgstr "" #: src/olflange-dlgs.cpp:262 #, c-format msgid "This is GpgOL version %s" msgstr "" #: src/olflange.cpp:444 msgid "" "Welcome to GpgOL 1.0\n" "\n" "GpgOL adds integrated OpenPGP and S/MIME encryption and digital signing " "support to Outlook 2003 and 2007.\n" "\n" "Although we tested this software extensively, we can't give you any " "guarantee that it will work as expected. The programming interface we are " "using has not been properly documented by Microsoft and thus the " "functionality of GpgOL may cease to work with an update of your Windows " "system.\n" "\n" "WE STRONGLY ADVISE TO RUN ENCRYPTION TESTS BEFORE YOU START TO USE GPGOL ON " "ANY SENSITIVE DATA!\n" "\n" "There are some known problems, the most severe being that sending encrypted " "or signed mails using an Exchange based account does not work. Using GpgOL " "along with other Outlook plugins may in some cases not work.\n" msgstr "" #: src/olflange.cpp:472 msgid "" "You have installed a new version of GpgOL.\n" "\n" "Please open the option dialog and confirm that the settings are correct for " "your needs. The option dialog can be found in the main menu at: Extras-" ">Options->GpgOL.\n" msgstr "" #: src/olflange.cpp:672 msgid "" "This version of Outlook is too old!\n" "\n" "At least versions of Outlook 2003 older than SP2 exhibit crashes when " "sending messages and messages might get stuck in the outgoing queue.\n" "\n" "Please update at least to SP2 before trying to send a message" msgstr "" "Den här versionen av Outlook är för gammal!\n" "\n" "Ã…tminstone versioner av Outlook 2003 äldre än SP2 kraschar när meddelanden " "skickas och meddelanden kan fastna i utgÃ¥ende postkö.\n" "\n" "Uppdatera Ã¥tminstone till SP2 innan du försöker skicka ett meddelande" #: src/passphrase-dialog.c:85 #, fuzzy msgid "No certificate hint given." msgstr "Inget nyckeltips angivet." #: src/passphrase-dialog.c:313 src/passphrase-dialog.c:464 msgid "Enter passphrase to unlock the secret key" msgstr "" #: src/passphrase-dialog.c:314 src/passphrase-dialog.c:465 msgid "Hide typing" msgstr "" #: src/passphrase-dialog.c:315 src/passphrase-dialog.c:466 #: src/recipient-dialog.c:385 msgid "&Cancel" msgstr "" #: src/passphrase-dialog.c:350 src/passphrase-dialog.c:499 msgid "Invalid passphrase; please try again..." msgstr "Ogiltig lösenfras; försök igen..." #: src/passphrase-dialog.c:379 msgid "Select Signing Key" msgstr "Välj signeringsnyckel" #: src/passphrase-dialog.c:463 msgid "Encrypted to the following certificates:" msgstr "" #: src/recipient-dialog.c:88 msgid "Name" msgstr "Namn" #: src/recipient-dialog.c:93 msgid "E-Mail" msgstr "E-post" #: src/recipient-dialog.c:98 msgid "Key-Info" msgstr "Nyckelinfo" #: src/recipient-dialog.c:103 msgid "Key ID" msgstr "Nyckel-id" #: src/recipient-dialog.c:108 msgid "Validity" msgstr "Giltighet" #: src/recipient-dialog.c:383 msgid "Selected recipients:" msgstr "" #: src/recipient-dialog.c:384 msgid "Recipient which were NOT found" msgstr "" #: src/recipient-dialog.c:444 #, fuzzy msgid "Please select at least one recipient certificate." msgstr "Välj Ã¥tminstone en mottagarnyckel." #: src/recipient-dialog.c:445 msgid "Recipient Dialog" msgstr "Mottagardialog" #: src/verify-dialog.c:124 msgid "BAD signature!" msgstr "FELAKTIG signatur!" #: src/verify-dialog.c:126 msgid "Good signature" msgstr "Korrekt signatur" #: src/verify-dialog.c:128 #, fuzzy msgid "Good signature from revoked certificate" msgstr "Korrekt signatur frÃ¥n spärrad nyckel" #: src/verify-dialog.c:130 #, fuzzy msgid "Good signature from expired certificate" msgstr "Korrekt signatur frÃ¥n utgÃ¥ngen nyckel" #: src/verify-dialog.c:132 msgid "Good expired signature" msgstr "Korrekt utgÃ¥ngen signatur" #: src/verify-dialog.c:135 #, fuzzy msgid "Could not check signature: missing certificate" msgstr "Kunde inte kontrollera signaturen: saknar nyckel" #: src/verify-dialog.c:139 msgid "Verification error" msgstr "Valideringsfel" #: src/verify-dialog.c:156 msgid "User-ID not found" msgstr "Användaridentiteten hittades inte" #: src/verify-dialog.c:168 msgid "This may be due to a wrong option setting" msgstr "Det här kan bero pÃ¥ en felaktig inställning" #: src/verify-dialog.c:174 #, c-format msgid "Signature expired on %s" msgstr "Signaturen gick ut den %s" #: src/verify-dialog.c:186 #, fuzzy msgid "Signature issued by a certificate we do NOT trust." msgstr "Signaturen utfärdad av en nyckel som vi INTE litar pÃ¥." #: src/verify-dialog.c:193 #, fuzzy msgid "Signature issued by a non-valid certificate." msgstr "Signaturen utfärdad av en icke-giltig nyckel." #: src/verify-dialog.c:209 msgid "Signature made" msgstr "" #: src/verify-dialog.c:210 msgid "using" msgstr "" #: src/verify-dialog.c:211 msgid "cert-ID" msgstr "" #: src/verify-dialog.c:212 msgid "from" msgstr "" #: src/verify-dialog.c:213 msgid "also known as" msgstr "" #: src/verify-dialog.c:244 #, fuzzy msgid "PGP/MIME Verification Result" msgstr "Resultat frÃ¥n validering" #: src/verify-dialog.c:247 #, fuzzy msgid "S/MIME Verification Result" msgstr "Resultat frÃ¥n validering" #: src/inspectors.cpp:687 #, fuzzy msgid "&encrypt message with GnuPG" msgstr "Signera meddelandet med GPG" #: src/inspectors.cpp:701 #, fuzzy msgid "&sign message with GnuPG" msgstr "Signera meddelandet med GPG" #: src/inspectors.cpp:727 msgid "GpgOL Decrypt/Verify" msgstr "" #: src/inspectors.cpp:788 #, fuzzy msgid "Encrypt message with GnuPG" msgstr "Signera meddelandet med GPG" #: src/inspectors.cpp:804 #, fuzzy msgid "Sign message with GnuPG" msgstr "Signera meddelandet med GPG" #: src/inspectors.cpp:921 msgid "" "This is a signed and encrypted message.\n" "Click for more information. " msgstr "" #: src/inspectors.cpp:927 msgid "" "This is a signed message.\n" "Click for more information. " msgstr "" #: src/inspectors.cpp:933 msgid "" "This is an encrypted message.\n" "Click for more information. " msgstr "" #: src/explorers.cpp:126 #, fuzzy msgid "GnuPG Certificate &Manager" msgstr "GPG-nyckel&hanterare" #: src/explorers.cpp:140 msgid "Remove GpgOL flags from this folder" msgstr "" #: src/explorers.cpp:167 #, fuzzy msgid "Open the certificate manager" msgstr "GPG-nyckel&hanterare" #: src/explorers.cpp:194 msgid "" "You are about to start the process of reversing messages created by GpgOL to " "prepare deinstalling of GpgOL. Running this command will put GpgOL into a " "disabled state so that messages are not anymore processed by GpgOL.\n" "\n" "You should convert all folders one after the other with this command, close " "Outlook and then deinstall GpgOL.\n" "\n" "Note that if you start Outlook again with GpgOL still being installed, GpgOL " "will again process messages." msgstr "" #: src/explorers.cpp:208 msgid "Do you want to revert this folder?" msgstr "" #~ msgid "Select this option to encrypt the message." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #~ msgid "Select this option to sign the message." #~ msgstr "Välj det här alternativet för att signera meddelandet." #, fuzzy #~ msgid "Select this option to open the certificate manager" #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "PGP/MIME" #~ msgstr "[PGP/MIME-meddelande]" #, fuzzy #~ msgid "Could not start certificate manager" #~ msgstr "Kunde inte starta nyckelhanteraren" #, fuzzy #~ msgid "Select this option to automatically select the protocol." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "Select this option to select the PGP/MIME protocol." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "Select this option to select the S/MIME protocol." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "Automatically select the protocol for sign/encrypt" #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #~ msgid "&Decrypt and verify message" #~ msgstr "&Dekryptera och validera meddelandet" #, fuzzy #~ msgid "&Verify signature" #~ msgstr "FELAKTIG signatur!" #, fuzzy #~ msgid "Select this option to decrypt and verify the message." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "Select this option to show information on the crypto status" #~ msgstr "Välj det här alternativet för att signera meddelandet." #, fuzzy #~ msgid "Also encrypt message with the default certificate" #~ msgstr "Kryptera meddelandet med GPG" #, fuzzy #~ msgid "The default certificate may not contain any spaces." #~ msgstr "Standardnyckeln fÃ¥r inte innehÃ¥lla nÃ¥gra blanksteg." #~ msgid "Select GPG Key Manager" #~ msgstr "Välj GPG-nyckelhanterare" #, fuzzy #~ msgid "Encrypt message with GPG" #~ msgstr "Signera meddelandet med GPG" #~ msgid "Sign message with GPG" #~ msgstr "Signera meddelandet med GPG" #, fuzzy #~ msgid "Select this option to select the OpenPGP protocol." #~ msgstr "Välj det här alternativet för att kryptera meddelandet." #, fuzzy #~ msgid "OpenPGP Verification Result" #~ msgstr "Resultat frÃ¥n validering" #~ msgid "No valid OpenPGP data found." #~ msgstr "Inget giltigt OpenPGP-data hittades." #~ msgid "Decryption" #~ msgstr "Dekryptering" #~ msgid "" #~ "[This is a PGP/MIME message]\r\n" #~ "\r\n" #~ "[Use the \"Decrypt\" button in the message window to show its content.]" #~ msgstr "" #~ "[Det här är ett PGP/MIME-meddelande]\r\n" #~ "\r\n" #~ "[Använd knappen \"Dekryptera\" i meddelandefönstret för att visa " #~ "innehÃ¥llet.]" #, fuzzy #~ msgid "" #~ "Note: This is a PGP/MIME signed message. The GpgOL plugin is not always " #~ "able to verify such a message due to missing support in Outlook.\n" #~ "\n" #~ "(This message will be shown only once per session)" #~ msgstr "" #~ "Observera: Det här är ett PGP/MIME-signerat meddelande. Insticksmodulen " #~ "GPGol kan inte alltid validera ett sÃ¥dant meddelande pÃ¥ grund av att stöd " #~ "saknas i Outlook.\n" #~ "\n" #~ "(Det här meddelandet kommer endast att visas en gÃ¥ng per session)" #~ msgid "Verification" #~ msgstr "Validering" #~ msgid "[This is a PGP/MIME message]" #~ msgstr "[Det här är ett PGP/MIME-meddelande]" #~ msgid "Problem decrypting PGP/MIME message" #~ msgstr "Problem vid dekryptering av PGP/MIME-meddelande" #~ msgid "Verification Failure" #~ msgstr "Validering misslyckades" #~ msgid "Decryption Failure" #~ msgstr "Dekryptering misslyckades" #~ msgid "" #~ "The message text cannot be displayed.\n" #~ "You have to save the decrypted message to view it.\n" #~ "Then you need to re-open the message.\n" #~ "\n" #~ "Do you want to save the decrypted message?" #~ msgstr "" #~ "Meddelandetexten kan inte visas.\n" #~ "Du mÃ¥ste spara det dekrypterade meddelandet\n" #~ "för att visa det. Sedan mÃ¥ste du öppna det igen.\n" #~ "\n" #~ "Vill du spara det dekrypterade meddelandet?" #~ msgid "" #~ "Signed attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to verify the signatures?" #~ msgstr "" #~ "Signerade bilagor hittades.\n" #~ "\n" #~ "@LIST@\n" #~ "Vill du validera signaturerna?" #~ msgid "Attachment Verification" #~ msgstr "Validering av bilaga" #~ msgid "" #~ "Encrypted attachments found.\n" #~ "\n" #~ "@LIST@\n" #~ "Do you want to decrypt and save them?" #~ msgstr "" #~ "Krypterade bilagor hittades.\n" #~ "\n" #~ "@LIST@\n" #~ "Vill du dekryptera och spara dem?" #~ msgid "Attachment Decryption" #~ msgstr "Dekryptering av bilaga" #~ msgid "Attachment Encryption Failure" #~ msgstr "Kryptering av bilaga misslyckades" #~ msgid "Attachment Verification Failure" #~ msgstr "Validering av bilaga misslyckades" #~ msgid "Attachment Decryption Failure" #~ msgstr "Dekryptering av bilaga misslyckades" #~ msgid "Attachment Signing Failure" #~ msgstr "Signering av bilaga misslyckades" #~ msgid "[PGP/MIME message without plain text body]" #~ msgstr "[PGP/MIME-meddelande utan vanlig meddelandetext]" #~ msgid "[PGP/MIME signed message without a plain text body]" #~ msgstr "[PGP/MIME-signerat meddelande utan vanlig meddelandetext]" #~ msgid "[PGP/MIME signature]" #~ msgstr "[PGP/MIME-signatur]" #~ msgid "GPG &encrypt message" #~ msgstr "GPG-&kryptera meddelandet" #~ msgid "GPG &sign message" #~ msgstr "GPG-&signera meddelandet" #~ msgid "Decrypt and verify the message." #~ msgstr "Dekryptera och validera meddelandet." #~ msgid "Open GPG Key Manager" #~ msgstr "Öppna GPG-nyckelhanteraren" diff --git a/src/ChangeLog b/src/ChangeLog index 62127c7..ba39083 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,2541 +1,2546 @@ +2010-07-21 Werner Koch + + * main.c (DllMain): Init and deinit libgpg-error which is now + required due to our use of a static libgpg-error. + 2010-04-21 Marcus Brinkmann * engine-assuan.c (connect_uiserver): Update to new libassuan interface. 2010-01-13 Werner Koch * README.icons: Change instructions to better cope with alpha channels. 2010-01-12 Werner Koch * decrypt-verify-16.bmp, decrypt-verify-16m.bmp: Update. * decrypt-verify-32.bmp, decrypt-verify-32m.bmp: Update. * verify-16.bmp, verify-16m.bmp: Update. * verify-32m.bmp, verify-32.bmp: Update. 2010-01-08 Werner Koch * README.icons: Fix instructions for forms icons. 2009-12-22 Werner Koch * key-manager-16.bmp, key-manager-16m.bmp: Update. * key-manager-32.bmp, key-manager-32m.bmp: Update. * key-manager-64.bmp, key-manager-64m.bmp: New. * verify-16.bmp, verify-16m.bmp: Update. * verify-32.bmp, verify-32m.bmp: New. * sign-16.bmp, sign-16m.bmp: Update. * sign-32.bmp, sign-32m.bmp: New. * encrypt-16.bmp, encrypt-16m.bmp: Update. * encrypt-32.bmp, encrypt-32m.bmp: New. * decrypt-16.bmp, decrypt-16m.bmp: Update. * decrypt-32.bmp, decrypt-32m.bmp: New. * decrypt-verify-16.bmp, decrypt-verify-16m.bmp: Update. * decrypt-verify-32.bmp, decrypt-verify-32m.bmp: New. * Makefile.am (EXTRA_DIST): Add new bitmaps. * dialogs.rc: Add new bitmaps. 2009-12-01 Werner Koch * README.icons: New. 2009-12-08 Marcus Brinkmann * engine-assuan.c (getinfo_pid_cb, prep_foo_status_cb): Change return type to gpg_error_t. 2009-11-30 Werner Koch * message-events.cpp (OnReadComplete): Use GetInspector if none was found. * display.cpp (update_display): Print the window hierarchy in case of an error. * ext-commands.cpp (get_inspector): Add arg HWND. First try get_inspector_from_hwnd. (get_crypto_flags, set_crypto_flags): Add arg HWND. (InstallCommands, DoCommand): Pass HWND to crypt_flags functions. 2009-11-27 Werner Koch * message-events.cpp (get_crypto_flags): Replace EECB arg by HWND. (OnRead): Pass HWND to get_crypto_flags. Change all callers. (get_inspector): Remove. (get_crypto_flags, OnReadComplete): Use get_inspector_from_hwnd. * oomhelp.h (IID_IOleWindow): Define. * inspectors.cpp (find_ole_window): New. (struct inspector_info_s): Add field HWND. (register_inspector): Store it.. (get_inspector_from_hwnd): New. * common.h (DBG_OOM_EXTRA): New. * main.c (read_options): Read new debug flag. * eventsink.h (debug_oom_extra): Use it. 2009-11-03 Werner Koch * inspectors.cpp (deregister_inspector): Delete the buttons. (set_one_button): New. (set_inspector_composer_flags): Also set toolbar buttons. (toggle_button): Use set_one_button. (get_button_by_instid_and_tag): Remove. * oomhelp.cpp (del_oom_button): New. 2009-11-02 Werner Koch * mailitem.cpp, mailitem.h: New. * inspectors.cpp (get_message_from_button): New. (get_inspector_from_instid): New. (proc_inspector_button_click): Implement missing commands. * message.cpp (message_display_handler): Change to take an LPMESSAGE argument. * display.cpp (update_display): Replace the eecb arg by an inspector object. * message-events.cpp (OnReadComplete): Adjust for changes. * oomhelp.cpp (get_oom_iunknown): New. * revert.cpp (gpgol_folder_revert): Change to work without an eecb. 2009-10-30 Werner Koch * oomhelp.cpp (get_oom_control_bytag): Fix silly bug. * inspectors.cpp (get_inspector_composer_flags): New. (set_inspector_composer_flags): New. * oomhelp.cpp (get_eecb_object): New. * message-events.cpp (get_inspector): New. (get_crypto_flags): New. (OnWrite, OnWriteComplete): Use new functions instead of the class members. Use the new oom property functions. * ext-commands.cpp (get_inspector, get_crypto_flags): New. (DoCommand): Use new function. (set_crypto_flags): New. (InstallCommands): Use set_crypto_flags. (add_menu, check_menu, add_toolbar, struct toolbar_info_s): Remove. (QueryButtonInfo): Remove all code. (InstallCommands): Make use of get_eecb_object and put_oom_string. (DoCommand): Use get_eecb_object. * olflange.h (IExchExt): Remove m_protoSelection, m_gpgSign, m_gpgEncrypt and all related code. * olflange.cpp (Install): Use get_oom_string. * display.cpp (update_display): Ditto. * ol-ext-callback.h, ol-ext-callback.cpp: Remove. 2009-10-29 Werner Koch * ext-commands.cpp: Remove m_nCmdDebugN, m_nCmdRevertFolder, m_nCmdSign, m_nCmdEncrypt and all related code. Now handled in inspectors.cpp. 2009-10-28 Werner Koch * ext-commands.cpp: Remove m_nCmdCryptoState and all related code; now handled in inspectors.cpp. Remove m_nCmdKeyManager and all related code; now handled in cmdbarcontrols.cpp. * oomhelp.cpp, oomhelp.h, eventsink.h: New. * myexchext.h: Move generic COM+ stuff to oomhelp.h. * explorers.cpp, explorers.h: New. * inspectors.cpp, inspectors.h: New. * cmdbarcontrols.cpp cmdbarcontrols.h: New. * olflange.cpp (install_sinks): New. (Install): Call install_sinks. * main.c (DllMain): Call initialize_inspectors. * common.c (fatal_error): New. 2009-10-20 Werner Koch * myexchext.h (IID_IConnectionPoint) (IID_IConnectionPointContainer): Define. There are missing in current wine From ReactOS. 2009-10-19 Werner Koch * message-events.cpp (show_event_object): Move to .. * ol-ext-callback.cpp (show_event_object): .. here. (show_preview_pane): Revert dispparms order to make it work. * common.c (mem2str): New. 2009-10-07 Werner Koch * ext-commands.cpp (InstallCommands): Comment out the protocol selection. (DoCommand, Help, QueryHelpText, QueryButtonInfo): Ditto. (update_protocol_menu): Comment out. * main.c (write_options): Do not write the default protocol. (read_options): Always set it to auto. * dialogs.rc: Remove openpgp-by-default and smime-by-default check boxes. * olflange-dlgs.cpp (set_labels): Likewise. (GPGOptionsDlgProc): Likewise. 2009-09-25 Werner Koch * main.c (read_options): Enable Smime by default. 2009-08-28 Werner Koch * mimemaker.c (do_mime_sign): Comment cleanup. 2009-08-27 Werner Koch * mapihelp.cpp (mapi_get_sender): Add hack for Kleopatra. 2009-08-21 Werner Koch * engine-assuan.c (async_worker_thread): Disable the use of MsgWaitForMultipleObjects. * common.h (struct compat): Add USE_MWFMO. * main.c (read_options): Read that flag. 2009-08-19 Werner Koch * message.cpp (ul_release): Add arg LNR. Change all callers. * ol-ext-callback.cpp (ul_release): Add args FUNC and LNR. Change all callers. * item-events.cpp (ul_release): ditto. * session-events.cpp (ul_release): Ditto. 2009-07-21 Werner Koch * mapihelp.cpp (create_gpgol_tag, get_internetcharsetbody_tag) (mapi_set_header): Release data returned from GetIDsFromNames. * engine.h (ENGINE_FLAG_SIGN_FOLLOWS): New macro. * engine.c (engine_encrypt_prepare): Add arg flags. Change callers. * engine-assuan.c (op_assuan_encrypt): Ditto. send PREP_ENCRYPT if the sign-follows flag is used. * mimemaker.c (mime_sign_encrypt): Pass new flag. 2009-06-18 Werner Koch * common.h (struct opt): Add ANNOUNCE_NUMBER. * main.c (write_options, read_options): Store and load that number. 2009-02-26 Werner Koch * mimeparser.c (start_attachment): Try to figure out a good file name suffix for the FILENAME property. * ext-commands.cpp (InstallCommands): Disable decrypt button for non GpgOl messages. * engine.c (engine_encrypt_prepare): Add arg SENDER. * engine-assuan.c (op_assuan_encrypt): Ditto. * mimemaker.c (do_mime_sign): Free sender string. (mime_encrypt): Pass the sender address to the engine. (mime_sign_encrypt): Ditto. 2009-02-25 Werner Koch * mapihelp.cpp (get_gpgoldraftinfo_tag): New. (mapi_get_gpgol_draft_info, mapi_set_gpgol_draft_info): New. * ext-commands.cpp (DoCommand): Save encryption selection. (InstallCommands): Get encryption selection from the draft info. * mimemaker.c (finalize_message): Delete the property. 2009-01-28 Werner Koch * mimeparser.c (t2body): Take care of x-pkcs7-mime as used by native OL signed messages. (mime_decrypt): Ditto. 2009-01-16 Werner Koch * engine-assuan.c (attach_thread_input_wndw_proc) (attach_thread_input): Enable code. (async_worker_thread): Replace WFMO by MsgWaitForMultipleObjects and add message dispatcher loops. 2008-11-27 Werner Koch * mapihelp.cpp (mapi_get_sender): Extract the CN name if available. 2008-11-26 Werner Koch * ext-commands.cpp (InstallCommands): Don't show status icon for non-gpgol messages. * config-dialog.c (start_key_manager): Remove. * ext-commands.cpp (DoCommand): Do not use start_key_manager as a fallback. * olflange.cpp (GpgolExt): Show new version warning only once. * dialogs.rc: Do not display the logo. Move version info around. * dialogs.h (IDC_G10CODE_STRING): New. * olflange-dlgs.cpp (GPGOptionsDlgProc): Active product page by a click on IDC_G10CODE_STRING. (set_labels): Remove the build date from the Version field. 2008-11-14 Werner Koch * dialogs.rc: Remove preview-decrypt check button. * olflange-dlgs.cpp (set_labels): Ditto. 2008-11-13 Werner Koch * engine.c (FILTER_BUFFER_SIZE): Increase from 4k to 128k. (switch_threads, clear_switch_threads): Remove. (engine_filter): Pulse event only if anything happened. Break loop if input data has been put completely into the buffer. Add a short delay for an idle loop. * engine-assuan.c (work_item_s): Increase buffer from 1k to 8k. (switch_threads, clear_switch_threads): Remove. 2008-11-10 Werner Koch * engine.c (engine_init): Allow the user to try again if the server did not come up. * engine-assuan.c (connect_uiserver, op_assuan_init): Add a hack to reset the retry counter. 2008-11-03 Werner Koch * mimemaker.c (do_mime_sign): Add arg SESSION_NUMBER and pass it to the sign operation. Set session title. (mime_sign): Create a new session number. (mime_sign_encrypt): Pass a session number and title to the engine. (mime_encrypt): Ditto. * engine-assuan.c (op_assuan_encrypt, op_assuan_sign): Send session info. 2008-10-29 Werner Koch * engine.c (engine_filter): Collect more data in the in buffer. * mimemaker.c (write_b64): Buffer up to 2k of output. 2008-10-27 Werner Koch * mimemaker.c (mime_encrypt): Check for an empty message before creating the filter. Return a suitable error code. (do_mime_sign): Ditto. (mime_sign_encrypt): Ditto. (mime_sign): Return an error code. * message.cpp (sign_encrypt): Show an error message for empty messages. (message_sign): Ditto. * olflange.cpp (install_forms): Add gpgol-cs. * mapihelp.cpp (get_internetcharsetbody_tag): New. (mapi_get_body_as_stream): Try the new tag first. (get_msgcls_from_pgp_lines): Ditto. Remove the simple access method. 2008-10-24 Werner Koch * mimeparser.c (struct mime_context): Add flag MAY_BE_OPAQUE_SIGNED. (t2body): Set that flag. (is_cms_signed_data): New. (mime_decrypt): Try to verify if the content is opaque signed without proper MIME headers. 2008-10-23 Werner Koch * mapihelp.cpp (mapi_delete_gpgol_body_attachment): New. * message-events.cpp (OnWriteComplete): Remove a body attachment. * message.cpp (message_display_handler): Do not display PGP clearsigned messages. (message_display_handler): Do not update GpgOLStatus; it is not used anyway. (pgp_mime_from_clearsigned): Fix bogus trailing white space removal code. Insert an empty line. * mimeparser.c (mime_verify): Add arg MIMEHACK. (message_verify): Use it. 2008-10-17 Werner Koch * recipient-dialog.c (load_rsetbox): Remove superfluous check on negativness for an unsigned variable. * mimeparser.c (mime_verify_opaque): Remove extra semicolon which shortcuted most of the code. Why didn't gcc notice that? Bug was introduced on 2008-06-12. * engine-assuan.c (create_io_pipe, send_options) (op_assuan_encrypt, op_assuan_sign, op_assuan_decrypt) (op_assuan_verify): Replace use of long in snprint by int to workaround a bug in mingw32. Doesn't matter on w32 anyway. 2008-10-16 Werner Koch * mimeparser.c (start_attachment): Take care not to set the file name "smime.p7m". * mapihelp.cpp (is_really_cms_encrypted): Extend to detect unknown message types. (mapi_change_message_class): Adjust for this change. (mapi_change_message_class): Factor code out to ... (change_message_class_ipm_note) (change_message_class_ipm_note_smime) (change_message_class_ipm_note_smime_multipartsigned) (change_message_class_ipm_note_secure_cex): New. (get_first_attach_mime_tag): New. (change_message_class_ipm_note_secure_cex): Use it here for CexSig. (has_smime_filename): Also look at the long filename. 2008-10-15 Werner Koch * engine-assuan.c (op_assuan_sign): Send the new --protocol option to the server. 2008-09-30 Werner Koch * mapihelp.cpp (mapi_change_message_class): Special handling for MultipartSigned if S/MIME support is disabled. 2008-08-06 Werner Koch * olflange-dlgs.cpp (GPGOptionsDlgProc): Disable S/MIME notice. 2008-08-05 Werner Koch * ext-commands.cpp (InstallCommands): Display protocolicons only for OL2007. * olflange.cpp (get_ol_main_version): New. * message.cpp (message_decrypt): Save a signature verification result. * mimeparser.c (mime_decrypt): Implement verification of included signatures. This feature got lost during the removal of nested crypto operations. 2008-08-04 Werner Koch * olflange.cpp (install_forms): New. (GpgolExt): Install forms if needed. * common.c (get_data_dir): New. * common.h (struct): Add field FORMS_REVISION. * main.c (read_options, write_options): Read and write that option. 2008-07-31 Werner Koch * ext-commands.h (class GpgolExtCommands): Add m_nCmdRevertFolder. * ext-commands.cpp (GpgolExtCommands, InstallCommands): Ditto. (DoCommand): Implement RevertFolder command. * common.h (struct): Add variable DISABLE_GPGOL. * session-events.cpp (OnDelivery): Make use of that variable. * message.cpp (message_incoming_handler): Ditto. * user-events.cpp (OnSelectionChange): Ditto * message-events.cpp (OnRead, OnReadComplete, OnWrite) (OnWriteComplete): Ditto * mapihelp.cpp (mapi_get_int_prop): New. * olflange.cpp (Install): Improve version check. * revert.cpp, revert.h: New. * mapihelp.cpp (mapi_attachment_to_body): New. (mapi_get_old_message_class): New. (mapi_change_message_class): Do not release newvalue when saving the old class. * olflange.cpp (parse_version_number, parse_version_string) (compare_versions, gpgol_check_version): New. * ext-commands.cpp (DoCommand): Support a "revert message class" debug command. 2008-06-27 Werner Koch * mapihelp.cpp (get_gpgololdmsgclass_tag): New. (mapi_change_message_class): Save old message class. 2008-06-19 Werner Koch * olflange-dlgs.cpp (GPGOptionsDlgProc): Change S/MIME enabled message icon. * olflange.cpp (GpgolExt): Ditto for the new version installed notice. 2008-06-12 Werner Koch * dialogs.rc: Add button for calling the engine's configuration. * dialogs.h (IDC_GPG_CONF): New. * engine.c (engine_start_confdialog): New. * engine-assuan.c (op_assuan_start_confdialog): New. * olflange-dlgs.cpp (GPGOptionsDlgProc): Act upon the button. * mapihelp.cpp (mapi_get_from_address): New. * engine.c (engine_decrypt_start, engine_verify_start): Add new arg FROM_ADDRESS. * engine-assuan.c (op_assuan_verify, op_assuan_decrypt): Ditto. * mimeparser.c (mime_verify, mime_verify_opaque, mime_decrypt): Pass FROM_ADDRESS to the backend. * olflange.cpp (DllUnregisterServer): Delete CLSIDs. 2008-06-05 Werner Koch * mimeparser.c (mime_decrypt): Set session number and title. (mime_verify_opaque, mime_verify): Ditto. * mapihelp.cpp (mapi_get_subject): New. * engine.c (engine_set_session_number, engine_set_session_title) (engine_set_sender_address): New. (struct engine_filter_s): Add fields session_number, session_title and sender_address. (engine_private_get_session_number): New. (engine_private_get_session_title): New. (release_filter): Release them. (engine_new_session_number): New. * engine-assuan.c (send_session_info): New (op_assuan_decrypt, op_assuan_verify): Call it. (op_assuan_sign): Use the end-of-option option for the SENDER command. 2008-05-28 Werner Koch * dialogs.h (IDC_BODY_AS_ATTACHMENT): New. * dialogs.rc: Add body-as-attachemnt checkbox to the otpion dialog. * olflange-dlgs.cpp (set_labels, GPGOptionsDlgProc): Add it. * main.c (write_options, read_options): Handle bodyAsAttachment registry key. * mimeparser.c (start_attachment): Do not set the hidden flag if the new option is used. * mapihelp.cpp (mapi_test_attach_hidden): New. (mapi_get_gpgol_body_attachment): Make use of that flag. 2008-05-23 Werner Koch * mimemaker.c (struct sink_s): Add field ENC_COUNTER. (write_buffer_for_cb): Update that. (mime_encrypt): Bail out if no data has been encrypted. (mime_sign_encrypt): Ditto. 2008-05-07 Werner Koch * mimeparser.c (t2body): Fix last change. 2008-05-02 Werner Koch * mimeparser.c (t2body): Detect non-inline text parts. * rfc822parse.c (rfc822parse_query_parameter): Add special mode for an ATTR of NULL. 2008-04-16 Werner Koch * message-events.h (class GpgolMessageEvents): Add M_GOTINSPECTOR. * message.cpp (message_incoming_handler): Change return type. * ext-commands.cpp (check_toolbar, check_menu_toolbar): New. (update_protocol_menu): Explicitly update the toolbar. 2008-04-15 Werner Koch * Outlook.gpl: New. 2008-04-14 Werner Koch * display.cpp (is_inspector_display): New. (find_message_window): Rewrote. * message-events.cpp (OnRead): Use it. * message.cpp (message_incoming_handler): Add arg FORCE. * message-events.cpp (OnRead): Pass false for FORCE. * item-events.cpp (OnOpen): Ditto. * ext-commands.cpp (DoCommand): Let CmdCryptoState process and display the current message again. (GpgolExtCommands): Remove m_nCmdCheckSig and m_nCmdDecrypt. 2008-04-10 Werner Koch * ol-ext-callback.cpp (is_preview_pane_visible) (show_preview_pane): New. * display.cpp (update_display): Add arg IS_SENSITIVE and do not use the OOM method if this is set. * mapihelp.h (mapi_save_changes): New. Use if everywhere. (mapi_delete_body_props): Use it to delete body parts. * mapihelp.cpp (mapi_do_save_changes): New. * mimemaker.c (finalize_message): Do no delete body parts because mapi_save_changes does this now. * mimeparser.c (finish_message): Remove the body property in protect mode. 2008-04-04 Werner Koch * engine-assuan.c (worker_start_read, worker_check_read): Factor common code out to .. (write_to_callback): .. new. (async_worker_thread): Better comments and minor changes. (enqueue_callback): Add arg INACTIVE. (set_items_active): New. (start_command): Set items active. (op_assuan_encrypt): Create input and output items as inactive. (async_worker_thread): Handle the inactive flag. * common.c (gpgol_spawn_detached): Do not inherit handles. 2008-04-02 Werner Koch * engine-assuan.c (destroy_command): Add arg FORCE. (op_assuan_encrypt_bottom): Call destroy_command. * mimeparser.c (struct mime_context): Use parser_error to return gpg error codes. * main.c (read_options): Allow names for debug flags. * common.c (trim_spaces): New. 2008-03-31 Werner Koch * engine-assuan.c (struct work_item_s): Add SWITCH_COUNTER. (switch_threads, clear_switch_threads): New. (worker_start_write): Use it. * engine.c (struct engine_filter_s): Add SWITCH_COUNTER. (switch_threads, clear_switch_threads): New. (filter_gpgme_read_cb): Use it. * ext-commands.h (class GpgolExtCommands): Add m_nCmdCryptoState. * ext-commands.cpp (InstallCommands): Add a toolbar crypto state button. (DoCommand): Show a message when trying to select the disabled S/MIME protocol. * message.cpp (message_sign, message_verify, message_decrypt) (sign_encrypt): Display message boxes only in debug mode. * olflange-dlgs.cpp: Remove G-Data 2001 copyright because all that old code has gone. * dialogs.rc (IDD_EXT_OPTIONS): Remove option to select the key manager. (IDD_GPG_OPTIONS): Remove caching time, reorder options, add group boxes. * olflange-dlgs.cpp (GPGOptionsDlgProc): Clean up accordingly. * config-dialog.c (config_dlg_proc): Ditto. (get_open_file_name, does_file_exist, error_box): Remove. * ext-commands.cpp: Rename nCmdShowInfo to nCmdDebug0 and enable it only in debug mode. 2008-03-26 Werner Koch * engine-gpgme.c (cleanup): Implement. (op_gpgme_init): Save thread handle. (waiter_thread): Check shutdown flags. * engine-assuan.c (get_uiserver_name): Fallback to GPA. 2008-03-19 Werner Koch * mapihelp.cpp (mapi_change_message_class): Look into multipart/mixed for PGP messages. * mapihelp.cpp (mapi_get_attach): Add arg UNPROTECT and changed all callers. * common.h (DBG_MIME_PARSER, DBG_MIME_DATA): New. * mimeparser.c (debug_mime_parser, debug_mime_data): New to replace DEBUG_PARSER. (struct mime_context): Add field is_opaque_signed. (t2body): Set it. (mime_decrypt): Handle an embedded opaque signed S/MIME part. (mime_verify_opaque): Add arg INBUFER, INBUFFERLEN and START_PART_COUNTER. 2008-03-18 Werner Koch * mimeparser.c (message_cb): Clear all mimestruct fields. Fixes segv introduced 2008-03-07. * engine-assuan.c (async_worker_thread): Handle broken pipe. 2008-03-13 Werner Koch * mimeparser.c (message_cb): Skip the OPEN event in non-MIME mode. * rfc822parse.c (rfc822parse_open): Reset ERRNO. 2008-03-11 Werner Koch * engine-assuan.c (op_assuan_encrypt): Factor some code out to .. (op_assuan_encrypt_bottom): .. new. (engine_assuan_encstate_s): New. * engine.c (engine_encrypt_start): Split some code into .. (engine_encrypt_prepare): .. new. (engine_cancel): Cancel prepared encryption. * mimemaker.c (mime_encrypt): Use engine_encrypt_prepare and _start. (mime_sign_encrypt): Likewise, but do the _start only after completing the signing. 2008-03-10 Werner Koch * engine.c (FILTER_BUFFER_SIZE): Increase to 4k. (engine_filter, engine_wait, engine_wait): Replace Sleep by SwitchToThread. * engine-assuan.c (struct work_item_s): Increase buffer to 1k. (worker_start_write, async_worker_thread): Replace Sleep by SwitchToThread. 2008-03-07 Werner Koch * mapihelp.cpp (mapi_get_sender): New. * mymapitags.h (PR_PRIMARY_SEND_ACCT): New. * mimemaker.c (do_mime_sign): Pass the sender to the engine. * common.h (opt): Add field SVN_REVISION. * main.c (read_options, write_options): Set it. * olflange.cpp (GpgolExt): Print a warning on program update. * engine.c (struct engine_filter_s): Add field ADD_EXTRA_LF. (engine_request_exra_lf): New. (engine_wait): Implement that. * mimeparser.c (mime_decrypt): Add arg SIMPLE_PGP and call engine_request_exra_lf. (struct mime_context): Add field NO_MAIL_HEADER. (message_cb): Implement it. * message.cpp (message_decrypt): Set that flag for old style PGP. * common.h (DBG_COMMANDS, debug_commands): New. * ext-commands.cpp: Use it. 2008-03-06 Werner Koch * mimemaker.c (do_mime_sign): Figure out the protocol to use. * engine.c (engine_sign_start): Add new args SENDER and R_PROTOCOL. * engine-assuan.c (op_assuan_sign): Ditto. Send SENDER command. 2008-03-05 Werner Koch * main.c (read_options): Insert the debug registry key. (write_options): More debug output. 2008-02-28 Werner Koch * olflange-dlgs.cpp (GPGOptionsDlgProc): Fix initial setting of openpgp and smime state. I wish C would haved used := for assignments. 2008-02-26 Werner Koch * common.c (qp_decode): Add arg S_LBRK. * mimeparser.c (plaintext_handler, ciphertext_handler): Handle soft line breaks. * mapihelp.cpp (mapi_change_message_class): Handle opaque S/MIME messages without an smime-type parameter. 2008-02-25 Werner Koch * message.cpp (message_verify): Show message boxes for non-signed messages. (message_decrypt): Likewise. 2008-02-19 Marcus Brinkmann * engine-assuan.c (get_uiserver_name): Change default uiserver path and remove work-around. 2008-02-18 Werner Koch * message.cpp (pgp_body_to_attachment): New. (message_decrypt): Use it. (message_wipe_body_cruft): Also wipe already processed PGP encrypted messages. Factor common code out to ... (do_wipe_body): .. new. * mapihelp.h (ATTACHTYPE_PGPBODY): New. 2008-02-15 Werner Koch * olflange-dlgs.cpp: Remove code for IDC_ENCRYPT_WITH_STANDARD_KEY and IDC_ENCRYPT_TO. * dialogs.rc: Ditto. 2008-02-13 Werner Koch * mapihelp.cpp (get_gpgolcharset_tag, mapi_get_gpgol_charset) (mapi_set_gpgol_charset): New. (mapi_get_gpgol_body_attachment): Transcode from Latin-1. * mimeparser.c (start_attachment): Set the charset property. (struct mime_context): Remove is_utf8 field. 2008-02-11 Werner Koch * common.h (tlvinfo_t): New. * common.c (parse_tlv): New. Based on code from libksba. * mapihelp.cpp (has_smime_filename): New. (is_really_cms_encrypted): New. (mapi_change_message_class): Use this here to work around a CryptoEx bug. 2008-02-08 Werner Koch * mapihelp.cpp (mapi_change_message_class): Improve detecion of CryptoEx messages. 2008-02-07 Werner Koch * engine.c (engine_verify_start): Enable opaque signature for the assuan backend. * engine-assuan.c (op_assuan_verify): New arg OUTDATA. Add support for opaque signatures. * mimeparser.c (mime_verify_opaque): New. * message.cpp (message_verify): Handle opaque signed S/MIME. * message.cpp (message_wipe_body_cruft): Delete only encrypted messages. 2008-02-06 Werner Koch * mimeparser.c (mime_decrypt): New arg IS_RFC822. * message.cpp (message_decrypt): Add code to see whether to use the new arg. 2008-02-01 Werner Koch * mimeparser.c (ciphertext_handler, ciphermessage_cb) (ciphermessage_t2body): New. (mime_decrypt): Use an rfc822 parser to pass the message to the engine. * mapihelp.cpp (mapi_get_attach_as_stream): Add arg R_ATTACH. (mapi_set_attach_hidden): New. 2008-01-31 Werner Koch * message.cpp (message_verify): Check that the body attachment is available before shortcutting the verification. * user-events.cpp (OnSelectionChange): Change SMIME message class. * mapihelp.cpp (mapi_change_message_class): Add arg SYNC_OVERRIDE. Changed all callers to pass false. (mapi_test_sig_status): Take care of sent messages. (mapi_get_gpgol_body_attachment): Change args to allow use as testing fucntion too. Adjusted caller. 2008-01-29 Werner Koch * mimemaker.c (do_mime_sign): Set CTE for SMIME. (delete_all_attachments): Remove extra semicolon accidently inserted with revision 916. 2008-01-18 Marcus Brinkmann * mimeparser.c (mime_verify): New variable sig_len, and pass it on to engine_verify_start. * engine.h (engine_verify_start): Add new argument sig_len. * engine.c (engine_verify_start): Add new argument sig_len and pass it on to op_assuan_verify and op_gpgme_verify. * engine-assuan.h (op_asssuan_verify): Add new argument sig_len. * engine-gpgme.c (op_gpgme_verify): New argument sig_len and use it instead of string length of signature. * engine-assuan.c (op_assuan_verify): Likewise. 2008-01-11 Werner Koch * mimemaker.c (finalize_message): Add args PROTOCOL and ENCRYPT and use them to set the override message class. (mime_sign, mime_encrypt, mime_sign_encrypt): Pass this info via the new args. (do_mime_sign): Set micalg to sha1 for CMS. * message.cpp (message_decrypt): Add hack fro seldgenerated messages. 2008-01-10 Werner Koch * mapihelp.cpp (get_gpgolmsgclass_tag, mapi_set_gpgol_msg_class): New. (mapi_change_message_class, mapi_get_message_type): Try override first. * message.cpp (message_incoming_handler): Remove arg MSGTYE and let the function retrieve it. Changed all callers. Retry after a sucessful message class change. * olflange.cpp (getMsgtype): Remove. The caching might lead to problems and makes it all more complex. Changed all callers to use mapi_get_message_type. * mimemaker.c (create_top_encryption_header) : Write empty line after header. 2008-01-09 Werner Koch * mimeparser.c (finish_saved_body): New. (finish_attachment): Keep the body attachment open. (mime_decrypt, mime_verify): Close the saved body data. (t2body): Continue body attachments. * message.cpp (message_verify): Save changes. * mapihelp.cpp (mapi_change_message_class): Handle case of PGP/MIME signed with IPM.Note. Save only of really needed, use FORCE_SAVE and keep it open for read and write. 2008-01-07 Marcus Brinkmann * engine-assuan.c (replace_dollar_s): Remove obsolete function. (get_quoted_socket_name): Remove obsolete function. (get_uiserver_name): Invoke GUI server with --daemon. Fix buglet in assignment. (destroy_command): Change return type to void to suppress compiler warning. 2008-01-04 Werner Koch * engine-assuan.c (send_options): Call AllowSetForegroundWindow. * main.c (read_options): Allo other values than 1 for enableDebug. * common.h (DBG_IOWORKER, DBG_IOWORKER_EXTRA, DBG_FILTER) (DBG_FILTER): New. * engine.c (debug_filter): Turn it into a macro. (debug_filter_extra): New macro, used instead of checking the value of debug_filter. * engine-assuan.c (debug_ioworker, debug_ioworker_extra): new. Use them all over the file to enable debugging. * engine.c (engine_encrypt_start): Add arg HWND. (engine_sign_start, engine_decrypt_start, engine_verify_start) (engine_start_keymanager): Ditto. * mimemaker.c (mime_encrypt, mime_sign_encrypt, mime_sign) (do_mime_sign): Add arg HWND and pass it to the engine. * mimeparser.c (mime_verify, mime_decrypt): Pass HWND. * message.cpp (message_sign, sign_encrypt): Pass HWND. (message_incoming_handler, message_verify, message_decrypt): Add arg HWND and pass it on. * message-events.cpp (OnRead): Pass HWND to message function. * ext-commands.cpp (DoCommand): Ditto. 2008-01-03 Werner Koch * mimemaker.c (mime_sign_encrypt): Fix result test of do_mime_sign. (write_tempsign_attachment): Remove. (do_mime_sign): Change last ark to a sink_t. (mime_sign_encrypt): Rework to use a temporary stream instead of a temporary attachment. (create_mapi_attachment): Remove arg TEMPSIGN. 2007-12-18 Werner Koch * mapihelp.cpp (get_msgcls_from_pgp_lines): Limit check to the first 1 k and stop testing after the first PGP armor line. (mapi_get_message_type): Return MSGTYPE_SMIME. (mapi_change_message_class): Take care of CryptoEx signatures. * mapihelp.h (MSGTYPE_SMIME): New. * message.cpp (message_incoming_handler): Check message class for unknown and unchecked messages. Take care MSGTYPE_SMIME. * ext-commands.cpp (DoCommand): Add debug command change message class. 2007-12-07 Werner Koch * ext-commands.cpp (InstallCommands): Removed toolbar button fro decrypt as this is not anymore needed. Fixes bug#860. (QueryHelpText): Ditto. 2007-11-12 Werner Koch * olflange.h (class GpgolExt): Rename m_gpgSelectSmime to m_protoSelection. * message-events.cpp (OnWriteComplete): Use it accordingly. * main.c (write_options, read_options): Load and save it. * dialogs.rc: Add new check box for OpenPGP default protocol. * olflange-dlgs.cpp (GPGOptionsDlgProc): Adjust for above chnages. 2007-11-09 Werner Koch * main.c (read_options): New option ENABLE_DEBUG to be enabled only using the Registry. (read_options): Show warning for certain option combinations. * olflange-dlgs.cpp (GPGOptionsDlgProc): Hide the Advanced options button unless in debug mode. * mapihelp.cpp (get_gpgollastdecrypted_tag): New. (mapi_test_last_decrypted): New. (mapi_has_last_decrypted): new. * mimeparser.c (finish_message): Update the Last Decrypted property. * message.cpp (message_decrypt): Use it here. (message_wipe_body_cruft): New. * main.c (do_log_window_hierarchy): Factor some code out to .. (do_log_window_info): .. this. (log_window_hierarchy): Log parent window info. (get_64bit_session_marker): New. (initialize_session_key): Init session marker. * Makefile.am (gpgol_SOURCES): Remove item-events.cpp * olflange.cpp (GpgolExt): Disable the GpgOLItemEvents as they can only be used with the undocumented ECF file. 2007-10-29 Werner Koch * mimemaker.c (create_top_signing_header): Add arg FIRST. (mime_sign): Factor allmost all code out to .. (do_mime_sign): .. new function. (create_mapi_attachment): Add arg TEMPSIGN. (delete_all_attachments): Adjust for that. (mime_encrypt): Factor some code out to .. (create_top_encryption_header): .. new. (write_tempsign_attachment): New. (mime_sign_encrypt): Implement. 2007-10-22 Werner Koch * engine-assuan.c (connect_uiserver): Try to start the server. (get_uiserver_name, replace_dollar_s, get_quoted_socket_name): New. * main.c (REGKEY): Remove. * common.h (GNUPG_REGKEY): New. * common.c (default_homedir): Use it in place of a hard coded one. (get_locale_dir): Ditto. (gpgol_spawn_detached): New. 2007-10-18 Werner Koch * common.c (get_system_check_bitmap): New. * decrypt.bmp, encrypt.bmp, sign.bmp, key_mana.bmp: Change background color to pink and voila Outlook presents them transparent. * logo.bmp: Cleaned up to use just one color. * olflange-dlgs.cpp (GPGOptionsDlgProc): Do not use LoadImage. 2007-10-16 Werner Koch * myexchext.h (EECMDID_): Add a few more of these constants. * ext-commands.cpp (check_menu): New. (toolbar_add_menu): Rename to .. (add_menu): .. this. (toolbar_from_tbe): Remove. (add_toolbar): New. (InstallCommands): Use new toolbar helper. (QueryButtonInfo): Changed to use new toolbar helper. (~GpgolExtCommands): New. * engine.c (engine_encrypt_start): Add arg R_PROTOCOL. * engine-assuan.c (op_assuan_encrypt): Add arg R_USED_PROTOCOL and ask the server for it. * mimemaker.c (sink_encryption_write_b64): New. (mime_encrypt): Add S/MIME support. 2007-10-15 Werner Koch * engine-assuan.c (op_assuan_start_keymanager): New. * engine.c (engine_start_keymanager): New. * ext-commands.cpp (DoCommand): Call it. 2007-10-12 Werner Koch * gpgol-rsrcs.rc: Remove. * dialogs.rc: Renamed from olflange-rsrcs.rc. * dialogs.h: Rename for olflange-ids.h. Changed all includers. * Makefile.am: Adjust accordingly. * verify-dialog.c (verify_dialog_box): Do not distinguish languages. (verify_dlg_set_labels): New. (verify_dlg_proc): Call it. * passphrase-dialog.c (passphrase_callback_box): Do not distinguish languages. (decrypt_key_dlg_set_labels): New. (decrypt_key_dlg_proc): Call it. (decrypt_key_ext_dlg_set_labels): New. (decrypt_key_ext_dlg_proc): Call it. * recipient-dialog.c (recipient_dialog_box): Do not distinguish languages. (recipient_dialog_box2): Ditto. (recipient_dlg_set_labels): New. (recipient_dlg_proc): Call it. 2007-10-11 Werner Koch * ext-commands.cpp (toolbar_add_menu): USe "@" to indicate a separator and "" to ski the entry. Changed callers. * common.h (struct): Remove AUTO_SIGN_ATTACH. Add ENABLE_SMIME. * main.c (read_options, write_options): Save the new option. * olflange-dlgs.cpp (GPGOptionsDlgProc): Implement new option and print warning. * mapihelp.cpp (mapi_change_message_class): Take care of enable_smime. * olflange-ids.h: Renumbered. * olflange-rsrcs.rc: Keep only the english dialog and changed all text to dummy texts. * olflange-dlgs.cpp (set_labels): New. (GPGOptionsDlgProc): Call it. * property-sheets.cpp (GetPages): Do not distinguish languages. * config-dialog.c (config_dialog_box): Ditto. (config_dlg_set_labels): New. * gpgol-rsrcs.rc (IDD_OPT): Move to olflange-rsrcs.rc and rename to IDD_EXT_OPTIONS. (IDD_OPT_DE): Remove. 2007-10-10 Werner Koch * main.c (read_options): Remove saveDecryptedAttachment. Add smimeDefault. 2007-10-08 Werner Koch * main.c (do_log): Remove trailing LF from w32 error message and also print the numeric error code. 2007-09-25 Werner Koch * Makefile.am (gpgol_LDADD): Link against libassuan. * util.h (DIM, DIMof): New. * engine.c (filter_gpgme_read_cb): Implement nonblock feature. (filter_gpgme_write_cb): Ditto. 2007-09-24 Werner Koch * common.c (standard_homedir, default_homedir): New. (w32_shgetfolderpath): Make static. 2007-09-21 Werner Koch * mimeparser.c (build_mimeinfo): New. (finish_message): Store the mime structure. * mapihelp.cpp (mapi_get_message_class): New. (mapi_get_sig_status): New. (get_gpgolprotectiv_tag, get_gpgolsigstatus_tag) (get_gpgolattachtype_tag): Factored code out to ... (create_gpgol_tag): .. New. (get_gpgolmimeinfo_tag): New. (mapi_get_mime_info): New. 2007-09-20 Werner Koch * user-events.cpp, user-events.h: New. * olflange.h (class GpgolExt): Add member for it. * olflange.cpp (QueryInterface): Hook it in. 2007-09-19 Werner Koch * mapihelp.cpp (mapi_has_sig_status): Return true if any sig status is present. (mapi_test_sig_status): New. Take semantics of the former mapi_has_sig_status. Changed all callers. (mapi_change_message_class): Set sign status to n/a for other message classed. * mimemaker.c (finalize_message): Mark created messages. (write_buffer_for_cb): Rename from write_buffer_voidarg and return number of bytes written. (collect_signature): Return number of bytes written. * mapihelp.h (struct mapi_attach_item_s): New member PRIVATE_MAPITABLE. * mapihelp.cpp (mapi_create_attach_table) (mapi_release_attach_table): Keep the mapi table oben and put PR_ATATCH_NUM into the MAPIPOS member. (mapi_get_gpgol_body_attachment): Use PR_ATATCH_NUM. * mimeparser.c (finish_message): New. (mime_decrypt, mime_verify): Call it. 2007-09-17 Werner Koch * olflange.cpp: Print gpgme version. 2007-09-14 Werner Koch * engine-gpgme.c: Rewrote most of it. 2007-09-13 Werner Koch * common.c (xrealloc): New. 2007-09-11 Werner Koch * engine-gpgme.c (op_encrypt_data): New. 2007-09-08 Werner Koch * engine.c: New. * engine.h: Rewrite. Factor existing stuff out to .. * engine-gpgme.h: .. new. * engine-assuan.h, engine-assuan.c: New. 2007-09-07 Werner Koch * common.c (qp_decode): Handle softe line breaks. 2007-09-06 Werner Koch * mapihelp.cpp (mapi_get_body): New. * mimeparser.c (protocol_t): Move to .. common.h. 2007-09-05 Werner Koch * mimemaker.c, mimemaker.h: New. 2007-08-31 Werner Koch * mapihelp.cpp (mapi_set_header): New. * message.cpp (pgp_mime_from_clearsigned): New. (message_verify): Use it. * main.c: Call srand (). * util.h (trailing_ws_p): New. * common.c (generate_boundary): New. 2007-08-30 Werner Koch * message-events.h (class GpgolMessageEvents): Rename M_IS_SMIME to M_PROCESSED. * message-events.cpp (OnRead, OnReadComplete): Ditto. (OnReadComplete): Remove preview decryption stuff. (OnWriteComplete): Remove GpgMsg based code. * ext-commands.cpp (DoCommand): Ditto (InstallCommands): Do not init the watcher. * olflange.cpp (GpgolExt): Do not init the watcher. (GpgolExt): Do not clanup the watcher. * main.c (DllMain): Ditto. * gpgmsg.cpp, gpgmsg.hh: Remove. * watcher.cpp: Remove * pgpmime.c, pgpmime.h: Remove. * mapihelp.h (MSGTYPE_GPGOL_CLEAR_SIGNED) (MSGTYPE_GPGOL_PGP_MESSAGE): New. * mapihelp.cpp (mapi_get_message_type): Map them. (get_msgcls_from_pgp_lines): New. (mapi_change_message_class): Detect old old style PGP messages. (mapi_get_body_as_stream): New. * message.cpp (message_verify, message_decrypt): Handle them. * message-events.cpp (OnRead): Ditto. 2007-08-29 Werner Koch * ext-commands.h (class GpgolExtCommands): Add members M_NCMDKEYMANAGER and M_NCMDDECRYPT. * ext-commands.cpp (GpgolExtCommands): Initialize it. (InstallCommands): Use them here instead of reusing another variable. (DoCommand, Help, QueryHelpText, QueryButtonInfo): Restructured for better readibility. 2007-08-21 Werner Koch * w32-gettext.c (SUBLANG_BENGALI_BANGLADESH): Fix to 2 as per MSDN. (SUBLANG_PUNJABI_PAKISTAN): Remove as it is not in MSDN. (SUBLANG_ROMANIAN_MOLDOVA): Remove as it is not in MSDN. (SUBLANG_ROMANIAN_ROMANIA): Change to value 1 as per MSDN. 2007-08-13 Marcus Brinkmann * Makefile.am (gpgol_SOURCES): Add common.h. 2007-08-06 Werner Koch Lots of changes to support S/MIME and to revamp most of the old code. More changes to follow. The list of changes below is not complete as it does not identfy all newly written code. * mimeparser.c: New. Based on pgpmime.c * display.cpp (update_display): Removed unused arg MSG. (update_display): Set the body to an empty string even if it is not HTML. * olflange.cpp (Install): Print OL version only once. * verify-dialog.c (verify_dialog_box): Add arg PROTOCOL. (load_sigbox): Ditto. (verify_dlg_proc): Changed title acccording to used protocol. * Makefile.am (gpgol_LDADD): Add libadvapi due to our use of CryptGenRandom. * main.c (get_crypt_random, initialize_session_key): New. (DllMain): Initialize the session key. (get_128bit_session_key, create_initialization_vector): New. * serpent.c: New. Taken from libgcrypt 1.3.0 and stripped down to fit our needs. Add CFB encryption API. * serpent.h: New. * mapihelp.cpp (mapi_mark_moss_attach): New. * mymapitags.h (PR_ATTACHMENT_HIDDEN): New. * display.cpp (open_inspector): New. * mapihelp.cpp (mapi_get_binary_prop): New. * engine-gpgme.c (op_verify_detached_sig_gpgme): Add arg PROTOCOL. Changed all callers to pass the OPENPGP protocol. * common.c (b64_decode): Renamed from base64_decode and use new type for the context. (b64_init): New. * pgpmime.c (qp_decode, base64_decode): Move to common.c and make public. * common.h (STRICT): Remove. * intern.h: Rename to common.h. 2007-07-20 Werner Koch * myexchext.h (IOutlookExtItemEvents.): New. * item-events.h, item-events.cpp: New. * olflange.cpp (GpgolExt, QueryInterface): Hook it in. 2007-07-19 Werner Koch * attached-file-events.cpp: Renamed from attach.c. * attached-file-events.h: Renamed from attach.h. Removed some inlines to the impl file. * Makefile.am (gpgol_LDADD): Add libole32. 2007-07-18 Werner Koch * mapihelp.c (log_mapi_property): Support STRIGN8 and UNICODE. * myexchext.h (IExchExtUserEvents, IExchExtSessionEvents): New declarations. * session-events.cpp, session-events.h: New. * olflange.cpp (GpgolExt, QueryInterface): Hook session-events in. * olflange.cpp (DllRegisterServer): Register only for interfaces we really use. (ext_context_name): New. Factored out from several places. (Install): Initialize for Session context. Renamed all CGPGExchExt* classes to Gpgol*. * olflange.h, olflange.cpp: Factor most code out to .. * ext-commands.cpp, ext-commands.h, message-events.cpp * message-events.h, property-sheets.cpp, property-sheets.h * ol-ext-callback.cpp, ol-ext-callback.h: .. New. 2007-07-17 Werner Koch * Makefile.am (gpgol_LDADD): Add ws2_32. * main.c (log_window_hierarchy, do_log_window_hierarchy): New. * olflange.cpp (show_window_hierarchy): Replace by log_window_hierarchy. (g_initdll): Make static. (InstallCommands): Factor some code out to .. (toolbar_from_tbe, toolbar_add_menu): .. new. * mapihelp.c, mapihelp.h: New. * olflange.cpp (show_mapi_property): Factor out to mapihelp.c and rename to log_mapi_property. 2007-04-10 Werner Koch * display.cpp (find_message_window): Add arg LEVEL for debugging. Ignore MsoCommand* Windows. Fixes bug 735. 2006-10-14 Timo Schulz * recipient-dialog.c (lv_get_item_param): New. (copy_item): Use it here to copy the opaque param. (recipient_dlg_proc): And here to avoid the hidden column. (initialize_rsetbox): Localize column names. * olflange.cpp (get_outlook_property): Free returned BSTR. (InstallCommands): Likewise. 2009-09-06 Timo Schulz * recipient-dialog.c (recipient_dialog2): Do not free key array here. 2008-08-21 Timo Schulz * engine-gpgme.c (op_lookup_keys): Only add useable keys and add all invalid keys to unknown. * recipient-dialog.c (copy_item): Rewritten. (initialize_keybox): Add comment to clarify use of fnd_keys. (recipient_dialog_box): Simplified. (find_item): Support partial search. 2006-08-19 Timo Schulz * olflange-rsrcs.rc: Correct some dialog sizes. * passphrase-dialog.c (decrypt_key_dlg_proc): Automatically select the secret key if only one is available. * config-dialog.c (GPGOptionsDlgProc): Passphrase cache time is now requested in minutes but still internally stored as seconds. 2006-08-15 Timo Schulz * decrypt.bmp, encrypt.bmp: Restore format. * olflange.cpp (OnWriteComplete): Correct exit code handling. * recipient-dialog.c (initialize_rsetbox): Correct column width. (recipient_dlg_proc): Do not show the cancel error any longer. * passphrase-dialog.c (decrypt_key_dlg_proc): Likewise. (decrypt_key_ext_dlg_proc): Ditto. * olgpgcore.def: Deleted unused file. 2006-06-14 Timo Schulz * gpgol-rscs.rc (IDD_OPT): The English version of the dialog has no log file item. Add it. 2006-05-22 Timo Schulz * verify-dialog.c (load_sigbox): A sigsum of 0 also indicates a valid (good) signature. 2006-04-25 Werner Koch * xmalloc.h: New. Moved prototypes from util.h * w32-gettext.h: Include it. * common.c (utf8_to_wincp): Removed and replaced all callers by utf8_to_native. * common.c (wchar_to_utf8, utf8_to_wchar): Moved to .. * w32-gettext.c: .. here. (utf8_to_native): Make sure that we always return a string and never NULL. (native_to_utf8): New. (native_to_wchar): New. * gpgmsg.cpp (decrypt): Use native_to_utf8 for i18n strings expected to be utf-8. * pgpmime.c (pgpmime_decrypt, pgpmime_verify): Ditto. 2006-04-24 Werner Koch * gpgmsg.cpp (decrypt): New arg INFO_ONLY. * olflange.cpp (OnReadComplete): Add code to call decrypt but with INFO_ONLY if preview decryption has not been requested. * main.c (read_options): New compatibility option no_preview_info. * gpgmsg.cpp (getRecipients): Don't add the default key here. (encrypt_and_sign): But do it here. * engine-gpgme.c (op_get_one_key): New. 2006-04-22 Timo Schulz * common.c (utf8_to_wincp): Corrected utf8 decoding. * passphrase-dialog.c (load_recipbox): Likewise. * olflange-dlg.cpp (GPGOptionsDlgProc): Activate the 'confirm' button when the dialog state has been changed. * olflange-rsrcs.rc (IDD_GPG_OPTIONS_DE): Change description. 2006-03-28 Werner Koch * olflange-rsrcs.rc (IDD_GPG_OPTIONS_DE): Add new control box. (IDD_GPG_OPTIONS): Updated to match German version. * olflange-dlgs.cpp (GPGOptionsDlgProc): Ditto. * gpgmsg.cpp (decrypt): Implemented PREFER_HTML option. (get_long_attach_data): New. 2006-03-27 Werner Koch * engine-gpgme.c (op_verify_detached_sig_gpgme): New. * pgpmime.c (pgpmime_verify): New. First take on a PGP/MIME signature verification. * gpgmsg.cpp (is_pgpmime): Renamed to is_pgpmime_enc. (class GpgMsgImpl): Niew members media_type. media_subtype and ct_protocol. (get_msg_content_type): New. (decrypt): Show a warning for PGP/MIME signed messages. 2006-03-26 Werner Koch * intern.h: New option PREFER_HTML. * main.c (write_options, read_options): Ditto. 2006-03-20 Werner Koch * olflange.cpp (Install): Also check major part of build version. 2006-03-17 Timo Schulz * w32-gettext.c (utf8_to_native): Make it global. * config-dialog.c (get_open_file_name): Make sure the selected file really exists. * passphrase-dialog.c (decrypt_dlg_proc): UTF8 conversion. (passphrase_callback_box): Likewise. * recipient-dialog.c (recipient_dlg_proc): Likewise. * verify-dialog.c (load_akalist): Likewise. (load_sigbox): Likewise. * common.c (utf8_to_wincp): New. 2006-03-15 Werner Koch * olflange.cpp (Install): Print gpgol version for debugging. 2006-03-14 Timo Schulz * passphrase-dialog.c (decrypt_dlg_proc): When used as a signing key selection dialog, use a different title. * gpgol-rsrcs.rc: Use German titles for German dialog versions. 2006-02-23 Werner Koch * main.c (read_options): Set default caching time to 10 minutes. 2006-01-16 Werner Koch * verify-dialog.c (load_sigbox): Give a hint in case of a bad signature. * gpgol-rsrcs.rc (IDD_ENC_DE): Add an informational header. 2005-12-07 Werner Koch * olflange.cpp (Install): Check the version and print a warning. * olflange-dlgs.cpp (GPGOptionsDlgProc): Simplified the default key code. * config-dialog.c (store_config_value): Create key if it does not exists. (load_config_value_ext): Removed. 2005-12-06 Werner Koch * config-dialog.c (start_key_manager): Don't pass the options to access. 2005-12-06 Werner Koch * gpgmsg.cpp (getRecipients): Add the default key to the list of recipients. * recipient-dialog.c (recipient_dlg_proc): Add the already found keys to the selected ones. * olflange.cpp (OnWriteComplete): Need to disable the deleting of HTML bodys. 2005-12-05 Werner Koch * Makefile.am (gpgol_LDADD): Add -loleaut32. * engine-gpgme.c (op_verify_detached_sig_mem): New. * olflange.cpp (OnWriteComplete): Pass HTML flag to sign call. (put_outlook_property): Need to use a BSTR for the sake of putting HTMLBody. * gpgmsg.cpp (sign): Add arg WANT_HTML. (free_attach_info): New. Use it in the destructor. (createHtmlAttachment): New. (encrypt_and_sign, sign): Use it here. (writeAttestation): Don't write an empty attestation. 2005-12-02 Werner Koch * verify-dialog.c (verify_dialog_box): Actually allow for German dialog. * recipient-dialog.c (recipient_dialog_box) (recipient_dialog_box2): Ditto. * passphrase-dialog.c (signer_dialog_box) (passphrase_callback_box): Ditto. * intern.h (struct): New field PREVIEW_DECRYPT. Use it instead os the old compatibility flags. * main.c (write_options, read_options): Store/load preview decrypt. * config-dialog.c (config_dlg_proc): Removed homedir and gpgbinary options as they are deprecated. Put logfile entry here. * olflange-dlgs.cpp (GPGOptionsDlgProc): Remove logfile entry. Add preview-decrypt checkbox. * olflange.cpp (InstallCommands): Remove experimental preview command. * w32-gettext.c (gettext_localename): New. * config-dialog.c (config_dialog_box): Use it here to match the gettext behaviour. (GetPages): Ditto. 2005-12-01 Werner Koch * engine-gpgme.c (op_decrypt_stream_to_gpgme, decrypt_stream) (op_decrypt): Add arg PREVIEW_MODE. * pgpmime.c (pgpmime_decrypt): New arg PREVIEW_MODE. (struct pgpmime_context): New field PREVIEW. (message_cb, plaintext_handler): Handle preview mode. * gpgmsg.cpp (class GpgMsgImpl): Renamed SILENT to PREVIEW. (setSilent): Renamed to .. (setPreview): .. this. (decrypt): Handle preview mode. Display a string while decrypting PGP/MIME messages. * display.cpp (update_display): New arg TEXT. * gpgmsg.cpp (class GpgMsgImpl): Removed BODY_PLAIN and BODY. (getDisplayText): Removed. (loadBody): Changes to return the allocated body. (getOrigText): Removed. (getMessageType): Rewritten to take the body text as argument. (decrypt): Pass plaintext directly to update_display. Free plaintext. (sign, encrypt_and_sign): Likewise. * olflange.cpp (OnWriteComplete): Always delete PR_BODY on error. 2005-11-30 Werner Koch * gpgmsg.cpp: Made more strings translatable. * olflange.cpp: Replaced all LoadStrings by gettext calls. * olflange-ids.h: Removed the IDS_ constants. * olflange-rsrcs.rc: Removed the stringtables. * common.c (get_root_key, read_w32_registry_string): New. Taken for libgpg-error. * main.c (i18n_init): New. (DllMain): Call it. (get_locale_dir, drop_locale_dir): New. * w32-gettext.c, w32-gettext.h: New. Taken form libgpg-error. Slightly modified due to the fact that gpgol is W32-only. * util.h (_, N_): Define standard i18n macros. * display.cpp (set_message_body): Do not delete a RTF property. * util.h (SRCNAME): New. Changed all __FILE__ to this. * main.c (log_srcname): New. 2005-11-20 Werner Koch * gpgmsg.cpp (loadBody): For HTML try to read the HTMLBody from the OOM as a last resort. * olflange.cpp (get_outlook_property): New. (put_outlook_property_int): New. 2005-11-15 Werner Koch * Makefile.am (gpgol_LDADD): Remove -lintl for now. * olflange.cpp (OnWriteComplete): Make sure that we don't sent out unencrypted stuff on error. * display.cpp (set_message_body): Add arg IS_HTML. (update_display): Ditto. * gpgmsg.cpp (loadBody): New arg WANT_HTML. (getOrigText): Ditto. * olflange.h (class CGPGExchExtMessageEvents): Add M_WANT_HTML. * olflange.cpp (OnWrite): Set it. (OnWriteComplete): Pass its value to the encrypt functions. 2005-11-10 Werner Koch * config-dialog.c (start_key_manager): Changed invocation of default keymanager. 2005-10-21 Marcus Brinkmann * Makefile.am (libgpgme.a, libgpgme.a): New targets. (gpgol_DEPENDENCIES): Add libgpgme.a and libgpg-error.a. (clean-local): Likewise. (gpgol_LDADD): Link to these local versions statically. 2005-10-20 Marcus Brinkmann * mapi32.def: New file. * Makefile.am (gpgol_DEPENDENCIES): New variable. (libmapi32.a): New target. (gpgol_LDADD): Replace mapi32.dll with "-L . -lmapi32". (clean-local): New target. 2005-10-19 Werner Koch * gpgmsg.cpp (sign, encrypt_and_sign): Don't set the body first to empty. If this is really required we should do this in set_message_body. (sign): Save changes. Set content type to text/plain. (encrypt_and_sign): Save changes also for empty bodies. 2005-10-06 Werner Koch * gpgmsg.cpp (writeAttestation): Use gpgme_free for BUFFER. * engine-gpgme.c (data_to_file): Ditto. 2005-10-06 Marcus Brinkmann * Makefile.am (gpgol_DEPENDENCIES): New variable. (libmapi32.a): New target. (gpgol_LDADD): Replace mapi32.dll with "-L . -lmapi32". * Makefile.am (gpgol_LDADD): Prefix gpgol.def and mapi32.dll with $(srcdir). * Makefile.am (.rc.o): Invoke windres with "-I .". * Makefile.am (.rc.o): Invoke windres with -I $(srcdir). * Makefile.am (gpgol_SOURCES): Add util.h. 2005-09-29 Werner Koch * gpgmsg.cpp (encrypt_and_sign): Pass signing key to encryption function. * passphrase-dialog.c (signer_dialog_box): New arg encrypting. * gpgmsg.cpp (encrypt_and_sign): Set content type. * engine-gpgme.c (op_lookup_keys): Fixed multiple key detection. 2005-09-28 Werner Koch * olflange.cpp (DoCommand): Catch close command and resend to avoid the "save changes?". * display.cpp (update_display): Take care of utf-8 issues. * common.c (latin1_to_utf8): New. * pgpmime.c (latin1_data_write): New. (plaintext_handler): Use it here. (message_cb): Detect utf-8 encoding. * main.c (read_options): Make sure that compat flags are always properly initialized. * display.cpp (find_message_window): First try to find the window by class name. * common.c (wchar_to_utf8_2): New. 2005-09-27 Werner Koch * pgpmime.c (pgpmime_decrypt): Pass a pseduo filename to the decryption function. * verify-dialog.c (load_sigbox): Get key direct from gpgme. * passphrase-dialog.c (load_secbox, load_recipbox): Reworked. (decrypt_key_dlg_proc, decrypt_key_ext_dlg_proc): Reworked. (count_keys, release_keyarray): New. (signer_dialog_box, passphrase_callback_box): Adjusted to above changes. * engine-gpgme.c (op_deinit): Remove keycache cleanup. * Makefile.am (gpgol_SOURCES): Removed keycache.c, keycache.h. * keycache.c, keycache.h: Removed. * recipient-dialog.c (recipient_dialog_box) (recipient_dialog_box2): Rewritten and changed interface. (load_rsetbox): Removed keycache stuff and rewrote to make use of the keyarray. (copy_item, initialize_keybox, recipient_dlg_proc): Ditto. (keycache_to_key_array): Removed. * engine-gpgme.c (op_lookup_keys): Rewritten, changed interface. * gpgmsg.cpp (count_recipients): Renamed to .. (count_strings): .. this. (count_keys): New. (free_recipient_array): Renamed to .. (free_string_array): .. this. (encrypt_and_sign): Adjusted for changes in op_lookup_keys and recipient_dialog_box2. 2005-09-26 Werner Koch * passphrase-dialog.c (get_pubkey_algo_str): Add DSA and old Elgamal. * gpgmsg.cpp (gatherAttachmentInfo): Ignore attachments we can't open. * main.c (write_options): Print message on error. Rearranged to make use of a table for all options. 2005-09-23 Werner Koch * recipient-dialog.c (recipient_dlg_proc): Removed IDC_ENC_OPTARMOR stuff; it was not used. (load_rsetbox): Fixed detection of encryption capability. * gpgol-ids.h, gpgol-rsrcs.rc: Ditto. 2005-09-22 Werner Koch * engine-gpgme.c (decrypt_stream): Use gpgme_op_decrypt_verify. * gpgmsg.cpp (gatherAttachmentInfo): Ignore attestations when checking for pgp/mime. * pgpmime.c (pgpmime_decrypt): Added arg HWND. (message_cb, plaintext_handler): Write attachments. * pgpmime.c (base64_decode): New. * rfc822parse.c (parse_field): Treat Content-Disposition special. * gpgmsg.cpp (get_save_filename): Moved to .. * common.c (get_save_filename): .. here. 2005-09-20 Timo Schulz * attach.c: New. * attach.h: New. * olflange.cpp (CGPGExchExt): Allocate class for attached file events. (QueryInterface): Return interface pointer for attached file events. * passphrase-dialog.c (load_secbox): Use new GPGME interface. (get_pubkey_algo_str): New. * verify-dialog.c (load_sigbox): Likewise. * recipient-dialog.c (load_recipbox): Likewise. 2005-09-19 Werner Koch * msgcache.c (flush_if_needed): New. (msgcache_put): use it. * intern.h (opt): New compatibility flags AUTO_DECRYPT and NO_ATTESTATION. * olflange.cpp (InstallCommands): Use watcher stuff only when this option has been enabled. * gpgmsg.cpp (decrypt): Take care of NO_ATTESTATION. * main.c (DllMain): Removed debug output; this should not be used before initialization! * watcher.cpp: Include config.h. Removed weird line endings. * gpgmsg.cpp (encrypt_and_sign): Call SaveChanges. 2005-09-15 Timo Schulz * util.h: Provider watcher prototypes. * watcher.cpp (watcher_init_hook): New. (watcher_free_hook): New. (watcher_set_callback_ctx): New. (cbt_proc): New. * display.cpp (find_message_window): Removed GpgMsg param. Changed all callers. 2005-09-15 Werner Koch * olflange.cpp (OnWriteComplete): Take care of EEME_FAILED. (OnWrite): Check that we are encrypting only plain text messages. * myexchext.h: Add flags used by OnReadComplete. 2005-09-14 Werner Koch * gpgmsg.cpp (writeAttestation): Add a content type. (gatherAttachmentInfo): Detect whether we already have an attestation. (decrypt): Don't create duplicate attestations. (writeAttestation): Translate LF to CRLF. 2005-09-13 Werner Koch * pgpmime.c (pgpmime_decrypt): New arg ATTESTATION. * engine-gpgme.c (add_verify_attestation): New. (op_decrypt, op_verify_detached_sig, op_verify_detached_sig) (op_verify_detached_sig): Add new arg ATTESTATION. Changed all callers. (at_sig_summary, at_sig_validity, add_verify_attestation): New. The code has been taken and modified from Mutt's crypt-gpgme.c and entirely been writen by g10 Code. (at_fingerprint): Ditto. * gpgmsg.cpp (class GpgMsgImpl): New member ATTESTATION. Use it in all calls to the functions above. * gpgmsg.cpp (decryptAttachment, decrypt): Save plaintext back into the MAPI if desired. 2004-09-08 Timo Schulz * passphrase-dialog.c (lod_recipbox): Use gpgme directly to resolve the keyids to userids. * usermap.c, usermap.h: Removed. * HashTable.cpp, HashTable.h: Removed. 2005-09-07 Timo Schulz * common.c: Removed unused code. * intern.h: Likewise. 2005-09-07 Timo Schulz * olflange.cpp (ul_release): New. Wrapper with error checking around UlRelease. (InstallCommands): Separate test for type and if string is empty. 2005-09-06 Werner Koch * engine-gpgme.c (op_decrypt_stream): Factored most code out to .. (decrypt_stream): .. new. (op_decrypt_stream_to_buffer): Simplified accordingly. Fixed possible buffer overflow when trying to make it a string. (op_decrypt_stream_to_gpgme): New. * pgpmime.c, pgpmime.h: New. * rfc822parse.h, rfc822parse.c: New. Taken from GnuPG 1.9. 2005-09-06 Timo Schulz * config-dialog.c (get_open_file_name): Correctly terminated filter. New parameter for the title. Changed all callers. (get_folder): Likewise. 2005-09-01 Werner Koch * gpgmsg.cpp (get_pgp_armor_type): New. (gatherAttachmentInfo): Enhanced to detect text/plain pgp. (verify): Removed. (decrypt): Do clearsig verification here. * gpgmsg.cpp (decrypt): Kludge to workaround OL not updating a window. * msgcache.c (msgcache_get_from_mapi): New. * display.cpp (find_message_window): Don't use the GpgMsg function to to the string compare. * gpgmsg.cpp (matchesString): Removed. * msgcache.c (msgcache_set_active): Removed. (msgcache_get): Rewritten. (msgcache_put): Now uses PR_CONVERSATION_INDEX as key. Update existing entries. * olflange.cpp (OnRead): Removed msgcache_set_active. (InstallCommands): Now uses the ConversationIndex to match the reply with the message. 2005-08-31 Werner Koch * olflange.cpp (DllRegisterServer): Define a CLSID and set the ThreadingModel. 2005-08-30 Werner Koch Renamed from "outlgpg" to "gpgol". More or less finished this major rewrite. 2005-08-26 Werner Koch * MapiGPGME.cpp, MapiGPGME.h: Removed. * display.cpp, display.h: New. 2005-08-23 Werner Koch * msgcache.c, msgcache.h: New. 2005-08-22 Werner Koch * olflange.cpp: Major cleanups and partly rewrites. 2005-08-18 Werner Koch * gpgmsg.cpp, gpgmsg.hh: New. 2005-08-17 Werner Koch * MapiGPGME.cpp (setMessageAccess): Removed as it was only used at one place. (setRTFBody): Use the above code here directly.. (setWindow, setMessage): Removed. We can't use that because there is only one instance of this class. (decrypt): Add args HWND and MSG. Changed caller. (getBody): Changed to .. (get_body): .. plain function and add new arg MSG. Changed all callers. (isHtmlMessage): Likewise changed to .. (is_html_message): .. plain function and add new arg MSG. (doCmd): Removed. * common.c (utf8_to_wchar): New. * MapiGPGME.cpp (passphraseCallback): Removed. (getPassphrase, clearPassphrase, storePassphrase): Removed. (add_html_line_endings): Rewritten. * engine-gpgme.c (op_sign_encrypt_start): Removed because it is not used anywhere. (op_sign): Renamed to .. (do_sign): .. this and made local. 2005-08-16 Werner Koch * MapiGPGME.cpp (signAttachment): Simplified. * engine-gpgme.c (op_sign_file): Add arg TTL. (op_sign_file_ext): Removed. (op_sign_file_next): Renamed to .. (do_sign_file): .. this and made local. (do_sign_file): Updated to use new passphrase callback semantics. (op_decrypt_file): Ditto. (free_recipients): Need to use gpgme_key_release and not just free. * engine-gpgme.c (do_decrypt): Factored some code out to .. (update_passphrase_cache): .. new. (op_sign_encrypt_file): Updated to use new passphrase callback semantics. * MapiGPGME.cpp (getBody): Properly distinguish property types. (delete_buf): Removed macro. We now use malloc for the body string. Changed other places to use delete directly for clarity. (fail_if_null): Removed. Replaced by direct tests and a call to out_of_core. (setDefaultKey): Now use malloc/free instead of new/delete. Changed at other places too. (getDefaultKey): Changed to return a const char *. * common.c (wchar_to_utf8): New. (out_of_core): Made global and call abort after displaying the message box. 2005-08-14 Werner Koch * MapiGPGME.cpp (log_debug_w32): New. (do_log): New arg W32ERR. Make sure to print a trailing LF. * passphrase-dialog.c (passphrase_callback_box): Revamped. (free_decrypt_key): Wipe out a passphrase. Remove superfluous variable clearing. * util.h (wipememory2, wipememory): New. (wipestring): New. * engine-gpgme.c (op_decrypt): Renamed to .. (do_decrypt): .. this and made local. (clear_error_if_cancel): Removed as we inlined the code. (do_decrypt): Cleaned up. * main.c (DllMain): Initialize passcaching subsystem. * passcache.c, passcache.h: New. * intern.h: Include it here. * util.h: New. * olflange.cpp (DllRegisterServer): Remove key for the old versions of this plugin. Merged olgpgmain.dll and olgpgcore.dll into outlgpg.dll. * Makefile.am: Renamed target to outlgpg. Added required files. * olflange.cpp, olflange.h: Renamed from GPGExch.cpp and GPGExch.h. Removed all the MFC cruft as it is not required - it was only used to get hands on the hInstance of the DLL; chnaged that to use the glob_hinst which gets set by DllMain. * outlgpg.def: New. * olflange-def.h: New. * olflange-dlgs.cpp: Renamed from GPGOptionsDlgs.cpp. * olflange-ids.h: Renamed from ../olflange/resource.h * olflange-rsrcs.rc: Renamed from ..olflange/olgpgmaindlgs.rc and stripped off unneedded stuff. * olgpgcoredlgs.rc: Renamed to .. * outlgpg-rsrcs.rc: .. this and stripped of cruft. * olgpgcoredlgs.h: Renamed to .. * outlgpg-ids.h: .. this. * versioninfo.rc.in: New. 2005-08-12 Timo Schulz * config-dialog.c (sotre_extension_value, load_extension_value): Adjust registry key. 2005-08-12 Werner Koch * intern.h: Moved keycache prototypes to keycache.h. * MapiGPGME.cpp (lock_log, unlock_log): New. * engine-gpgme.c (op_init): Check GPGME version. * main.c (outlook_gpg_get_version): Removed as it is now derived from config.h. (DllMain): Initializes gpgme and mapigpgme. * MapiGPGME.cpp (initialize_mapi_gpgme): New. * config-dialog.c (store_extension_value, load_extension_value): Changed key to "OutlGPG". * MapiGPGME.h (class MapiGPGME): New methods versionString and showVersion. Breaks ABI but it doesn't matter as we are also going to change the name of the project. * Makefile.am: Renamed target to olgpgcore. * resource.h: Renamed to ... * olgpgcoredlgs.h: .. and removed cruft from generator. * gpgmedlgs.rc: Renamed to .. * olgpgcoredlgs.rc: ... and removed cruft. * libgpgmedlgs.def: Renamed to .. * olgpgcore.def: .. this. 2005-08-11 Werner Koch * MapiGPGME.cpp (log_debug): New. Rewrote the whole log stuff. It is not anymore per instance. (logDebug): New version with va_list arg. * MapiGPGME.cpp (passphraseCallback): Use gpgme_error_t becuase C++ enforces enum types. * engine-gpgme.c (op_lookup_keys): s/id/names/. id is a reved word Obj-C and it is good style not to use it in plain C code. (op_sign_file_next): Use gpgme_passphrase_cb_t in declaration. (op_decrypt_next): Ditto. * MapiGPGME.cpp (count_recipients): Renamed from countRecipients method, made local and changed both callers. (log_key_info): Changed output format. New arg PREFIX. Changed callers. (add_html_line_endings): Renamed from addHtmlLineEndings method and made local. (logDebug): Open in text mode. Removed all superfluous "\r" from callers. 2005-08-09 Timo Schulz * main.c (outlook_gpg_get_version): New. Use same version as the Outlook GPG plugin. * MapiGPGME.cpp [!__MINGW32__]: Changed sequence of include files. 2005-08-09 Werner Koch * MapiGPGME.cpp (userid_from_key, keyid_from_key): New. Changed all calls to the deprecated gpgme_key_get_string_attr function by these. * MapiGPGME.h, MapiGPGME.cpp: Splitted into interace and implementation. * HashTable.h (class HashTable): No need to dll export anything. 2005-08-08 Werner Koch * common.c (w32_shgetfolderpath): Added. * config-dialog.c (load_config_value_ext): use it here. 2005-07-21 Timo Schulz * MapiGPGME.cpp (decrypt): Only return if no valid PGP data was found and the message has no attachments. * engine-gpgme.c (op_encrypt): Use --textmode to fix problems when the recipient OS has different line endings. For example Win32->Linux. 2005-07-20 Timo Schulz * MapiGPGME.cpp (addHtmlLineEndings): New. (encrypt):Use it here. (signEncrypt): Likewise. Free memory in case of errors. (decrypt): Free memory in case of the verify procedure. Issue a warning when the text of the mail could not be updated. (isMessageEncrypted): New. (countAttachments): Check for null pointers. (clearPassphrase): Likewise. * config-dialog.c (store_config_value): Support '%val%' input. * verify-dialog.c (load_akalist): Return the number of user-ids which were added. * passphrase-dialog.c (load_secbox): Make sure we really start to add the item data at the begin. * intern.h: Fixed GCC compiler problem. 2005-07-19 Timo Schulz * MapiGPGME.cpp (encrypt): Handle cancel. (encryptAttachments): If no attachments exist, close the table. (decryptAttachments): Likewise. (signAttachments): Likewise. (isHtmlBody): New. (isHtmlMessage): New. (setBody): Html support. (encrypt): Figure out if message is html and encode the right body. (signEncrypt): Likewise. (verify): Always use the non-html body for GPG input. (decrypt): Likewise. * engine-gpgme.c (recipient_dialog_box2): Set cancel flag. (op_sign_start): Handle cancel. (recipient_dlg_proc): Make sure there is at least one selected key. Disable armor checkbox. 2005-07-19 Timo Schulz * MapiGPGME.cpp (~MapiGPGME): After releasing the memory, set all pointers to NULL. It seems that NT5 bases operating systems are more pedantic with such issues than 9X based systems. (freeUnknownKeys): Likewise. (freeRecipients): Likewise. (encrypt): Outlook 2003 returns a body string which is not NULL but \0 with a length of 0. Handle it. (sign): Likewise. (signEncrypt): Likewise. * engine-gpgme.c (free_recipients): New. (op_encrypt_start): Handle cancel and free memory. 2005-07-18 Timo Schulz * gpgmedlgs.rc: Native language support for German. 2005-07-14 Timo Schulz * MapiGPGME.cpp: Add some missing MAPI constants. (passphrase_callback_box): Repair cancel button. (decrypt): If the user cancels the operation, do not alter the message text. * config-dialog.c (expand_path): New. From WinPT. (load_config_value): Support for REG_EXPAND_SZ. Suggested by Sebastian. 2005-07-13 Timo Schulz * MapiGPGME.cpp (sign): Ignore empty bodies. (signEncrypt): Likewise. Free recipient memory. (encrypt): Modify code so it really works. (attachPublicKey): New. * engine-gpgme.c (op_export_keys): New. 2005-07-12 Timo Schulz * MapiGPGME.cpp (displayError): New. (writeOptions): Use it here. Simplify the code. (signAttachments): New. (sign): Sign attachments. Noted by Ralf. (processAttachment): Support for sign-only. 2005-07-08 Timo Schulz * MapiGPGME.cpp (setEnableLogging): New. (getEnableLogging): New. (logDebug): Move all logging code to this function. (readOptions): Automatically enable logging if the 'LogFile' registry entry is valid. (prepareLogging): New. (readOptions): Properly handle ""-strings. * config-dialog.c (does_file_exist): Allow to have parameters like '--keymanager' and cut them off before checking the existence. (start_key_manager): Free memory. (config_dlg_proc): Initialize pointer to 'NULL'. (SHFree): New. Special function to handle shell memory. (get_folder): Free memory. (does_folder_exist): New. 2005-07-06 Timo Schulz * MapiGPGME.cpp: s/ATTR_/ATT_. (saveDecryptedAttachment): Cut off the prefix. (clearConfig): New. (clearObject): New. (MapiGPGME): Use it here. Use ATT_PREFIX instead of a hardcoded string. * engine-gpgme.c (op_sign_file_next): New. (op_sign_file): Call op_sign_file2. (op_sign_file_ext): New. 2005-07-05 Timo Schulz * MapiGPGME.cpp (readOptions, writeOptions): Support for the new 'auto sign attachment' flag. (signAttachment): New. (setSignAttachments): New. (getSignAttachments): New. * engine-gpgme.c (op_sign_file): Enable armor. 2005-07-03 Timo Schulz * MapiGPGME.cpp (processAttachment): Implement the decryption part and only use it if the 'save decrypted attachment' flag is set. (saveDecryptedAttachment): New. (writeOptions): Save 'decrypt attachment' flag. (readOptions): Load it here. (cleanupTempFiles): Check handle. (encrypt): If the message has no body skip the procedure. (op_decrypt_file): Set recipient callback. (decryptAttachments): We do not alter the attachment so there is no need to release it again. Replace all 'free' with 'xfree'. 2005-07-01 Timo Schulz * MapiGPGME.cpp (processAttachment): Check that the file has a valid PGP extension before we try to decrypt the attachment. (checkAttachmentExtension): Check if the file extension is a vliad PGP extension. 2005-06-30 Timo Schulz * MapiGPGME.cpp (processAttachment): Use a unique temp name to make a cleanup at the end easier. (cleanupTempFiles): Delete possible left over temp files. (~MapiGPGME): Use it here. 2005-06-22 Timo Schulz * MapiGPGME.cpp (processAttachment): Close attachment before we delete it. (streamOnFile): Directly use the attachment. (streamFromFile): Likewise. (closeAttachment): Renamed to.. (releaseAttachment): ..this. 2005-06-21 Timo Schulz * MapiGPGME.cpp (getMessageType): Support all types. (streamOnFile): More straight forward now. (encryptAttachments): Get the attachment table first. (getAttachPathname): New. (processAttachment): Add new parameter for the position of the attachment. (streamFromFile): New. (generateTempname): New. * engine-gpgme.c (op_sign_encrypt_file): New. 2005-06-17 Timo Schulz * MapiGPGME.cpp (MapiGPGME): Initialize all attachment components to zero. Thanks to Sebstian for pointing this out. 2005-06-16 Timo Schulz * engine-gpgme.c (check_encrypt_result): New. Check if the encrypt procedure returned some invalid recipients. (op_encrypt): Use it here. (op_encrypt_file): Likewise. (op_sign_encrypt): Likewise. * missing.h: Removed unused constants. * verify-dialog.c (load_sigbox): Handle v3 RSA keys. * passphrase-dialog.c (load_secbox): Make sure the index from the first loop matche the second. Which means skip all invalid keys also. 2005-06-13 Timo Schulz * MapiGPGME.cpp (writeOptions): New Option 'defaultKey'. (readOptions): Likewise. Force overwrite 'addDefaultKey'. 2005-06-07 Timo Schulz * passphrase-dialog.c (decrypt_key_dlg_proc): Add a reference to the key object so it will be still valid after the dialog is destroyed. * MapiGPGME.cpp (freeUnknownKeys): Do not try to free the context if no keys are available. Fixed a segv. (signEncrypt): The new code now gets a persistent pointer to the key. * engine-gpgme.c (op_sign_encrypt): Load the right dialog to request the passphrase. 2005-06-05 Timo Schulz * passphrase-dialog.c (load_recipbox): Check ctx if null. (passphrase_callback_box): Different dialogs for sign and decrypt. (signer_dialog_box): Do not zero the context too early. * keycache.c (enum_gpg_seckeys): Also reload if ctx is NULL. * MapiGPGME.cpp (signEncrypt): Return if the user cancelled the signer selection dialog. * recipient-dialog.c (recipient_dlg_proc): Check 'Text Mode' button. * keycache.c (enum_gpg_keys, enum_gpg_seckeys): Fully reset the keycache initializing it again. Thanks to Ralf. 2005-06-04 Timo Schulz * verify-dialog.c (load_sigbox): Only issue a warning if the key exists but is not valid. Get pkalgo from the signature. Fixed format string problem s/%d/%s. * config-dialog.c (load_config_value): Close reg handle. (config_dlg_proc): Show error if the values could not be written to the registry. 2005-06-03 Timo Schulz * mapuser.c (new_usermap): New. (free_usermap): New. * engine-gpgme.c (op_decrypt): Return 'No_Seckey' if appropriate and not just 'Decrypt_Failed'. Set the gpgme_ctx_t object in the callback to allow to list the 'encrypt_to' entries. * passphrase-dialog.c (decrypt_key_dlg_proc): Make sure we only warn when there is a valid callback context. (load_secbox): New parameter 'ctlid'. Changed all callers. (load_recipbox): New. Use usermap to lookup user-id's. (decrypt_key_ext_dlg_proc): New dialog procedure for the callback mode. * HashTable.cpp (HashTable_new): New. C-interface. (HashTable_free): Likewise. (HashTable_get): Likewise. (HashTable_put): Likewise. (HashTable_get_i): Likewise. (HashTable_size): Likewise. 2005-05-29 Timo Schulz * passphrase-dialog.c (decrypt_key_dlg_proc): Warning if the user cancels the signing process. Make the passphrase field invisible if the key is used in selection mode. (recipient_dlg_proc): Likewise. (signer_dialog_box): Return -1 if the user cancelled the dialog. * engine-gpgme.c (op_sign): Set flags to '1' to indicate signing process. * config-dialog.c (does_file_exist): Use appropriate length for xmalloc. Noted by Sebastian. 2005-05-24 Timo Schulz * MapiGPGME.cpp (setXHeader): New. (getXHeader): New. * engine-gpgme.c (op_sign_file): Implemented. 2005-05-22 Timo Schulz * MapiGPGME.cpp (createAttachment): New. (deleteAttachment): New. (encryptAttachments): New. (encrypt): Also encrypt the attachments if possible. (signEncrypt): Likewise. (setEncodingFormat): New. (getEncodingFormat): New. (readOptions, writeOptions): Store encoding format. (MapiGPGME): The default encoding is 'CLASSIC'. 2005-05-21 Timo Schulz * HashTable.h: Export functions. * MapiGPGME.cpp (freeAttachments): New. (getAttachments): New. (openAttachment): New. (closeAttachment): New. (processAttachment): New. (hasAttachments): New. (countAttachments): New. (doCmdFile): New. Can handle files. (doCmdAttach): New. Can handle attachment action types. (signEncrypt): Release locusr key. * engine-gpgme.c (op_sign_file): New. Dummy. (op_sign_encrypt_file): New. Dummy. 2005-05-11 Timo Schulz * common.c (cache_item_new): New. (cache_item_free): New. * engine-gpgme.c (op_decrypt_start_ext): Return an cache item and not just the passphrase. Changed all caller. * MapiGPGME.cpp (passphraseCallback): Support caching. (decrypt): Likewise. (storePassphrase): Likewise. (getPassphrase): Likewise. * HashTable.cpp: New. 2005-05-10 Timo Schulz * passphrase-dialog.c (decrypt_key_dlg_proc): Reset 'hide state'. Show some text when the user entered a wrong passphrase. * MapiGPGME.cpp (findMessageWindow): New. (setRTFBody): New. (decrypt): Just change the window text, not the MAPI object. Call verify() if this is a clearsigned message. (getMessageType): New. (getAttachmentExtension): New. (verify): Extract text and set it. * engine-gpgme.c (op_decrypt): Spawn verify dialog if the text was also signed. (op_decrypt_file): New. * verify-dialog.c (load_sigbox): Avoid key cache and give more information. * passphrase-dialog.c (decrypt_key_dlg_proc): Handle 'x' clicks. * logging.c (log_debug): Disable it for release versions. 2005-05-08 Timo Schulz * MapiGPGME.cpp (readOptions): Handle logfile. (writeOptions): Likewise. (storePassphrase): New. (clearPassphrase): New. (passphraseCallback): New. Needs to be static... (decrypt): Store passphrase if requested. (~MapiGPGME): Free memory. (streamOnFile): New. (getAttachMethod): New. (getAttachFilename): New. (setAttachMethod): New. (getAttachFilename): New. (getMessageHasAttachments): New. (getMessageFlags): New. * engine-gpgme.c (op_decrypt): New. Factoured out code from... (op_decrypt_start): ..here. Now call op_decrypt with standard parameters. (op_decrypt_next): Allow to use a pre-defined passphrase callback. Needed for caching. 2005-05-02 Timo Schulz * MapiGPGME.cpp (fail_if_null, delete_buf): New (doCmd): New. (setBody): If the body to set is empty, do nothing. (freeKeyArray): New. (readOptions): New. (writeOptions): New. Implement all getters and setters for the config code. * keycache.c: Now that we use a DLL, we create a shared data segment for static data. (load_keycache_objects): New. 2005-05-01 Timo Schulz * MapiGPGME.cpp (rtfSync): New. * logging.c (log_debug): New. * common.c (xfree): New. * engine-gpgme.c (op_lookup_keys): Corrected offsets. 2005-04-29 Timo Schulz * engine-gpgme.c (op_encrypt_file): New. 2005-04-27 Timo Schulz * config-dialog.c (config_dialog_box): Add dialog item to select a GUI key manager. Check that the entered files really exist. (config_dlg_proc): Likewise. (does_file_exist): New. 2005-04-24 Timo Schulz * main.c (DllMain): New. With a static library it was not possible to have a separate resource file. Thus we use a DLL now which contains all needed dialogs. * common.c (set_global_hinstance): New. * libgpgmedlgs.def: New. 2005-04-18 Timo Schulz * recipient-dialog.c (recipient_dialog_box2): New way to show pre-selected keys. (copy_item): New paramenter for the pos. (find_item): Do not select the item. * gpgmedlgs.rc (IDD_ENC): New label to describe the listbox. 2005-04-15 Timo Schulz * common.c (xmalloc, xcalloc, xstrdup): New. (out_of_core): New. * recipient-dialog.c (initialize_keybox): New. (find_item): New. * MapiGPGME.cpp (freeUnknownKeys): New. (signEncrypt): Show dialog to select a key if no default key was set. * Replace all std-c alloc functions with x equivalents. 2005-04-13 Timo Schulz * engine-gpgme.c (do_init): Alloc keycache objects. (do_deinit): Cleanup the mess. (op_lookup_keys): New. Allow to find keys via the email. * GPGME.cpp (MapiGPGME): New. MAPI interface. 2005-04-07 Timo Schulz * verify-dialog.c (load_akalist): New. (load_sigbox): Handle bad signatures. * keycache.c (enum_gpg_keys): Allow to reset the enum context. * config-dialog.c (get_open_file_name): Use MAX_PATH. (get_folder): Likewise. * recipient-dialog.c (load_rsetbox): Modify code to add the last keycache item. * passphrase-dialog.c (load_secbox): Likewise. diff --git a/src/main.c b/src/main.c index b464eeb..095868e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,786 +1,790 @@ /* main.c - DLL entry point * Copyright (C) 2005, 2007, 2008 g10 Code GmbH * * This file is part of GpgOL. * * GpgOL is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * GpgOL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, see . */ #include #include #include #include #include "mymapi.h" #include "mymapitags.h" #include "common.h" #include "passcache.h" #include "msgcache.h" #include "mymapi.h" /* The malloced name of the logfile and the logging stream. If LOGFILE is NULL, no logging is done. */ static char *logfile; static FILE *logfp; /* For certain operations we need to acquire a log on the logging functions. This lock is controlled by this Mutex. */ static HANDLE log_mutex; /* The session key used to temporary encrypt attachments. It is initialized at startup. */ static char *the_session_key; /* The session marker to identify this session. Its value is not confidential. It is initialized at startup. */ static char *the_session_marker; /* Local function prototypes. */ static char *get_locale_dir (void); static void drop_locale_dir (char *locale_dir); /* Initialization of gloabl options. These are merely the defaults and will get updated later from the Registry. That is done later at the time Outlook calls its entry point the first time. */ static void init_options (void) { opt.passwd_ttl = 10; /* Seconds. Use a small value, so that no multiple prompts for attachment encryption are issued. */ opt.enc_format = GPG_FMT_CLASSIC; } /* Early initialization of this module. This is done right at startup with only one thread running. Should be called only once. Returns 0 on success. */ static int initialize_main (void) { SECURITY_ATTRIBUTES sa; memset (&sa, 0, sizeof sa); sa.bInheritHandle = FALSE; sa.lpSecurityDescriptor = NULL; sa.nLength = sizeof sa; log_mutex = CreateMutex (&sa, FALSE, NULL); return log_mutex? 0 : -1; } /* Return nbytes of cryptographic strong random. Caller needs to free the returned buffer. */ static char * get_crypt_random (size_t nbytes) { HCRYPTPROV prov; char *buffer; if (!CryptAcquireContext (&prov, NULL, NULL, PROV_RSA_FULL, (CRYPT_VERIFYCONTEXT|CRYPT_SILENT)) ) return NULL; buffer = xmalloc (nbytes); if (!CryptGenRandom (prov, nbytes, buffer)) { xfree (buffer); buffer = NULL; } CryptReleaseContext (prov, 0); return buffer; } /* Initialize the session key and the session marker. */ static int initialize_session_key (void) { the_session_key = get_crypt_random (16+sizeof (unsigned int)+8); if (the_session_key) { /* We use rand() in generate_boundary so we need to seed it. */ unsigned int tmp; memcpy (&tmp, the_session_key+16, sizeof (unsigned int)); srand (tmp); /* And save the session marker. */ the_session_marker = the_session_key + 16 + sizeof (unsigned int); } return !the_session_key; } static void i18n_init (void) { char *locale_dir; #ifdef ENABLE_NLS # ifdef HAVE_LC_MESSAGES setlocale (LC_TIME, ""); setlocale (LC_MESSAGES, ""); # else setlocale (LC_ALL, "" ); # endif #endif locale_dir = get_locale_dir (); if (locale_dir) { bindtextdomain (PACKAGE_GT, locale_dir); drop_locale_dir (locale_dir); } textdomain (PACKAGE_GT); } /* Entry point called by DLL loader. */ int WINAPI DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved) { (void)reserved; if (reason == DLL_PROCESS_ATTACH) { set_global_hinstance (hinst); + + gpg_err_init (); + /* The next call initializes subsystems of gpgme and should be done as early as possible. The actual return value (the version string) is not used here. It may be called at any time later for this. */ gpgme_check_version (NULL); /* Early initializations of our subsystems. */ if (initialize_main ()) return FALSE; i18n_init (); if (initialize_session_key ()) return FALSE; if (initialize_passcache ()) return FALSE; if (initialize_msgcache ()) return FALSE; if (initialize_inspectors ()) return FALSE; init_options (); } else if (reason == DLL_PROCESS_DETACH) { + gpg_err_deinit (0); } return TRUE; } /* Return the static session key we are using for temporary encrypting attachments. The session key is guaranteed to be available. */ const void * get_128bit_session_key (void) { return the_session_key; } const void * get_64bit_session_marker (void) { return the_session_marker; } /* Return a new allocated IV of size NBYTES. Caller must free it. On error NULL is returned. */ void * create_initialization_vector (size_t nbytes) { return get_crypt_random (nbytes); } /* Acquire the mutex for logging. Returns 0 on success. */ static int lock_log (void) { int code = WaitForSingleObject (log_mutex, INFINITE); return code != WAIT_OBJECT_0; } /* Release the mutex for logging. No error return is done because this is a fatal error anyway and we have no means for proper notification. */ static void unlock_log (void) { ReleaseMutex (log_mutex); } static void do_log (const char *fmt, va_list a, int w32err, int err, const void *buf, size_t buflen) { if (!logfile) return; if (lock_log ()) return; if (!logfp) logfp = fopen (logfile, "a+"); if (!logfp) { unlock_log (); return; } fprintf (logfp, "%05lu/%lu/", ((unsigned long)GetTickCount () % 100000), (unsigned long)GetCurrentThreadId ()); if (err == 1) fputs ("ERROR/", logfp); vfprintf (logfp, fmt, a); if (w32err) { char tmpbuf[256]; FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, w32err, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), tmpbuf, sizeof (tmpbuf)-1, NULL); fputs (": ", logfp); if (*tmpbuf && tmpbuf[strlen (tmpbuf)-1] == '\n') tmpbuf[strlen (tmpbuf)-1] = 0; if (*tmpbuf && tmpbuf[strlen (tmpbuf)-1] == '\r') tmpbuf[strlen (tmpbuf)-1] = 0; fprintf (logfp, "%s (%d)", tmpbuf, w32err); } if (buf) { const unsigned char *p = (const unsigned char*)buf; for ( ; buflen; buflen--, p++) fprintf (logfp, "%02X", *p); putc ('\n', logfp); } else if ( *fmt && fmt[strlen (fmt) - 1] != '\n') putc ('\n', logfp); fflush (logfp); unlock_log (); } void log_debug (const char *fmt, ...) { va_list a; va_start (a, fmt); do_log (fmt, a, 0, 0, NULL, 0); va_end (a); } void log_error (const char *fmt, ...) { va_list a; va_start (a, fmt); do_log (fmt, a, 0, 1, NULL, 0); va_end (a); } void log_vdebug (const char *fmt, va_list a) { do_log (fmt, a, 0, 0, NULL, 0); } void log_debug_w32 (int w32err, const char *fmt, ...) { va_list a; if (w32err == -1) w32err = GetLastError (); va_start (a, fmt); do_log (fmt, a, w32err, 0, NULL, 0); va_end (a); } void log_error_w32 (int w32err, const char *fmt, ...) { va_list a; if (w32err == -1) w32err = GetLastError (); va_start (a, fmt); do_log (fmt, a, w32err, 1, NULL, 0); va_end (a); } void log_hexdump (const void *buf, size_t buflen, const char *fmt, ...) { va_list a; va_start (a, fmt); do_log (fmt, a, 0, 2, buf, buflen); va_end (a); } static void do_log_window_info (HWND window, int level) { char buf[1024+1]; char name[200]; int nname; char *pname; DWORD pid; if (!window) return; GetWindowThreadProcessId (window, &pid); if (pid != GetCurrentProcessId ()) return; memset (buf, 0, sizeof (buf)); GetWindowText (window, buf, sizeof (buf)-1); nname = GetClassName (window, name, sizeof (name)-1); if (nname) pname = name; else pname = NULL; if (level == -1) log_debug (" parent=%p/%lu (%s) `%s'", window, (unsigned long)pid, pname? pname:"", buf); else log_debug (" %*shwnd=%p/%lu (%s) `%s'", level*2, "", window, (unsigned long)pid, pname? pname:"", buf); } /* Helper to log_window_hierarchy. */ static HWND do_log_window_hierarchy (HWND parent, int level) { HWND child; child = GetWindow (parent, GW_CHILD); while (child) { do_log_window_info (child, level); do_log_window_hierarchy (child, level+1); child = GetNextWindow (child, GW_HWNDNEXT); } return NULL; } /* Print a debug message using the format string FMT followed by the window hierarchy of WINDOW. */ void log_window_hierarchy (HWND window, const char *fmt, ...) { va_list a; va_start (a, fmt); do_log (fmt, a, 0, 0, NULL, 0); va_end (a); if (window) { do_log_window_info (window, -1); do_log_window_hierarchy (window, 0); } } const char * log_srcname (const char *file) { const char *s = strrchr (file, '/'); return s? s+1:file; } const char * get_log_file (void) { return logfile? logfile : ""; } void set_log_file (const char *name) { if (!lock_log ()) { if (logfp) { fclose (logfp); logfp = NULL; } xfree (logfile); if (!name || *name == '\"' || !*name) logfile = NULL; else logfile = xstrdup (name); unlock_log (); } } void set_default_key (const char *name) { if (!lock_log ()) { if (!name || *name == '\"' || !*name) { xfree (opt.default_key); opt.default_key = NULL; } else { xfree (opt.default_key); opt.default_key = xstrdup (name);; } unlock_log (); } } static char * get_locale_dir (void) { char *instdir; char *p; char *dname; instdir = read_w32_registry_string ("HKEY_LOCAL_MACHINE", GNUPG_REGKEY, "Install Directory"); if (!instdir) return NULL; /* Build the key: "/share/locale". */ #define SLDIR "\\share\\locale" dname = malloc (strlen (instdir) + strlen (SLDIR) + 1); if (!dname) { free (instdir); return NULL; } p = dname; strcpy (p, instdir); p += strlen (instdir); strcpy (p, SLDIR); free (instdir); return dname; } static void drop_locale_dir (char *locale_dir) { free (locale_dir); } /* Read option settings from the Registry. */ void read_options (void) { static int warnings_shown; char *val = NULL; /* Set the log file first so that output from this function is logged too. */ load_extension_value ("logFile", &val); set_log_file (val); xfree (val); val = NULL; /* Parse the debug flags. */ load_extension_value ("enableDebug", &val); opt.enable_debug = 0; if (val) { char *p, *pend; trim_spaces (val); for (p = val; p; p = pend) { pend = strpbrk (p, ", \t\n\r\f"); if (pend) { *pend++ = 0; pend += strspn (pend, ", \t\n\r\f"); } if (isascii (*p) && isdigit (*p)) opt.enable_debug |= strtoul (p, NULL, 0); else if (!strcmp (p, "ioworker")) opt.enable_debug |= DBG_IOWORKER; else if (!strcmp (p, "ioworker-extra")) opt.enable_debug |= DBG_IOWORKER_EXTRA; else if (!strcmp (p, "filter")) opt.enable_debug |= DBG_FILTER; else if (!strcmp (p, "filter-extra")) opt.enable_debug |= DBG_FILTER_EXTRA; else if (!strcmp (p, "memory")) opt.enable_debug |= DBG_MEMORY; else if (!strcmp (p, "commands")) opt.enable_debug |= DBG_COMMANDS; else if (!strcmp (p, "mime-parser")) opt.enable_debug |= DBG_MIME_PARSER; else if (!strcmp (p, "mime-data")) opt.enable_debug |= DBG_MIME_DATA; else if (!strcmp (p, "oom")) opt.enable_debug |= DBG_OOM; else if (!strcmp (p, "oom-extra")) opt.enable_debug |= DBG_OOM_EXTRA; else log_debug ("invalid debug flag `%s' ignored", p); } } else { /* To help the user enable debugging make sure that the registry key exists. Note that the other registry keys are stored after using the configuration dialog. */ store_extension_value ("enableDebug", "0"); } xfree (val); val = NULL; if (opt.enable_debug) log_debug ("enabled debug flags:%s%s%s%s%s%s%s%s%s%s\n", (opt.enable_debug & DBG_IOWORKER)? " ioworker":"", (opt.enable_debug & DBG_IOWORKER_EXTRA)? " ioworker-extra":"", (opt.enable_debug & DBG_FILTER)? " filter":"", (opt.enable_debug & DBG_FILTER_EXTRA)? " filter-extra":"", (opt.enable_debug & DBG_MEMORY)? " memory":"", (opt.enable_debug & DBG_COMMANDS)? " commands":"", (opt.enable_debug & DBG_MIME_PARSER)? " mime-parser":"", (opt.enable_debug & DBG_MIME_DATA)? " mime-data":"", (opt.enable_debug & DBG_OOM)? " oom":"", (opt.enable_debug & DBG_OOM_EXTRA)? " oom-extra":"" ); load_extension_value ("enableSmime", &val); opt.enable_smime = (!val || atoi (val)); xfree (val); val = NULL; /* load_extension_value ("defaultProtocol", &val); */ /* switch ((!val || *val == '0')? 0 : atol (val)) */ /* { */ /* case 1: opt.default_protocol = PROTOCOL_OPENPGP; break; */ /* case 2: opt.default_protocol = PROTOCOL_SMIME; break; */ /* case 0: */ /* default: opt.default_protocol = PROTOCOL_UNKNOWN /\*(auto*)*\/; break; */ /* } */ /* xfree (val); val = NULL; */ opt.default_protocol = PROTOCOL_UNKNOWN; /* (auto)*/ load_extension_value ("encryptDefault", &val); opt.encrypt_default = val == NULL || *val != '1'? 0 : 1; xfree (val); val = NULL; load_extension_value ("signDefault", &val); opt.sign_default = val == NULL || *val != '1'? 0 : 1; xfree (val); val = NULL; load_extension_value ("previewDecrypt", &val); opt.preview_decrypt = val == NULL || *val != '1'? 0 : 1; xfree (val); val = NULL; load_extension_value ("enableDefaultKey", &val); opt.enable_default_key = val == NULL || *val != '1' ? 0 : 1; xfree (val); val = NULL; if (load_extension_value ("storePasswdTime", &val) ) opt.passwd_ttl = 600; /* Initial default. */ else opt.passwd_ttl = val == NULL || *val == '0'? 0 : atol (val); xfree (val); val = NULL; load_extension_value ("encodingFormat", &val); opt.enc_format = val == NULL? GPG_FMT_CLASSIC : atol (val); xfree (val); val = NULL; load_extension_value ("defaultKey", &val); set_default_key (val); xfree (val); val = NULL; load_extension_value ("preferHtml", &val); opt.prefer_html = val == NULL || *val != '1'? 0 : 1; xfree (val); val = NULL; load_extension_value ("svnRevision", &val); opt.svn_revision = val? atol (val) : 0; xfree (val); val = NULL; load_extension_value ("formsRevision", &val); opt.forms_revision = val? atol (val) : 0; xfree (val); val = NULL; load_extension_value ("announceNumber", &val); opt.announce_number = val? atol (val) : 0; xfree (val); val = NULL; load_extension_value ("bodyAsAttachment", &val); opt.body_as_attachment = val == NULL || *val != '1'? 0 : 1; xfree (val); val = NULL; /* Note, that on purpose these flags are only Registry changeable. The format of the entry is a string of of "0" and "1" digits; see the switch below for a description. */ memset (&opt.compat, 0, sizeof opt.compat); load_extension_value ("compatFlags", &val); if (val) { const char *s = val; int i, x; for (s=val, i=0; *s; s++, i++) { x = *s == '1'; switch (i) { case 0: opt.compat.no_msgcache = x; break; case 1: opt.compat.no_pgpmime = x; break; case 2: opt.compat.no_oom_write = x; break; case 3: opt.compat.no_preview_info = x; break; case 4: opt.compat.old_reply_hack = x; break; case 5: opt.compat.auto_decrypt = x; break; case 6: opt.compat.no_attestation = x; break; case 7: opt.compat.use_mwfmo = x; break; } } log_debug ("Note: using compatibility flags: %s", val); } if (!warnings_shown) { char tmpbuf[512]; warnings_shown = 1; if (val && *val) { snprintf (tmpbuf, sizeof tmpbuf, _("Note: Using compatibility flags: %s"), val); MessageBox (NULL, tmpbuf, _("GpgOL"), MB_ICONWARNING|MB_OK); } if (logfile && !opt.enable_debug) { snprintf (tmpbuf, sizeof tmpbuf, _("Note: Writing debug logs to\n\n\"%s\""), logfile); MessageBox (NULL, tmpbuf, _("GpgOL"), MB_ICONWARNING|MB_OK); } } xfree (val); val = NULL; } /* Write current options back to the Registry. */ int write_options (void) { struct { const char *name; int mode; int value; char *s_val; } table[] = { {"enableSmime", 0, opt.enable_smime}, /* {"defaultProtocol", 3, opt.default_protocol}, */ {"encryptDefault", 0, opt.encrypt_default}, {"signDefault", 0, opt.sign_default}, {"previewDecrypt", 0, opt.preview_decrypt}, {"storePasswdTime", 1, opt.passwd_ttl}, {"encodingFormat", 1, opt.enc_format}, {"logFile", 2, 0, logfile}, {"defaultKey", 2, 0, opt.default_key}, {"enableDefaultKey", 0, opt.enable_default_key}, {"preferHtml", 0, opt.prefer_html}, {"svnRevision", 1, opt.svn_revision}, {"formsRevision", 1, opt.forms_revision}, {"announceNumber", 1, opt.announce_number}, {"bodyAsAttachment", 0, opt.body_as_attachment}, {NULL, 0} }; char buf[32]; int rc, i; const char *string; for (i=0; table[i].name; i++) { switch (table[i].mode) { case 0: string = table[i].value? "1": "0"; log_debug ("storing option `%s' value=`%s'\n", table[i].name, string); rc = store_extension_value (table[i].name, string); break; case 1: sprintf (buf, "%d", table[i].value); log_debug ("storing option `%s' value=`%s'\n", table[i].name, buf); rc = store_extension_value (table[i].name, buf); break; case 2: string = table[i].s_val? table[i].s_val : ""; log_debug ("storing option `%s' value=`%s'\n", table[i].name, string); rc = store_extension_value (table[i].name, string); break; /* case 3: */ /* buf[0] = '0'; */ /* buf[1] = 0; */ /* switch (opt.default_protocol) */ /* { */ /* case PROTOCOL_UNKNOWN: buf[0] = '0'; /\* auto *\/ break; */ /* case PROTOCOL_OPENPGP: buf[0] = '1'; break; */ /* case PROTOCOL_SMIME: buf[0] = '2'; break; */ /* } */ /* log_debug ("storing option `%s' value=`%s'\n", */ /* table[i].name, buf); */ /* rc = store_extension_value (table[i].name, buf); */ /* break; */ default: rc = -1; break; } if (rc) log_error ("error storing option `%s': rc = %d\n", table[i].name, rc); } return 0; }