ECPublicKey

public class ECPublicKey

Represents an elliptic curve public key. Supported curves are:

Usage Example:

let pemKey = """
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikc5m6C2xtDWeeAeT18WElO37zvF
Oz8p4kAlhvgIHN23XIClNESgKVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
-----END PUBLIC KEY-----
"""
let publicKey = try ECPublicKey(key: pemKey)

let base64Sig = "MEYCIQCvgBLn+tQoBDBR3D2G3485GloYGNxuk6PqR4qjr5GDqAIhAKNvsqvesVBD/MLub/KAyzLLNGtUZyQDxYZj/4vmHwWF"
let signature = try ECSignature(asn1: Data(base64Encoded: base64Sig)) 

let verified = signature.verify(plaintext: "Hello world", using: publicKey)
  • A String description of the curve this key was generated from.

    Declaration

    Swift

    public let curveId: String
  • The EllipticCurve this key was generated from.

    Declaration

    Swift

    public let curve: EllipticCurve
  • The public key represented as a PEM String.

    Declaration

    Swift

    public let pemString: String
  • Initialize an ECPublicKey from a .pem file format.

    Usage Example:

    let publicKeyString = """
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikc5m6C2xtDWeeAeT18WElO37zvF
    Oz8p4kAlhvgIHN23XIClNESgKVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
    -----END PUBLIC KEY-----
    """
    let pemKey = try ECPublicKey(key: publicKeyString)
    

    Throws

    An ECError if the PEM string can’t be decoded or is not a valid key.

    Declaration

    Swift

    public convenience init(key: String) throws

    Parameters

    key

    The elliptic curve public key as a PEM string.

    Return Value

    An ECPublicKey.

  • Initialize an ECPublicKey from .der file data.
    This is equivalent to a PEM String that has had the —–BEGIN PUBLIC KEY—– header and footer stripped and been base64 encoded to ASN1 Data.

    Throws

    An ECError if the Data can’t be decoded or is not a valid key.

    Declaration

    Swift

    public init(der: Data) throws

    Parameters

    der

    The elliptic curve public key Data.

    Return Value

    An ECPublicKey.