aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2013-02-12 18:17:42 +0000
committerWerner Koch <[email protected]>2013-02-12 18:17:42 +0000
commitcaddeef4a7ffe5f2eb6453d364b6ae152e0f6625 (patch)
tree5894e3f0e365b0c9035efecea2bbd5ad3042ca51 /common
parentkbx: Switch from MD5 to SHA-1 for the checksum. (diff)
parentgpg: Implement card_store_subkey again. (diff)
downloadgnupg-caddeef4a7ffe5f2eb6453d364b6ae152e0f6625.tar.gz
gnupg-caddeef4a7ffe5f2eb6453d364b6ae152e0f6625.zip
Merge branch 'master' into key-storage-work
Diffstat (limited to 'common')
-rw-r--r--common/Makefile.am2
-rw-r--r--common/agent-opt.c71
-rw-r--r--common/shareddefs.h48
-rw-r--r--common/status.h5
4 files changed, 123 insertions, 3 deletions
diff --git a/common/Makefile.am b/common/Makefile.am
index e0f4b8084..ff8fee320 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
@@ -59,6 +59,7 @@ common_sources = \
util.h i18n.c i18n.h \
estream.c estream.h estream-printf.c estream-printf.h \
status.c status.h\
+ shareddefs.h \
openpgpdefs.h \
gc-opt-flags.h \
keyserver.h \
@@ -92,6 +93,7 @@ common_sources = \
userids.c userids.h \
openpgp-oid.c \
ssh-utils.c ssh-utils.h \
+ agent-opt.c \
helpfile.c
# To make the code easier to read we have split home some code into
diff --git a/common/agent-opt.c b/common/agent-opt.c
new file mode 100644
index 000000000..4317ba343
--- /dev/null
+++ b/common/agent-opt.c
@@ -0,0 +1,71 @@
+/* agent-opt.c - Helper for certain agent options
+ * Copyright (C) 2013 Free Software Foundation, Inc.
+ *
+ * This file is part of GnuPG.
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of either
+ *
+ * - the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * or
+ *
+ * - 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.
+ *
+ * or both in parallel, as here.
+ *
+ * This file 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "shareddefs.h"
+
+
+/* Parse VALUE and return an integer representing a pinentry_mode_t.
+ (-1) is returned for an invalid VALUE. */
+int
+parse_pinentry_mode (const char *value)
+{
+ int result;
+
+ if (!strcmp (value, "ask") || !strcmp (value, "default"))
+ result = PINENTRY_MODE_ASK;
+ else if (!strcmp (value, "cancel"))
+ result = PINENTRY_MODE_CANCEL;
+ else if (!strcmp (value, "error"))
+ result = PINENTRY_MODE_ERROR;
+ else if (!strcmp (value, "loopback"))
+ result = PINENTRY_MODE_LOOPBACK;
+ else
+ result = -1;
+
+ return result;
+}
+
+/* Return the string representation for the pinentry MODE. Returns
+ "?" for an invalid mode. */
+const char *
+str_pinentry_mode (pinentry_mode_t mode)
+{
+ switch (mode)
+ {
+ case PINENTRY_MODE_ASK: return "ask";
+ case PINENTRY_MODE_CANCEL: return "cancel";
+ case PINENTRY_MODE_ERROR: return "error";
+ case PINENTRY_MODE_LOOPBACK: return "loopback";
+ }
+ return "?";
+}
diff --git a/common/shareddefs.h b/common/shareddefs.h
new file mode 100644
index 000000000..604b7e9d7
--- /dev/null
+++ b/common/shareddefs.h
@@ -0,0 +1,48 @@
+/* shareddefs.h - Constants and helpers useful for all modules
+ * Copyright (C) 2013 Free Software Foundation, Inc.
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of either
+ *
+ * - the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * or
+ *
+ * - 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.
+ *
+ * or both in parallel, as here.
+ *
+ * This file 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GNUPG_COMMON_SHAREDDEFS_H
+#define GNUPG_COMMON_SHAREDDEFS_H
+
+/* Values for the pinentry mode. */
+typedef enum
+ {
+ PINENTRY_MODE_ASK = 0, /* Ask via pinentry (default). */
+ PINENTRY_MODE_CANCEL, /* Always return a cancel error. */
+ PINENTRY_MODE_ERROR, /* Return error code for no pinentry. */
+ PINENTRY_MODE_LOOPBACK /* Use an inquiry to get the value. */
+ }
+pinentry_mode_t;
+
+
+/*-- agent-opt.c --*/
+int parse_pinentry_mode (const char *value);
+const char *str_pinentry_mode (pinentry_mode_t mode);
+
+
+
+#endif /*GNUPG_COMMON_SHAREDDEFS_H*/
diff --git a/common/status.h b/common/status.h
index b6ac779e4..9219bf4d9 100644
--- a/common/status.h
+++ b/common/status.h
@@ -84,8 +84,6 @@ enum
STATUS_NOTATION_NAME,
STATUS_NOTATION_DATA,
STATUS_POLICY_URL,
- STATUS_BEGIN_STREAM,
- STATUS_END_STREAM,
STATUS_KEY_CREATED,
STATUS_USERID_HINT,
STATUS_UNEXPECTED,
@@ -97,7 +95,6 @@ enum
STATUS_ALREADY_SIGNED,
STATUS_KEYEXPIRED,
STATUS_KEYREVOKED,
- STATUS_SIGEXPIRED,
STATUS_EXPSIG,
STATUS_EXPKEYSIG,
@@ -125,6 +122,8 @@ enum
STATUS_TRUNCATED,
STATUS_MOUNTPOINT,
+ STATUS_PINENTRY_LAUNCHED,
+
STATUS_ERROR,
STATUS_SUCCESS
};