📄 opecard.c
字号:
#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <fcntl.h>#include "cardio.h"int getNumFromCard(char *devName){#if DEBUG return 20;#else int cardFd; int readv; cardFd=open(devName,0666); if(cardFd<0) { printf("open %s failed\n",devName); return 1; } ioctl(cardFd,CARD_IOC_GETNUM,&readv); close(cardFd); return readv;#endif}#define MACRO_GROUP(a,b,c,d,e,f) \ tbuf[0]=buf[a]; tbuf[1]=buf[b]; \ tbuf[2]=buf[c]; tbuf[3]=buf[d]; \ if(write(cardFd,tbuf,4)<0) \ step++; \ if(read(cardFd,tbuf,2)<0) \ step++; \ rbuf[e]=tbuf[0]; \ rbuf[f]=tbuf[1];int cryptCard(char *devName,unsigned char *buf,unsigned char *rbuf){ int cardFd,step=0; unsigned char tbuf[4]; cardFd=open(devName,0x666); if(cardFd<0) return step++; MACRO_GROUP(3,16,4,25,0,1) MACRO_GROUP(0,20,12,22,2,3) MACRO_GROUP(27,28,14,31,4,5) MACRO_GROUP(15,23,13,30,6,7) MACRO_GROUP(11,29,8,26,8,9) MACRO_GROUP(6,10,9,21,10,11) MACRO_GROUP(2,19,1,17,12,13) MACRO_GROUP(5,18,7,24,14,15) close(cardFd); return step;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -