Exemple #1
0
/* determines the validity of a series of email addresses,
   writing the results out to the screen. */
int main()
{
  const int length = 5;
  char * terminators[length];
  char * address1, * address2, * address3, * address4;

  terminators[0] = "com";
  terminators[1] = "net";
  terminators[2] = "edu";
  terminators[3] = "ie";
  terminators[4] = "tv";

  address1 = "*****@*****.**";
  address2 = "*****@*****.**";
  address3 = "lorcanreidy@[email protected]";
  address4 = "*****@*****.**";

  print_validity(address1, terminators, length);
  print_validity(address2, terminators, length);
  print_validity(address3, terminators, length);
  print_validity(address4, terminators, length);

  return 0;
}
Exemple #2
0
static void
print_result (gpgme_verify_result_t result)
{
    gpgme_signature_t sig;
    gpgme_sig_notation_t nt;
    gpgme_tofu_info_t ti;
    int count = 0;

    printf ("Original file name: %s\n", nonnull(result->file_name));
    for (sig = result->signatures; sig; sig = sig->next)
    {
        printf ("Signature %d\n", count++);
        printf ("  status ....: %s\n", gpgme_strerror (sig->status));
        printf ("  summary ...:");
        print_summary (sig->summary);
        putchar ('\n');
        printf ("  fingerprint: %s\n", nonnull (sig->fpr));
        printf ("  created ...: %lu\n", sig->timestamp);
        printf ("  expires ...: %lu\n", sig->exp_timestamp);
        printf ("  validity ..: ");
        print_validity (sig->validity);
        putchar ('\n');
        printf ("  val.reason : %s\n", gpgme_strerror (sig->status));
        printf ("  pubkey algo: %d (%s)\n", sig->pubkey_algo,
                nonnull(gpgme_pubkey_algo_name (sig->pubkey_algo)));
        printf ("  digest algo: %d (%s)\n", sig->hash_algo,
                nonnull(gpgme_hash_algo_name (sig->hash_algo)));
        printf ("  pka address: %s\n", nonnull (sig->pka_address));
        printf ("  pka trust .: %s\n",
                sig->pka_trust == 0? "n/a" :
                sig->pka_trust == 1? "bad" :
                sig->pka_trust == 2? "okay": "RFU");
        printf ("  other flags:%s%s\n",
                sig->wrong_key_usage? " wrong-key-usage":"",
                sig->chain_model? " chain-model":""
               );
        for (nt = sig->notations; nt; nt = nt->next)
        {
            printf ("  notation ..: '%s'\n", nt->name);
            if (strlen (nt->name) != nt->name_len)
                printf ("    warning : name larger (%d)\n", nt->name_len);
            printf ("    flags ...:%s%s (0x%02x)\n",
                    nt->critical? " critical":"",
                    nt->human_readable? " human":"",
                    nt->flags);
            if (nt->value)
                printf ("    value ...: '%s'\n", nt->value);
            if ((nt->value?strlen (nt->value):0) != nt->value_len)
                printf ("    warning : value larger (%d)\n", nt->value_len);
        }
        for (ti = sig->tofu; ti; ti = ti->next)
        {
            printf ("  tofu addr .: %s\n", ti->address);
            if (!sig->fpr || strcmp (sig->fpr, ti->fpr))
                printf ("    WARNING .: fpr mismatch (%s)\n", ti->fpr);
            printf ("    validity : %u (%s)\n", ti->validity,
                    ti->validity == 0? "conflict" :
                    ti->validity == 1? "no history" :
                    ti->validity == 2? "little history" :
                    ti->validity == 3? "enough history" :
                    ti->validity == 4? "lot of history" : "?");
            printf ("    policy ..: %u (%s)\n", ti->policy,
                    ti->policy == GPGME_TOFU_POLICY_NONE? "none" :
                    ti->policy == GPGME_TOFU_POLICY_AUTO? "auto" :
                    ti->policy == GPGME_TOFU_POLICY_GOOD? "good" :
                    ti->policy == GPGME_TOFU_POLICY_UNKNOWN? "unknown" :
                    ti->policy == GPGME_TOFU_POLICY_BAD? "bad" :
                    ti->policy == GPGME_TOFU_POLICY_ASK? "ask" : "?");
            printf ("    sigcount : %hu\n", ti->signcount);
            printf ("    firstseen: %u\n", ti->firstseen);
            printf ("    lastseen : %u\n", ti->lastseen);
            printf ("    desc ....: ");
            print_description (nonnull (ti->description), 15);
        }
    }
}