Skip to content

Releases: leif-ibsen/SwiftECC

Release 5.4.0

16 Sep 12:11
Compare
Choose a tag to compare

About SwiftECC release 5.4.0:

  1. SwiftECC has been reorganized to use the Base64 functionality from the Digest package
    instead of having its own implementation.

  2. The remaining API is unchanged from release 5.3.0.

Release 5.3.0

28 Feb 13:10
Compare
Choose a tag to compare

About SwiftECC release 5.3.0:

  1. The functionality and API is unchanged from release 5.2.0

  2. The documentation has been restructured

5.2.0

09 Feb 10:47
Compare
Choose a tag to compare

About SwiftECC release 5.2.0:

  1. The functionality and API is unchanged from release 5.1.0

  2. Some minor documentation inaccuracies are fixed

5.1.0

31 Jan 11:28
Compare
Choose a tag to compare

About SwiftECC release 5.1.0:

  1. Functionality and API is unchanged from release 5.0.0

  2. The documentation is build with Apple's DocC tool. It is available at the link

    https://leif-ibsen.github.io/SwiftECC/documentation/swiftecc

    and in the SwiftECC.doccarchive file

5.0.0

17 Dec 17:38
Compare
Choose a tag to compare

About SwiftECC release 5.0.0:

SwiftECC has been refactored to use the Digest package instead of
having its own implementation of the digest functions.

The functionality is unchanged.

The API is unchanged, except that the 'MessageDigestAlgorithm' enumeration
which was defined in the SwiftECC package is now
the 'MessageDigest.Kind' enumeration defined in the Digest package.

Release 4.0.0

17 Aug 11:16
Compare
Choose a tag to compare

About SwiftECC release 4.0.0:

The Hybrid Public Key Encryption (HPKE) functionality is removed from SwiftECC.

In order to achieve a cleaner division of functionality it is now implemented
in its own package SwiftHPKE.

The remaining functionality in SwiftECC is unchanged.

SwiftECC release 3.9.0 which includes HPKE still exists.

3.9.0

24 Jul 16:05
Compare
Choose a tag to compare

About SwiftECC release 3.9.0:

  1. Release 3.9.0 implements the new HPKE (Hybrid Public Key Encryption) standard, which is specified in RFC 9180

  2. Release 3.9.0 is backwards compatible with release 3.8.0

3.8.0

15 Jun 09:49
Compare
Choose a tag to compare

New in release 3.8.0:

  1. There is a new ECPrivateKey method 'sharedSecret(pubKey:cofactor:)'
    which implements the basic Diffie-Hellman key agreement primitive.
    It multiplies another party's public key (a curve point) by our own private key (an integer),
    and return the resulting point's x-coordinate as result.

    The method was there all the time as an internal helper method, but now it is public.

  2. The deprecated ECPrivateKey method 'keyAgreement' is removed,
    but it still exists under the name 'x963KeyAgreement'

Release 3.7.0

08 Jun 10:30
Compare
Choose a tag to compare

New in release 3.7.0:

  1. The private key method 'keyAgreement' has been renamed to 'x963KeyAgreement'.
    The functionality is the same only the name has changed.
    The method with the old name 'keyAgreement' still exists, but it has been deprecated and will eventually be removed.

  2. There is a new private key method 'hkdfKeyAgreement' which performs Diffie-Hellman key agreement.
    It is similar to 'x963KeyAgreement', but it uses the mechanism from RFC 5869 - HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
    The method is compatible with Apple's CryptoKit method 'hkdfDerivedSymmetricKey'

Release 3.6.0

20 Apr 08:03
Compare
Choose a tag to compare

About SwiftECC release 3.6.0:

  1. The functionality and API is the same as in the previous release

  2. Apple has removed the function

    swift package generate-xcodeproj

    in Xcode 14.3. This means that it is no longer possible to generate a Swift Package
    and then turn it into an Xcode project, in order to define testability.

    Since there is now no Xcode project where testability can be enabled, the line

    @testable import SwiftECC

    must be inserted in every test file, in order to still be able to run the testsuite.
    This has been done in release 3.6.0

    The testsuite must be run in release mode, otherwise it takes forever.
    This can be done from the command line with

    swift test -c release -Xswiftc -enable-testing

    The above considerations are only relevant for the development of SwiftECC,
    not for people who just use SwiftECC.