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); }