// diskimagerep - DiskRep representing a single read-only compressed disk image file
//
#include "diskimagerep.h"
+#include "notarization.h"
#include "sigblob.h"
#include "CodeSigner.h"
#include <security_utilities/endian.h>
// Object management.
//
DiskImageRep::DiskImageRep(const char *path)
- : SingleDiskRep(path)
+ : SingleDiskRep(path), mSigningData(NULL)
{
this->setup();
}
+DiskImageRep::~DiskImageRep()
+{
+ free((void*)mSigningData);
+}
+
void DiskImageRep::setup()
{
+ free((void*)mSigningData);
mSigningData = NULL;
// the UDIF "header" is in fact the last 512 bytes of the file, with no particular alignment
//
void DiskImageRep::Writer::flush()
{
- delete mSigningData; // ditch previous blob just in case
+ free((void*)mSigningData); // ditch previous blob just in case
mSigningData = Maker::make(); // assemble new signature SuperBlob
// write signature superblob
{
}
+void DiskImageRep::registerStapledTicket()
+{
+ CFRef<CFDataRef> data = NULL;
+ if (mSigningData) {
+ data.take(mSigningData->component(cdTicketSlot));
+ registerStapledTicketInDMG(data);
+ }
+}
+
} // end namespace CodeSigning
} // end namespace Security