我在使用CommonCrypto在Objective C中使用JWK格式的公共EC密钥时遇到问题。
我有一个Java示例,说明我在Objective C中似乎做不到。这是从https://static.javadoc.io/com.nimbusds/nimbus-jose-jwt/2.24/src-html/com/nimbusds/jose/jwk/ECKey.Curve.html的Nimbus Jose JWT库中提取的
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);
}
由于CommonCrypto似乎缺乏JWK支持,因此我无法在Objective C中找到实现此目标的方法。有人知道如何从曲线的x和y值将另一方的JWK密钥转换为可读格式(.pem,SecKeyRef或NSData)吗?