site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Hey Cem, http://en.wikipedia.org/wiki/UUID http://www.ietf.org/rfc/rfc4122.txt 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" <amyrick@apple.com> 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 :) Thanks, Cem Karan _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... I am not sure whether the Mach-O format requires it, but I suggest you stick to the UUID standard documented in RFC 4122. 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]; 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... _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/markarian %40apple.com This email sent to markarian@apple.com This email sent to site_archiver@lists.apple.com