cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hi all,

Currently on my SAPUI5 project, I am creating a HMAC encoded string with this line of code;

var secretKey = CryptoJS.enc.Hex.parse('SECRETKEY'); //USING THE CRYPTOJS LIBRARY!
var hash = CryptoJS.HmacSHA256('abc', secretKey);
hashInBase64 = CryptoJS.enc.Base64.stringify(hash);

I am using the CryptoJS library to execute this code in UI5.

However the problem is that I am receiving the wrong HMAC encoded string when I want to do the same in ABAP. After testing a few times, it seems like the encoding (in abap) is wrong before the HMAC is calculated.

Is there a function module that does 'CryptoJS.enc.Hex.parse()' - after googling what it does it interprets the parameter as encoded and converts it into a word array.

DATA:
      lv_sign_key_x                TYPE xstring,
      lv_hmac_result               TYPE string.

DATA(lv_binary_secret) = cl_abap_hmac=>string_to_xstring('SECRETKEY').

    cl_abap_hmac=>calculate_hmac_for_char(
      EXPORTING
        if_algorithm           = 'SHA256'           "Hash Algorithm
        if_key                 = lv_binary_secret   "HMAC Key
        if_data                = 'abc'   "Data
      IMPORTING
        ef_hmacb64string       = lv_hmac_result  "HMAC value as base64-encoded string
    ).

Thank you in advance.

View Entire Topic
rudramani
Participant
0 Likes

You can write your javascript code too within ABAP. Have you tried that?

UweFetzer_se38
Active Contributor

The use of Javascript in ABAP is depreciated since many releases now (see also https://help.sap.com/viewer/fe1d31bb6c551014b75bc66f0328fefe/7.02.19/en-US/808676416e805958e10000000... )