~ubuntu-branches/ubuntu/feisty/gnupg2/feisty

« back to all changes in this revision

Viewing changes to sm/keylist.c

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2006-11-24 18:48:23 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20061124184823-17ir9m46tl09n9k4
Tags: 2.0.0-4ubuntu1
* Synchronize to Debian, reapply remaining Ubuntu changes to pristine Debian
  version:
  - Remove libpcsclite-dev, libopensc2-dev build dependencies (they are in
    universe).

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
 
71
71
  { "2.16.840.1.113730.4.1", "serverGatedCrypto.ns" }, /* Netscape. */
72
72
  { "1.3.6.1.4.1.311.10.3.3", "serverGatedCrypto.ms"}, /* Microsoft. */
 
73
 
 
74
  { "1.3.6.1.5.5.7.48.1.5", "ocspNoCheck" },
 
75
 
73
76
  { NULL, NULL }
74
77
};
75
78
 
125
128
  { "1.3.6.1.5.5.7.1.10", "acProxying" },
126
129
  { "1.3.6.1.5.5.7.1.11", "subjectInfoAccess" },
127
130
 
 
131
  { "1.3.6.1.5.5.7.48.1", "ocsp" },
 
132
  { "1.3.6.1.5.5.7.48.2", "caIssuers" },
 
133
  { "1.3.6.1.5.5.7.48.3", "timeStamping" },
 
134
  { "1.3.6.1.5.5.7.48.5", "caRepository" },
 
135
 
128
136
  /* X.509 id-ce */
129
137
  { "2.5.29.14", "subjectKeyIdentifier", 1},
130
138
  { "2.5.29.15", "keyUsage", 1 },
231
239
               gpg_strerror (err)); 
232
240
 
233
241
  err = ksba_cert_get_key_usage (cert, &use);
234
 
  if (gpg_err_code (err) == GPG_ERR_NO_DATA)
 
242
  if (gpg_err_code (err) == GPG_ERR_NO_DATA
 
243
      || gpg_err_code (err) == GPG_ERR_NO_VALUE)
235
244
    {
236
245
      putc ('e', fp);
237
246
      putc ('s', fp);
393
402
        *truststring = 'i';
394
403
    }
395
404
 
396
 
  /* Is we have no truststring yet (i.e. the certificate might be
 
405
  /* If we have no truststring yet (i.e. the certificate might be
397
406
     good) and this is a root certificate, we ask the agent whether
398
407
     this is a trusted root certificate. */
399
408
  if (!*truststring && is_root)
400
409
    {
401
 
      rc = gpgsm_agent_istrusted (ctrl, cert);
 
410
      struct rootca_flags_s dummy_flags;
 
411
 
 
412
      rc = gpgsm_agent_istrusted (ctrl, cert, &dummy_flags);
402
413
      if (!rc)
403
414
        *truststring = 'u';  /* Yes, we trust this one (ultimately). */
404
415
      else if (gpg_err_code (rc) == GPG_ERR_NOT_TRUSTED)
631
642
  /* subjectKeyIdentifier */
632
643
  fputs ("    subjKeyId: ", fp);
633
644
  err = ksba_cert_get_subj_key_id (cert, NULL, &keyid);
634
 
  if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA)
 
645
  if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA
 
646
      || gpg_err_code (err) == GPG_ERR_NO_VALUE)
