Lines Matching defs:CodeSignature
434 // NOTE: This CodeSignature section behaviour must be kept in sync with that
440 // The CodeSignature section is the last section in the MachO binary and
444 // (HashReadStart) to just before the start of the CodeSignature section
447 const CodeSignatureInfo &CodeSignature = LayoutBuilder.getCodeSignature();
451 uint8_t *HashReadEnd = BufferStart + CodeSignature.StartOffset;
453 // The CodeSignature section begins with a header, after which the hashes
455 uint8_t *HashWriteStart = HashReadEnd + CodeSignature.AllHeadersSize;
472 const uint32_t FileNamePad = CodeSignature.AllHeadersSize -
473 CodeSignature.FixedHeadersSize -
474 CodeSignature.OutputFileName.size();
479 write32be(&SuperBlob->length, CodeSignature.Size);
483 write32be(&BlobIndex->offset, CodeSignature.BlobHeadersSize);
485 HashReadEnd + CodeSignature.BlobHeadersSize);
488 CodeSignature.Size - CodeSignature.BlobHeadersSize);
493 CodeSignature.OutputFileName.size() + FileNamePad);
496 write32be(&CodeDirectory->nCodeSlots, CodeSignature.BlockCount);
497 write32be(&CodeDirectory->codeLimit, CodeSignature.StartOffset);
498 CodeDirectory->hashSize = static_cast<uint8_t>(CodeSignature.HashSize);
501 CodeDirectory->pageSize = CodeSignature.BlockSizeShift;
514 memcpy(Id, CodeSignature.OutputFileName.begin(),
515 CodeSignature.OutputFileName.size());
516 memset(Id + CodeSignature.OutputFileName.size(), 0, FileNamePad);
525 static_cast<size_t>(CodeSignature.BlockSize)));
529 assert(Hash.size() == CodeSignature.HashSize);
530 memcpy(CurrHashWritePosition, Hash.data(), CodeSignature.HashSize);
531 CurrHashReadPosition += CodeSignature.BlockSize;
532 CurrHashWritePosition += CodeSignature.HashSize;
545 msync(BufferStart, CodeSignature.StartOffset + CodeSignature.Size,