2014/06/22

[felica]外部認証がうまくいかん

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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。