我在使用 CommonCrypto 的 Objective C 中使用 JWK 格式的公共 EC 密钥时遇到问题。
我有一个 java 示例,说明我在 Objective C 中似乎无法执行的操作。这是从https://static.javadoc.io/com.nimbusds/nimbus-jose-jwt/2.24/的 Nimbus Jose JWT 库中提取的src-html/com/nimbusds/jose/jwk/ECKey.Curve.html
public ECPublicKey toECPublicKey() throws NoSuchAlgorithmException, InvalidKeySpecException {
ECParameterSpec spec = crv.toECParameterSpec();
if (spec == null) {
throw new NoSuchAlgorithmException("Couldn't get EC parameter spec for curve " + crv);
}
ECPoint w = new ECPoint(x.decodeToBigInteger(), y.decodeToBigInteger());
ECPublicKeySpec publicKeySpec = new ECPublicKeySpec(w, spec);
KeyFactory keyFactory = getECKeyFactory();
return (ECPublicKey)keyFactory.generatePublic(publicKeySpec);
}
我找不到如何在 Objective C 中实现这一点,因为 CommonCrypto 似乎缺乏 JWK 支持。有谁知道如何从曲线的 x 和 y 值将对方的 JWK 密钥转换为可读格式(.pem、SecKeyRef 或 NSData)?