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;
}
0 Comments