+ Start a Discussion

Encryption options for AWS Signing in Salesforce

Below is code snippet of C# for getting signed key for authentication to AWS:

static byte[] HmacSHA256(String data, byte[] key)
    String algorithm = "HmacSHA256";
    KeyedHashAlgorithm kha = KeyedHashAlgorithm.Create(algorithm);
    kha.Key = key;

    return kha.ComputeHash(Encoding.UTF8.GetBytes(data));

static byte[] getSignatureKey(String key, String dateStamp, String regionName, String serviceName)
    byte[] kSecret = Encoding.UTF8.GetBytes(("AWS4" + key).ToCharArray());
    byte[] kDate = HmacSHA256(dateStamp, kSecret);
    byte[] kRegion = HmacSHA256(regionName, kDate);
    byte[] kService = HmacSHA256(serviceName, kRegion);
    byte[] kSigning = HmacSHA256("aws4_request", kService);

    return kSigning;

Could someone please provide corresponding code in Salesforce using SFDC Security class like Crypto etc ?

The signed key needs to be the same be it run via the .Net C# code or the SFDC Code.

Thanks !