Я пытаюсь реализовать метод, который будет вычислять и проверять подпись HmacSHA256 для проверки слабого запроса . По ... разным причинам ... я использую scala.js
, и поэтому у меня нет доступа к обычному javax.crypto
импорту.
Из документации Slack по проверке подписанного запроса от Slack:
- С помощью HMA C SHA256, реализованного в вашем любимом программировании, ха sh выше basestring, используя Slack Signing Secret в качестве ключа.
- Сравните эту вычисленную подпись с заголовком X-Slack-Signature по запросу.
Ну, первый шаг существует проблема. В scala. js пакет javax.crypto
недоступен, поэтому следующее не будет работать:
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
def asHmacSHA256(key: String, baseString: String): Array[Byte] = {
val secretKeySpec = new SecretKeySpec(key.getBytes(), "HmacSHA256")
val hmac = Mac.getInstance("HmacSHA256")
hmac.init(secretKeySpec)
hmac.doFinal(baseString.getBytes())
}
Как обойти это - есть ли хорошая библиотека хеширования, которая работает с scala. js, или мне придется вывести некоторую зависимость js
, или мне придется ... gulp ... свернуть мой собственный алгоритм хеширования?