Добрый день, подскажите пожалуйста как выпустить JWT токен подписанный алгоритмом GG2015, имеется ли инструкция, какие методы и флаги KalkanCrypt будут использованы, использую .net core
Выпуск JWT по алгоритму GG2015
Добрый день!
Для формирования подписи jwt используйте метод SignData() с флагом KC_SIGN_DRAFT.
Для остальных манипуляций с jwt - Калкан уже не нужен.
// Int32 unixTimestamp = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds-120;
// Int32 unixTimestamp_upt = unixTimestamp + 3600;
// string header = "{\"alg\":\"GG2015\",\"typ\":\"JWT\"}";
// string payload = "{\"iat\":" + unixTimestamp.ToString() + ",\"exp\":" + unixTimestamp_upt.ToString() + ",\"iin\":\"123456789012\",\"check\":\"test\"}";
// byte[] header_byte = System.Text.ASCIIEncoding.ASCII.GetBytes(header);
// string header_BASE64 = Convert.ToBase64String(header_byte);
// byte[] payload_byte = System.Text.ASCIIEncoding.ASCII.GetBytes(payload);
// string payload_BASE64 = Convert.ToBase64String(payload_byte);
// string inData = header_BASE64 + "." + payload_BASE64;
// string outSign = " ", err_str = "";
// uint err = 0;
// string token_base64 = "";
// int kalkanFlags_jwt = (int)KalkanCryptCOMLib.KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64 | (int)KalkanCryptCOMLib.KALKANCRYPTCOM_FLAGS.KC_SIGN_DRAFT ;
// KalkanCOMTest.SignData("", kalkanFlags_jwt, inData, ref outSign);
// KalkanCOMTest.GetLastErrorString(out err_str, out err);
// if (err != 0)
// {
// token_base64 = inData + "." + outSign;
// token_base64 = token_base64.Replace("/", "_");
// token_base64 = token_base64.Replace("+", "-");
// token_base64 = token_base64.Replace("==", "");
// }
Вот примерно накидал тестовый вариант