Код: Выделить всё
jsonwebtoken-api = { group = "io.jsonwebtoken", name = "jjwt-api", version = "0.12.6" }
jsonwebtoken-impl = { group = "io.jsonwebtoken", name = "jjwt-impl", version = "0.12.6" }
jsonwebtoken-json = { group = "io.jsonwebtoken", name = "jjwt-jackson", version = "0.12.6" }
bouncycastle-prov = { group = "org.bouncycastle", name = "bcprov-jdk15to18", version = "1.78.1" }
bouncycastle-bcpkix = { group = "org.bouncycastle", name = "bcpkix-jdk15to18", version = "1.78.1" }
Код: Выделить всё
implementation(libs.jsonwebtoken.api)
runtimeOnly(libs.jsonwebtoken.impl)
runtimeOnly(libs.jsonwebtoken.json) {
exclude(group = "org.json", module = "json")
}
implementation(libs.bouncycastle.prov)
implementation(libs.bouncycastle.bcpkix)
Код: Выделить всё
companion object {
init {
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
Security.addProvider(BouncyCastleProvider())
}
}
Код: Выделить всё
val publicKey:String = "..."
private fun stringToPublicKey(): PublicKey {
val parser = PEMParser(StringReader(publicKey))
val converter = JcaPEMKeyConverter()
val publicKeyInfo: SubjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(parser.readObject())
return (converter.getPublicKey(publicKeyInfo) as RSAPublicKey)
}
Код: Выделить всё
val jwtPS512 = "..."
try {
val parser = Jwts.parser().verifyWith(stringToPublicKey()).build()
val test = parser.parse(jwtPS512)
Log.i("", "$test")
} catch (e: Throwable) {
Log.e("", "", e)
}
Проверка работает для Алгоритм RS512, но для алгоритма PS512 получаю следующую ошибку:
Код: Выделить всё
io.jsonwebtoken.security.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.
Подробнее здесь: https://stackoverflow.com/questions/787 ... ot-working
Мобильная версия