OnlineUnlockStatus::getLocalMachineIDs() issues

I know that I can overload getLocalMachineIDs and I did create my own. Nevertheless I suggest to change the current implementation because it gives different results on the same physical computer. Not what you want in a challenge response unlock mechanism...

On Windows (at least on Windows 8), a 32 bit binary yields a different result than a 64 bit binary.

File::getSpecialLocation (File::windowsSystemDirectory).getFileIdentifier();


On OS X, an AU gives a different result in Garage Band (where the plugin is sandboxed) then everywhere else. Here, the discrepance lies in

File ("~").getFileIdentifier();

(I haven't tried it, but on OS X the folder "~/Music/" should be accessible on sandboxed applications, according to


The fallback mechanism that uses the MAC addresses gives equal local machine IDs in all cases, btw.

Thanks for the tip, that's a good catch.

I can't actually change this because doing so would mean that existing apps which use the default implementation would suddenly become unregistered.

But I think what I might do is to change the method to be pure-virtual, so that it forces everyone to choose the mechanism that they want to use for the ID, and so that there's no danger of the base class method changing and messing up their installed user-base.