Ejemplo n.º 1
0
int
main (void)
{
  gnutls_x509_crt_t crt;
  gnutls_datum_t data = { "foo", 3 };
  gnutls_datum_t sig = { "bar", 3 };
  int ret;

  gnutls_global_init ();

  ret = gnutls_x509_crt_init (&crt);
  if (ret < 0)
    return 1;

  ret = gnutls_x509_crt_import (crt, &dsa_cert_dat, GNUTLS_X509_FMT_PEM);
  if (ret < 0)
    return 1;

  ret = gnutls_x509_crt_verify_data (crt, 0, &data, &sig);
  if (ret < 0)
    return 1;

  printf ("success!\n");

  gnutls_x509_crt_deinit (crt);
  gnutls_global_deinit ();

  return 0;
}
Ejemplo n.º 2
0
static bool
verify_signature(gnutls_x509_crt cert,
                 const struct array *input, const struct array *signature)
{
    gnutls_datum data, sig;

    g_return_val_if_fail(cert, FALSE);
    g_return_val_if_fail(input, FALSE);
    g_return_val_if_fail(signature, FALSE);

    data.data = (void *) input->data;
    data.size = input->size;

    sig.data = (void *) signature->data;
    sig.size = signature->size;

    return 1 == gnutls_x509_crt_verify_data(cert, 0, &data, &sig);
}