Page MenuHome GnuPG

No OneTemporary

This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/THANKS b/THANKS
index 9d790041..e3127758 100644
--- a/THANKS
+++ b/THANKS
@@ -1,35 +1,35 @@
For a list of the authors of the source code of GPGME, please see the
file AUTHORS. The following people supported GPGME development in
various ways (for example by finding bugs or giving advice), and we
want to thank them for their help. If we forgot you, please let us
know.
Adriaan de Groot adridg@cs.kun.nl
-Albrecht Dreß albrecht.dress@arcor.de
+Albrecht Dreß albrecht.dress@arcor.de
Alfons Hoogervorst alfons@proteus.demon.nl
Daniel Mueller daniel@danm.de
Enno Cramer uebergeek@web.de
Frank Heckenbach frank@g-n-u.de
Igor Belyi gpgme@katehok.ac93.org
Jan-Oliver Wagner jan@intevation.de
Johannes Poehlmann jhp@caldera.de
-Jose C. García Sogo jose@jaimedelamo.eu.org
+Jose C. García Sogo jose@jaimedelamo.eu.org
Leo Gaspard ekleog@gmail.com
Mark Mutz mutz@kde.org
Miguel Coca mcoca@gnu.org
Noel Torres envite@rolamasao.org
Patrick Spendrin patrick.spendrin@kdab.com
-Stéphane Corthésy stephane@sente.ch
+Stéphane Corthésy stephane@sente.ch
Timo Schulz twoaday@freakmail.de
Tommy Reynolds reynolds@redhat.com
W. Trevor King wking@tremily.us
Copyright 2001, 2002, 2004, 2010, 2012 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 file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/doc/ChangeLog-2011 b/doc/ChangeLog-2011
index d6ecca77..e270fae8 100644
--- a/doc/ChangeLog-2011
+++ b/doc/ChangeLog-2011
@@ -1,888 +1,888 @@
2011-12-02 Werner Koch <wk@g10code.com>
NB: ChangeLog files are no longer manually maintained. Starting
on December 1st, 2011 we put change information only in the GIT
commit log, and generate a top-level ChangeLog file from logs at
"make dist". See doc/HACKING for details.
2011-05-12 Marcus Brinkmann <marcus@g10code.com>
* gpgme.texi (I/O Callback Example): Fix example code.
* gpgme.texi (Generating Keys): Fix OpenPGP parameters and reference
GPG and GPGSM manual.
2010-01-05 Werner Koch <wk@g10code.com>
* gpgme.texi (Changing Passphrases): New.
2009-07-21 Werner Koch <wk@g10code.com>
* uiserver.texi (UI Server Encrypt): Add --expect-sign option to
PREP_ENCRYPT.
2009-06-16 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Result Management): New section.
2009-06-16 Werner Koch <wk@g10code.com>
* gpgme.texi (Exporting Keys): Document gpgme_op_export_keys.
(Importing Keys): Document gpgme_op_import_keys.
(Data Buffer Meta-Data): Document URL encodings.
2009-05-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Library Version Check): Document selftest error.
(Creating Contexts): Likewise.
2009-05-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Document
GPGME_ENCRYPT_NO_ENCRYPT_TO.
2009-05-05 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Engine Information): Replace path by file_name.
2008-11-28 Werner Koch <wk@g10code.com>
* gpgme.texi (Listing Keys): Change description of the return
value to match the code. Spotted by Colin Leroy.
2008-10-15 Werner Koch <wk@g10code.com>
* uiserver.texi (Miscellaneous UI Server Commands): Add option
--protocol to the SENDER command.
2008-07-17 Werner Koch <wk@g10code.com>
* module-overview.sk: New.
2008-07-04 Werner Koch <wk@g10code.com>
* gpgme.texi (Algorithms): Add a hint on symmetric only encryption.
2008-06-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Cancellation): Document gpgme_cancel_async.
2008-06-25 Werner Koch <wk@g10code.com>
* gpgme.texi (Listing Keys): Updated example to the current API.
Noted by Nico Schottelius.
2008-06-05 Werner Koch <wk@g10code.com>
* uiserver.texi (Miscellaneous UI Server Commands): Describe
START_CONFDIALOG.
2008-06-04 Werner Koch <wk@g10code.com>
* gpgme.texi: Use @copying command. Change license to
GPLv3. Include protocol specis from GpgOL and GPGEx. Minor
cleanups.
2008-03-11 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (File Based Data Buffers): Document the need for
blocking operations.
(Callback Based Data Buffers): Likewise.
2008-03-05 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Library Version Check): Rename snippet function to
init_gpgme.
(I/O Callback Example): Call it here.
2008-01-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Document that data encoding affects some output data
objects now.
2007-09-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Protocols and Engines): Document GPGME_PROTOCOL_UNKNOWN.
2007-09-11 Werner Koch <wk@g10code.com>
* gpgme.texi (I/O Callback Example): Typo fix.
2007-08-07 Werner Koch <wk@g10code.com>
* gpgme.texi (Verify): Describe chain_model.
2007-07-12 Werner Koch <wk@g10code.com>
* gpgme.texi (Library Version Check): Add remark that the socket
layer will get initialized.
2007-06-05 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Advanced Key Editing): New section.
2007-05-21 Werner Koch <wk@g10code.com>
* Makefile.am (online): New target.
2007-05-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Error Strings): Fix documentation of
gpgme_strerror_r.
2006-11-01 Moritz Schulte <moritz@g10code.com>
* gpgme.texi (Data Buffer I/O Operations): Fixed entry for
gpgme_data_seek: OFFSET is not a pointer; some s/whence/offset/.
2006-09-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Destroying Data Buffers): Clarify that
gpgme_data_release_and_get_mem destroys DH unconditionally.
2005-03-24 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Library Version Check): Make example code compatible
to W32 systems.
2006-06-21 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase Callback): Fix inverted condition in
description.
2005-12-20 Werner Koch <wk@g10code.com>
* gpgme.texi (Verify): Document pka_trust.
2005-12-06 Werner Koch <wk@g10code.com>
* gpgme.texi (Key Management): Updated to match the fixes for
subkey fingerprints and theg secret flag.
2005-10-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Destroying Data Buffers): Document gpgme_free.
2005-10-02 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Add the new member notations of
gpgme_sig_key_t.
(Key Listing Mode): Document GPGME_KEYLIST_MODE_SIG_NOTATIONS.
2005-10-01 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Enclose all return parameters of deftypefuns in
curly brackets.
* gpgme.texi (Signature Notation Data): New section.
(Verify): Added more about the notation data structure.
2005-09-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Data Buffer I/O Operations, Data Buffer Meta-Data):
New subsections.
* gpgme.texi: Replace plaintext_filename with file_name.
* gpgme.texi (Key Management): Document is_qualified.
2005-07-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Decrypt): Add plaintext_filename to
gpgme_decrypt_result_t.
(Verify): Likewise for gpgme_verify_result_t.
2005-06-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Add information about new fields in
gpgme_signature_t.
* gpgme.texi (Decrypt): Add gpgme_recipient_t.
2005-05-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Listing Mode): Fix return type of
gpgme_set_keylist_mode.
Reported by "Sergio" <ml_sergico@virgilio.it>.
2005-04-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Included Certificates): Document
GPGME_INCLUDE_CERTS_DEFAULT.
2005-01-12 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Engine Configuration): New section.
(Crypto Engine): New subsection.
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
* lesser.texi (Library Copying): Change from @appendixsec to
@appendix.
* gpgme.texi (Features): Change reference to GPL to one to LGPL.
* Makefile.am: Change license to LGPL.
(gpgme_TEXINFOS): Replace gpl.texi with lesser.texi.
* gpgme.texi: Change license to LGPL (also for documentation of
GPGME's license).
* lesser.texi: New file.
* gpl.texi: File removed.
* gpgme.texi (Creating Contexts): Fix cut&paste error. Reported
by Noel Torres <envite@rolamasao.org>.
2004-09-30 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (gpgme_TEXINFOS): Remove fdl.texi.
* gpgme.texi: Do not include fdl.texi. Change license to GPL.
* fdl.texi: File removed.
2004-09-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Change type of keylist_mode in
gpgme_key_t to gpgme_keylist_mode_t.
2004-09-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase Callback): Fix last change.
2004-09-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase Callback): Document
GPG_ERR_NOT_IMPLEMENTED.
* gpgme.texi: Update copyright year for tex version.
2004-07-29 Moritz Schulte <moritz@g10code.com>
* gpgme.texi (Verify): Fix gpgme_get_key example (ancient
force_update argument was still there).
2004-06-08 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Listing Keys): Elaborate on the length restrictions
on search patterns.
* gpgme.texi (Decrypt and Verify): Document the NO_DATA error
code.
(Verify): Document the relationship between gpgme_op_verify_result
and the decrypt and verify operations.
2004-05-21 Marcus Brinkmann <marcus@g10code.de>
* gpgme.text (Verify): Document GPG_ERR_CERT_REVOKED status.
* gpgme.texi (Decrypt): Add note about new field wrong_key_usage
of gpgme_decrypt_result_t.
* gpgme.texi (Key Management): Add note about new field
keylist_mode of gpgme_key_t.
2004-04-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Correct type of member wrong_key_usage.
2004-03-29 Moritz Schulte <moritz@duesseldorf.ccc.de>
* gpgme.texi (Verify): Fix type of gpgme_op_verify_result.
* gpgme.texi (Key Listing Mode): Typo fix.
2004-03-23 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Library Version Check): Fix the instruction when to
set the locale.
2004-03-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (I/O Callback Example Qt): New section by Marc Mutz.
2004-02-24 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (cancellation): New section.
2004-02-17 Werner Koch <wk@gnupg.org>
* gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE.
2004-02-06 Moritz Schulte <mo@g10code.com>
* gpgme.texi: A couple of small fixes regarding the Largfile
Support section.
2004-02-01 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Largefile Support): New section.
2004-01-13 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Fix exportable field.
2003-12-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Rename member class in
gpgme_key_sig_t to sig_class.
(Creating a Signature): Likewise for gpgme_signature_t.
2003-12-23 Moritz Schulte <mo@g10code.com>
* gpgme.texi (Listing Keys): Minor clarification for
gpgme_get_key.
2003-10-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Signal Handling): New section.
2003-09-14 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Correct documentation on memory
synchronization requirement.
* gpgme.texi (Locale): New section.
(Multi Threading): Set locale in example.
2003-09-13 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Error Strings): Add gpgme_strerror_r.
2003-09-13 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Update documentation.
2003-09-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Header): We don't use the assuan namespace anymore.
Document new thread options.
2003-08-14 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Creating a Signature): Change type of member class
to unsigned int.
2003-08-04 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Get error code from SIG->status in the code
for gpgme_get_sig_status.
2003-07-31 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Add can_authenticate flag.
* gpgme.texi (Listing Keys): Document GPG_ERR_AMBIGUOUS_NAME for
gpgme_get_key.
2003-07-29 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (EXTRA_DIST): Remove variable.
* gpgme.texi (Encrypting a Plaintext): Bad passphrase is only
possible with symmetric encryption, change the wording to reflect
that.
* gpgme.texi (Creating a Signature): Document
GPG_ERR_UNUSABLE_SECKEY.
* gpgme.texi (Encrypting a Plaintext): Mention encrypt and sign
operations in result function.
(Creating a Signature): Likewise.
2003-07-23 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Listing Mode): Remove word duplication.
(Listing Keys): Remove mentioning of force argument.
(Verify): Don't mention r_stat. Fix some typos.
(Decrypt and Verify): Correct info how to get the result. Don't
mention r_stat.
(Manipulating Data Buffers): Fix documentation of return value.
(Listing Keys): Update examples.
(Decrypt): Result might also be available when operation failed.
(Verify): Result might also be available when operation failed.
- All spotted by Stéphane Corthésy.
+ All spotted by Stéphane Corthésy.
2003-07-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Error Sources): Fix cut and paste error.
2003-07-09 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Management): Clarify difference between can_sign
and can_certify.
(Information About Keys): Likewise for GPGME_ATTR_CAN_SIGN and
GPGME_ATTR_CAN_CERTIFY.
2003-07-08 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Progress Meter Callback): Change return type of
gpgme_progress_cb_t to void.
2003-06-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Add 2003 to copyright notice.
* gpgme.texi (Header): Fix name space documentation on
libgpg-error.
2003-06-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Remove reference to
gpgme_recipients_t.
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Crypto Operations): Rename gpgme_invalid_user_id_t
to gpgme_invalid_key_t.
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Change error codes to GPG_ERR_* variants.
(Error Handling): Rewritten.
2003-05-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Exporting Keys): Change and document prototypes.
Add new gpgme_op_export_ext and gpgme_op_export_ext_start
variants.
(Selecting Recipients): Section removed.
(Encrypting a Plaintext): Change prototypes and document the
changes.
2003-05-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Exporting Keys): Change argument type from
gpgme_recipient_t to gpgme_user_id_t.
(Encrypting a Plaintext): Likewise.
(Selecting Recipients): Rewritten.
2003-05-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Protocol Selection): Do not use @acronym in @node
because that breaks texi2dvi.
* gpgme.texi (Passphrase Callback): Document new prototype.
2003-05-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Header): Remove Gpgme as namespace prefix. Add
_GPGME to namespace prefix.
* gpgme.texi (Multi Threading): Add note about link order.
2003-05-04 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Listing Keys): Document what happens if key is not
found.
* gpgme.texi (Importing Keys): Fix cut and paste error.
2003-04-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Remove reference to
gpgme_get_op_info.
(Detailed Results): Subsection removed.
* gpgme.texi (Key Listing Mode): Add GPGME_KEYLIST_MODE_SIGS.
(Manipulating Keys): Add obsoleteness note.
(Key Signatures): Likewise.
(Information About Keys): Likewise.
(Key Management): Add new data types GpgmeSubkey, GpgmeKeySig,
GpgmeUserID, and all the information about GpgmeKey.
2003-04-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Listing Keys): Remove force_update argument from
gpgme_get_key.
* gpgme.texi (Trust Item Management): Add data members of
GpgmeTrustItem type.
(Information About Trust Items): Add note about obsoleteness.
(Manipulating Trust Items): Add gpgme_trust_item_ref and
gpgme_trust_item_unref.
2003-04-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Rewritten to take into account new and
deprecated functions and data types.
* gpgme.texi (Decrypt): Descript gpgme_op_decrypt_result and
GpgmeDecryptResult.
2003-04-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Add info about
GpgmeEncryptResult and gpgme_op_encrypt_result.
* gpgme.texi (Creating a Signature): Add info about
GpgmeNewSignature, GpgmeSignResult and gpgme_op_sign_result.
(Crypto Operations): Add GpgmeInvalidUserID.
(Algorithms): New chapter.
* gpgme.texi (Deleting Keys): Document
GPGME_Ambiguous_Specification.
(Error Values): Remove GPGME_Invalid_Type and GPGME_Invalid_Mode.
Add GPGME_Unknown_Reason, GPGME_Not_Found,
GPGME_Ambiguous_Specification, GPGME_Wrong_Key_Usage,
GPGME_Key_Revoked, GPGME_Key_Expired, GPGME_No_CRL_Known,
GPGME_CRL_Too_Old, GPGME_Policy_Mismatch, GPGME_No_Secret_Key,
GPGME_Key_Not_Trusted, GPGME_Issuer_Missing, GPGME_Chain_Too_Long,
GPGME_Unsupported_Algorithm, GPGME_Sig_Expired,
GPGME_Bad_Signature, GPGME_No_Public_Key.
2003-04-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Importing Keys): Change GPGME_IMPORT_PRIVATE to
GPGME_IMPORT_SECRET.
* gpgme.texi (Importing Keys): Remove note about gpgme_get_op_info.
(Detailed Results): Remove note about import.
* gpgme.texi (Importing Keys): Add documentation for
GpgmeImportStatus, GpgmeImportResult and gpgme_op_import_result.
* gpgme.texi (Generating Keys): Fix documentation of public and
secret arguments.
2003-04-24 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Generating Keys): Document changed gpgme_op_genkey
and new gpgme_op_genkey_result function. Document
GpgmeGenKeyResult data type.
* gpgme.texi (Error Values): Rename GPGME_No_Passphrase to
GPGME_Bad_Passphrase.
* gpgme.texi (Decrypt): Likewise.
(Decrypt and Verify): Likewise.
(Creating a Signature): Likewise.
(Encrypting a Plaintext): Likewise.
* gpgme.texi (Error Values): Rename GPGME_No_Recipients to
GPGME_No_UserID and GPGME_Invalid_Recipient to
GPGME_Invalid_UserID.
(Encrypting a Plaintext): Likewise.
* gpgme.texi (Error Values): Remove GPGME_Busy and GPGME_No_Request.
(Listing Keys): Likewise.
(Listing Trust Items): Likewise.
2003-02-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Cancelling an Operation): Removed.
(Passphrase Callback): Document new type for GpgmePassphraseCb.
2003-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Engine Information): Rename member part to
file_name.
* gpgme.texi (Protocols and Engines): Document
gpgme_get_protocol_name.
* gpgme.texi (Engine Information): Rewritten.
2003-01-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (I/O Callback Interface): Document new even
GPGME_EVENT_START.
(Waiting For Completion): Document new possible return values.
(I/O Callback Interface): Document return type of GpgmeIOCb.
2003-01-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Hooking Up Into Idle Time): Section removed.
2002-12-24 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Drop R_STAT argument in gpgme_op_verify.
* gpgme.texi (Decrypt and Verify): Likewise for
gpgme_op_decrypt_verify.
2002-12-23 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Information About Keys): Document that
GPGME_ATTR_IS_SECRET is not representable as a string anymore.
2002-12-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Signatures): New section.
(Listing Keys): Add gpgme_get_key.
2002-12-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Memory Based Data Buffers): New subsection.
(File Based Data Buffers): Likewise.
(Callback Based Data Buffers): Likewise.
(Manipulating Data Buffers): Update interfaces. Add
gpgme_data_seek.
* gpgme.texi (Engine Version Check): Remove gpgme_check_engine.
2002-11-21 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Document the new interface.
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Generating Keys): Document new argument to
gpgme_op_genkey.
2002-11-05 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Fix prototype of gpgme_get_sig_key.
Reported by Miguel Coca <e970095@zipi.fi.upm.es>.
2002-08-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Selecting Signers): Fix reference count.
2002-08-21 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Header): Document name space.
2002-08-20 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Importing Keys): Document gpgme_op_import_ext.
* gpgme.texi (Importing Keys): Undocument EOF.
2002-08-14 Werner Koch <wk@gnupg.org>
* gpgme.texi (Information About Keys): Changed GPGME_ATTR_TYPE.
2002-07-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Deleting Keys): Say that secret keys might not be
deleted.
2002-07-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Information About Keys): Document (badly) the new
key attributes.
* gpgme.texi (Manipulating Data Buffers): Mention that backend
tries to detect encoding automatically.
2002-07-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Run Control): Update this section.
(Waiting For Completion): Likewise for this subsection.
(Cancelling an Operation): Likewise for this subsection.
(Using External Event Loops): New subsection with several
subsubsections.
2002-06-28 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Remove item about the need to
synchronize anything against gpgme_wait (except gpgme_wait
itself).
2002-06-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Information About Keys): Fix documentation for IDX.
(Information About Trust Items): Likewise.
2002-06-26 Werner Koch <wk@gnupg.org>
* gpgme.texi (Importing Keys): Document the return value -1 of
gpgme_op_import.
2002-06-20 Werner Koch <wk@gnupg.org>
* gpgme.texi (Verify): Explain the new whatidx variable.
2002-06-10 Werner Koch <wk@gnupg.org>
* gpgme.texi (Verify): Document attribute GPGME_ATTR_ERRTOK.
2002-06-04 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Document new autodetection.
2002-06-04 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (DISTCLEANFILES): New variable.
2002-05-26 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Some typographical correctons throughout.
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Using Automake): New section.
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Multi Threading): Escape { and }.
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Overview): Replace note about thread-safeness.
(Multi Threading): New section.
2002-05-03 Werner Koch <wk@gnupg.org>
* gpgme.texi (Manipulating Data Buffers): Changed some data types
to void*.
(Protocol Selection): Added gpgme_get_protocol.
(Verify): Updated to include the new attribute fucntions and
status codes.
2002-04-27 Werner Koch <wk@gnupg.org>
* gpgme.texi (Manipulating Data Buffers): New type GpgmeDataEncoding.
2002-04-23 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase Callback): Document that either return
argument can be NULL.
(Progress Meter Callback): Likewise.
2002-04-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase Callback): Fix small typo. Document the
new function gpgme_get_passphrase_cb.
(Progress Meter Callback): Document the new function
gpgme_get_progress_cb.
2002-04-16 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Creating a Signature): Fix function name. Reported
by Wichert Ackerman <wichert@debian.org>.
2002-03-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (direntry): End index entry with a full stop.
Patch submitted by Jose Carlos Garcia Sogo <jsogo@debian.org>.
2002-03-17 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Detailed Results): Fix syntax error in last change.
2002-03-08 Werner Koch <wk@gnupg.org>
* gpgme.texi (Detailed Results): Import does also return info.
2002-03-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Document symmetric
encryption.
2002-03-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Error Strings): Add example.
* gpgme.texi (Listing Keys): Likewise.
2002-03-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Information About Keys): Document GPGME_ATTR_EXPIRE.
2002-03-03 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Verify): Document verification of normal and
cleartext signatures.
2002-02-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Listing Keys): Document gpgme_op_keylist_ext_start.
2002-02-27 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Document
GPGME_Invalid_Recipients.
(Error Values): Likewise.
2002-02-26 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Encrypting a Plaintext): Document
gpgme_op_encrypt_sign and gpgme_op_encrypt_sign_start.
2002-02-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Creating a Signature): Add a note about
certificates to include.
(Included Certificates): New section.
2002-02-09 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Detailed Results): Remove literal tags.
(Generating Keys): Update documentation.
* gpgme.texi (Generating Keys): Fix syntax error.
2002-02-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Waiting For Completion): Adjust doc to changes in
the code.
2002-02-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Key Listing Mode): Update documentation.
2002-01-31 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Generating Keys): Document error at creation
failure.
2002-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Deleting Keys): Document new error values.
2002-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Importing Keys): Add reference to gpgme_get_op_info.
2002-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Some spell checking.
2002-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: Add all the gpgme_op_*_start functions.
Fill the concept index with many, many entries.
2002-01-29 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Run Control): New section.
(Verify): Docuent gpgme_get_notation.
(More Information): New section describing gpgme_get_op_info.
2002-01-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Passphrase callback): Change GpgmePassphraseCb's
R_HD type from void* to void**.
2002-01-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Creating data buffers): Change
gpgme_data_new_from_filepart's LENGTH type from off_t to size_t.
2002-01-22 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Generating keys): New subsection.
(Exporting keys): Likewise.
(Importing keys): Likewise.
(Deleting keys): Likewise.
2002-01-16 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi: g10Code -> g10 Code
* gpgme.texi (Top): Complete detailmenu.
* gpgme.texi: Convert embarassing cruft to the real thing.
2002-01-16 Marcus Brinkmann <marcus@g10code.de>
* ChangeLog: New file.
* gpgme.texi: Likewise.
* gpl.texi: Likewise.
* fdl.texi: Likewise.
* Makefile.am (info_TEXINFOS): New variable.
(gpgme_TEXINFOS): Likewise.
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011 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 file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/lang/qt/src/dataprovider.cpp b/lang/qt/src/dataprovider.cpp
index df561330..8385686c 100644
--- a/lang/qt/src/dataprovider.cpp
+++ b/lang/qt/src/dataprovider.cpp
@@ -1,286 +1,286 @@
/* dataprovider.cpp
- Copyright (C) 2004 Klar�vdalens Datakonsult AB
+ Copyright (C) 2004 Klarävdalens Datakonsult AB
Copyright (c) 2016 Intevation GmbH
This file is part of QGPGME.
QGPGME is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
QGPGME 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 Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with QGPGME; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
// -*- c++ -*-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <dataprovider.h>
#include <error.h>
#include <QIODevice>
#include <QProcess>
#include <cstdio>
#include <cstring>
#include <cassert>
using namespace QGpgME;
using namespace GpgME;
//
//
// QByteArrayDataProvider
//
//
static bool resizeAndInit(QByteArray &ba, size_t newSize)
{
const size_t oldSize = ba.size();
ba.resize(newSize);
const bool ok = (newSize == static_cast<size_t>(ba.size()));
if (ok) {
memset(ba.data() + oldSize, 0, newSize - oldSize);
}
return ok;
}
QByteArrayDataProvider::QByteArrayDataProvider()
: GpgME::DataProvider(), mOff(0) {}
QByteArrayDataProvider::QByteArrayDataProvider(const QByteArray &initialData)
: GpgME::DataProvider(), mArray(initialData), mOff(0) {}
QByteArrayDataProvider::~QByteArrayDataProvider() {}
ssize_t QByteArrayDataProvider::read(void *buffer, size_t bufSize)
{
#ifndef NDEBUG
//qDebug( "QByteArrayDataProvider::read( %p, %d )", buffer, bufSize );
#endif
if (bufSize == 0) {
return 0;
}
if (!buffer) {
Error::setSystemError(GPG_ERR_EINVAL);
return -1;
}
if (mOff >= mArray.size()) {
return 0; // EOF
}
size_t amount = qMin(bufSize, static_cast<size_t>(mArray.size() - mOff));
assert(amount > 0);
memcpy(buffer, mArray.data() + mOff, amount);
mOff += amount;
return amount;
}
ssize_t QByteArrayDataProvider::write(const void *buffer, size_t bufSize)
{
#ifndef NDEBUG
//qDebug( "QByteArrayDataProvider::write( %p, %lu )", buffer, static_cast<unsigned long>( bufSize ) );
#endif
if (bufSize == 0) {
return 0;
}
if (!buffer) {
Error::setSystemError(GPG_ERR_EINVAL);
return -1;
}
if (mOff >= mArray.size()) {
resizeAndInit(mArray, mOff + bufSize);
}
if (mOff >= mArray.size()) {
Error::setSystemError(GPG_ERR_EIO);
return -1;
}
assert(bufSize <= static_cast<size_t>(mArray.size()) - mOff);
memcpy(mArray.data() + mOff, buffer, bufSize);
mOff += bufSize;
return bufSize;
}
off_t QByteArrayDataProvider::seek(off_t offset, int whence)
{
#ifndef NDEBUG
//qDebug( "QByteArrayDataProvider::seek( %d, %d )", int(offset), whence );
#endif
int newOffset = mOff;
switch (whence) {
case SEEK_SET:
newOffset = offset;
break;
case SEEK_CUR:
newOffset += offset;
break;
case SEEK_END:
newOffset = mArray.size() + offset;
break;
default:
Error::setSystemError(GPG_ERR_EINVAL);
return (off_t) - 1;
}
return mOff = newOffset;
}
void QByteArrayDataProvider::release()
{
#ifndef NDEBUG
//qDebug( "QByteArrayDataProvider::release()" );
#endif
mArray = QByteArray();
}
//
//
// QIODeviceDataProvider
//
//
QIODeviceDataProvider::QIODeviceDataProvider(const std::shared_ptr<QIODevice> &io)
: GpgME::DataProvider(),
mIO(io),
mErrorOccurred(false),
mHaveQProcess(qobject_cast<QProcess *>(io.get()))
{
assert(mIO);
}
QIODeviceDataProvider::~QIODeviceDataProvider() {}
bool QIODeviceDataProvider::isSupported(Operation op) const
{
const QProcess *const proc = qobject_cast<QProcess *>(mIO.get());
bool canRead = true;
if (proc) {
canRead = proc->readChannel() == QProcess::StandardOutput;
}
switch (op) {
case Read: return mIO->isReadable() && canRead;
case Write: return mIO->isWritable();
case Seek: return !mIO->isSequential();
case Release: return true;
default: return false;
}
}
static qint64 blocking_read(const std::shared_ptr<QIODevice> &io, char *buffer, qint64 maxSize)
{
while (!io->bytesAvailable()) {
if (!io->waitForReadyRead(-1)) {
if (const QProcess *const p = qobject_cast<QProcess *>(io.get())) {
if (p->error() == QProcess::UnknownError &&
p->exitStatus() == QProcess::NormalExit &&
p->exitCode() == 0) {
return 0;
} else {
Error::setSystemError(GPG_ERR_EIO);
return -1;
}
} else {
return 0; // assume EOF (loses error cases :/ )
}
}
}
return io->read(buffer, maxSize);
}
ssize_t QIODeviceDataProvider::read(void *buffer, size_t bufSize)
{
#ifndef NDEBUG
//qDebug( "QIODeviceDataProvider::read( %p, %lu )", buffer, bufSize );
#endif
if (bufSize == 0) {
return 0;
}
if (!buffer) {
Error::setSystemError(GPG_ERR_EINVAL);
return -1;
}
const qint64 numRead = mHaveQProcess
? blocking_read(mIO, static_cast<char *>(buffer), bufSize)
: mIO->read(static_cast<char *>(buffer), bufSize);
//workaround: some QIODevices (known example: QProcess) might not return 0 (EOF), but immediately -1 when finished. If no
//errno is set, gpgme doesn't detect the error and loops forever. So return 0 on the very first -1 in case errno is 0
ssize_t rc = numRead;
if (numRead < 0 && !Error::hasSystemError()) {
if (mErrorOccurred) {
Error::setSystemError(GPG_ERR_EIO);
} else {
rc = 0;
}
}
if (numRead < 0) {
mErrorOccurred = true;
}
return rc;
}
ssize_t QIODeviceDataProvider::write(const void *buffer, size_t bufSize)
{
#ifndef NDEBUG
//qDebug( "QIODeviceDataProvider::write( %p, %lu )", buffer, static_cast<unsigned long>( bufSize ) );
#endif
if (bufSize == 0) {
return 0;
}
if (!buffer) {
Error::setSystemError(GPG_ERR_EINVAL);
return -1;
}
return mIO->write(static_cast<const char *>(buffer), bufSize);
}
off_t QIODeviceDataProvider::seek(off_t offset, int whence)
{
#ifndef NDEBUG
//qDebug( "QIODeviceDataProvider::seek( %d, %d )", int(offset), whence );
#endif
if (mIO->isSequential()) {
Error::setSystemError(GPG_ERR_ESPIPE);
return (off_t) - 1;
}
qint64 newOffset = mIO->pos();
switch (whence) {
case SEEK_SET:
newOffset = offset;
break;
case SEEK_CUR:
newOffset += offset;
break;
case SEEK_END:
newOffset = mIO->size() + offset;
break;
default:
Error::setSystemError(GPG_ERR_EINVAL);
return (off_t) - 1;
}
if (!mIO->seek(newOffset)) {
Error::setSystemError(GPG_ERR_EINVAL);
return (off_t) - 1;
}
return newOffset;
}
void QIODeviceDataProvider::release()
{
#ifndef NDEBUG
//qDebug( "QIODeviceDataProvider::release()" );
#endif
mIO->close();
}
diff --git a/lang/qt/src/qgpgmerefreshkeysjob.cpp b/lang/qt/src/qgpgmerefreshkeysjob.cpp
index 93ac63ad..493a010a 100644
--- a/lang/qt/src/qgpgmerefreshkeysjob.cpp
+++ b/lang/qt/src/qgpgmerefreshkeysjob.cpp
@@ -1,229 +1,229 @@
/*
qgpgmerefreshkeysjob.cpp
This file is part of qgpgme, the Qt API binding for gpgme
- Copyright (c) 2004 Klar�vdalens Datakonsult AB
+ Copyright (c) 2004 Klarävdalens Datakonsult AB
Copyright (c) 2016 Intevation GmbH
QGpgME is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
QGpgME 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 General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
In addition, as a special exception, the copyright holders give
permission to link the code of this program with any edition of
the Qt library by Trolltech AS, Norway (or with modified versions
of Qt that use the same license as Qt), and distribute linked
combinations including the two. You must obey the GNU General
Public License in all respects for all of the code used other than
Qt. If you modify this file, you may extend this exception to
your version of the file, but you are not obligated to do so. If
you do not wish to do so, delete this exception statement from
your version.
*/
#define MAX_CMD_LENGTH 32768
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "qgpgmerefreshkeysjob.h"
#include <QDebug>
#include "gpgme_backend_debug.h"
#include "context.h"
#include <QByteArray>
#include <QStringList>
#include <gpg-error.h>
#include <assert.h>
QGpgME::QGpgMERefreshKeysJob::QGpgMERefreshKeysJob()
: RefreshKeysJob(0),
mProcess(0),
mError(0)
{
}
QGpgME::QGpgMERefreshKeysJob::~QGpgMERefreshKeysJob()
{
}
GpgME::Error QGpgME::QGpgMERefreshKeysJob::start(const QStringList &patterns)
{
assert(mPatternsToDo.empty());
mPatternsToDo = patterns;
if (mPatternsToDo.empty()) {
mPatternsToDo.push_back(QStringLiteral(" ")); // empty list means all -> mae
}
// sure to fail the first
// startAProcess() guard clause
return startAProcess();
}
#if MAX_CMD_LENGTH < 65 + 128
#error MAX_CMD_LENGTH is too low
#endif
GpgME::Error QGpgME::QGpgMERefreshKeysJob::startAProcess()
{
if (mPatternsToDo.empty()) {
return GpgME::Error();
}
// create and start gpgsm process:
mProcess = new QProcess(this);
mProcess->setObjectName(QStringLiteral("gpgsm -k --with-validation --force-crl-refresh --enable-crl-checks"));
// FIXME: obbtain the path to gpgsm from gpgme, so we use the same instance.
mProcess->setProgram(QStringLiteral("gpgsm"));
QStringList arguments;
arguments << QStringLiteral("-k")
<< QStringLiteral("--with-validation")
<< QStringLiteral("--force-crl-refresh")
<< QStringLiteral("--enable-crl-checks");
unsigned int commandLineLength = MAX_CMD_LENGTH;
commandLineLength -=
strlen("gpgsm") + 1 + strlen("-k") + 1 +
strlen("--with-validation") + 1 + strlen("--force-crl-refresh") + 1 +
strlen("--enable-crl-checks") + 1;
while (!mPatternsToDo.empty()) {
const QByteArray pat = mPatternsToDo.front().toUtf8().trimmed();
const unsigned int patLength = pat.length();
if (patLength >= commandLineLength) {
break;
}
mPatternsToDo.pop_front();
if (pat.isEmpty()) {
continue;
}
arguments << QLatin1String(pat);
commandLineLength -= patLength + 1;
}
mProcess->setArguments(arguments);
connect(mProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
SLOT(slotProcessExited(int,QProcess::ExitStatus)));
connect(mProcess, SIGNAL(readyReadStandardOutput()),
SLOT(slotStdout()));
connect(mProcess, &QProcess::readyReadStandardError,
this, &QGpgMERefreshKeysJob::slotStderr);
mProcess->start();
if (!mProcess->waitForStarted()) {
mError = GpgME::Error::fromCode(GPG_ERR_ENOENT, GPG_ERR_SOURCE_GPGSM); // what else?
deleteLater();
return mError;
} else {
return GpgME::Error();
}
}
void QGpgME::QGpgMERefreshKeysJob::slotCancel()
{
if (mProcess) {
mProcess->kill();
}
mProcess = 0;
mError = GpgME::Error::fromCode(GPG_ERR_CANCELED, GPG_ERR_SOURCE_GPGSM);
}
void QGpgME::QGpgMERefreshKeysJob::slotStatus(QProcess *proc, const QString &type, const QStringList &args)
{
if (proc != mProcess) {
return;
}
QStringList::const_iterator it = args.begin();
bool ok = false;
if (type == QLatin1String("ERROR")) {
if (args.size() < 2) {
qCDebug(GPGPME_BACKEND_LOG) << "not recognising ERROR with < 2 args!";
return;
}
const int source = (*++it).toInt(&ok);
if (!ok) {
qCDebug(GPGPME_BACKEND_LOG) << "expected number for first ERROR arg, got something else";
return;
}
ok = false;
const int code = (*++it).toInt(&ok);
if (!ok) {
qCDebug(GPGPME_BACKEND_LOG) << "expected number for second ERROR arg, got something else";
return;
}
mError = GpgME::Error::fromCode(code, source);
} else if (type == QLatin1String("PROGRESS")) {
if (args.size() < 4) {
qCDebug(GPGPME_BACKEND_LOG) << "not recognising PROGRESS with < 4 args!";
return;
}
const QString what = *++it;
ok = false;
(*++it).toInt(&ok);
if (!ok) {
qCDebug(GPGPME_BACKEND_LOG) << "expected number for \"type\", got something else";
return;
}
ok = false;
const int cur = (*++it).toInt(&ok);
if (!ok) {
qCDebug(GPGPME_BACKEND_LOG) << "expected number for \"cur\", got something else";
return;
}
ok = false;
const int total = (*++it).toInt(&ok);
if (!ok) {
qCDebug(GPGPME_BACKEND_LOG) << "expected number for \"total\", got something else";
return;
}
// TODO port
Q_EMIT progress(QString(), cur, total);
}
}
void QGpgME::QGpgMERefreshKeysJob::slotStderr()
{
// implement? or not?
}
void QGpgME::QGpgMERefreshKeysJob::slotProcessExited(int exitCode, QProcess::ExitStatus exitStatus)
{
if (!mError && !mPatternsToDo.empty()) {
if (const GpgME::Error err = startAProcess()) {
mError = err;
} else {
return;
}
}
Q_EMIT done();
if (!mError &&
(exitStatus != QProcess::NormalExit || exitCode != 0)) {
mError = GpgME::Error::fromCode(GPG_ERR_GENERAL, GPG_ERR_SOURCE_GPGSM);
}
Q_EMIT result(mError);
deleteLater();
}
#include "qgpgmerefreshkeysjob.moc"
diff --git a/lang/qt/src/qgpgmesecretkeyexportjob.cpp b/lang/qt/src/qgpgmesecretkeyexportjob.cpp
index d7408529..75cd83a8 100644
--- a/lang/qt/src/qgpgmesecretkeyexportjob.cpp
+++ b/lang/qt/src/qgpgmesecretkeyexportjob.cpp
@@ -1,146 +1,146 @@
/*
qgpgmesecretexportjob.cpp
This file is part of qgpgme, the Qt API binding for gpgme
- Copyright (c) 2004 Klar�vdalens Datakonsult AB
+ Copyright (c) 2004 Klarävdalens Datakonsult AB
Copyright (c) 2016 Intevation GmbH
QGpgME is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
QGpgME 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 General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
In addition, as a special exception, the copyright holders give
permission to link the code of this program with any edition of
the Qt library by Trolltech AS, Norway (or with modified versions
of Qt that use the same license as Qt), and distribute linked
combinations including the two. You must obey the GNU General
Public License in all respects for all of the code used other than
Qt. If you modify this file, you may extend this exception to
your version of the file, but you are not obligated to do so. If
you do not wish to do so, delete this exception statement from
your version.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "qgpgmesecretkeyexportjob.h"
#include <QDebug>
#include "gpgme_backend_debug.h"
#include "context.h"
#include "data.h"
#include <QStringList>
#include <gpg-error.h>
#include <string.h>
#include <assert.h>
QGpgME::QGpgMESecretKeyExportJob::QGpgMESecretKeyExportJob(bool armour, const QString &charset)
: ExportJob(0),
mProcess(0),
mError(0),
mArmour(armour),
mCharset(charset)
{
}
QGpgME::QGpgMESecretKeyExportJob::~QGpgMESecretKeyExportJob()
{
}
GpgME::Error QGpgME::QGpgMESecretKeyExportJob::start(const QStringList &patterns)
{
assert(mKeyData.isEmpty());
if (patterns.size() != 1 || patterns.front().isEmpty()) {
deleteLater();
return mError = GpgME::Error::fromCode(GPG_ERR_INV_VALUE, GPG_ERR_SOURCE_GPGSM);
}
// create and start gpgsm process:
mProcess = new QProcess(this);
mProcess->setObjectName(QStringLiteral("gpgsm --export-secret-key-p12"));
// FIXME: obtain the path to gpgsm from gpgme, so we use the same instance.
mProcess->setProgram("gpgsm");
QStringList arguments;
arguments << QStringLiteral("--export-secret-key-p12");
if (mArmour) {
arguments << QStringLiteral("--armor");
}
if (!mCharset.isEmpty()) {
arguments << QStringLiteral("--p12-charset") << mCharset;
}
arguments << QLatin1String(patterns.front().toUtf8());
mProcess->setArguments(arguments);
connect(mProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
SLOT(slotProcessExited(int,QProcess::ExitStatus)));
connect(mProcess, &QProcess::readyReadStandardOutput,
this, &QGpgMESecretKeyExportJob::slotStdout);
connect(mProcess, &QProcess::readyReadStandardError,
this, &QGpgMESecretKeyExportJob::slotStderr);
mProcess->start();
if (!mProcess->waitForStarted()) {
mError = GpgME::Error::fromCode(GPG_ERR_ENOENT, GPG_ERR_SOURCE_GPGSM); // what else?
deleteLater();
return mError;
} else {
return GpgME::Error();
}
}
void QGpgME::QGpgMESecretKeyExportJob::slotCancel()
{
if (mProcess) {
mProcess->kill();
}
mProcess = 0;
mError = GpgME::Error::fromCode(GPG_ERR_CANCELED, GPG_ERR_SOURCE_GPGSM);
}
void QGpgME::QGpgMESecretKeyExportJob::slotStdout()
{
QString line = QString::fromLocal8Bit(mProcess->readLine());
if (!line.isEmpty()) {
return;
}
const unsigned int oldlen = mKeyData.size();
mKeyData.resize(oldlen + line.length());
memcpy(mKeyData.data() + oldlen, line.toLatin1(), line.length());
}
void QGpgME::QGpgMESecretKeyExportJob::slotStderr()
{
// implement? or not?
}
void QGpgME::QGpgMESecretKeyExportJob::slotProcessExited(int exitCode, QProcess::ExitStatus exitStatus)
{
Q_EMIT done();
if (!mError &&
(exitStatus != QProcess::NormalExit || exitCode != 0)) {
mError = GpgME::Error::fromCode(GPG_ERR_GENERAL, GPG_ERR_SOURCE_GPGSM);
}
Q_EMIT result(mError, mKeyData);
deleteLater();
}
#include "qgpgmesecretkeyexportjob.moc"
diff --git a/tests/ChangeLog-2011 b/tests/ChangeLog-2011
index 596c2df3..3ec0fb7c 100644
--- a/tests/ChangeLog-2011
+++ b/tests/ChangeLog-2011
@@ -1,941 +1,941 @@
2011-12-02 Werner Koch <wk@g10code.com>
NB: ChangeLog files are no longer manually maintained. Starting
on December 1st, 2011 we put change information only in the GIT
commit log, and generate a top-level ChangeLog file from logs at
"make dist". See doc/HACKING for details.
2011-05-11 Marcus Brinkmann <marcus@g10code.com>
* gpgsm/Makefile.am (DISTCLEANFILES): Move to ...
(CLEANFILES): ... here.
(clean-local): New rule.
* gpg/Makefile.am (DISTCLEANFILES): Move to ...
(CLEANFILES): ... here.
2011-05-05 Marcus Brinkmann <marcus@g10code.com>
* gpg/Makefile.am: Unset GPG_AGENT_INFO when setting up local
configuration.
(clean-local): Shut down local gpg-agent.
2011-05-04 Marcus Brinkmann <marcus@g10code.com>
* gpg/t-import.c (check_result): Complete secret key pair counting
and disable status check, as GPG 2.1 currently emits two IMPORT_OK
lines and we only look at the first.
2011-04-27 Marcus Brinkmann <marcus@g10code.com>
* gpg/Makefile.am (DISTCLEANFILES): Add S.gpg-agent.
(mkdemodirs, ./Alpha/Secret.gpg): Remove targets.
(GNUPGHOME): Export as absolute build directory (for gpg-agent).
(./pubring.gpg): Remove --homedir option, import secdemo.asc.
(clean-local): Rewrite.
* gpg/secdemo.asc: New file.
* gpg/pubkey-1.asc, gpg/seckey-1.asc: Change passphrase to
"abc" (now needed as GnuPG 2.1 asks for secret key passphrase on
import).
* gpg/t-keylist.c (keys): Update key info for Joe Random Hacker.
(main): Disable check for can_encrypt, as this is now in a
different subkey.
* gpg/t-encrypt-sign.c (check_result): Allow RMD160 hash
algorithm.
* gpg/t-import.c (check_result): One secret key pair now counts as
two secret keys, allow that.
2009-11-03 Werner Koch <wk@g10code.com>
* run-support.h (fail_if_err): Include program name.
* run-sign.c (main): Add option --uiserver.
2009-10-26 Marcus Brinkmann <marcus@g10code.de>
* opassuan/t-command.c: Update to new interface.
2009-10-15 Werner Koch <wk@g10code.com>
* run-verify.c: New.
2009-08-06 Werner Koch <wk@g10code.com>
* run-sign.c: New.
2009-07-07 Werner Koch <wk@g10code.com>
* run-keylist.c (main): Add options --cms and --openpgp.
* gpg/pgp-keylist.c: Rename to ...
* run-keylist.c: ... this.
* gpg/pgp-import.c: Rename to ...
* run-import.c: ... this.
* gpg/pgp-export.c: Rename to ...
* run-export.c: ... this.
* run-support.h: New. Copied from gpg/t-support.h.
* gpg/Makefile.am (noinst_PROGRAMS): Remove them.
* Makefile.am (noinst_PROGRAMS): Add them.
(noinst_HEADERS): New.
2009-06-22 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-support.h (passphrase_cb): Implement write() according to
the book to silence compiler warning.
* gpgsm/t-support.h (passphrase_cb): Likewise.
2009-06-16 Werner Koch <wk@g10code.com>
* gpg/pgp-import.c: New.
* gpg/t-support.h (print_import_result, nonnull): Factored out
from other tools.
* gpg/pgp-export.c, gpg/pgp-keylist.c: New.
2009-06-09 Werner Koch <wk@g10code.com>
* gpg/Makefile.am (./pubring.gpg): Ignore errors in case of
already imported keys. Add --no-permission-warning and remove
obsolete --allow-secret-key-import.
* gpg/mkdemodirs.in (GPG): Add --no-permission-warning.
* gpg/t-edit.c (edit_fnc): Use gpgme_io_write.
2009-04-19 Moritz <moritz@gnu.org>
* gpg/Makefile.am (EXTRA_DIST): Replaced mkdemodirs with mkdemodirs.in.
(mkdemodirs): New target.
(clean-local): Added command for removing mkdemodirs script.
(./Alpha/Secret.gpg): Added dependency on mkdemodirs.
* gpg/mkdemodirs: Renamed to ...
* gpg/mkdemodirs.in: ... here.
* gpg/mkdemodirs.in (GPG): Derive value from @GPG@ instead of
hard-coding "gpg".
2009-02-24 Werner Koch <wk@g10code.com>
* opassuan/t-command.c: Adjust for changed new op_assuan interface.
2009-02-03 Werner Koch <wk@g10code.com>
* gpg/t-keylist.c (main): Check that new fields is_cardkey and
card_number are not set.
2009-01-26 Werner Koch <wk@g10code.com>
* opassuan/: New.
* opassuan/Makefile.am: New.
* opassuan/t-command.c: New.
2008-12-03 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (INCLUDES): Fix path to include file.
* gpg/Makefile.am (INCLUDES), gpgsm/Makefile.am (INCLUDES): Likewise.
2008-11-18 Werner Koch <wk@g10code.com>
* gpgsm/cms-decrypt.c: New.
2008-11-03 Marcus Brinkmann <marcus@g10code.com>
* gpgsm/Makefile.am (INCLUDES, LDADD): Replace gpgme path with src.
* gpg/Makefile.am (INCLUDES, LDADD, t_thread1_LDADD): Likewise.
* Makefile.am (LDADD): Likewise.
2008-10-30 Werner Koch <wk@g10code.com>
* gpgsm/cms-keylist.c: New.
2008-06-19 Werner Koch <wk@g10code.com>
* gpg/t-gpgconf.c (dump_arg): Add new types. Print strings in
quotes.
2008-01-28 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (DISTCLEANFILES): Add pubring.kbx~.
2008-01-10 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-gpgconf.c (main): Allow for dirmngr not to be available.
* gpg/Makefile.am (./gpg-agent.conf): Correct pinentry path.
* gpg/pinentry: New file.
* gpg/Makefile.am (DISTCLEANFILES, all-local): Add gpg-agent.conf
(./gpg-agent.conf): New target.
(EXTRA_DIST): Add pinentry.
* gpg/t-gpgconf.c (main): Exit early if compiled without gpgconf.
2008-01-04 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (CLEANFILES): Add pubring.kbx and dirmngr.conf.
* Makefile.am (TESTS_ENVIRONMENT): Use absolute path for
GNUPGHOME.
* gpg/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for
GNUPGHOME.
* gpgsm/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for
GNUPGHOME.
* gpg/Makefile.am (TESTS): Add t-gpgconf.
t-gpgconf.c: New file.
2007-11-23 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-verify.c (show_auditlog): Check for GPG_ERR_ASS_UNKNOWN_CMD.
2007-11-23 Werner Koch <wk@g10code.com>
* gpgsm/t-verify.c (check_result): Don't exit on error but set a flag.
(main): Cosnult flag for return value.
(show_auditlog): New.
(main): Use it.
2007-09-27 Marcus Brinkmann <marcus@g10code.de>
* t-engine-info.c (check_engine_info): Fix debug output.
* gpg/Makefile.am (tests_unix): New variable.
(TESTS): Use it.
* gpg/t-support.h (passphrase_cb) [HAVE_W32_SYSTEM]: Use WriteFile instead of write.
* gpg/t-wait.c [HAVE_W32_SYSTEM]: Define sleep as _sleep.
2007-09-14 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-verify.c (main): Release TEXT and SIG.
2007-07-12 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (key_id): Change := into =.
2007-07-12 Werner Koch <wk@g10code.com>
* gpgsm/t-support.h (init_gpgme) [W32]: Do not init the locales as
the constants are not available.
2007-02-26 Werner Koch <wk@g10code.com>
* gpg/t-verify.c (double_plaintext_sig): New.
(main): Check it.
2006-12-02 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c (main): Skip unknown keys. Newer versions of
GPGSM import more keys than older ones.
2005-12-06 Werner Koch <wk@g10code.com>
* gpg/t-keylist.c (main): Changed for that secondary keys now have
a fingerprint.
* gpg/t-keylist-sig.c (main): Ditto.
* gpgsm/t-keylist.c (main): Ditto. The test used to be wrong.
2005-10-18 Werner Koch <wk@g10code.com>
* gpg/pubdemo.asc, gpg/secdemo.asc: Add 2 expired subkeys to
Whisky.
* gpg/t-keylist.c: Reordered list to match new demo keyring. Add
arg for number of subkeys and for extra checking function.
(main): Enhanced a few error outputs. Changed subkey
counting. Call extra checking fucntion.
(check_whisky): New.
2005-10-07 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c (main): Allow for an email address as a second
uid.
* gpg/t-sig-notation.c: Change critical notation to something
GnuPG understands.
2005-10-01 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (EXTRA_DIST): Remove gpg.conf.
(DISTCLEANFILES): Add gpg.conf.
(all-local): Add gpg.conf.
(./gpg.conf): New target.
* gpg/gpg.conf: Remove file.
* gpg/Makefile.am (EXTRA_DIST): Add gpg.conf.
* gpg/Makefile.am (TESTS): Add t-sig-notation.
* gpg/t-sig-notation.c (check_result): New file.
* gpg/t-verify.c (check_result): Also check the length of the
notation data.
* gpg/gpg.conf: New file.
2005-09-30 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (TESTS): Add t-filename.
* gpg/t-filename.c: New file.
2005-09-23 Werner Koch <wk@g10code.com>
* gpg/t-support.h (init_gpgme) [W32]: Don't use LC_MESSAGES.
* gpg/t-encrypt-large.c: New test.
* gpg/Makefile.am (TESTS): Add t-encrypt-large.
2005-06-03 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (TESTS): Add t-wait.
* gpg/t-wait.c (main): New test.
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
* gpg/mkdemodirs: Add copyright notice.
* gpgsm/Makefile.am, gpgsm/t-support.h, gpgsm/t-decrypt.c,
gpgsm/t-encrypt.c, gpgsm/t-export.c, gpgsm/t-genkey.c,
gpgsm/t-import.c, gpgsm/t-keylist.c, gpgsm/t-sign.c,
gpgsm/t-verify.c, gpg/Makefile.am, gpg/t-decrypt.c,
gpg/t-decrypt-verify.c, gpg/t-edit.c, gpg/t-encrypt.c,
gpg/t-encrypt-sign.c, gpg/t-encrypt-sym.c, gpg/t-eventloop.c,
gpg/t-export.c, gpg/t-genkey.c, gpg/t-import.c, gpg/t-keylist.c,
gpg/t-keylist-sig.c, gpg/t-sign.c, gpg/t-signers.c,
gpg/t-support.h, gpg/t-thread1.c, gpg/t-trustlist.c,
gpg/t-verify.c, Makefile.am, t-data.c, t-engine-info.c,
t-version.c: Change license to LGPL.
2004-08-17 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c (struct): Add new fields VALIDITY and
KEY_LENGTH.
(main): Use them.
* gpgsm/t-import.c (check_result): New argument total_stat.
(main): Pass this argument. Reduce number of total considered
keys to 1 for the second test.
2004-04-05 Werner Koch <wk@gnupg.org>
* gpgsm/Makefile.am: Changed the faked system time to 20011213T12000.
2004-03-07 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c: Add chain IDs.
2004-03-03 Werner Koch <wk@gnupg.org>
* gpgsm/t-export.c (main): Also check exporting 2 certificates.
2004-02-17 Werner Koch <wk@gnupg.org>
* gpgsm/t-import.c (check_result): gpgsm does now return info in
the result->imports; adjust for that.
* gpgsm/Makefile.am (TESTS_ENVIRONMENT): Reset the GPG_AGENT_INFO.
Include config.h at the top of each C source. This is required
due to LFS support.
* gpg/t-keylist-sig.c (main): s/class/sig_class/.
* gpg/t-signers.c (check_result): Ditto.
* gpg/t-sign.c (check_result): Ditto.
* gpg/t-encrypt-sign.c (check_result): Ditto.
* gpgsm/t-sign.c (check_result): Ditto.
2004-01-12 Werner Koch <wk@gnupg.org>
* gpg/t-keylist-sig.c (main): Temporary disabled one test due top
gpg 1.3.4 problems.
* gpg/t-import.c (check_result): Likewise.
2003-11-19 Werner Koch <wk@gnupg.org>
* gpg/t-support.h (DIM): Added.
* gpg/t-verify.c (check_result): Rewrote test for notations
because the order of notaions is not guaranteed.
* gpgsm/t-support.h (fail_if_err): Also print the numeric values.
2003-10-06 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-eventloop.c: Include <sys/types.h> for old systems.
* gpgsm/Makefile.am (DISTCLEANFILES): Add random_seed.
* gpg/t-thread1.c (thread_one): Do not call initialize_gpgme.
Likewise.
2003-09-14 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-thread1.c (main): Call init_gpgme here.
(initialize_gpgme): Function removed.
* gpg/t-thread1.c: New file.
* gpg/Makefile.am (TESTS): Add t-thread1.c.
(t_thread1_LDADD): New variable.
(LDADD): Remove GPG Error lib.
* gpgsm/Makefile.am (LDADD): Likewise.
* gpg/t-import.c (main): Likewise.
* gpg/t-keylist-sig.c (main): Likewise.
* gpg/t-keylist.c (main): Likewise.
* gpg/t-sign.c (main): Likewise.
* gpg/t-signers.c (main): Likewise.
* gpg/t-trustlist.c (main): Likewise.
* gpgsm/t-support.h: Include <stdlib.h> and <locale.h>.
(init_gpgme): New function.
* gpg/t-support.h: Likewise.
* gpgsm/t-verify.c (main): Call init_gpgme.
* gpgsm/t-decrypt.c (main): Likewise.
* gpgsm/t-encrypt.c (main): Likewise.
* gpgsm/t-export.c (main): Likewise.
* gpgsm/t-genkey.c (main): Likewise.
* gpgsm/t-import.c (main): Likewise.
* gpgsm/t-keylist.c (main): Likewise.
* gpgsm/t-sign.c (main): Likewise.
* gpg/t-verify.c (main): Call init_gpgme.
* gpg/t-decrypt-verify.c (main): Likewise.
* gpg/t-decrypt.c (main): Likewise.
* gpg/t-edit.c (main): Likewise.
* gpg/t-encrypt-sign.c (main): Likewise.
* gpg/t-encrypt-sym.c (main): Likewise.
* gpg/t-encrypt.c (main): Likewise.
* gpg/t-eventloop.c (main): Likewise.
* gpg/t-export.c (main): Likewise.
* gpg/t-genkey.c (main): Likewise.
2003-08-14 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-sign.c (check_result): Change output format for signature
class to unsigned int.
* gpg/t-signers.c (check_result): Likewise.
* gpg/t-encrypt-sign.c (check_result): Likewise.
* gpgsm/t-sign.c (check_result): Likewise.
2003-07-31 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-verify.c (check_result): Change type of SUMMARY to
unsigned int.
* gpg/t-decrypt-verify.c (check_verify_result): Likewise.
* gpg/t-keylist-sig.c (keys): Change type of member CLASS to
unsigned int.
* t-data.c (read_cb): Change type of AMOUNT to unsigned int.
* t-version.c (version): Remove unused variable.
2003-07-22 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (AM_CPPFLAGS): New variable.
(LDADD): Add @GPG_ERROR_LIBS@.
* gpg/Makefile.am (AM_CPPFLAGS): New variable.
(LDADD): Add @GPG_ERROR_LIBS@.
* gpgsm/Makefile.am (AM_CPPFLAGS): New variable.
(LDADD): Add @GPG_ERROR_LIBS@.
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
Everywhere: Use libgpg-error error codes.
* gpg/Makefile.am (noinst_HEADERS): New variable.
* gpg/t-support.h: New file.
* gpgsm/Makefile.am (noinst_HEADERS): New variable.
* gpgsm/t-support.h: New file.
2003-05-29 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-encrypt-sym.c (main): Adapt to new syntax.
* gpg/t-encrypt.c (main): Likewise.
* gpg/t-eventloop.c (main): Likewise.
* gpg/t-encrypt-sign.c (main): Likewise.
* gpgsm/t-export.c (main): Likewise.
* gpgsm/t-encrypt.c (main): Likewise.
2003-05-28 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-eventloop.c (main): Rewrite recipient management.
* gpg/t-encrypt-sign.c (main): Likewise.
* gpg/t-encrypt.c (main): Likewise.
* gpg/t-export.c (main): Likewise.
* gpgsm/t-encrypt.c (main): Likewise.
* gpgsm/t-export.c (main): Likewise.
2003-05-27 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (TESTS): Order t-keylist and t-keylist-sig after
t-import.
* gpg/t-edit.c (edit_fnc): Fix primary UID for keylisting tests.
* gpg/t-keylist.c: Change order of user IDs.
* gpg/t-keylist-sig.c: Likewise.
* gpg/t-import.c: Add support for gpg in CVS.
2003-05-27 Marcus Brinkmann <marcus@g10code.de>
* t-data.c: Remove TEST_OUT_CB.
(main): Likewise.
* gpg/t-trustlist.c (main): Access ITEM directly.
* (t-decrypt-verify.c, t-decrypt.c, t-edit.c, t-encrypt-sign.c,
t-encrypt-sym.c, t-sign.c, t-signers.c): Include <unistd.h>.
(passphrase_cb): Rewritten.
* t-edit.c (edit_fnc): Rewritten.
2003-05-04 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-keylist-sig.c (main): Remove timestamp check.
* gpgsm/t-keylist.c: Add check for timestamp.
* gpg/Makefile.am (TESTS): Add t-keylist-sig.
* gpg/t-keylist-sig.c: New file.
2003-04-30 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-eventloop.c (main): Do not call print_op_info.
(print_op_info): Function removed.
* gpg/t-keylist.c: Rewritten.
* gpgsm/t-keylist.c (main): Rewritten.
* gpg/t-edit.c (main): Do not use gpgme_key_get_as_xml. Use
gpgme_key_unref instead gpgme_key_release.
* gpg/t-signers.c (main): Use gpgme_key_unref instead
gpgme_key_release.
2003-04-29 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-trustlist.c: Rewritten.
* gpg/t-verify.c (main): Rewritten.
* gpg/t-decrypt-verify.c: Rewritten.
* gpgsm/t-verify.c (main): Rewritten.
2003-04-28 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-decrypt.c (main): Rewritten.
* gpg/t-decrypt.c: Rewritten.
* gpg/t-signers.c: Rewritten.
2003-04-27 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-encrypt-sign.c (check_result): Rewritten.
* gpg/t-sign.c: Rewritten.
* gpgsm/t-sign.c: Rewritten.
* gpg/t-encrypt.c: Check for invalid recipients.
* gpgsm/t-encrypt.c: Likewise.
* gpg/t-import.c (check_result): Really use FPR.
* gpgsm/t-import.c (check_result): Rewritten.
2003-04-25 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-import.c: Rewritten.
* gpgsm/t-genkey.c: Rewritten.
* gpgsm/Makefile.am (noinst_PROGRAMS): Add t-genkey.
* gpg/t-genkey.c: Include <stdlib.h>.
(main): Check result->fpr before checking its length.
2003-04-24 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-genkey.c: Rewritten to match new semantics.
2003-02-06 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-decrypt.c (passphrase_cb): Fix to new prototype.
* gpg/t-decrypt-verify.c (passphrase_cb): Likewise.
* gpg/t-edit.c (passphrase_cb): Likewise.
* gpg/t-encrypt-sign.c (passphrase_cb): Likewise.
* gpg/t-encrypt-sym.c (passphrase_cb): Likewise.
* gpg/t-sign.c (passphrase_cb): Likewise.
* gpg/t-signers.c (passphrase_cb): Likewise.
2003-01-30 Marcus Brinkmann <marcus@g10code.de>
* t-engine-info.c: Use file_name instead path throughout.
* Makefile.am (TESTS): Add t-engine-info.
* t-engine-info.c: New file.
* gpg/t-encrypt.c (main): Don't print engine info.
* gpg/t-eventloop.c (main): Likewise.
* gpg/t-encrypt-sign.c (main): Likewise.
* gpgsm/t-encrypt.c (main): Likewise.
2002-12-24 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-verify.c (main): Adjust caller of gpgme_op_verify.
* gpg/t-verify.c (main): Likewise.
* gpg/t-decrypt-verify.c (main): Likewise for
gpgme_op_decrypt_verify.
2002-12-23 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (./gpgsm.conf): Add a faked system time to
avoid certification's expiry.
* gpgsm/t-encrypt.c (main): Use the short certification name.
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-genkey.c (main): Add missing argument to gpgme_op_genkey
invocation.
2002-10-09 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-decrypt.c (print_data): Update to new gpgme_data_read
interface, and use gpgme_engine_check_version instead
gpgme_check_version.
* gpg/t-decrypt-verify.c (print_data): Likewise.
* gpg/t-edit.c (main): Likewise.
* gpg/t-encrypt.c (print_data): Likewise.
* gpg/t-encrypt-sign.c (print_data): Likewise.
* gpg/t-encrypt-sym.c (print_data): Likewise.
* gpg/t-eventloop.c (print_data): Likewise.
* gpg/t-export.c (print_data): Likewise.
* gpg/t-sign.c (print_data): Likewise.
* gpg/t-signers.c (print_data): Likewise.
* gpgsm/t-decrypt.c (print_data): Likewise.
* gpgsm/t-encrypt.c (print_data): Likewise.
* gpgsm/t-export.c (print_data): Likewise.
* gpgsm/t-sign.c (print_data): Likewise.
* gpg/t-verify.c (main): Likewise for gpgme_op_verify.
* gpgsm/t-verify.c (main): Likewise for gpgme_op_verify.
* t-data.c (read_once_test): Likewise.
(write_test): Update for new behaviour of data objects.
(main): Remove type test.
2002-09-30 Werner Koch <wk@gnupg.org>
* gpgsm/t-keylist.c (doit): Add arg SECRET.
(main): Add option --secret.
2002-09-28 Marcus Brinkmann <marcus@g10code.de>
- * t-version.c: Include <string.h>. Reported by Stéphane Corthésy.
+ * t-version.c: Include <string.h>. Reported by Stéphane Corthésy.
2002-09-02 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-keylist.c (main): Test PATTERN for NULL before printing.
Reported by Dr. Stefan Dalibor <Dr.Stefan.Dalibor@bfa.de>.
2002-08-01 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-edit.c: Also add a test for the expire command (testing
the passphrase callback).
2002-07-28 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-edit.c: New file.
* gpg/Makefile (TESTS): Add t-edit.
2002-07-25 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-encrypt-sym.c (main): Change type of I to size_t and
rename to LEN.
- * gpg/t-verify.c (main): Likewise. Submitted by Stéphane
- Corthésy.
+ * gpg/t-verify.c (main): Likewise. Submitted by Stéphane
+ Corthésy.
2002-07-03 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-eventloop.c: New file.
* gpg/Makefile (TESTS): Add t-eventloop.
2002-06-26 Werner Koch <wk@gnupg.org>
* gpgsm/t-import.c (print_op_info): New.
(main): Print operation info.
2002-06-25 Werner Koch <wk@gnupg.org>
* gpgsm/Makefile.am (DISTCLEANFILES): new.
2002-06-25 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (TESTS): Add t-export.
gpgsm/t-export.c: New file.
2002-06-20 Werner Koch <wk@gnupg.org>
* gpgsm/t-sign.c (main): Also test a normal signature.
* gpg/Makefile (TESTS_ENVIRONMENT): Set GPG_AGENT_INFO empty.
* gpg/t-signers.c, gpg/t-sign.c, gpg/t-encrypt-sym.c
* gpg/t-encrypt-sign.c, gpg/t-decrypt.c
* gpg/t-decrypt-verify.c (main): Changed the GPG_AGENT_INFO check to
match the one in ../../gpgme/rungpg.c.
2002-06-12 Werner Koch <wk@gnupg.org>
* gpgsm/t-keylist.c (doit): Print operation info if available.
2002-06-10 Werner Koch <wk@gnupg.org>
* gpgsm/t-verify.c (print_sig_stat): Print the error token.
2002-06-04 Werner Koch <wk@gnupg.org>
* gpgsm/t-encrypt.c (main): Add a simple option parser and allow
to specify an encryption key.
2002-05-26 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (all-local): Remove dependency on ./secring.gpg.
(./secring.gpg): Remove target, and move all rules for this target
to ...
(./pubring.gpg): ... here. This was necessary because GnuPG 1.0.7
does create an empty secring.gpg file when importing public keys.
2002-05-08 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-verify.c (validity_string): New.
(print_sig_stat): Print expire time and validity.
(status_string): Add new exipred stati.
2002-05-03 Werner Koch <wk@gnupg.org>
* gpg/t-verify.c (validity_string): New.
(print_sig_stat): Print expire time and validity.
(status_string): Add new exipred stati.
2002-04-05 Marcus Brinkmann <marcus@g10code,de>
* gpgsm/Makefile.am (./trustlist.txt): Put more into this file to
prevent use of gpg-agent.
(./gpg-agent.conf): Remove target.
(all-local): Remove ./gpg-agent.conf.
2002-04-05 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c (main): Use gpgme_engine_check_version instead
gpgme_check_engine.
* gpgsm/t-encrypt.c (main): Likewise.
2002-03-06 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-encrypt-sym.c: New file.
* gpg/Makefile.am (TESTS): Add t-encrypt-sym.
2002-03-05 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (CLEANFILES): Remove random_seed, which is now
in DISTCLEANFILES.
2002-03-04 Werner Koch <wk@gnupg.org>
* gpg/Makefile.am (DISTCLEANFILES): Added.
2002-03-03 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-verify.c (main): Add a few more sanity checks, and a check
for normal signatures.
2002-02-26 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-encrypt-sign.c: New file.
* gpg/Makefile.am (TESTS): Add t-encrypt-sign.
2002-02-13 Werner Koch <wk@gnupg.org>
* gpgsm/Makefile.am (private-keys-v1.d): Don't
fail when the directory already exists.
2002-02-12 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (CLEANFILES): New target.
(distclean-local): Rename to ...
(clean-local): ... this.
2002-02-09 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (./private-keys-v1.d/$(key_id).key): Fix rule.
2002-02-09 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-genkey.c: New file (not added to Makefile.am because of
gpg-agent bug).
2002-02-08 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (key_id): Update value.
(all-local): Add .key to keyid filename.
(./private-keys-v1.d/$(key_id)): Renamed to ...
(./private-keys-v1.d/$(key_id).key): ... this.
(all-local): Add ./gpgsm.conf, ./trustlist.txt.
(./gpgsm.conf, ./trustlist.txt): New target.
* gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Renamed to ...
* gpgsm/32100C27173EF6E9C4E9A25D3D69F86D37A4F939: ... this.
2002-01-30 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-import.c (print_op_info): New function.
(main): Use it.
2002-01-22 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-signers.c (passphrase_cb): Change type of r_hd to void**.
* gpg/t-sign.c (passphrase_cb): Likewise.
* gpg/t-decrypt-verify.c (passphrase_cb): Likewise.
* gpg/t-decrypt.c (passphrase_cb): Likewise.
2001-12-19 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-decrypt-verify.c: Don't include `mcheck.h'. Reported by
- Stéphane Corthésy.
+ Stéphane Corthésy.
2001-12-19 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (EXTRA_DIST): Add missing line continuation.
2001-12-19 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile.am (EXTRA_DIST): Add $(key_id).
2001-12-16 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/Makefile: Rename `pubcerts.kbx' to `pubring.kbx'.
2001-12-15 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c (check_two_contexts): Set protocols.
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-sign.c: New file.
* gpgsm/Makefile.am (TESTS): Add t-sign.
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-decrypt.c: New file.
* gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Likewise.
* gpgsm/Makefile.am (TESTS): Add t-decrypt.
(key_id): New variable.
(all-local): New target ./private-keys-v1.d/$(key_id) added.
(./private-keys-v1.d/$(key_id)): New target.
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-verify.c: New file.
* gpgsm/Makefile.am (TESTS): Add t-verify.
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* gpg/Makefile.am (GPG): Set to @GPG_PATH@.
(./pubring.gpg): Use $(GPG) instead gpg.
(./secring.gpg): Likewise.
* gpgsm/t-import.c (main): Remove third test case.
* gpgsm/Makefile.am (GPGSM): Set to @GPGSM@.
(all-local): New target.
(./pubcerts.kbx): Likewise.
* gpgsm/t-encrypt.c: New file.
* gpgsm/Makefile.am (TESTS): Add t-encrypt.
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/t-keylist.c: New file.
* gpgsm/Makefile.am (TESTS): Add t-keylist.
2001-12-13 Marcus Brinkmann <marcus@g10code.de>
* gpgsm/cert_dfn_pca01.der: New file.
* gpgsm/cert_dfn_pca15.der: Likewise.
* gpgsm/cert_g10code_test1.der: Likewise.
* gpgsm/t-import.c: Likewise.
* gpgsm/Makefile.am (EXTRADIST): Add new files.
(TESTS): Add t-import.
2001-11-22 Marcus Brinkmann <marcus@g10code.de>
* gpg/: New directory.
* Makefile.am, t-verify.c, t-encrypt.c, t-signers.c, t-trustlist.c,
t-sign.c, t-keylist.c, t-import.c, t-genkey.c, t-export.c,
t-decrypt-verify.c, t-decrypt.c, t-version.c, t-data.c, mkdemodirs.
cipher-1.asc, cipher-2.asc, geheim.txt, pubdemo.asc, pubkey-1.asc,
secdemo.asc, seckey-1.asc): Move to sub directory gpg/.
* gpg/Makefile.am (INCLUDES): Include gpgme/, not include/ and
intl/.
(LDD): Correct relative path to gpgme library.
(TESTS): Remove t-version and t-data.
* gpg/t-verify.c, gpg/t-encrypt.c, gpg/t-signers.c, gpg/t-trustlist.c,
gpg/t-sign.c, gpg/t-keylist.c, gpg/t-import.c, gpg/t-genkey.c,
gpg/t-export.c, gpg/t-decrypt-verify.c, gpg/t-decrypt.c,
t-version.c, t-data.c): Include gpgme.h, not "../gpgme/gpgme.h".
* Makefile.am: New file.
* gpgsm/: New directory.
* gpgsm/Makefile.am: New file.
2001-11-16 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (TESTS): Add t-decrypt-verify.
* t-decrypt-verify.c: New file.
* cipher-2.asc: Likewise.
2001-11-02 Marcus Brinkmann <marcus@g10code.de>
* t-data.c: Include stddef.h.
(read_once_test): Change type of READ to size_t.
(read_test): Likewise.
(write_test): Likewise.
2001-10-29 Marcus Brinkmann <marcus@g10code.de>
* t-signers.c: New file.
* Makefile.am (TESTS): Add t-signers.
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (TEST_ENVIRONMENT): Revert last change.
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (TEST_ENVIRONMENT): Set environment to $(srcdir),
not current directory.
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
* t-data.c (write_test): New function.
(main): Invoke write_test for all rounds except TEST_OUT_CB.
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (INCLUDES): Remove spurious duplicate to silence
automake.
2001-10-16 Marcus Brinkmann <marcus@g10code.de>
* t-version.c: New file.
* t-data.c: Likewise.
* t-data-1.txt: Likewise.
* t-data-2.txt: Likewise.
* Makefile.am (TESTS): Add t-version, t-data.
2001-09-17 Werner Koch <wk@gnupg.org>
* t-keylist.c (check_two_contexts): New.
2001-09-03 Werner Koch <wk@gnupg.org>
* t-encrypt.c (print_op_info): New and use it after each operation.
2001-08-28 Werner Koch <wk@gnupg.org>
* t-sign.c (print_op_info): New and use it after each operation.
2001-03-15 Werner Koch <wk@gnupg.org>
* t-keylist.c (doit): List subkeys too, show caps.
2001-02-13 Werner Koch <wk@gnupg.org>
* t-verify.c (print_sig_stat): Repaled ulong by unsigned long
because we don't use the config stuff here.
2001-02-12 Werner Koch <wk@gnupg.org>
* tests/t-verify.c (print_sig_stat): Print info about the keys.
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2011 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 file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/tests/gpg/geheim.txt b/tests/gpg/geheim.txt
index 99a54788..49d78a72 100644
--- a/tests/gpg/geheim.txt
+++ b/tests/gpg/geheim.txt
@@ -1,2 +1,2 @@
-Wenn Sie dies lesen können, ist es wohl nicht
+Wenn Sie dies lesen können, ist es wohl nicht
geheim genug.

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jan 20, 1:43 AM (1 d, 7 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
58/cc/9b9042df77531438ee33b4eea58e

Event Timeline