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

Linux. Crash when decrypting: "Fatal error: Can't form Range with upperBound < lowerBound" #73

Open ksinghal opened 3 years ago

ksinghal commented 3 years ago

OS: Linux OpenSSL Version: 1.1.1

I am using the same exact code on MacOS and on Linux:

guard let decryptedData = try CryptorRSA.createEncrypted(with: data).decrypted(with: privateKey, algorithm: .sha1)?.data

I am attempting to decrypt data with a private key. It works properly on MacOS, but when running on Linux I get a crash with error:

Fatal error: Can't form Range with upperBound < lowerBound: file Swift/Range.swift, line 728

I noticed this is coming from line 697 in Sources/CryptorRSA.swift during the step with the comment "Extract encryptedKey, encryptedData, encryptedIV from data"

mbarnach commented 3 years ago

How are you creating the key? And what kind? Some functions are only available on MacOS.

Could you make a simple test that shows the crash? Thanks.

You can also have a look at BlueCryptor and BlueEEC if RSA is not a strong requirement.