summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2015-09-21 00:05:11 -0700
committerJay Freeman (saurik) <saurik@saurik.com>2015-09-21 00:05:11 -0700
commitbb591e2b22d2c30a0f6e45d4f3a827e90d5d9f7b (patch)
treef776c1f3c727db8f9cc73b5fdbda51a98bd160b4
parent8f310b9112e5776ea16e795cb18bc8e02c9a96f7 (diff)
downloadldid-bb591e2b22d2c30a0f6e45d4f3a827e90d5d9f7b.tar.gz
ldid-bb591e2b22d2c30a0f6e45d4f3a827e90d5d9f7b.tar.zst
ldid-bb591e2b22d2c30a0f6e45d4f3a827e90d5d9f7b.zip
Reimplement requirements using newer abstractions.
-rw-r--r--ldid.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/ldid.cpp b/ldid.cpp
index e0e38d1..102c33b 100644
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -1128,6 +1128,11 @@ void resign(void *idata, size_t isize, std::streambuf &output, const Functor<siz
typedef std::map<uint32_t, std::string> Blobs;
+static void insert(Blobs &blobs, uint32_t slot, const std::stringbuf &buffer) {
+ auto value(buffer.str());
+ std::swap(blobs[slot], value);
+}
+
static void insert(Blobs &blobs, uint32_t slot, uint32_t magic, const std::stringbuf &buffer) {
auto value(buffer.str());
Blob blob;
@@ -1199,11 +1204,10 @@ void resign(void *idata, size_t isize, std::streambuf &output, const std::string
if (true) {
std::stringbuf data;
- uint32_t requirements;
- requirements = Swap(0);
- put(data, &requirements, sizeof(requirements));
+ Blobs requirements;
+ put(data, CSMAGIC_REQUIREMENTS, requirements);
- insert(blobs, CSSLOT_REQUIREMENTS, CSMAGIC_REQUIREMENTS, data);
+ insert(blobs, CSSLOT_REQUIREMENTS, data);
}
if (entitlements.size() != 0) {