Как упомянуто @superfell в комментариях, проблема связана со следующей строкой кода:
Blob data = crypto.generateMac('HmacSHA256', Blob.valueOf(sts), Blob.valueOf(key));
Пожалуйста, измените эту строку кода на:
Blob data = crypto.generateMac('HmacSHA256', Blob.valueOf(sts), EncodingUtil.base64Decode(key));
, и выне должен получить эту ошибку.По сути, ключ является строкой в кодировке base64, и вам нужно использовать правильный метод декодирования для получения байтового массива.