App Store Rejection for using libcrypto.dylib

0.9.8 no worky for ARM.

And 3.5 doesn’t work on High Sierra even though it’s there.

Find Any File:

FunctionNotFound in Xojo 2020r2.1:

1 Like

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html#//apple_ref/doc/uid/TP40010573-CH1-SW5

If you use OpenSSL, statically link your binary against it. Dynamic linking against OpenSSL is deprecated and results in build warnings.

tl;dr this means bundle your own build of OpenSSL inside.

3 Likes

As far as I can see I’m only using RSA and SHA1 to encrypt, decrypt and hash some stuff. No OpenSSL. But the code is really old.

Yippee

OpenSSL provides two primary libraries: libssl and libcrypto. The libcrypto library provides the fundamental cryptographic routines used by …

libcrypto is OpenSSL.
https://www.google.com/search?q=libcrypto

Nope. It’s just the cryptographic lib used by it.

" The OpenSSL crypto library implements a wide range of cryptographic algorithms used in various Internet standards. … libcrypto consists of a number of sub-libraries that implement the individual algorithms."

https://www.openssl.org/docs/man1.0.2/man3/crypto.html

OpenSSL depends on it.

That sentence does not mean that OpenSSL is not libcrypto? Did you follow my Google link?

Additionally, the phrase “dep” does not exist on that page. It is not a dependency per that page.

Also, that does not help anyone trying to use libcrypto package it up. While my posts, do. Please don’t derail the thread to um-actually me… again. I’m so sick of you trying to do that.

Lastly, have you ever built OpenSSL yourself?

I’ll won’t discuss about it. It will be a silly talk. I also published a link, from the source. Just read about it deeper.

That’s all I ask, but next time in the future - do that before you post.

Hey man, you are exaggerating. Please, have manners.

Alright. so it is late here. I’ll have a think tomorro, maybe there’s a way I can redesign my class to accommodate both and still use the built-in libraries for Mac OS.

If you include libcrypto within your application, there is licensing which must be taken into consideration and I don’t have the brain power to deal with that right now.

@Tim_Parnell @Rick_A
Bickering adds nothing to this conversation. Please take your conversation offline.

1 Like

Let’s say that libcrypto is NOT ONLY OpenSSL. These are some declares that I found in the old code:

Declare Function RSA_public_decrypt Lib CryptoLib (flen as integer, from as Ptr, mto as Ptr, rsa as Ptr, padding as integer) As integer
Declare Function ERR_error_string Lib CryptoLib (e as Integer, buf as Ptr) As CString
Declare Function ERR_get_error Lib CryptoLib () as Integer
Declare Function SHA1_Init Lib CryptoLib (c as Ptr) As integer
Declare Function SHA1_Update Lib CryptoLib (c as Ptr, data as CString, mlen as integer) As integer
Declare Function SHA1_Final Lib CryptoLib (md as Ptr, c as Ptr) As integer

I would prefer not to convert those to Xojo code. But the alternative of linking to the dylib also doesn’t sound like much fun.

2 Likes

If no one calls it out publicly, the toxic attitude will continue. This attitude needs to stop. I’m taking my stand. Where are the moderators?

@Sam_Rowlands the licensing for both seems pretty straight forward

I’m done helping here, I guess. It’s not like I’ve packaged up libcrypto more than once for deployment or anything. Not like I know the exact answer to Help calling a function from dylib If you want to get it working, I guess I need to take my discussions offline.

Please don’t leave. I is tired and may not fully understand the ins and outs of the whole process.

I know something needs to change, and I can’t think very clearly right now. All I can see is that there are multiple copies installed in the OS, Xojo also includes a libcrypto with our built apps, I’d like to try to find a way how we figure this out, preferably without having to include another copy of libcrypto somewhere in the app, but if it really comes to that.

Right now, I only need to use libcrypto to parse App Store receipts, maybe having another copy of libcrypto just for App Store builds isn’t such a bad thing?

@Greg_O_Lone is the libcrypto dylib that Xojo includes in built apps, a full copy of libcrypto or just the functions that Xojo exposes? i.e. Can we declare into Xojo’s library to call all libcrypto functions, or just a select set of functions?

Please don’t leave. Would you share your packaging? I don’t mind paying money for code.

1 Like

For those concerned by my post, I don’t mean that I plan to leave… Though, I’m not going to stick around to be targeted when I have actually solved this issue more than once.

I have reached out to Sam and Beatrix offline.

2 Likes

You can still use libcrypto.35.dylib for this purpose, it works fine from macOS 10.11 (“El Capitan”) through macOS 11.2 (“Bg Sur”), all my apps in the Mac App Store use this one…

In some of my apps I still support 10.10 Yosemite.

  • HDRtist NX 2 only requires 10.11 because I went all in on Metal. When I started beta testing did I realize that Metal is only standard on 10.14, so I had to support OpenGL as well.
  • Iconographer Mini requires 10.16, only because Apple won’t let me include their icons in my App Store apps, so to get the BS templates it has to be run on BS. But Catalina or below templates are not allowed :frowning:
  • App Wrapper 4 only requires 10.13.6 because Apple do not offer Notarization for system below that.

As not much else has changed (except Apple renaming functions for change sake) most of my apps and functionality still work on 10.10, even Dark Mode (albeit they changed many color names too).

My immediate goal is to try to get this class so it can use either dylib at the moment. If I am unsuccessful, then I investigate other options (including @Tim_Parnell suggestion of bundling a libcrypto.dylib with my apps).

Forum for Xojo Programming Language and IDE. Copyright © 2021 Xojo, Inc.