Мне нужно проверить подпись токена с помощью ключа publi c сервера авторизации.
Сервер авторизации возвращает ключ publi c в следующей форме:
{
"kty": "EC",
"kid": "7fr9do53-6tbf-4d47-rt46-2dzbb6esz344e",
"use": "sig",
"crv": "P-384",
"x": "AJWaKZ17YAIEJlzLtAHpxVWumUui6vLcGPgekpuWYobOdDc5hPNqyjRE2eDchSRIaw",
"y": "AJeG84uKhjQVAWlnqRxRMipvcQurtKFpADZhKqBnxviFo9q2fEjYuavDuNALx1SN1w"
}
Я пробовал это, но не могу понять, как получить ключ publi c:
val token = "eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJkaWFtYW..."
val affineX = BigInteger(Decoders.BASE64URL.decode("AJWaKZ17YAIEJlzLtAHpxVWumUui6vLcGPgekpuWYobOdDc5hPNqyjRE2eDchSRIaw"))
val affineY = BigInteger(Decoders.BASE64URL.decode("AJeG84uKhjQVAWlnqRxRMipvcQurtKFpADZhKqBnxviFo9q2fEjYuavDuNALx1SN1w"))
val ecPublicKey: ECPublicKey = // ???
val jwtParser = Jwts.parserBuilder().setSigningKey(ecPublicKey).build()
val jwt = jwtParser.parse(token)
Как я могу получить ключ publi c с этой информацией?