CPU卡程式設計例項(二十二)CPU卡內部認證

2021-07-31 08:58:40 字數 1264 閱讀 9036

/*******************************************

函式名稱:cardinsideverify

函式功能:卡內部認證

輸入引數:pcrecardrand-卡產生的隨機數, keyid--認證金鑰識別符號

輸出引數:pcrecedatabuff,加密後的資料

描述:發命令頭-發命令資料-發「取響應資料」-判斷是否正確

*******************************************/

unsigned char *cardinsideverify(unsigned char pcrecardrand[8],unsigned char keyid)

;unsigned char *pcrecedatabuff;

unsigned int itemp;

ccommandlen=0x05;

txandrxbuff[0]=0x00;

txandrxbuff[1]=0x88;

txandrxbuff[2]=0x00;

txandrxbuff[3]=keyid;

txandrxbuff[4]=0x08;

sendcommandhead_pro();

if(errorrwbit&carderror) goto cardinsidevaliend;

memcpy(&txandrxbuff[0],&pcrecardrand[0],8);

delay1xetu(4);

ccommandlen=8;

sendcommand(ccommandlen);//

txandrxbuff[0]=cardrecechar();

txandrxbuff[1]=cardrecechar();

sendc0comm();

if(errorrwbit&carderror) goto cardinsidevaliend;

for(itemp=0;itemp<8;itemp++)

txandrxbuff[0]=cardrecechar();

txandrxbuff[1]=cardrecechar();

if((txandrxbuff[0]!=0x90)&&(txandrxbuff[1]!=0x00))

cardinsidevaliend:

pcrecedatabuff=&crececarddatdbuff2[0];

delay_ms2m(5);

return pcrecedatabuff;

}

CPU卡程式設計例項(十四)終端向CPU卡傳送資料

終端向cpu卡傳送乙個位元組函式 函式名稱 cardsendchar 函式功能 向cpu卡傳送一位元組 入口引數 csendchar,要傳送的位元組 出口引數 無 描述 傳送10位,第一位起始位 始終為低 第10位是校驗位,最多發3次,void cardsendchar unsigned char ...

CPU卡程式設計例項(六)ETU配置

1 資料位寬時間 etu 計算程式 前面已經說過,資料位寬是cpu卡程式設計中非常重要的一環,涉及到資料讀寫的可靠性和穩定性。下面這段程式就是在iar環境下,基於msp430微控制器c語言的資料位寬計算程式。函式名稱 delay1xetu 函式功能 延時n個資料位寬的時間 輸入引數 idelay 輸...

初識CPU卡 SAM卡

ic卡按照介面方式可分為接觸式卡 非接觸式卡 復合卡 按器件技術可分為非加密儲存卡 加密儲存卡和cpu卡。加密儲存卡是對持卡人的認證,只有輸入正確的密碼才能訪問或者修改卡中的資料,最典型的是手機sim卡的pin碼 當設定pin碼後,開機必須輸入pin碼,如果連續幾次輸入錯誤,就必須更高許可權的puk...