Как использовать публичный алгоритм JWK для ECDH на iOS 9 и выше - PullRequest
4 голосов
/ 20 мая 2019

У меня проблемы с использованием открытого ключа EC в формате JWK в Objective C с CommonCrypto.

У меня есть Java-пример того, что я не могу сделать в Objective C. Это взято изБиблиотека Nimbus Jose JWT в https://static.javadoc.io/com.nimbusds/nimbus-jose-jwt/2.24/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);
}

Я не могу найти, как это сделать в Цели C, так как CommonCrypto, похоже, не поддерживает JWK.Кто-нибудь имеет представление о том, как я могу получить ключ JWK другой стороны в читаемый формат (.pem, SecKeyRef или NSData) из значений кривой x и y кривой?

...