I'm trying to change the 3DES key on an Ultralight C card. I can write the the values in to the address 44-47 as I've found in some topics here. But I cannot authenticate when using it. If I write back the default key it works with no problems.
I think there's something I don't understand that's maybe the source of the problem, looking at the freefare library examples and in some posts from this and libnfc forum I've found the default key in ultralight C is: 425245414b4d454946594f5543414e21
(hex values for ASCII "BREAKMEIFYOUCAN!"), but for decryption it on client the key used 49454D4B41455242214E4143554F5946
.
I don't know what's the relation between both keys, but I think some predified operation needs to be done in order to generate one from the other, and that's the cause of my failures. Did somebody had luck doing that? Every help is appreciated
For all my code I used this code as an starting point.