~ubuntu-branches/ubuntu/precise/gnupg2/precise-proposed

« back to all changes in this revision

Viewing changes to g10/app-common.h

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Mueller
  • Date: 2005-03-29 10:30:32 UTC
  • Revision ID: james.westby@ubuntu.com-20050329103032-sj42n2ain3ipx310
Tags: upstream-1.9.15
ImportĀ upstreamĀ versionĀ 1.9.15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* app-common.h - Common declarations for all card applications
 
2
 *      Copyright (C) 2003 Free Software Foundation, Inc.
 
3
 *
 
4
 * This file is part of GnuPG.
 
5
 *
 
6
 * GnuPG is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; either version 2 of the License, or
 
9
 * (at your option) any later version.
 
10
 *
 
11
 * GnuPG is distributed in the hope that it will be useful,
 
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
 * GNU General Public License for more details.
 
15
 *
 
16
 * You should have received a copy of the GNU General Public License
 
17
 * along with this program; if not, write to the Free Software
 
18
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 
19
 *
 
20
 * $Id: app-common.h,v 1.6 2004/10/20 09:39:56 wk Exp $
 
21
 */
 
22
 
 
23
#ifndef GNUPG_SCD_APP_COMMON_H
 
24
#define GNUPG_SCD_APP_COMMON_H
 
25
 
 
26
#if GNUPG_MAJOR_VERSION != 1
 
27
#include <ksba.h>
 
28
#endif
 
29
 
 
30
struct app_local_s;  /* Defined by all app-*.c.  */
 
31
 
 
32
struct app_ctx_s {
 
33
  int initialized;  /* The application has been initialied and the
 
34
                       function pointers may be used.  Note that for
 
35
                       unsupported operations the particular
 
36
                       function pointer is set to NULL */
 
37
  int slot;         /* Used reader. */
 
38
  unsigned char *serialno; /* Serialnumber in raw form, allocated. */
 
39
  size_t serialnolen;      /* Length in octets of serialnumber. */
 
40
  const char *apptype;
 
41
  unsigned int card_version;
 
42
  int did_chv1;
 
43
  int force_chv1;   /* True if the card does not cache CHV1. */
 
44
  int did_chv2;
 
45
  int did_chv3;
 
46
  struct app_local_s *app_local;  /* Local to the application. */
 
47
  struct {
 
48
    void (*deinit) (app_t app);
 
49
    int (*learn_status) (app_t app, ctrl_t ctrl);
 
50
    int (*readcert) (app_t app, const char *certid,
 
51
                     unsigned char **cert, size_t *certlen);
 
52
    int (*getattr) (app_t app, ctrl_t ctrl, const char *name);
 
53
    int (*setattr) (app_t app, const char *name,
 
54
                    int (*pincb)(void*, const char *, char **),
 
55
                    void *pincb_arg,
 
56
                    const unsigned char *value, size_t valuelen);
 
57
    int (*sign) (app_t app,
 
58
                 const char *keyidstr, int hashalgo,
 
59
                 int (pincb)(void*, const char *, char **),
 
60
                 void *pincb_arg,
 
61
                 const void *indata, size_t indatalen,
 
62
                 unsigned char **outdata, size_t *outdatalen );
 
63
    int (*auth) (app_t app, const char *keyidstr,
 
64
                 int (*pincb)(void*, const char *, char **),
 
65
                 void *pincb_arg,
 
66
                 const void *indata, size_t indatalen,
 
67
                 unsigned char **outdata, size_t *outdatalen);
 
68
    int (*decipher) (app_t app, const char *keyidstr,
 
69
                     int (pincb)(void*, const char *, char **),
 
70
                     void *pincb_arg,
 
71
                     const void *indata, size_t indatalen,
 
72
                     unsigned char **outdata, size_t *outdatalen);
 
73
    int (*genkey) (app_t app, ctrl_t ctrl,
 
74
                   const char *keynostr, unsigned int flags,
 
75
                   int (*pincb)(void*, const char *, char **),
 
76
                   void *pincb_arg);
 
77
    int (*change_pin) (app_t app, ctrl_t ctrl,
 
78
                       const char *chvnostr, int reset_mode,
 
79
                       int (*pincb)(void*, const char *, char **),
 
80
                       void *pincb_arg);
 
81
    int (*check_pin) (app_t app, const char *keyidstr,
 
82
                      int (pincb)(void*, const char *, char **),
 
83
                      void *pincb_arg);
 
84
  } fnc;
 
85
 
 
86
};
 
87
 
 
88
#if GNUPG_MAJOR_VERSION == 1
 
89
int app_select_openpgp (app_t app);
 
