Go製 Felica ライブラリ pasori に read without encryption コマンドと write without encryption コマンドを足した

Windows だけだが、拙作の Go製 Felica ライブラリ pasoriread without encryptionwrite without encryption コマンドを足した。

参考にした記事/サイト一覧

FeliCa Lite-S ユーザーズマニュアル

FeliCa - おなかすいたWiki!

[PASMO] FeliCa から情報を吸い出してみる - FeliCaの仕様編 [Android][Kotlin] - Qiita

FeliCa Liteの片側認証 - hiro99ma site

使い方

基本的な使い方は cmd/dump を見てもらえばいい。今のところ、FelicaWriteWithoutEncryption に渡す書き込み値は最初の16バイトをユーザーブロック0に書くのみ。 MAC付読み込み/書き込みは今のところサポートしてない。

package main

import (
    "fmt"

    "github.com/bamchoh/pasori"
)

func dump_buffer(buf []byte) string {
    str := ""
    for _, b := range buf {
        str += fmt.Sprintf("%02X", b)
    }
    return str
}

var (
    VID uint16 = 0x054C // SONY
    PID uint16 = 0x06C3 // RC-S380
)

func main() {
    var err error
    fmt.Println("Please touch FeliCa")
    psr, err := pasori.InitPasori()
    if err != nil {
        panic(err)
    }
    defer psr.Release()

    err = psr.FelicaWriteWithoutEncryption([]byte{16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1})
    if err != nil {
        panic(err)
    }

    b, err := psr.FelicaReadWithoutEncryption()
    if err != nil {
        panic(err)
    }
    fmt.Println(b)
}