Как получить ключ E C publi c для проверки подписи JWT - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно проверить подпись токена с помощью ключа 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 с этой информацией?

...