Swiftpack.co - Swift Packages by leif-ibsen

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by leif-ibsen

leif-ibsen/SwiftECC 4.0.0
Swift Elliptic Curve Cryptography (ECIES, ECDSA and ECDH)
⭐️ 60
🕓 14 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release 4.0.0
14 weeks ago
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.
18 weeks ago
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
23 weeks ago
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
24 weeks ago
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
31 weeks ago
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.
45 weeks ago
Changes in release 3.5.3: Fixed a number of typos in the documentation discovered by rex4539/Dimitris Apostolou
45 weeks ago
Changes in release 3.5.2: The line platforms: [.macOS(.v10_15), .iOS(.v13)], // Due to the use of the CryptoKit framework in the Package.swift file has been changed to platforms: [.macOS(.v10_15), .iOS(.v13), .watchOS(.v8)], // Due to the use of the CryptoKit framework to support watchOS
Release 3.5.1
48 weeks ago
Changes in release 3.5.1: SwiftECC uses Apple's CryptoKit framework which is available in macOS from version 10.15 and in iOS from version 13.0. Therefore, the line platforms: [.macOS(.v10_15), .iOS(.v13)], // Due to the use of the CryptoKit framework is added to the Package.swift file.
50 weeks ago
New in release 3.5.0: A new public key method: public func encryptAESGCM(msg: Bytes, cipher: AESCipher, aad: Bytes = []) -> Bytes and a new private key method: public func decryptAESGCM(msg: Bytes, cipher: AESCipher, aad: Bytes = []) throws -> Bytes These methods implement AEAD encryption/decryption. They use Apple's CryptoKit framework to achieve an encryption speed of 2000 MB/Sec and a decryption speed of 1200 MB/Sec measured on an iMac Apple M1 chip. The CryptoKit framework is available on macOS from version 10.15 and on iOS from version 13.0. The implementation of the encryptChaCha / decryptChaCha methods now also uses CryptoKit to achieve encryption/decryption speeds of about 500 MB/Sec. The old encrypt/decrypt methods with GCM block mode still exist, but they are much slower than the new ones. The new methods use 12 byte Nonces, whereas the old methods use 16 byte Nonces. This means that it is not possible to mix encryption and decryption among the two sets of methods.
Release 3.4.1
1 year ago
Changed the dependencies on ASN1 and BigInt to ASN1 2.0.2 and BigInt 1.4.0
iOS macOS watchOS
leif-ibsen/BigInt 1.14.0
Arbitrary-precision integer arithmetic in Swift
⭐️ 19
🕓 9 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
9 weeks ago
New in release 1.14.0: 1) Continued fractions are supported: A BFraction instance can be created from a continued fraction represented as a sequence of integers. A continued fraction (a sequence of integers) can be created from a BFraction instance. 2) A new BFraction static function computes harmonic numbers, like 1 + 1/2 + ... + 1/n. 3) General improved performance in BFraction arithmetic.
Release 1.13.1
19 weeks ago
Release 1.13.1 is a bugfix release. Bill James (wjamesjr) reported a bug in the Burnikel-Ziegler division function. It gave wrong results for certain inputs. He also provided test data that helped fix the bug, thanks. The bug is fixed in release 1.13.1
27 weeks ago
New in release 1.13.0: 1) A new BFraction constructor from a string representation public init?(_ x: String) for example BFraction("3.1415") // = 6283 / 200 BFraction("123E-3") // = 123 / 1000 BFraction("abc") // = nil 2) A new BFraction 'mod' method to compute the value modulo an integer public func mod(_ m: BInt) -> BInt? public func mod(_ m: Int) -> Int? for example BFraction(13, 3).mod(5) // = Optional(1) because 3^(-1) mod 5 = 2 and (13 * 2).mod(5) = 1 Returns nil if the denominator and modulus are not coprime 3) The BFraction method 'asDecimalString' has a new API public func asDecimalString(precision: Int, exponential: Bool = false) -> String where precision is the number of significant digits and exponential determines whether to use exponential or plain notation. For example BFraction(712, 11001).asDecimalString(precision: 5, exponential: false) // = "0.064721" BFraction(712, 11001).asDecimalString(precision: 5, exponential: true ) // = "6.4721E-2" 4) A new static BFraction method 'bernoulliSequence' public static func bernoulliSequence(_ n: Int) -> [BFraction] BFraction.bernoulliSequence(n) computes the n even indexed Bernoulli numbers B(0), B(2) ... B(2 * n - 2) This is much faster than computing the same numbers individually.
30 weeks ago
About BigInt release 1.12.0: 1) There is a new CRT structure which implemnts The Chinese Remainder Theorem. It contains constructors to create an instance from given moduli and a 'compute' method to compute the CRT value for a given set of residues. The same instance can be used again for other input data. 2) The newly introduced 'bernoulli' method to compute Bernoulli numbers had poor performance. Its implementation is now changed to something more performant. For example 'bernoulli(1000)' now runs more than 250 times faster than it did before.
31 weeks ago
About BigInt release 1.11.0: 1) The functionality and API is the same as in release 1.10.0 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 BigInt must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 1.11.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 BigInt, not for people who just use BigInt.
32 weeks ago
New in release 1.10.0: 1) General performance improvements. In particular the 'modInverse' function has become faster. If the modulus is a power of 2, it typically runs 10 times faster than it did before. 2) The BFraction structure has a new static method 'bernoulli', which computes Bernoulli numbers. For example print(BFraction.bernoulli(60)) print(BFraction.bernoulli(60).asDouble()) would print -1215233140483755572040304994079820246041491 / 56786730 -2.1399949257225335e+34 The largest Bernoulli number that can be represented as a Double is bernoulli(258)
Release 1.9.0
34 weeks ago
New in release 1.9.0: The addition, subtraction, multiplication and shift operations have been modified to use the 'withUnsafeMutableBufferPointer' function in order to avoid that the compiler generates - in this case unneccesary - array index bound checks. This speeds up the execution. For example, the BigInt testsuite runs about 8 - 10% faster than it did before. Thanks to Jack Leow for suggesting the use of 'withUnsafeMutableBufferPointer'.
35 weeks ago
Performance improvements in release 1.8.0: 1) The 'gcdExtended' function is now implemented using using Lehmer's method. For 1000-bit numbers, it means that it now runs 5-6 times faster than before. 2) The 'modInverse' function now computes its result using the 'gcdExtended' function. For 1000-bit numbers, it means that it now runs 3-4 times faster than before.
Release 1.7.0
38 weeks ago
New in release 1.7.0: 1) In addition to the method public func expMod(_ x: BInt, _ m: BInt) -> BInt there is a new method public func expMod(_ x: BInt, _ m: Int) -> Int where the modulus is an 'Int' instead of a 'BInt' a.expMod(x, 17) is much faster than a.expMod(x, BInt(17)) 2) In addition to the method public func sqrtMod(_ p: BInt) -> BInt? there is a new method public func sqrtMod(_ p: Int) -> Int? where the prime number is an 'Int' instead of a 'BInt' a.sqrtMod(17) is much faster than a.sqrtMod(BInt(17))
Release 1.6.0
1 year ago
New in release 1.6.0: 1) A new constructor to create a BInt from a decimal value i.e BInt(1.7e12) 2) A 'quotientExact' method where a.quotientExact(b) is faster than a / b if it is known that the remainder of the division is 0 3) A 'population' computed property that gives the number of 1 bits in a BInt, i.e. BInt(14).population is 3
leif-ibsen/ASN1 2.2.0
Abstract Syntax Notation One (ASN1) subset in Swift
⭐️ 5
🕓 3 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
3 weeks ago
About release 2.2.0: 1) The dependency on BigInt is changed so that ASN1 depends on the newest BigInt version - 1.14.0 2) The functionality and API is unchanged
Release 2.1.0
31 weeks ago
About ASN1 release 2.1.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 ASN1 must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 2.1.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 ASN1, not for people who just use ASN1.
50 weeks ago
Richard Moats reported a bug that caused ASN1 to erroneously throw an exception on certain inputs. He also devised a solution which is now implemented.
Release 2.0.2
1 year ago
Changed the dependency on BigInt to release 1.4.0
Release 2.0.1
1 year ago
Changes in release 2.0.1: Minor code cleanup to avoid annoying compiler warnings
Release 2.0.0
2 years ago
Improved error detection and error handling. ASN1BitString initializer throws if given a wrong 'unused' value ASN1Integer initializer throws if given empty input ASN1ObjectIdentifier initializer returns 'nil' if given wrong input The 'length' part of ASN1 values is checked properly
1.2.1
3 years ago
Changed dependency to BigInt 1.1.2
1.2.0
3 years ago
Added a function to remove an element from a collection (a set or a sequence)
1.1.3
3 years ago
Updated dependency on BigInt
1.1.1
4 years ago
Changed BigInt dependency to 1.0.1
leif-ibsen/SwiftRSA 1.2.0
RSA Cryptography in Swift
⭐️ 3
🕓 3 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
3 weeks ago
About release 1.2.0: The dependency on ASN1 and BigInt is changed so that SwiftRSA depends on the newest ASN1 version - 2.2.0 and the newest BigInt version - 1.14.0 The functionality and API is unchanged
Release 1.1.0
31 weeks ago
About SwiftRSA release 1.1.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 SwiftRSA must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 1.1.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 SwiftRSA, not for people who just use SwiftRSA.
Release 1.0.1
1 year ago
This is the initial release of SwiftRSA
leif-ibsen/SwiftChaChaPoly 2.0.0
Swift ChaCha20 / Poly1305 authenticated encryption implementation
⭐️ 3
🕓 10 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release 2.0.0
10 weeks ago
About SwiftChaChaPoly release 2.0.0: 1) The ChaChaPoly constructor throws an exception if its key or nonce parameters have wrong size. In the previous release this would cause a precondition to fail 2) API and functionality is otherwise unchanged 3) A number of project Wycheproof test cases added 4) Updated documentation
Release 1.1.0
31 weeks ago
About SwiftChaChaPoly release 1.1.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 SwiftChaChaPoly must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 1.1.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 SwiftChaChaPoly, not for people who just use SwiftChaChaPoly.
Release 1.0.1
3 years ago
Minor code cleanup
Release 1.0.0
3 years ago
First release of SwiftChaChaPoly
leif-ibsen/SwiftEdDSA 2.3.0
Swift Edwards Digital Signature Algorithms
⭐️ 2
🕓 3 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
3 weeks ago
About release 2.3.0: The dependency on ASN1 and BigInt is changed so that SwiftEdDSA depends on the newest ASN1 version - 2.2.0 and the newest BigInt version - 1.14.0 The functionality and API is unchanged
Release 2.2.0
11 weeks ago
About SwiftEdDSA release 2.2.0: 1) The public and private keys have a new computed property 'der' that contains the DER encoding of the keys 2) API and functionality is otherwise unchanged 3) New test cases for sign and verify from Project Wycheproof 4) Updated documentation
Release 2.1.0
31 weeks ago
About SwiftEdDSA release 2.1.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 SwiftEdDSA must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 2.1.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 SwiftEdDSA, not for people who just use SwiftEdDSA.
Release 2.0.0
2 years ago
Changed the ASN1 dependency to ASN1 release 2.0.0 and the BigInt dependency to BigInt release 1.2.5
1.0.1
3 years ago
Fixed a typo: SwiftEd => SwiftEdDSA
First release
3 years ago
SwiftEdDSA first release
leif-ibsen/BigDecimal 1.1.1
Arbitrary-precision decimal arithmetic in Swift
⭐️ 2
🕓 31 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release 1.1.1
31 weeks ago
Corrected the dependency to .package(url: "https://github.com/leif-ibsen/BigInt", from: "1.11.0"),
Release 1.1.0
31 weeks ago
About BigDecimal release 1.1.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 BigDecimal must be inserted in every test file, in order to still be able to run the testsuite. This has been done in release 1.1.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 BigDecimal, not for people who just use BigDecimal.
Release 1.0.1
42 weeks ago
First release of BigDecimal

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics