Esempio n. 1
0
int
create_sig (BUFFER * data, BUFFER * signature)
{
#ifdef USE_RSAREF
  R_RSA_PRIVATE_KEY sigKey;
  R_SIGNATURE_CTX context;
  unsigned char sig[MAX_SIGNATURE_LEN];
  unsigned int sigLen;

  if (get_priv_key (NULL, &sigKey) != 0)
    return -1;
  R_SignInit (&context, DA_MD5);
  R_SignUpdate (&context, data->message, data->length);
  if (R_SignFinal (&context, sig, &sigLen, &sigKey) != 0)
    {
      fprintf (errlog, "Error: Cannot create signature.\n");
      return (-1);
    }
  add_to_buffer (signature, sig, sigLen);
  return 0;
#else
  /* not implemented */
  return (-1);
#endif
}
int
R_VerifyInit(R_SIGNATURE_CTX *ctx,
             int digestAlgorithm)
{
  return R_SignInit(ctx, digestAlgorithm);
}