如何在iOS 9及以上版本的ECDH算法上使用公共JWK

时间:2019-05-20 20:49:22

标签: ios objective-c encryption public-key-encryption jwk

我在使用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)吗?

0 个答案:

没有答案