Kitura / BlueRSA

RSA public/private key encryption, private key signing and public key verification in Swift using the Swift Package Manager. Works on iOS, macOS, and Linux (work in progress).
Apache License 2.0
132 stars 57 forks source link

Swift 5.8.1 build issue Linux #80

Open OurBigAdventure opened 1 year ago

OurBigAdventure commented 1 year ago

There are some build issues for this package in Swift 5.8.1 (current release version). The issues I am seeing are as follows:

/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:476:61: error: cannot find 'EVP_PKEY_size' in scope
                                ek = UnsafeMutablePointer<UInt8>.allocate(capacity: Int(EVP_PKEY_size(.make(optional: key.reference))))
                                                                                        ^~~~~~~~~~~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:476:76: error: cannot infer contextual base in reference to member 'make'
                                ek = UnsafeMutablePointer<UInt8>.allocate(capacity: Int(EVP_PKEY_size(.make(optional: key.reference))))
                                                                                                      ~^~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:481:20: error: cannot find 'EVP_CIPHER_iv_length' in scope
                                let IVLength = EVP_CIPHER_iv_length(.make(optional: enc))
                                               ^~~~~~~~~~~~~~~~~~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:481:42: error: cannot infer contextual base in reference to member 'make'
                                let IVLength = EVP_CIPHER_iv_length(.make(optional: enc))
                                                                    ~^~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:688:28: error: cannot find 'EVP_PKEY_size' in scope
                                let encKeyLength = Int(EVP_PKEY_size(.make(optional: key.reference)))
                                                       ^~~~~~~~~~~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:688:43: error: cannot infer contextual base in reference to member 'make'
                                let encKeyLength = Int(EVP_PKEY_size(.make(optional: key.reference)))
                                                                     ~^~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:690:27: error: cannot find 'EVP_CIPHER_iv_length' in scope
                                let encIVLength = Int(EVP_CIPHER_iv_length(.make(optional: encType)))
                                                      ^~~~~~~~~~~~~~~~~~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:690:49: error: cannot infer contextual base in reference to member 'make'
                                let encIVLength = Int(EVP_CIPHER_iv_length(.make(optional: encType)))
                                                                           ~^~~~
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:697:74: error: cannot convert value of type 'String' to expected argument type 'Data.Index' (aka 'Int')
                                let encryptedData = self.data.subdata(in: encKeyLength..<encKeyLength+encryptedDataLength)
                                                                                                     ^
/var/www/project/.build/checkouts/BlueRSA/Sources/CryptorRSA/CryptorRSA.swift:698:57: error: cannot convert value of type 'String' to expected argument type 'Data.Index' (aka 'Int')
                                let encryptedIV = self.data.subdata(in: encKeyLength+encryptedDataLength..<self.data.count)
                                                                                    ^

I also notice that this repo does not appear to be active, if this is the case can you let me know so I can look for an alternative.

*Please don't suggest that I create a pull request, there are currently three outstanding and no updates to the repo in 2 years.

sjrmanning commented 6 months ago

Did you ever find a way to resolve this?

drewmccormack commented 3 weeks ago

Same issue, and Heroku are effectively forcing an upgrade. Not seeing an easy way out. May be time to finally move to Vapor...