aboutsummaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sm/ChangeLog10
-rw-r--r--sm/certchain.c5
-rw-r--r--sm/certlist.c9
-rw-r--r--sm/keylist.c52
4 files changed, 54 insertions, 22 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog
index b135a63b7..d2b5a4fa4 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,13 @@
+2006-10-18 Werner Koch <[email protected]>
+
+ * keylist.c (list_cert_raw): Also test for GPG_ERR_NO_VALUE when
+ testing for GPG_ERR_NO_DATA.
+ * certlist.c (cert_usage_p, gpgsm_find_cert): Ditto.
+ * certchain.c (check_cert_policy): Ditto.
+
+ * keylist.c (list_cert_std, list_cert_raw): Print "none" for no
+ chain length available.
+
2006-10-17 Werner Koch <[email protected]>
* gpgsm.c: No need for pth.h.
diff --git a/sm/certchain.c b/sm/certchain.c
index d251e047e..09ffe014e 100644
--- a/sm/certchain.c
+++ b/sm/certchain.c
@@ -210,8 +210,9 @@ check_cert_policy (ksba_cert_t cert, int listmode, FILE *fplist)
int any_critical;
err = ksba_cert_get_cert_policies (cert, &policies);
- if (gpg_err_code (err) == GPG_ERR_NO_DATA)
- return 0; /* no policy given */
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
+ return 0; /* No policy given. */
if (err)
return err;
diff --git a/sm/certlist.c b/sm/certlist.c
index 7e0d4e80a..650f3a958 100644
--- a/sm/certlist.c
+++ b/sm/certlist.c
@@ -57,7 +57,8 @@ cert_usage_p (ksba_cert_t cert, int mode)
int have_ocsp_signing = 0;
err = ksba_cert_get_ext_key_usages (cert, &extkeyusages);
- if (gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
err = 0; /* no policy given */
if (!err)
{
@@ -116,7 +117,8 @@ cert_usage_p (ksba_cert_t cert, int mode)
err = ksba_cert_get_key_usage (cert, &use);
- if (gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
{
err = 0;
if (opt.verbose && mode < 2)
@@ -454,7 +456,8 @@ gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
subjectKeyIdentifier matches the requested
one. */
}
- else if (gpg_err_code (rc) == GPG_ERR_NO_DATA)
+ else if (gpg_err_code (rc) == GPG_ERR_NO_DATA
+ || gpg_err_code (rc) == GPG_ERR_NO_VALUE)
goto nextone;
}
}
diff --git a/sm/keylist.c b/sm/keylist.c
index 39c4e5003..1c9323ca3 100644
--- a/sm/keylist.c
+++ b/sm/keylist.c
@@ -239,7 +239,8 @@ print_capabilities (ksba_cert_t cert, FILE *fp)
gpg_strerror (err));
err = ksba_cert_get_key_usage (cert, &use);
- if (gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
{
putc ('e', fp);
putc ('s', fp);
@@ -641,9 +642,11 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
/* subjectKeyIdentifier */
fputs (" subjKeyId: ", fp);
err = ksba_cert_get_subj_key_id (cert, NULL, &keyid);
- if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
{
- if (gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
fputs ("[none]\n", fp);
else
{
@@ -659,9 +662,11 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
/* authorityKeyIdentifier */
fputs (" authKeyId: ", fp);
err = ksba_cert_get_auth_key_id (cert, &keyid, &name, &sexp);
- if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA)
+ if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
{
- if (gpg_err_code (err) == GPG_ERR_NO_DATA || !name)
+ if (gpg_err_code (err) == GPG_ERR_NO_DATA || !name
+ || gpg_err_code (err) == GPG_ERR_NO_VALUE)
fputs ("[none]\n", fp);
else
{
@@ -684,7 +689,8 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
fputs (" keyUsage:", fp);
err = ksba_cert_get_key_usage (cert, &kusage);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
if (err)
fprintf (fp, " [error: %s]", gpg_strerror (err));
@@ -712,11 +718,12 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
putc ('\n', fp);
}
else
- fputs ("[none]\n", fp);
+ fputs (" [none]\n", fp);
fputs (" extKeyUsage: ", fp);
err = ksba_cert_get_ext_key_usages (cert, &string);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
if (err)
fprintf (fp, "[error: %s]", gpg_strerror (err));
@@ -749,7 +756,8 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
fputs (" policies: ", fp);
err = ksba_cert_get_cert_policies (cert, &string);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
if (err)
fprintf (fp, "[error: %s]", gpg_strerror (err));
@@ -783,7 +791,9 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
err = ksba_cert_is_ca (cert, &is_ca, &chainlen);
if (err || is_ca)
{
- if (err)
+ if (gpg_err_code (err) == GPG_ERR_NO_VALUE )
+ fprintf (fp, "[none]");
+ else if (err)
fprintf (fp, "[error: %s]", gpg_strerror (err));
else if (chainlen == -1)
fputs ("unlimited", fp);
@@ -825,7 +835,8 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
ksba_name_release (name);
ksba_name_release (name2);
}
- if (err && gpg_err_code (err) != GPG_ERR_EOF)
+ if (err && gpg_err_code (err) != GPG_ERR_EOF
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
fputs (" crlDP: [error]\n", fp);
else if (!idx)
fputs (" crlDP: [none]\n", fp);
@@ -842,7 +853,8 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
ksba_name_release (name);
ksba_free (string);
}
- if (err && gpg_err_code (err) != GPG_ERR_EOF)
+ if (err && gpg_err_code (err) != GPG_ERR_EOF
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
fputs (" authInfo: [error]\n", fp);
else if (!idx)
fputs (" authInfo: [none]\n", fp);
@@ -858,7 +870,8 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd,
ksba_name_release (name);
ksba_free (string);
}
- if (err && gpg_err_code (err) != GPG_ERR_EOF)
+ if (err && gpg_err_code (err) != GPG_ERR_EOF
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
fputs (" subjInfo: [error]\n", fp);
else if (!idx)
fputs (" subjInfo: [none]\n", fp);
@@ -968,7 +981,8 @@ list_cert_std (ctrl_t ctrl, ksba_cert_t cert, FILE *fp, int have_secret,
err = ksba_cert_get_key_usage (cert, &kusage);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
fputs (" key usage:", fp);
if (err)
@@ -998,7 +1012,8 @@ list_cert_std (ctrl_t ctrl, ksba_cert_t cert, FILE *fp, int have_secret,
}
err = ksba_cert_get_ext_key_usages (cert, &string);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
fputs ("ext key usage: ", fp);
if (err)
@@ -1028,7 +1043,8 @@ list_cert_std (ctrl_t ctrl, ksba_cert_t cert, FILE *fp, int have_secret,
}
err = ksba_cert_get_cert_policies (cert, &string);
- if (gpg_err_code (err) != GPG_ERR_NO_DATA)
+ if (gpg_err_code (err) != GPG_ERR_NO_DATA
+ && gpg_err_code (err) != GPG_ERR_NO_VALUE)
{
fputs (" policies: ", fp);
if (err)
@@ -1050,7 +1066,9 @@ list_cert_std (ctrl_t ctrl, ksba_cert_t cert, FILE *fp, int have_secret,
if (err || is_ca)
{
fputs (" chain length: ", fp);
- if (err)
+ if (gpg_err_code (err) == GPG_ERR_NO_VALUE )
+ fprintf (fp, "none");
+ else if (err)
fprintf (fp, "[error: %s]", gpg_strerror (err));
else if (chainlen == -1)
fputs ("unlimited", fp);