90
int app_get_serial_and_stamp (app_t app, char **serial, time_t *stamp);
 
91
int app_openpgp_storekey (app_t app, int keyno,
 
92
                          unsigned char *template, size_t template_len,
 
93
                          time_t created_at,
 
94
                          const unsigned char *m, size_t mlen,
 
95
                          const unsigned char *e, size_t elen,
 
96
                          int (*pincb)(void*, const char *, char **),
 
97
                          void *pincb_arg);
 
98
#else
 
99
/*-- app-help.c --*/
 
100
gpg_error_t app_help_get_keygrip_string (ksba_cert_t cert, char *hexkeygrip);
 
101
size_t app_help_read_length_of_cert (int slot, int fid, size_t *r_certoff);
 
102
 
 
103
 
 
104
/*-- app.c --*/
 
105
app_t select_application (ctrl_t ctrl, int slot, const char *name);
 
106
void release_application (app_t app);
 
107
int app_munge_serialno (app_t app);
 
108
int app_get_serial_and_stamp (app_t app, char **serial, time_t *stamp);
 
109
int app_write_learn_status (app_t app, ctrl_t ctrl);
 
110
int app_readcert (app_t app, const char *certid,
 
111
                  unsigned char **cert, size_t *certlen);
 
112
int app_getattr (app_t app, ctrl_t ctrl, const char *name);
 
113
int app_setattr (app_t app, const char *name,
 
114
                 int (*pincb)(void*, const char *, char **),
 
115
                 void *pincb_arg,
 
116
                 const unsigned char *value, size_t valuelen);
 
117
int app_sign (app_t app, const char *keyidstr, int hashalgo,
 
118
              int (pincb)(void*, const char *, char **),
 
119
              void *pincb_arg,
 
120
              const void *indata, size_t indatalen,
 
121
              unsigned char **outdata, size_t *outdatalen );
 
122
int app_auth (app_t app, const char *keyidstr,
 
123
              int (*pincb)(void*, const char *, char **),
 
124
              void *pincb_arg,
 
125
              const void *indata, size_t indatalen,
 
126
              unsigned char **outdata, size_t *outdatalen);
 
127
int app_decipher (app_t app, const char *keyidstr,
 
128
                  int (pincb)(void*, const char *, char **),
 
129
                  void *pincb_arg,
 
130
                  const void *indata, size_t indatalen,
 
131
                  unsigned char **outdata, size_t *outdatalen );
 
132
int app_genkey (app_t app, ctrl_t ctrl,
 
133
                const char *keynostr, unsigned int flags,
 
134
                int (*pincb)(void*, const char *, char **),
 
135
                void *pincb_arg);
 
136
int app_get_challenge (app_t app, size_t nbytes, unsigned char *buffer);
 
137
int app_change_pin (app_t app, ctrl_t ctrl,
 
138
                    const char *chvnostr, int reset_mode,
 
139
                    int (*pincb)(void*, const char *, char **),
 
140
                    void *pincb_arg);
 
141
int app_check_pin (app_t app, const char *keyidstr,
 
142
                   int (*pincb)(void*, const char *, char **),
 
143
                   void *pincb_arg);
 
144
 
 
145
 
 
146
/*-- app-openpgp.c --*/
 
147
int app_select_openpgp (app_t app);
 
148
 
 
149
int app_openpgp_cardinfo (app_t app,
 
150
                          char **serialno,
 
151
                          char **disp_name,
 
152
                          char **pubkey_url,
 
153
                          unsigned char **fpr1,
 
154
                          unsigned char **fpr2,
 
155
                          unsigned char **fpr3);
 
156
int app_openpgp_storekey (app_t app, int keyno,
 
157
                          unsigned char *template, size_t template_len,
 
158
                          time_t created_at,
 
159
                          const unsigned char *m, size_t mlen,
 
160
                          const unsigned char *e, size_t elen,
 
161
                          int (*pincb)(void*, const char *, char **),
 
162
                          void *pincb_arg);
 
163
int app_openpgp_readkey (app_t app, int keyno,
 
164
                         unsigned char **m, size_t *mlen,
 
165
                         unsigned char **e, size_t *elen);
 
166
/*-- app-nks.c --*/
 
167
int app_select_nks (app_t app);
 
168
 
 
169
/*-- app-dinsig.c --*/
 
170
int app_select_dinsig (app_t app);
 
171
 
 
172
/*-- app-p15.c --*/
 
173
int app_select_p15 (app_t app);
 
174
 
 
175
 
 
176
#endif
 
177
 
 
178
 
 
179
 
 
180
#endif /*GNUPG_SCD_APP_COMMON_H*/
 
181
 
 
182
 
 
183