]> git.saurik.com Git - ldid.git/commitdiff
Sort of support signing bundles with entitlements.
authorJay Freeman (saurik) <saurik@saurik.com>
Sat, 10 Oct 2015 21:07:32 +0000 (14:07 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Sat, 10 Oct 2015 21:07:32 +0000 (14:07 -0700)
ldid.cpp
ldid.hpp

index 33b1859ada7bad3631999cc5c0fa0cca2a769331..049338bd0331b3508fe9d441633ecf71cbdd2503 100644 (file)
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -1812,7 +1812,7 @@ struct RuleCode {
     }
 };
 
-std::string Bundle(const std::string &root, Folder &folder, const std::string &key, std::map<std::string, std::vector<char>> &remote) {
+std::string Bundle(const std::string &root, Folder &folder, const std::string &key, std::map<std::string, std::vector<char>> &remote, const std::string &entitlements) {
     std::string executable;
     std::string identifier;
 
@@ -1873,7 +1873,7 @@ std::string Bundle(const std::string &root, Folder &folder, const std::string &k
             return;
         auto bundle(root + Split(name).dir);
         SubFolder subfolder(folder, bundle);
-        Bundle(bundle, subfolder, key, local);
+        Bundle(bundle, subfolder, key, local, "");
     }));
 
     folder.Find("", fun([&](const std::string &name, const Functor<void (const Functor<void (std::streambuf &, std::streambuf &)> &)> &code) {
@@ -1978,7 +1978,7 @@ std::string Bundle(const std::string &root, Folder &folder, const std::string &k
             slots[3] = local.at(signature);
 
             HashProxy proxy(local[executable], save);
-            Sign(data.data(), data.size(), proxy, identifier, "", key, slots);
+            Sign(data.data(), data.size(), proxy, identifier, entitlements, key, slots);
         }));
     }));
 
@@ -2137,7 +2137,7 @@ int main(int argc, char *argv[]) {
             _assert(!flag_r);
             ldid::DiskFolder folder(path);
             std::map<std::string, std::vector<char>> hashes;
-            path += "/" + Bundle("", folder, key, hashes);
+            path += "/" + Bundle("", folder, key, hashes, entitlements);
         } else if (flag_S || flag_r) {
             Map input(path, O_RDONLY, PROT_READ, MAP_PRIVATE);
 
index b7bbdaf8b25041182680bd09de72bdfc5f8c525a..8ea6cf7b3b0fe64e40599cc7f069df666d7e9eb6 100644 (file)
--- a/ldid.hpp
+++ b/ldid.hpp
@@ -106,7 +106,7 @@ class UnionFolder :
     }
 };
 
-std::string Bundle(const std::string &root, Folder &folder, const std::string &key, std::map<std::string, std::vector<char>> &remote);
+std::string Bundle(const std::string &root, Folder &folder, const std::string &key, std::map<std::string, std::vector<char>> &remote, const std::string &entitlements);
 
 typedef std::map<uint32_t, std::vector<char>> Slots;