Generating x_fp_hash using C

To generate x_fp_hash using C please see the code below:

#include <openssl/hmac.h>
#include <stdio.h>

int main() {
 const char key[] = "V0WX5fK~o6eEhr7hbs3ZeyxS";
 unsigned char result[EVP_MAX_MD_SIZE], hex_result[EVP_MAX_MD_SIZE*2];
 char* p;
 unsigned char data[100];
 unsigned int datalen, resultlen, i;
 HMAC_CTX ctx;
 
 // HMAC MD5
 // HMAC_Init(&ctx, key, sizeof(key), EVP_md5());

 // HMAC SHA1
 HMAC_Init(&ctx, key, sizeof(key), EVP_sha1());


 // x_login^x_fp_sequence^x_fp_timestamp^x_amount^x_currency
 datalen = sprintf((char *)data, "%s^%s^%s^%s^%s", "WSP-ACTIV-70", "123", "1228774539", "100.00", "");

 HMAC_Update(&ctx,  data, datalen);
 HMAC_Final(&ctx, result, &resultlen);

 p = (char *)hex_result;
 for(i=0; i < resultlen; i++) {
   p += sprintf(p, "%02x", result[i]);
 }
 p = '\0';
 printf("The hmac hash is %s\n", hex_result);

 HMAC_cleanup(&ctx);
 return 0;
}
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk