12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef CM_GPA_H
- #define CM_GPA_H
- // -------------------------------------------------------------------------------------------------
- // Other includes required by this header file
- // -------------------------------------------------------------------------------------------------
- #include "CM_LIB.h"
- // Macros for all of the registers
- #define RA (ucGpaRegisters[0])
- #define RB (ucGpaRegisters[1])
- #define RC (ucGpaRegisters[2])
- #define RD (ucGpaRegisters[3])
- #define RE (ucGpaRegisters[4])
- #define RF (ucGpaRegisters[5])
- #define RG (ucGpaRegisters[6])
- #define TA (ucGpaRegisters[7])
- #define TB (ucGpaRegisters[8])
- #define TC (ucGpaRegisters[9])
- #define TD (ucGpaRegisters[10])
- #define TE (ucGpaRegisters[11])
- #define SA (ucGpaRegisters[12])
- #define SB (ucGpaRegisters[13])
- #define SC (ucGpaRegisters[14])
- #define SD (ucGpaRegisters[15])
- #define SE (ucGpaRegisters[16])
- #define SF (ucGpaRegisters[17])
- #define SG (ucGpaRegisters[18])
- #define Gpa_byte (ucGpaRegisters[19])
- #define Gpa_Regs (20)
- // Defines for constants used
- #define CM_MOD_R (0x1F)
- #define CM_MOD_T (0x1F)
- #define CM_MOD_S (0x7F)
- // Macros for common operations
- #define cm_Mod(x,y,m) ((x+y)>m?(x+y-m):(x+y))
- #define cm_RotT(x) (((x<<1)&0x1e)|((x>>4)&0x01))
- #define cm_RotR(x) (((x<<1)&0x1e)|((x>>4)&0x01))
- #define cm_RotS(x) (((x<<1)&0x7e)|((x>>6)&0x01))
- // Externals
- extern uint8_t ucGpaRegisters[Gpa_Regs];
- // Function Prototypes
- void cm_ResetCrypto(void);
- uint8_t cm_GPAGen(uint8_t Datain);
- void cm_CalChecksum(uint8_t *Ck_sum);
- void cm_AuthenEncryptCal(uint8_t *Ci, uint8_t *G_Sk, uint8_t *Q, uint8_t *Ch);
- void cm_GPAGenN(uint8_t Count);
- void cm_GPAGenNF(uint8_t Count, uint8_t DataIn);
- void cm_GPAcmd2(uint8_t * pucInsBuff);
- void cm_GPAcmd3(uint8_t * pucInsBuff);
- void cm_GPAdecrypt(uint8_t ucEncrypt, uint8_t * pucBuffer, uint8_t ucCount);
- void cm_GPAencrypt(uint8_t ucEncrypt, uint8_t * pucBuffer, uint8_t ucCount);
- #endif
|