Releases: leif-ibsen/SwiftECC
Release 5.4.0
About SwiftECC release 5.4.0:
-
SwiftECC has been reorganized to use the Base64 functionality from the Digest package
instead of having its own implementation. -
The remaining API is unchanged from release 5.3.0.
Release 5.3.0
About SwiftECC release 5.3.0:
-
The functionality and API is unchanged from release 5.2.0
-
The documentation has been restructured
5.2.0
About SwiftECC release 5.2.0:
-
The functionality and API is unchanged from release 5.1.0
-
Some minor documentation inaccuracies are fixed
5.1.0
About SwiftECC release 5.1.0:
-
Functionality and API is unchanged from release 5.0.0
-
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
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
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
About SwiftECC release 3.9.0:
-
Release 3.9.0 implements the new HPKE (Hybrid Public Key Encryption) standard, which is specified in RFC 9180
-
Release 3.9.0 is backwards compatible with release 3.8.0
3.8.0
New in release 3.8.0:
-
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.
-
The deprecated ECPrivateKey method 'keyAgreement' is removed,
but it still exists under the name 'x963KeyAgreement'
Release 3.7.0
New in release 3.7.0:
-
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. -
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
About SwiftECC release 3.6.0:
-
The functionality and API is the same as in the previous release
-
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.0The testsuite must be run in release mode, otherwise it takes forever.
This can be done from the command line withswift test -c release -Xswiftc -enable-testing
The above considerations are only relevant for the development of SwiftECC,
not for people who just use SwiftECC.