#include <sys/types.h>
#ifndef LDID_NOSMIME
-#include <openssl/provider.h>
+#include <openssl/opensslv.h>
+# if OPENSSL_VERSION_NUMBER >= 0x30000000
+# include <openssl/provider.h>
+# endif
#include <openssl/err.h>
#include <openssl/pem.h>
#include <openssl/pkcs7.h>
static std::vector<Algorithm *> algorithms;
if (algorithms.empty()) {
- if (do_sha1)
- algorithms.push_back(&sha1);
if (do_sha256)
algorithms.push_back(&sha256);
+ if (do_sha1)
+ algorithms.push_back(&sha1);
}
return algorithms;
}
static void usage(const char *argv0) {
- fprintf(stderr, "usage: %s -S[entitlements.xml] <binary>\n", argv0);
- fprintf(stderr, " %s -e MobileSafari\n", argv0);
- fprintf(stderr, " %s -S cat\n", argv0);
- fprintf(stderr, " %s -Stfp.xml gdb\n", argv0);
+ fprintf(stderr, "Link Identity Editor %s\n\n", LDID_VERSION);
+ fprintf(stderr, "usage: %s [-Acputype:subtype] [-a]\n", argv0);
+ fprintf(stderr, " [-C[adhoc | enforcement | expires | hard |\n");
+ fprintf(stderr, " host | kill | library-validation | restrict | runtime]] [-D] [-d]\n");
+ fprintf(stderr, " [-e] [-h] [-Kkey.p12 [-Upassword]] [-M] [-P] [-q] [-r | -Sfile | -s]\n");
+ fprintf(stderr, " [-Ttimestamp] [-u] file ...\n\n");
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -S[file.xml] Pseudo-sign using the entitlements in file.xml\n");
+ fprintf(stderr, " -Kkey.p12 Sign using private key in key.p12\n");
+ fprintf(stderr, " -Upassword Use password to unlock key.p12\n");
+ fprintf(stderr, " -M Merge entitlements with any existing\n");
+ fprintf(stderr, " -h Print CDHash of file\n\n");
+ fprintf(stderr, "More information: 'man ldid'\n");
}
#ifndef LDID_NOTOOLS
int main(int argc, char *argv[]) {
#ifndef LDID_NOSMIME
OpenSSL_add_all_algorithms();
+# if OPENSSL_VERSION_NUMBER >= 0x30000000
OSSL_PROVIDER *legacy = OSSL_PROVIDER_load(NULL, "legacy");
OSSL_PROVIDER *deflt = OSSL_PROVIDER_load(NULL, "default");
+# endif
#endif
union {
}
#ifndef LDID_NOSMINE
+# if OPENSSL_VERSION_NUM >= 0x30000000
OSSL_PROVIDER_unload(legacy);
OSSL_PROVIDER_unload(deflt);
+# endif
#endif
return filee;