aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2004-04-29 10:55:50 +0000
committerMarcus Brinkmann <[email protected]>2004-04-29 10:55:50 +0000
commitb9ed761b6ebcb31368af72c25fbd0eba2124540b (patch)
treeaa5fd7fd6ffa9e3a1e6dbcb1d26c4260b3fef02b
parent2004-04-22 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-b9ed761b6ebcb31368af72c25fbd0eba2124540b.tar.gz
gpgme-b9ed761b6ebcb31368af72c25fbd0eba2124540b.zip
2004-04-29 Marcus Brinkmann <[email protected]>
* keylist.c (set_mainkey_trust_info): Rewritten. (set_subkey_capability): Handle 'd' (disabled). (set_mainkey_capability): Rewritten.
Diffstat (limited to '')
-rw-r--r--gpgme/ChangeLog6
-rw-r--r--gpgme/keylist.c119
2 files changed, 65 insertions, 60 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index d92da6c9..a97dc38d 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-29 Marcus Brinkmann <[email protected]>
+
+ * keylist.c (set_mainkey_trust_info): Rewritten.
+ (set_subkey_capability): Handle 'd' (disabled).
+ (set_mainkey_capability): Rewritten.
+
2004-04-22 Marcus Brinkmann <[email protected]>
* gpgme.m4: Quote first argument to AC_DEFUN.
diff --git a/gpgme/keylist.c b/gpgme/keylist.c
index eb8597e2..e65abaea 100644
--- a/gpgme/keylist.c
+++ b/gpgme/keylist.c
@@ -116,31 +116,63 @@ keylist_status_handler (void *priv, gpgme_status_code_t code, char *args)
}
+static void
+set_subkey_trust_info (gpgme_subkey_t subkey, const char *src)
+{
+ while (*src && !isdigit (*src))
+ {
+ switch (*src)
+ {
+ case 'e':
+ subkey->expired = 1;
+ break;
+
+ case 'r':
+ subkey->revoked = 1;
+ break;
+
+ case 'd':
+ /* Note that gpg 1.3 won't print that anymore but only uses
+ the capabilities field. */
+ subkey->disabled = 1;
+ break;
+
+ case 'i':
+ subkey->invalid = 1;
+ break;
+ }
+ src++;
+ }
+}
+
static void
set_mainkey_trust_info (gpgme_key_t key, const char *src)
{
- /* Look at letters and stop at the first digit. */
+ /* First set the trust info of the main key (the first subkey). */
+ set_subkey_trust_info (key->subkeys, src);
+
+ /* Now set the summarized trust info. */
while (*src && !isdigit (*src))
{
switch (*src)
{
case 'e':
- key->subkeys->expired = 1;
+ key->expired = 1;
break;
case 'r':
- key->subkeys->revoked = 1;
+ key->revoked = 1;
break;
case 'd':
/* Note that gpg 1.3 won't print that anymore but only uses
the capabilities field. */
- key->subkeys->disabled = 1;
+ key->disabled = 1;
break;
case 'i':
- key->subkeys->invalid = 1;
+ key->invalid = 1;
break;
}
src++;
@@ -189,27 +221,30 @@ set_userid_flags (gpgme_key_t key, const char *src)
static void
-set_subkey_trust_info (gpgme_subkey_t subkey, const char *src)
+set_subkey_capability (gpgme_subkey_t subkey, const char *src)
{
- /* Look at letters and stop at the first digit. */
- while (*src && !isdigit (*src))
+ while (*src)
{
switch (*src)
{
case 'e':
- subkey->expired = 1;
+ subkey->can_encrypt = 1;
break;
- case 'r':
- subkey->revoked = 1;
+ case 's':
+ subkey->can_sign = 1;
break;
- case 'd':
- subkey->disabled = 1;
+ case 'c':
+ subkey->can_certify = 1;
break;
- case 'i':
- subkey->invalid = 1;
+ case 'a':
+ subkey->can_authenticate = 1;
+ break;
+
+ case 'd':
+ subkey->disabled = 1;
break;
}
src++;
@@ -220,48 +255,39 @@ set_subkey_trust_info (gpgme_subkey_t subkey, const char *src)
static void
set_mainkey_capability (gpgme_key_t key, const char *src)
{
+ /* First set the capabilities of the main key (the first subkey). */
+ set_subkey_capability (key->subkeys, src);
+
while (*src)
{
switch (*src)
{
- case 'e':
- key->subkeys->can_encrypt = 1;
- break;
-
- case 's':
- key->subkeys->can_sign = 1;
- break;
-
- case 'c':
- key->subkeys->can_certify = 1;
- break;
-
- case 'a':
- key->subkeys->can_authenticate = 1;
- break;
-
- case 'd':
+ case 'd':
case 'D':
/* Note, that this flag is also set using the key validity
field for backward compatibility with gpg 1.2. We use d
and D, so that a future gpg version will be able to
disable certain subkeys. Currently it is expected that
gpg sets this for the primary key. */
- key->subkeys->disabled = 1;
+ key->disabled = 1;
break;
+ case 'e':
case 'E':
key->can_encrypt = 1;
break;
+ case 's':
case 'S':
key->can_sign = 1;
break;
+ case 'c':
case 'C':
key->can_certify = 1;
break;
+ case 'a':
case 'A':
key->can_authenticate = 1;
break;
@@ -272,33 +298,6 @@ set_mainkey_capability (gpgme_key_t key, const char *src)
static void
-set_subkey_capability (gpgme_subkey_t subkey, const char *src)
-{
- while (*src)
- {
- switch (*src)
- {
- case 'e':
- subkey->can_encrypt = 1;
- break;
-
- case 's':
- subkey->can_sign = 1;
- break;
-
- case 'c':
- subkey->can_certify = 1;
- break;
-
- case 'a':
- subkey->can_authenticate = 1;
- break;
- }
- src++;
- }
-}
-
-static void
set_ownertrust (gpgme_key_t key, const char *src)
{
/* Look at letters and stop at the first digit. */