Нам нужно иметь sh и проверять токен JWT, используя пользовательский AsymmetricSecurityKey, который использует Google Cloud KMS API для подписи / проверки токена.
ha sh logi c работает нормально , вот реализация:
public override byte[] Sign(byte[] input)
{
string projectId = "<PROJECT-ID>";
string location = "global";
var locationName = new LocationName(projectId, location);
// Instantiate a Cloud KMS client.
var client = KeyManagementServiceClient.Create();
var cryptoKeyVersion = new CryptoKeyVersionName(projectId, location, "test", "asymmetric-signing-key", "1");
var publicKey = client.GetPublicKey(cryptoKeyVersion);
byte[] hashedInput;
using (var hasher = SHA256.Create())
{
hashedInput = hasher.ComputeHash(input);
}
var digest = new Digest
{
Sha256 = ByteString.CopyFrom(hashedInput)
};
var asymmetricSignResponse = client.AsymmetricSign(cryptoKeyVersion, digest);
var output = asymmetricSignResponse.Signature.ToByteArray();
return output;
}
Мне нужно знать, как проверить подпись, я пробовал много разных способов и библиотек, но всегда не удается
Документация Google KMS для создания и проверки цифровых подписей здесь не имеет реализации для. NET C#
Благодарим Вас за помощь!