@AccessesPartialKey
  private static JsonObject convertJwtRsaSsaPkcs1Key(JwtRsaSsaPkcs1PublicKey key)
      throws GeneralSecurityException {
    String alg = key.getParameters().getAlgorithm().getStandardName();
    JsonObject jsonKey = new JsonObject();
    jsonKey.addProperty("kty", "RSA");
    jsonKey.addProperty("n", Base64.urlSafeEncode(base64urlUInt(key.getModulus())));
    jsonKey.addProperty(
        "e", Base64.urlSafeEncode(base64urlUInt(key.getParameters().getPublicExponent())));
    jsonKey.addProperty("use", "sig");
    jsonKey.addProperty("alg", alg);
    JsonArray keyOps = new JsonArray();
    keyOps.add("verify");
    jsonKey.add("key_ops", keyOps);
    Optional<String> kid = key.getKid();
    if (kid.isPresent()) {
      jsonKey.addProperty("kid", kid.get());
    }
    return jsonKey;
  }
Converts a Json Web Key (JWK) set with public keys into a Tink KeysetHandle.

<p>It requires that all keys in the set have the "alg" field set. The currently supported
algorithms are ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384 and PS512. JWK is defined
in https://www.rfc-editor.org/rfc/rfc7517.txt.
java_src/src/main/java/com/google/crypto/tink/jwt/JwkSetConverter.java