• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: mach-o section question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mach-o section question


  • Subject: Re: mach-o section question
  • From: Dan Markarian <email@hidden>
  • Date: Mon, 21 Apr 2008 17:07:55 -0400

Hey Cem,

I am not sure whether the Mach-O format requires it, but I suggest you stick to the UUID standard documented in RFC 4122.

http://en.wikipedia.org/wiki/UUID
http://www.ietf.org/rfc/rfc4122.txt

uuid_generate() follows the standard. You can certainly create a UUID out of some other namespace, per section 4.3, for which I have provided some sample code below.

void
uuid_generate_name(const uint8_t *name, uint32_t namelen, const uuid_t namespc, uuid_t out)
{
SHA1_CTX c;
uint8_t md[SHA_DIGEST_LENGTH];


    SHA1Init(&c);
    SHA1Update(&c, namespc, sizeof(uuid_t));
    SHA1Update(&c, name, namelen);
    SHA1Final(md, &c);

    uuid_copy(out, md);

    out[6] = (out[6] & 0x0F) | 0x50;
    out[8] = (out[8] & 0x3F) | 0x80;
}

Dan

On 21 Apr 2008, at 4:33 PM, Army Research Lab wrote:

On 4/21/08 2:34 PM, "Andrew Myrick" <email@hidden> wrote:

I'm just not familiar enough with how UUIDs are used to be of much
help on this.  My guess is it doesn't matter too much, as long as you
aren't trying to load the same binary with different UUIDs.  For
example, in kext land, presume you have 2 kexts, A and B, where B
depends on A.  In the following scenario:

1) Load kext A
2) Change kext A on disk
3) Load kext B

the load will fail because we'll detect the UUID change and flag an
error.  I would expect that userspace has some similar mechanism,
though probably much more complex :)

OK, so would it be better to use the MD5 hash for the UUID? Its not perfect
(collisions can happen), but it will detect the code has changed...


Thanks,
Cem Karan

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
@apple.com


This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • mach-o digital signature segment? (was: Re: mach-o section question)
      • From: Army Research Lab <email@hidden>
References: 
 >Re: mach-o section question (From: Army Research Lab <email@hidden>)

  • Prev by Date: Re: mach-o section question
  • Next by Date: Re: kevent and disk eject
  • Previous by thread: Re: mach-o section question
  • Next by thread: mach-o digital signature segment? (was: Re: mach-o section question)
  • Index(es):
    • Date
    • Thread