635
647
    {
636
 
      if (gpg_err_code (err) == GPG_ERR_NO_DATA)
 
648
      if (gpg_err_code (err) == GPG_ERR_NO_DATA
 
649
          || gpg_err_code (err) == GPG_ERR_NO_VALUE)
637
650
        fputs ("[none]\n", fp);
638
651
      else
639
652
        {
649
662
  /* authorityKeyIdentifier */
650
663
  fputs ("    authKeyId: ", fp);
651
664
  err = ksba_cert_get_auth_key_id (cert, &keyid, &name, &sexp);
652
 
  if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA)
 
665
  if (!err || gpg_err_code (err) == GPG_ERR_NO_DATA
 
666
      || gpg_err_code (err) == GPG_ERR_NO_VALUE)
653
667
    {
654
 
      if (gpg_err_code (err) == GPG_ERR_NO_DATA || !name)
 
668
      if (gpg_err_code (err) == GPG_ERR_NO_DATA || !name
 
669
          || gpg_err_code (err) == GPG_ERR_NO_VALUE)
655
670
        fputs ("[none]\n", fp);
656
671
      else
657
672
        {
674
689
 
675
690
  fputs ("     keyUsage:", fp);
676
691
  err = ksba_cert_get_key_usage (cert, &kusage);
677
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
692
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
693
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
678
694
    {
679
695
      if (err)
680
696
        fprintf (fp, " [error: %s]", gpg_strerror (err));
702
718
      putc ('\n', fp);
703
719
    }
704
720
  else
705
 
    fputs ("[none]\n", fp);
 
721
    fputs (" [none]\n", fp);
706
722
 
707
723
  fputs ("  extKeyUsage: ", fp);
708
724
  err = ksba_cert_get_ext_key_usages (cert, &string);
709
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
725
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
726
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
710
727
    { 
711
728
      if (err)
712
729
        fprintf (fp, "[error: %s]", gpg_strerror (err));
739
756
 
740
757
  fputs ("     policies: ", fp);
741
758
  err = ksba_cert_get_cert_policies (cert, &string);
742
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
759
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
760
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
743
761
    {
744
762
      if (err)
745
763
        fprintf (fp, "[error: %s]", gpg_strerror (err));
773
791
  err = ksba_cert_is_ca (cert, &is_ca, &chainlen);
774
792
  if (err || is_ca)
775
793
    {
776
 
      if (err)
 
794
      if (gpg_err_code (err) == GPG_ERR_NO_VALUE )
 
795
        fprintf (fp, "[none]");
 
796
      else if (err)
777
797
        fprintf (fp, "[error: %s]", gpg_strerror (err));
778
798
      else if (chainlen == -1)
779
799
        fputs ("unlimited", fp);
815
835
      ksba_name_release (name);
816
836
      ksba_name_release (name2);
817
837
    }
818
 
  if (err && gpg_err_code (err) != GPG_ERR_EOF)
 
838
  if (err && gpg_err_code (err) != GPG_ERR_EOF
 
839
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
819
840
    fputs ("        crlDP: [error]\n", fp);
820
841
  else if (!idx)
821
842
    fputs ("        crlDP: [none]\n", fp);
832
853
      ksba_name_release (name);
833
854
      ksba_free (string);
834
855
    }
835
 
  if (err && gpg_err_code (err) != GPG_ERR_EOF)
 
856
  if (err && gpg_err_code (err) != GPG_ERR_EOF
 
857
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
836
858
    fputs ("     authInfo: [error]\n", fp);
837
859
  else if (!idx)
838
860
    fputs ("     authInfo: [none]\n", fp);
848
870
      ksba_name_release (name);
849
871
      ksba_free (string);
850
872
    }
851
 
  if (err && gpg_err_code (err) != GPG_ERR_EOF)
 
873
  if (err && gpg_err_code (err) != GPG_ERR_EOF
 
874
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
852
875
    fputs ("     subjInfo: [error]\n", fp);
853
876
  else if (!idx)
854
877
    fputs ("     subjInfo: [none]\n", fp);
958
981
 
959
982
 
960
983
  err = ksba_cert_get_key_usage (cert, &kusage);
961
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
984
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
985
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
962
986
    {
963
987
      fputs ("    key usage:", fp);
964
988
      if (err)
988
1012
    }
989
1013
 
990
1014
  err = ksba_cert_get_ext_key_usages (cert, &string);
991
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
1015
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
1016
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
992
1017
    { 
993
1018
      fputs ("ext key usage: ", fp);
994
1019
      if (err)
1018
1043
    }
1019
1044
 
1020
1045
  err = ksba_cert_get_cert_policies (cert, &string);
1021
 
  if (gpg_err_code (err) != GPG_ERR_NO_DATA)
 
1046
  if (gpg_err_code (err) != GPG_ERR_NO_DATA
 
1047
      && gpg_err_code (err) != GPG_ERR_NO_VALUE)
1022
1048
    {
1023
1049
      fputs ("     policies: ", fp);
1024
1050
      if (err)
1040
1066
  if (err || is_ca)
1041
1067
    {
1042
1068
      fputs (" chain length: ", fp);
1043
 
      if (err)
 
1069
      if (gpg_err_code (err) == GPG_ERR_NO_VALUE )
 
1070
        fprintf (fp, "none");
 
1071
      else if (err)
1044
1072
        fprintf (fp, "[error: %s]", gpg_strerror (err));
1045
1073
      else if (chainlen == -1)
1046
1074
        fputs ("unlimited", fp);
1122
1150
/* List all internal keys or just the keys given as NAMES.  MODE is a
1123
1151
   bit vector to specify what keys are to be included; see
1124
1152
   gpgsm_list_keys (below) for details.  If RAW_MODE is true, the raw
1125
 
   output mode will be used intead of the standard beautified one.
 
1153
   output mode will be used instead of the standard beautified one.
1126
1154
 */
1127
1155
static gpg_error_t
1128
 
list_internal_keys (ctrl_t ctrl, STRLIST names, FILE *fp,
 
1156
list_internal_keys (ctrl_t ctrl, strlist_t names, FILE *fp,
1129
1157
                    unsigned int mode, int raw_mode)
1130
1158
{
1131
1159
  KEYDB_HANDLE hd;
1132
1160
  KEYDB_SEARCH_DESC *desc = NULL;
1133
 
  STRLIST sl;
 
1161
  strlist_t sl;
1134
1162
  int ndesc;
1135
1163
  ksba_cert_t cert = NULL;
1136
1164
  gpg_error_t rc = 0;
1156
1184
  desc = xtrycalloc (ndesc, sizeof *desc);
1157
1185
  if (!ndesc)
1158
1186
    {
1159
 
      rc = gpg_error_from_errno (errno);
 
1187
      rc = gpg_error_from_syserror ();
1160
1188
      log_error ("out of core\n");
1161
1189
      goto leave;
1162
1190
    }
1221
1249
            {
1222
1250
              fprintf (fp, "%s\n", resname );
1223
1251
              for (i=strlen(resname); i; i-- )
1224
 
                putchar('-');
 
1252
                putc ('-', fp);
1225
1253
              putc ('\n', fp);
1226
1254
              lastresname = resname;
1227
1255
            }
1319
1347
   make sense here because it would be unwise to list external secret
1320
1348
   keys */
1321
1349
static gpg_error_t
1322
 
list_external_keys (CTRL ctrl, STRLIST names, FILE *fp, int raw_mode)
 
1350
list_external_keys (ctrl_t ctrl, strlist_t names, FILE *fp, int raw_mode)
1323
1351
{
1324
1352
  int rc;
1325
1353
  struct list_external_parm_s parm;
1349
1377
    Bit 8: Do a raw format dump.
1350
1378
 */
1351
1379
gpg_error_t
1352
 
gpgsm_list_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode)
 
1380
gpgsm_list_keys (ctrl_t ctrl, strlist_t names, FILE *fp, unsigned int mode)
1353
1381
{
1354
1382
  gpg_error_t err = 0;
1355
1383