niseCore architecture

flowchart LR
  Client[WBF wrapper or application] --> VFM[VFM core]
  VFM --> Sensor[Sensor interface]
  VFM --> Matcher[Matcher interface]
  VFM --> Storage[Storage interface]
  VFM --> Auth[Authenticator modules]
  VFM --> IST[IST / NITE engineering paths]
  Sensor --> PAL[Platform abstraction layer]
  Matcher --> PAL
  Storage --> PAL
  Auth --> PAL
  PAL --> Transport[USB / SPI / secure runtime]
  Transport --> Firmware[Fingerprint sensor firmware]
  UTF[UTF and engineering tests] -. validates .-> VFM
  UTF -. validates .-> Sensor
  UTF -. validates .-> Matcher
  UTF -. validates .-> Storage

Boundaries

ComponentSourceArchitectural responsibility
VFM corevfmCore/ and common/include/vfm*.hOrchestrates device, capture, enrollment, match, storage and utility operations.
Sensor interfacesensor/ and common/include/niseSensor*.hImplements sensor-family commands, secure sessions, capture and device communication.
Matcher interfacematcher/ and common/include/niseMatcher.hExtracts/enrolls/matches feature sets through configured matcher backends.
Storage interfacestorage/ and common/include/niseStorage.hProvides host or device template persistence backends.
PALpal/Abstracts runtime, crypto and sensor transport across Windows and secure/embedded environments.
Authenticatorauthenticator/Provides in-sensor and Android HAL authentication support when enabled.
IST/NITEist/ and nite/Provides sensor engineering-test script/execute engines and trusted runtime pieces.
UTF/testsutf/ and common/tests/Supplies test harnesses and engineering validation targets.

Change-safety rules

  • Follow calls and data across component boundaries; a changed header or customer property can affect multiple binaries.
  • Keep source revision and branch explicit because configured branches differ substantially.
  • Validate both the component and its direct consumers.
  • Treat optional/customer-selected components as conditional, not universally deployed.