def ec_construct_public(num):
    """
    Given a set of values on public attributes build a elliptic curve
    public key instance.

    :param num: A dictionary with public attributes and their values
    :return: A
        cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey
        instance.
    """
    ecpn = ec.EllipticCurvePublicNumbers(num['x'], num['y'],
                                         NIST2SEC[as_unicode(num['crv'])]())
    return ecpn.public_key(default_backend())