Rust libfprint?

Share
Rust libfprint?

指紋認証は便利で快適です。

iPhoneはFaceIDを使うので別次元の快適さですが、PCでは指紋認証が現役です。

Windows/Macはいざ知らずいざ知らず、Linuxで指紋認証デバイスを使おうと思ってもPlug-and-Playというわけにはいきません。

それどころか、Linuxでの指紋認証サポートは限定的です。

Linuxではfprint projectが主体となって(事実上のデファクトとして)指紋認証デバイスのサポートを行っていますが、指紋認証デバイスの仕様をメーカーが公開していない以上、指紋認証デバイスAを持つユーザーが自分でドライバAを書くほかありません。

メンテナーによる骨の折れる作業と血のにじむ努力によって多数のデバイスがLinuxでサクッと動くようになり、Linux Mintなどの一部ディストロではGUIから気楽に使えるようになったので、対応デバイスをお持ちの方にとってはとてもいい時代になりました。

しかし、まあ、内部実装が歴史的につらい事情などなど、現代的に作り直すことで歴史から解き放ちつつも、共存の道を模索するプロジェクトとしてfprintdというプロジェクトを私が立ち上げました。

GitHub - P4suta/fprintd: A GObject-free, pure-Rust fingerprint stack that speaks fprintd’s D-Bus contract (net.reactivated.Fprint): daemon, NBIS MINDTCT/BOZORTH3 ports, and an embeddable core.
A GObject-free, pure-Rust fingerprint stack that speaks fprintd’s D-Bus contract (net.reactivated.Fprint): daemon, NBIS MINDTCT/BOZORTH3 ports, and an embeddable core. - P4suta/fprintd

小難しくいっていますが、要するにRustで実装したよ、ということです。

MINDTCT

指紋画像から特徴量を抽出するのに用いられるアルゴリズムの一つにNISTが開発したMINDTCTが用いられます。

本プロジェクトではMINDTCTをRustで実装し、公開しています

Bozorth3

指紋照合に広く用いられるアルゴリズムのひとつにNISTが開発したBozorth3が用いられます。

本プロジェクトではBozorth3をRustで実装し、公開しています

プロジェクトの今後

結局のところ、メーカーが仕様を公開しない限り、我々はいつまでもリバースエンジニアリングの沼のままです。

私自身このプロジェクトのためにこの世のすべての指紋認証デバイスを入手し、対応するドライバを書き上げ……といったことはできませんが、逆に皆さんが「私の指紋認証デバイスが動いたらうれしいな。」ということでしたら、各種準備は整えておりますのでお手元のAI Agentを使って私のプロジェクトの中にドライバを書けばいいかと思います。もし、ほかに世界の誰か同じデバイスを使っている人のためになるかも、と思ってくださる方はPull Requestなどで協力していただけると幸いです。

Read more

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu

イケイケなWinスクショアプリを作りました

パソコンのスクショってなんというか、地味というか、撮ってそのままだと何とものっぺりしていますよね。 特にWindowsだとMacっぽい丸っこい感じとかもなく、無骨だなあと。 ということで、それっぽくおしゃれな背景や角丸を付けておしゃれに撮影をしてくれるスクショアプリを作りました。 GitHubで公開しています。 GitHub - P4suta/Snaply: Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10)Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10) - P4suta/SnaplyGitHubP4suta ウィンドウ・領域選択・スクリーンのキャプチャができます。 タッチスクリーンなどにも対応しているはずです。 撮影をすると、クリップボードにコピーされ、フォルダーへの保存もされます。

By Sakashita Yasunobu