mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-08 12:44:23 +01:00
gpgsm does now build and a dummy server can be started.
This commit is contained in:
parent
1f79656dad
commit
4fcb72b382
@ -20,6 +20,7 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
INCLUDES = -I.. -I$(top_srcdir)/include
|
INCLUDES = -I.. -I$(top_srcdir)/include
|
||||||
|
BUILT_SOURCES = assuan-errors.c
|
||||||
|
|
||||||
noinst_LIBRARIES = libassuan.a
|
noinst_LIBRARIES = libassuan.a
|
||||||
|
|
||||||
@ -29,7 +30,11 @@ libassuan_a_SOURCES = \
|
|||||||
assuan.h \
|
assuan.h \
|
||||||
assuan-defs.h \
|
assuan-defs.h \
|
||||||
assuan-util.c \
|
assuan-util.c \
|
||||||
|
assuan-errors.c \
|
||||||
assuan-buffer.c \
|
assuan-buffer.c \
|
||||||
assuan-handler.c \
|
assuan-handler.c \
|
||||||
assuan-pipe-server.c
|
assuan-pipe-server.c
|
||||||
|
|
||||||
|
|
||||||
|
assuan-errors.c : assuan.h
|
||||||
|
$(srcdir)/mkerrors < $(srcdir)/assuan.h > assuan-errors.c
|
||||||
|
@ -76,8 +76,8 @@ int assuan_register_command (ASSUAN_CONTEXT ctx,
|
|||||||
|
|
||||||
|
|
||||||
/*-- assuan-pipe-server.c --*/
|
/*-- assuan-pipe-server.c --*/
|
||||||
|
int assuan_init_pipe_server (ASSUAN_CONTEXT *r_ctx, int filedes[2]);
|
||||||
|
void assuan_deinit_pipe_server (ASSUAN_CONTEXT ctx);
|
||||||
|
|
||||||
|
|
||||||
/*-- assuan-util.c --*/
|
/*-- assuan-util.c --*/
|
||||||
@ -85,6 +85,8 @@ void assuan_set_malloc_hooks ( void *(*new_alloc_func)(size_t n),
|
|||||||
void *(*new_realloc_func)(void *p, size_t n),
|
void *(*new_realloc_func)(void *p, size_t n),
|
||||||
void (*new_free_func)(void*) );
|
void (*new_free_func)(void*) );
|
||||||
|
|
||||||
|
/*-- assuan-errors.c (built) --*/
|
||||||
|
const char *assuan_strerror (AssuanError err);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
71
assuan/mkerrors
Executable file
71
assuan/mkerrors
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# mkerrors - Extract error strings from assuan.h
|
||||||
|
# and create C source for assuan_strerror
|
||||||
|
# Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GnuPG.
|
||||||
|
#
|
||||||
|
# GnuPG 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.
|
||||||
|
#
|
||||||
|
# GnuPG 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
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
/* Generated automatically by mkerrors */
|
||||||
|
/* Do not edit! */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "assuan.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* assuan_strerror:
|
||||||
|
* @err: Error code
|
||||||
|
*
|
||||||
|
* This function returns a textual representaion of the given
|
||||||
|
* errorcode. If this is an unknown value, a string with the value
|
||||||
|
* is returned (Beware: it is hold in a static buffer).
|
||||||
|
*
|
||||||
|
* Return value: String with the error description.
|
||||||
|
**/
|
||||||
|
const char *
|
||||||
|
assuan_strerror (AssuanError err)
|
||||||
|
{
|
||||||
|
const char *s;
|
||||||
|
static char buf[25];
|
||||||
|
|
||||||
|
switch (err)
|
||||||
|
{
|
||||||
|
EOF
|
||||||
|
|
||||||
|
awk '
|
||||||
|
/ASSUAN_No_Error/ { okay=1 }
|
||||||
|
!okay {next}
|
||||||
|
/}/ { exit 0 }
|
||||||
|
/ASSUAN_[A-Za-z_]*/ { print_code($1) }
|
||||||
|
|
||||||
|
|
||||||
|
function print_code( s )
|
||||||
|
{
|
||||||
|
printf " case %s: s=\"", s ;
|
||||||
|
gsub(/_/, " ", s );
|
||||||
|
printf "%s\"; break;\n", substr(s,8);
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
default: sprintf (buf, "ec=%d", err ); s=buf; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
@ -18,19 +18,16 @@
|
|||||||
|
|
||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
#INCLUDES = -I.. -I$(top_srcdir)/include -I$(top_srcdir)/intl
|
|
||||||
#EXTRA_DIST =
|
|
||||||
|
|
||||||
#noinst_PROGRAMS = gpgd
|
|
||||||
bin_PROGRAMS = gpgsm
|
bin_PROGRAMS = gpgsm
|
||||||
|
|
||||||
gpgsm_SOURCES = gpgsm.c
|
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
|
||||||
|
LDFLAGS = @LDFLAGS@ $(LIBGCRYPT_LIBS)
|
||||||
|
|
||||||
|
gpgsm_SOURCES = \
|
||||||
#install-data-local:
|
gpgsm.c gpgsm.h \
|
||||||
# $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
util.h \
|
||||||
# $(INSTALL_DATA) $(srcdir)/options.skel \
|
server.c
|
||||||
# $(DESTDIR)$(pkgdatadir)/options.skel
|
|
||||||
|
gpgsm_LDADD = ../jnlib/libjnlib.a ../assuan/libassuan.a
|
||||||
|
|
||||||
|
|
||||||
|
1030
sm/gpgsm.c
1030
sm/gpgsm.c
File diff suppressed because it is too large
Load Diff
86
sm/gpgsm.h
Normal file
86
sm/gpgsm.h
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
/* gpgsm.h - Global definitions for GpgSM
|
||||||
|
* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* This file is part of GnuPG.
|
||||||
|
*
|
||||||
|
* GnuPG 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.
|
||||||
|
*
|
||||||
|
* GnuPG 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GPGSM_H
|
||||||
|
#define GPGSM_H
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
/* A large struct name "opt" to keep global flags */
|
||||||
|
struct {
|
||||||
|
unsigned int debug; /* debug flags (DBG_foo_VALUE) */
|
||||||
|
int verbose; /* verbosity level */
|
||||||
|
int quiet; /* be as quiet as possible */
|
||||||
|
int batch; /* run in batch mode, i.e w/o any user interaction */
|
||||||
|
int answer_yes; /* assume yes on most questions */
|
||||||
|
int answer_no; /* assume no on most questions */
|
||||||
|
int dry_run; /* don't change any persistent data */
|
||||||
|
|
||||||
|
const char *homedir; /* configuration directory name */
|
||||||
|
char *outfile; /* name of output file */
|
||||||
|
|
||||||
|
int with_colons; /* use column delimited output format */
|
||||||
|
int with_key_data;/* include raw key in the column delimted output */
|
||||||
|
|
||||||
|
int fingerprint; /* list fingerprints in all key listings */
|
||||||
|
|
||||||
|
int armor; /* force base64 armoring */
|
||||||
|
int no_armor; /* don't try to figure out whether data is base64 armored*/
|
||||||
|
|
||||||
|
int def_cipher_algo; /* cipher algorithm to use if nothing else is know */
|
||||||
|
int def_digest_algo; /* Ditto for hash algorithm */
|
||||||
|
int def_compress_algo; /* Ditto for compress algorithm */
|
||||||
|
|
||||||
|
char *def_recipient; /* userID of the default recipient */
|
||||||
|
int def_recipient_self; /* The default recipient is the default key */
|
||||||
|
|
||||||
|
int always_trust; /* Trust the given keys even if there is no
|
||||||
|
valid certification path */
|
||||||
|
int skip_verify; /* do not check signatures on data */
|
||||||
|
|
||||||
|
int lock_once; /* Keep lock once they are set */
|
||||||
|
|
||||||
|
int ignore_time_conflict; /* Ignore certain time conflicts */
|
||||||
|
|
||||||
|
} opt;
|
||||||
|
|
||||||
|
|
||||||
|
#define DBG_X509_VALUE 1 /* debug x.509 data reading/writing */
|
||||||
|
#define DBG_MPI_VALUE 2 /* debug mpi details */
|
||||||
|
#define DBG_CIPHER_VALUE 4 /* debug cipher handling */
|
||||||
|
#define DBG_MEMORY_VALUE 32 /* debug memory allocation stuff */
|
||||||
|
#define DBG_CACHE_VALUE 64 /* debug the caching */
|
||||||
|
#define DBG_MEMSTAT_VALUE 128 /* show memory statistics */
|
||||||
|
#define DBG_HASHING_VALUE 512 /* debug hashing operations */
|
||||||
|
|
||||||
|
#define DBG_X509 (opt.debug & DBG_X509_VALUE)
|
||||||
|
#define DBG_CIPHER (opt.debug & DBG_CIPHER_VALUE)
|
||||||
|
#define DBG_MEMORY (opt.debug & DBG_MEMORY_VALUE)
|
||||||
|
#define DBG_CACHE (opt.debug & DBG_CACHE_VALUE)
|
||||||
|
#define DBG_HASHING (opt.debug & DBG_HASHING_VALUE)
|
||||||
|
|
||||||
|
/*-- gpgsm.c --*/
|
||||||
|
void gpgsm_exit (int rc);
|
||||||
|
|
||||||
|
/*-- server.c --*/
|
||||||
|
void gpgsm_server (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*GPGSM_H*/
|
56
sm/server.c
Normal file
56
sm/server.c
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/* server.c - Server mode and main entry point
|
||||||
|
* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* This file is part of GnuPG.
|
||||||
|
*
|
||||||
|
* GnuPG 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.
|
||||||
|
*
|
||||||
|
* GnuPG 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "gpgsm.h"
|
||||||
|
#include "../assuan/assuan.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
gpgsm_server (void)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
int filedes[2];
|
||||||
|
ASSUAN_CONTEXT ctx;
|
||||||
|
|
||||||
|
/* For now we use a simple pipe based server so that we can work
|
||||||
|
from scripts. We will later add options to run as a daemon and
|
||||||
|
wait for requests on a Unix domain socket */
|
||||||
|
filedes[0] = 0;
|
||||||
|
filedes[1] = 1;
|
||||||
|
rc = assuan_init_pipe_server (&ctx, filedes);
|
||||||
|
if (rc)
|
||||||
|
{
|
||||||
|
log_error ("failed to initialize the server: %s\n",
|
||||||
|
assuan_strerror(rc));
|
||||||
|
gpgsm_exit (2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
assuan_deinit_pipe_server (ctx);
|
||||||
|
}
|
46
sm/util.h
Normal file
46
sm/util.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/* util.h - Utility functions for GpgSM
|
||||||
|
* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* This file is part of GnuPG.
|
||||||
|
*
|
||||||
|
* GnuPG 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.
|
||||||
|
*
|
||||||
|
* GnuPG 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef UTIL_H
|
||||||
|
#define UTIL_H
|
||||||
|
|
||||||
|
#include <gcrypt.h> /* we need this for the memory function protos */
|
||||||
|
|
||||||
|
#include "../jnlib/logging.h"
|
||||||
|
#include "../jnlib/argparse.h"
|
||||||
|
#include "../jnlib/stringhelp.h"
|
||||||
|
#include "../jnlib/mischelp.h"
|
||||||
|
#include "../jnlib/strlist.h"
|
||||||
|
#include "../jnlib/dotlock.h"
|
||||||
|
|
||||||
|
#define xtrymalloc(a) gcry_malloc ((a))
|
||||||
|
#define xtrycalloc(a,b) gcry_calloc ((a),(b))
|
||||||
|
#define xtryrealloc(a,b) gcry_realloc ((a),(b))
|
||||||
|
#define xtrystrdup(a) gcry_strdup ((a))
|
||||||
|
#define xfree(a) gcry_free ((a))
|
||||||
|
|
||||||
|
#define xmalloc(a) gcry_xmalloc ((a))
|
||||||
|
#define xcalloc(a,b) gcry_xcalloc ((a),(b))
|
||||||
|
#define xrealloc(a,b) gcry_xrealloc ((a),(b))
|
||||||
|
#define xstrdup(a) gcry_xstrdup ((a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*UTIL_H*/
|
Loading…
x
Reference in New Issue
Block a user