Я хочу, чтобы реализовать эту логику в портативном C# класс:C# PCL HMACSHAX с BouncyCastle-PCL
static JsonWebToken()
{
HashAlgorithms = new Dictionary<JwtHashAlgorithm, Func<byte[], byte[], byte[]>>
{
{ JwtHashAlgorithm.HS256, (key, value) => { using (var sha = new HMACSHA256(key)) { return sha.ComputeHash(value); } } },
{ JwtHashAlgorithm.HS384, (key, value) => { using (var sha = new HMACSHA384(key)) { return sha.ComputeHash(value); } } },
{ JwtHashAlgorithm.HS512, (key, value) => { using (var sha = new HMACSHA512(key)) { return sha.ComputeHash(value); } } }
};
}
но HMACSHA256
, HMACSHA384
и HMACSHA512
не существует в портативном библиотеке.
Сначала я пытаюсь с https://github.com/AArnott/PCLCrypto , но я всегда получаю: An exception of type 'System.NotImplementedException' occurred in PCLCrypto.dll but was not handled in user code
Я проверил то код, и я увидел Crpyto для PCL не выполняется и всегда сгенерирует исключение
Тогда я нашел эту библиотеку: https://github.com/onovotny/BouncyCastle-PCL
Но нет документации, как его использовать. Может ли кто-нибудь дать мне пример, как реализовать
var sha = new HMACSHA256(key)
var sha = new HMACSHA384(key)
var sha = new HMACSHA512(key)
с BouncyCastle-PCL.
Я удалил свой предыдущий комментарий о том, Я не мог заставить его работать, так как это работает! Я только что изменил свой код, чтобы ближе соответствовать тому, что делает Java, но это тот бит, который мне нужен. Отличный маленький кусок кода, так спасибо за обмен! – Thierry