@SuppressWarnings("unchecked") static Jwk fromValues(Map<String, Object> map) { Map<String, Object> values = Maps.newHashMap(map); String kid = (String) values.remove("kid"); String kty = (String) values.remove("kty"); String alg = (String) values.remove("alg"); String use = (String) values.remove("use"); Object keyOps = values.remove("key_ops"); String x5u = (String) values.remove("x5u"); List<String> x5c = (List<String>) values.remove("x5c"); String x5t = (String) values.remove("x5t"); if (kty == null) { throw new IllegalArgumentException("Attributes " + map + " are not from a valid jwk"); } if (keyOps instanceof String) { return new Jwk(kid, kty, alg, use, (String) keyOps, x5u, x5c, x5t, values); } else { return new Jwk(kid, kty, alg, use, (List<String>) keyOps, x5u, x5c, x5t, values); } }