This is my library for MFRC522
https://github.com/Virviglaz/MyLibraries/blob/master/Common/MFRC522.c
https://github.com/Virviglaz/MyLibraries/blob/master/Common/MFRC522.h
To make it works you need to assign function:
void (*WriteData)(char reg, char * buf, char size);
void (*ReadData) (char reg, char * buf, char size);
void (*Delay_Func)(uint32_t us);
Which is needed to handle the interface. It can be I2C, SPI or USART. Doesn't matter.
After that you init the chip and will be able to operate it with function MFRC522_Operate32 giving it key calculation function and handler in case of sucessful reading the card. It is pure C code. Will work the same way with any C compilier and basically any kind of hardware. So, my question is still actual.