doc/
2002-11-19 Marcus Brinkmann <marcus@g10code.de> * gpgme.texi (Generating Keys): Document new argument to gpgme_op_genkey. gpgme/ 2002-11-19 Marcus Brinkmann <marcus@g10code.de> * genkey.c: Only include <config.h> if [HAVE_CONFIG_H]. (struct genkey_result_s): Add new member FPR. (_gpgme_release_genkey_result): Free RESULT->fpr if set. (genkey_status_handler): Extract the fingerprint from the status line. (gpgme_op_genkey): Add new argument FPR and return the fingerprint in it. * gpgme.h: Adjust prototype of gpgme_op_genkey. tests/ 2002-11-19 Marcus Brinkmann <marcus@g10code.de> * gpg/t-genkey.c (main): Add missing argument to gpgme_op_genkey invocation. CVSk: ----------------------------------------------------------------------
This commit is contained in:
parent
a1bf7a10b4
commit
dfc32a5441
1
NEWS
1
NEWS
@ -22,6 +22,7 @@ gpgme_op_verify CHANGED: Take different data objects for
|
|||||||
signed text and plain text.
|
signed text and plain text.
|
||||||
gpgme_op_verify_start CHANGED: See gpgme_op_verify.
|
gpgme_op_verify_start CHANGED: See gpgme_op_verify.
|
||||||
gpgme_check_engine REMOVED: Deprecated since 0.3.0.
|
gpgme_check_engine REMOVED: Deprecated since 0.3.0.
|
||||||
|
gpgme_op_genkey CHANGED: New parameter FPR.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Noteworthy changes in version 0.3.11 (2002-09-20)
|
Noteworthy changes in version 0.3.11 (2002-09-20)
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
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>
|
2002-11-05 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* gpgme.texi (Verify): Fix prototype of gpgme_get_sig_key.
|
* gpgme.texi (Verify): Fix prototype of gpgme_get_sig_key.
|
||||||
|
@ -1803,7 +1803,7 @@ The function @code{gpgme_key_release} is an alias for
|
|||||||
@cindex key, creation
|
@cindex key, creation
|
||||||
@cindex key ring, add
|
@cindex key ring, add
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_op_genkey (@w{GpgmeCtx @var{ctx}}, @w{const char *@var{parms}}, @w{GpgmeData @var{pubkey}}, @w{GpgmeData @var{seckey}})
|
@deftypefun GpgmeError gpgme_op_genkey (@w{GpgmeCtx @var{ctx}}, @w{const char *@var{parms}}, @w{GpgmeData @var{pubkey}}, @w{GpgmeData @var{seckey}}, @w{char **@var{fpr}})
|
||||||
The function @code{gpgme_op_genkey} generates a new key pair in the
|
The function @code{gpgme_op_genkey} generates a new key pair in the
|
||||||
context @var{ctx} and puts it into the standard key ring if both
|
context @var{ctx} and puts it into the standard key ring if both
|
||||||
@var{pubkey} and @var{seckey} are @code{NULL}. In this case the
|
@var{pubkey} and @var{seckey} are @code{NULL}. In this case the
|
||||||
@ -1856,6 +1856,13 @@ for now is ``internal''. The content of the @code{GnupgKeyParms}
|
|||||||
container is passed verbatim to GnuPG. Control statements are not
|
container is passed verbatim to GnuPG. Control statements are not
|
||||||
allowed.
|
allowed.
|
||||||
|
|
||||||
|
If @var{fpr} is not a null pointer, the function succeeds, and the
|
||||||
|
crypto engine supports it, *@var{fpr} will contain a string with the
|
||||||
|
fingerprint of the key, allocated with @code{malloc}. If both a
|
||||||
|
primary and a sub key was generated, the fingerprint of the primary
|
||||||
|
key will be returned. If the crypto engine does not provide the
|
||||||
|
fingerprint, *@var{fpr} will be a null pointer.
|
||||||
|
|
||||||
The function returns @code{GPGME_No_Error} if the operation could be
|
The function returns @code{GPGME_No_Error} if the operation could be
|
||||||
started successfully, @code{GPGME_Invalid_Value} if @var{parms} is not
|
started successfully, @code{GPGME_Invalid_Value} if @var{parms} is not
|
||||||
a valid XML string, @code{GPGME_Not_Supported} if @var{pubkey} or
|
a valid XML string, @code{GPGME_Not_Supported} if @var{pubkey} or
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* genkey.c: Only include <config.h> if [HAVE_CONFIG_H].
|
||||||
|
(struct genkey_result_s): Add new member FPR.
|
||||||
|
(_gpgme_release_genkey_result): Free RESULT->fpr if set.
|
||||||
|
(genkey_status_handler): Extract the fingerprint from the status
|
||||||
|
line.
|
||||||
|
(gpgme_op_genkey): Add new argument FPR and return the fingerprint
|
||||||
|
in it.
|
||||||
|
* gpgme.h: Adjust prototype of gpgme_op_genkey.
|
||||||
|
|
||||||
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
|
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* rungpg.c (gpg_keylist): Add --with-fingerprint to gpg invocation
|
* rungpg.c (gpg_keylist): Add --with-fingerprint to gpg invocation
|
||||||
|
@ -1,25 +1,26 @@
|
|||||||
/* genkey.c - key generation
|
/* genkey.c - Key generation.
|
||||||
* Copyright (C) 2000 Werner Koch (dd9jn)
|
Copyright (C) 2000 Werner Koch (dd9jn)
|
||||||
* Copyright (C) 2001, 2002 g10 Code GmbH
|
Copyright (C) 2001, 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
|
||||||
*
|
|
||||||
* GPGME 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.
|
|
||||||
*
|
|
||||||
* GPGME 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
This file is part of GPGME.
|
||||||
|
|
||||||
|
GPGME 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.
|
||||||
|
|
||||||
|
GPGME 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 GPGME; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -34,6 +35,7 @@ struct genkey_result_s
|
|||||||
{
|
{
|
||||||
int created_primary : 1;
|
int created_primary : 1;
|
||||||
int created_sub : 1;
|
int created_sub : 1;
|
||||||
|
char *fpr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -42,9 +44,12 @@ _gpgme_release_genkey_result (GenKeyResult result)
|
|||||||
{
|
{
|
||||||
if (!result)
|
if (!result)
|
||||||
return;
|
return;
|
||||||
|
if (result->fpr)
|
||||||
|
free (result->fpr);
|
||||||
free (result);
|
free (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
genkey_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
|
genkey_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
|
||||||
{
|
{
|
||||||
@ -63,6 +68,14 @@ genkey_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
|
|||||||
ctx->result.genkey->created_primary = 1;
|
ctx->result.genkey->created_primary = 1;
|
||||||
if (*args == 'B' || *args == 'S')
|
if (*args == 'B' || *args == 'S')
|
||||||
ctx->result.genkey->created_sub = 1;
|
ctx->result.genkey->created_sub = 1;
|
||||||
|
if (args[1] == ' ')
|
||||||
|
{
|
||||||
|
if (ctx->result.genkey->fpr)
|
||||||
|
free (ctx->result.genkey->fpr);
|
||||||
|
ctx->result.genkey->fpr = strdup (&args[2]);
|
||||||
|
if (!ctx->result.genkey->fpr)
|
||||||
|
ctx->error = mk_error (Out_Of_Core);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -78,6 +91,7 @@ genkey_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GpgmeError
|
static GpgmeError
|
||||||
_gpgme_op_genkey_start (GpgmeCtx ctx, int synchronous, const char *parms,
|
_gpgme_op_genkey_start (GpgmeCtx ctx, int synchronous, const char *parms,
|
||||||
GpgmeData pubkey, GpgmeData seckey)
|
GpgmeData pubkey, GpgmeData seckey)
|
||||||
@ -183,6 +197,7 @@ gpgme_op_genkey_start (GpgmeCtx ctx, const char *parms,
|
|||||||
* @parms: XML string with the key parameters
|
* @parms: XML string with the key parameters
|
||||||
* @pubkey: Returns the public key
|
* @pubkey: Returns the public key
|
||||||
* @seckey: Returns the secret key
|
* @seckey: Returns the secret key
|
||||||
|
* @fpr: Returns the fingerprint of the key.
|
||||||
*
|
*
|
||||||
* Generate a new key and store the key in the default keyrings if both
|
* Generate a new key and store the key in the default keyrings if both
|
||||||
* @pubkey and @seckey are NULL. If @pubkey and @seckey are given, the newly
|
* @pubkey and @seckey are NULL. If @pubkey and @seckey are given, the newly
|
||||||
@ -193,10 +208,22 @@ gpgme_op_genkey_start (GpgmeCtx ctx, const char *parms,
|
|||||||
**/
|
**/
|
||||||
GpgmeError
|
GpgmeError
|
||||||
gpgme_op_genkey (GpgmeCtx ctx, const char *parms,
|
gpgme_op_genkey (GpgmeCtx ctx, const char *parms,
|
||||||
GpgmeData pubkey, GpgmeData seckey)
|
GpgmeData pubkey, GpgmeData seckey,
|
||||||
|
char **fpr)
|
||||||
{
|
{
|
||||||
GpgmeError err = _gpgme_op_genkey_start (ctx, 1, parms, pubkey, seckey);
|
GpgmeError err = _gpgme_op_genkey_start (ctx, 1, parms, pubkey, seckey);
|
||||||
if (!err)
|
if (!err)
|
||||||
err = _gpgme_wait_one (ctx);
|
err = _gpgme_wait_one (ctx);
|
||||||
|
if (!err && fpr)
|
||||||
|
{
|
||||||
|
if (ctx->result.genkey->fpr)
|
||||||
|
{
|
||||||
|
*fpr = strdup (ctx->result.genkey->fpr);
|
||||||
|
if (!*fpr)
|
||||||
|
return mk_error (Out_Of_Core);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*fpr = NULL;
|
||||||
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,22 @@
|
|||||||
/* gpgme.h - GnuPG Made Easy
|
/* gpgme.h - Public interface to GnuPG Made Easy.
|
||||||
* Copyright (C) 2000 Werner Koch (dd9jn)
|
Copyright (C) 2000 Werner Koch (dd9jn)
|
||||||
* Copyright (C) 2001, 2002 g10 Code GmbH
|
Copyright (C) 2001, 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef GPGME_H
|
#ifndef GPGME_H
|
||||||
#define GPGME_H
|
#define GPGME_H
|
||||||
@ -115,10 +114,10 @@ GpgmeDataType;
|
|||||||
/* The possible encoding mode of GpgmeData objects. */
|
/* The possible encoding mode of GpgmeData objects. */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GPGME_DATA_ENCODING_NONE = 0, /* i.e. not specified */
|
GPGME_DATA_ENCODING_NONE = 0, /* I.e. not specified. */
|
||||||
GPGME_DATA_ENCODING_BINARY = 1,
|
GPGME_DATA_ENCODING_BINARY = 1,
|
||||||
GPGME_DATA_ENCODING_BASE64 = 2,
|
GPGME_DATA_ENCODING_BASE64 = 2,
|
||||||
GPGME_DATA_ENCODING_ARMOR = 3 /* Either PEM or OpenPGP Armor */
|
GPGME_DATA_ENCODING_ARMOR = 3 /* Either PEM or OpenPGP Armor. */
|
||||||
}
|
}
|
||||||
GpgmeDataEncoding;
|
GpgmeDataEncoding;
|
||||||
|
|
||||||
@ -137,20 +136,20 @@ typedef enum
|
|||||||
}
|
}
|
||||||
GpgmeSigStat;
|
GpgmeSigStat;
|
||||||
|
|
||||||
/* Flags used with the GPGME_ATTR_SIG_SUMMARY. */
|
/* Flags used with the GPGME_ATTR_SIG_SUMMARY. */
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
GPGME_SIGSUM_VALID = 0x0001, /* The signature is fully valid */
|
GPGME_SIGSUM_VALID = 0x0001, /* The signature is fully valid. */
|
||||||
GPGME_SIGSUM_GREEN = 0x0002, /* The signature is good. */
|
GPGME_SIGSUM_GREEN = 0x0002, /* The signature is good. */
|
||||||
GPGME_SIGSUM_RED = 0x0004, /* The signature is bad. */
|
GPGME_SIGSUM_RED = 0x0004, /* The signature is bad. */
|
||||||
GPGME_SIGSUM_KEY_REVOKED = 0x0010, /* One key has been revoked. */
|
GPGME_SIGSUM_KEY_REVOKED = 0x0010, /* One key has been revoked. */
|
||||||
GPGME_SIGSUM_KEY_EXPIRED = 0x0020, /* One key has expired. */
|
GPGME_SIGSUM_KEY_EXPIRED = 0x0020, /* One key has expired. */
|
||||||
GPGME_SIGSUM_SIG_EXPIRED = 0x0040, /* The signature has expired. */
|
GPGME_SIGSUM_SIG_EXPIRED = 0x0040, /* The signature has expired. */
|
||||||
GPGME_SIGSUM_KEY_MISSING = 0x0080, /* Can't verify: key missing. */
|
GPGME_SIGSUM_KEY_MISSING = 0x0080, /* Can't verify: key missing. */
|
||||||
GPGME_SIGSUM_CRL_MISSING = 0x0100, /* CRL not available. */
|
GPGME_SIGSUM_CRL_MISSING = 0x0100, /* CRL not available. */
|
||||||
GPGME_SIGSUM_CRL_TOO_OLD = 0x0200, /* Available CRL is too old. */
|
GPGME_SIGSUM_CRL_TOO_OLD = 0x0200, /* Available CRL is too old. */
|
||||||
GPGME_SIGSUM_BAD_POLICY = 0x0400, /* A policy was not met. */
|
GPGME_SIGSUM_BAD_POLICY = 0x0400, /* A policy was not met. */
|
||||||
GPGME_SIGSUM_SYS_ERROR = 0x0800 /* A system error occured. */
|
GPGME_SIGSUM_SYS_ERROR = 0x0800 /* A system error occured. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -716,11 +715,14 @@ GpgmeError gpgme_op_export (GpgmeCtx ctx, GpgmeRecipients recp,
|
|||||||
|
|
||||||
/* Generate a new keypair and add it to the keyring. PUBKEY and
|
/* Generate a new keypair and add it to the keyring. PUBKEY and
|
||||||
SECKEY should be null for now. PARMS specifies what keys should be
|
SECKEY should be null for now. PARMS specifies what keys should be
|
||||||
generated. */
|
generated. On success, if *FPR is non-null, it contains a
|
||||||
|
malloc()'ed string with the fingerprint of the generated key on
|
||||||
|
success. */
|
||||||
GpgmeError gpgme_op_genkey_start (GpgmeCtx ctx, const char *parms,
|
GpgmeError gpgme_op_genkey_start (GpgmeCtx ctx, const char *parms,
|
||||||
GpgmeData pubkey, GpgmeData seckey);
|
GpgmeData pubkey, GpgmeData seckey);
|
||||||
GpgmeError gpgme_op_genkey (GpgmeCtx ctx, const char *parms,
|
GpgmeError gpgme_op_genkey (GpgmeCtx ctx, const char *parms,
|
||||||
GpgmeData pubkey, GpgmeData seckey);
|
GpgmeData pubkey, GpgmeData seckey,
|
||||||
|
char **fpr);
|
||||||
|
|
||||||
/* Delete KEY from the keyring. If ALLOW_SECRET is non-zero, secret
|
/* Delete KEY from the keyring. If ALLOW_SECRET is non-zero, secret
|
||||||
keys are also deleted. */
|
keys are also deleted. */
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2002-11-19 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* gpgmeplug.c (requestDecentralCertificate): Add new argument to
|
||||||
|
gpgme_op_genkey invocation.
|
||||||
|
|
||||||
2002-10-12 Marcus Brinkmann <marcus@g10code.de>
|
2002-10-12 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* gpgmeplug.c (checkMessageSignature): Update call to
|
* gpgmeplug.c (checkMessageSignature): Update call to
|
||||||
|
@ -1802,7 +1802,7 @@ bool requestDecentralCertificate( const char* certparms,
|
|||||||
gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
|
gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
|
||||||
/* Don't ASCII-armor, the MUA will use base64 encoding */
|
/* Don't ASCII-armor, the MUA will use base64 encoding */
|
||||||
/* gpgme_set_armor (ctx, 1); */
|
/* gpgme_set_armor (ctx, 1); */
|
||||||
err = gpgme_op_genkey (ctx, certparms, pub, NULL );
|
err = gpgme_op_genkey (ctx, certparms, pub, NULL, NULL);
|
||||||
fprintf( stderr, "3: gpgme returned %d\n", err );
|
fprintf( stderr, "3: gpgme returned %d\n", err );
|
||||||
if( err != GPGME_No_Error ) {
|
if( err != GPGME_No_Error ) {
|
||||||
gpgme_data_release( pub );
|
gpgme_data_release( pub );
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
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>
|
2002-10-09 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* gpg/t-decrypt.c (print_data): Update to new gpgme_data_read
|
* gpg/t-decrypt.c (print_data): Update to new gpgme_data_read
|
||||||
|
@ -70,7 +70,7 @@ main (int argc, char **argv )
|
|||||||
if (!parms)
|
if (!parms)
|
||||||
exit (8);
|
exit (8);
|
||||||
sprintf (parms, format, ++count );
|
sprintf (parms, format, ++count );
|
||||||
err = gpgme_op_genkey (ctx, parms, NULL, NULL );
|
err = gpgme_op_genkey (ctx, parms, NULL, NULL, NULL);
|
||||||
fail_if_err (err);
|
fail_if_err (err);
|
||||||
free (parms);
|
free (parms);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user