mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-08 12:44:23 +01:00
* util.h (digitp, hexdigitp): New ctype like macros.
(atoi_1,atoi_2,atoi_4,xtoi_1,xtoi_2): New. * command.c: Removed the conversion macros as they are now in ../common/util.h.
This commit is contained in:
parent
317bccd134
commit
7606e3b33a
@ -1,3 +1,8 @@
|
||||
2001-12-14 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* command.c: Removed the conversion macros as they are now in
|
||||
../common/util.h.
|
||||
|
||||
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* query.c (LINELENGTH): Removed.
|
||||
|
@ -37,16 +37,7 @@
|
||||
|
||||
|
||||
#define set_error(e,t) assuan_set_error (ctx, ASSUAN_ ## e, (t))
|
||||
#define digitp(a) ((a) >= '0' && (a) <= '9')
|
||||
#define hexdigitp(a) (digitp (a) \
|
||||
|| ((a) >= 'A' && (a) <= 'F') \
|
||||
|| ((a) >= 'a' && (a) <= 'f'))
|
||||
#define atoi_1(p) (*(p) - '0' )
|
||||
#define atoi_2(p) ((atoi_1(p) * 10) + atoi_1((p)+1))
|
||||
/* assumes ASCII and pre-checked values */
|
||||
#define xtoi_1(p) (*(p) <= '9'? (*(p)- '0'): \
|
||||
*(p) <= 'F'? (*(p)-'A'+10):(*(p)-'a'+10))
|
||||
#define xtoi_2(p) ((xtoi_1(p) * 16) + xtoi_1((p)+1))
|
||||
|
||||
|
||||
#if MAX_DIGEST_LEN < 20
|
||||
#error MAX_DIGEST_LEN shorter than keygrip
|
||||
@ -129,7 +120,7 @@ cmd_sigkey (ASSUAN_CONTEXT ctx, char *line)
|
||||
unsigned char *buf;
|
||||
|
||||
/* parse the hash value */
|
||||
for (p=line,n=0; hexdigitp (*p); p++, n++)
|
||||
for (p=line,n=0; hexdigitp (p); p++, n++)
|
||||
;
|
||||
if (*p)
|
||||
return set_error (Parameter_Error, "invalid hexstring");
|
||||
@ -169,7 +160,7 @@ cmd_sethash (ASSUAN_CONTEXT ctx, char *line)
|
||||
ctrl->digest.algo = algo;
|
||||
|
||||
/* parse the hash value */
|
||||
for (p=line,n=0; hexdigitp (*p); p++, n++)
|
||||
for (p=line,n=0; hexdigitp (p); p++, n++)
|
||||
;
|
||||
if (*p)
|
||||
return set_error (Parameter_Error, "invalid hexstring");
|
||||
|
@ -458,7 +458,8 @@ assuan_process_next (ASSUAN_CONTEXT ctx)
|
||||
*
|
||||
* Return all active filedescriptors for the given context. This
|
||||
* function can be used to select on the fds and call
|
||||
* assuan_process_next() if there is an active one.
|
||||
* assuan_process_next() if there is an active one. The first fd in
|
||||
* the array is the one used for the command connection.
|
||||
*
|
||||
* Note, that write FDs are not yet supported.
|
||||
*
|
||||
|
@ -58,8 +58,8 @@ int map_assuan_err (int err);
|
||||
/* some macros to replace ctype ones and avoid locale problems */
|
||||
#define digitp(p) (*(p) >= '0' && *(p) <= '9')
|
||||
#define hexdigitp(a) (digitp (a) \
|
||||
|| ((a) >= 'A' && (a) <= 'F') \
|
||||
|| ((a) >= 'a' && (a) <= 'f'))
|
||||
|| (*(a) >= 'A' && *(a) <= 'F') \
|
||||
|| (*(a) >= 'a' && *(a) <= 'f'))
|
||||
/* the atoi macros assume that the buffer has only valid digits */
|
||||
#define atoi_1(p) (*(p) - '0' )
|
||||
#define atoi_2(p) ((atoi_1(p) * 10) + atoi_1((p)+1))
|
||||
|
@ -121,7 +121,6 @@ X.509 specific are noted like [X.509: xxx]
|
||||
#include "keybox-defs.h"
|
||||
|
||||
|
||||
|
||||
/* special values of the signature status */
|
||||
#define SF_NONE(a) ( !(a) )
|
||||
#define SF_NOKEY(a) ((a) & (1<<0))
|
||||
@ -768,6 +767,31 @@ _keybox_create_pgp_blob (KEYBOXBLOB *r_blob, KBNODE keyblock)
|
||||
#endif /*KEYBOX_WITH_OPENPGP*/
|
||||
|
||||
#ifdef KEYBOX_WITH_X509
|
||||
|
||||
/* return an allocated string with the email address extracted from a
|
||||
DN */
|
||||
static char *
|
||||
x509_email_kludge (const char *name)
|
||||
{
|
||||
#if 0
|
||||
if (!strncmp (name, "1.2.840.113549.1.9.1=#", 22)
|
||||
&& hexdigitp (name+22) && hexdigitp (name+23))
|
||||
{ /* this looks pretty much like an email address in the
|
||||
subjects DN we use this to add an additional user ID
|
||||
entry. This way, openSSL generated keys get a nicer and
|
||||
usable listing */
|
||||
char *buf = NULL;
|
||||
|
||||
/* FIXME */
|
||||
|
||||
return buf;
|
||||
}
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Note: We should move calculation of the digest into libksba and
|
||||
remove that parameter */
|
||||
int
|
||||
@ -813,6 +837,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
|
||||
names[blob->nuids++] = p;
|
||||
for (i=0; (p = ksba_cert_get_subject (cert, i)); i++)
|
||||
{
|
||||
|
||||
if (blob->nuids >= max_names)
|
||||
{
|
||||
unsigned char **tmp;
|
||||
@ -826,6 +851,8 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
|
||||
}
|
||||
}
|
||||
names[blob->nuids++] = p;
|
||||
if (!i && (p=x509_email_kludge (p)))
|
||||
names[blob->nuids++] = p; /* due to !i we don't need to check bounds*/
|
||||
}
|
||||
|
||||
/* space for signature information */
|
||||
|
@ -316,7 +316,7 @@ cmd_message (ASSUAN_CONTEXT ctx, char *line)
|
||||
if (strncmp (line, "FD=", 3))
|
||||
return set_error (Syntax_Error, "FD=<n> expected");
|
||||
line += 3;
|
||||
if (!digitp (*line))
|
||||
if (!digitp (line))
|
||||
return set_error (Syntax_Error, "number required");
|
||||
fd = strtoul (line, &endp, 10);
|
||||
if (*endp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user