FeliCa Lite-Sの内部認証はうまくいくのだが、外部認証がうまくいかん。
Write without Encryptionで、ステータスレジスタ1=0x02、ステータスレジスタ2=0xB2になる。
ユーザーズマニュアルで確認すると、この段階でエラーになる要因は4つ。
- RCブロックの書き込み無し
- MAC不一致
- WCNT不一致
- 書き込み回数エラー
Lite-Sからは2ブロック同時書き込みが可能になっているが、2ブロック目はMAC_Aのみとなっている(ドキュメントはSTATEって書いてあるけど間違いだな)。
さて、何が悪いんだろう?
RCの書き込みは、内部認証の時にやってるから、大丈夫だろう。
WCNTは、読んだ値をそのままなので、よいはず。
ということは、やはりMACの計算が合ってないのか。
SK1とSK2が読み出しの時と逆、というくらいしか意識しなくてよさそうなんだけど。
気になっているのは、1次発行してないときに外部認証できるのか?ということ。
WCNTレジスタの説明で、「工場出荷時はFFFE00」「FFFE00に達した後はMACつき書き込みができない」と書いてあるからだ。
せめて、MC_STATE_W_MAC_Aを0x01にして、書き込みにMAC必要とするべきなのか?
試してみたいけど、MCレジスタは書き込むと元に戻せないので、もうちょっと確証がほしいところだ。
ついでだが、4.2.2にも誤記あり。
MAC_Aの読み出しってなってるが、値がMACレジスタ(0x81)になってる。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。