RSA Encryption I need to encrypt the body in restMessagev2

Ayoub Ayed
Tera Contributor

I need to encrypt the body of a request in RESTMessagev2 using RSA encryption.

Did you have any Idea about how to encrypted the body my code I try to do that is :

try {
    var requestId = "c20e3fde0c8916......";
    var requestNumber = "RITM0011......";

    var gr = new GlideRecord("sc_req_item");
    if (!gr.get(requestId)) {
        gs.error("Record not found for request ID: " + requestId);
       
    }

    var token = ".......................";
 
 
 
    var r = new sn_ws.RESTMessageV2('Apis', ' api');

    gs.info("Bearer " + token + " ,region " + region);
    r.setRequestHeader('Authorization', "Bearer " + token);
   
 


    var publicKey =
        "-----BEGIN PUBLIC KEY-----\n" +
        "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAt8YpwXBWXWOJiOFIhpek\n" +
       "........."
        "-----END PUBLIC KEY-----";

 
    function rsaEncrypt(value) {
        return CryptoUtil.encrypt("RSA", value, publicKey);
    }

    // Encrypt the parameters
    r.setStringParameterNoEscape('Index', rsaEncrypt(requestNumber));
    r.setStringParameterNoEscape('type', rsaEncrypt(gr.variables.type.getDisplayValue()));
    r.setStringParameterNoEscape('...................', rsaEncrypt(gr.variables...........getDisplayValue()));
    r.setStringParameterNoEscape('..............', rsaEncrypt(gr.variables.................getDisplayValue()));
    r.setStringParameterNoEscape('................', rsaEncrypt(gr.variables.................getDisplayValue()));
    r.setStringParameterNoEscape('................', rsaEncrypt(gr.variables................getDisplayValue()));
    r.setStringParameterNoEscape('.............', rsaEncrypt(gr.variables.............getDisplayValue()));
    r.setStringParameterNoEscape('............', rsaEncrypt(gr.variables................getDisplayValue()));
    

    /

    var response = r.execute();
    var responseBody = JSON.parse(response.getBody());
    var status = response.getStatusCode();
    gs.info('System data status: ' + status + ' responseBody: ' + JSON.stringify(responseBody));

    if (status == 200) {
        gs.info(responseBody);
    } else {
        gs.info("API call did not return 200 status.");
    }
} catch (ex) {
    var message = JSON.stringify(ex);
    gs.error('Error: ' + message);
}





the response is :

*** Script: Error: {"message":"\"CryptoUtil\" is not defined.","fileName":"null.null.script","sourceName":"null.null.script","lineNumber":56,"name":"ReferenceError","stack":"\tat null.null.script:56 (rsaEncrypt)\n\tat null.null.script:60\n","rhinoException":{}}: no thrown error





0 REPLIES 0