This project contains tools to generate, view, edit and validate ANSI/NIST-ITL files, in particular the ANSI/NIST-ITL 1-2011 Update: 2015 version.
NIST Validator (NIVal) is a project funded by Germany's Federal Office for Information Security (BSI). The software solution validates biometric files by checking whether they are structured correctly, according to the specifications from the U.S. Department of Commerce's National Institute of Standards and Technology (NIST) and the European Union.
The project consists of 3 modules:
nist_validator: A python library for parsing, editing, validating and writing NIST-ITL files.nist_validator_cli: A command-line interface (CLI) module for handling NIST-ITL files (usesnist_validator).nist_validator_gui: A graphical user interface (GUI) module for handling NIST-ITL files (usesnist_validator).
- Transaction: A transaction is the data that fits into one NIST-ITL file. See Section "5.1 Structure of a transaction" of the NIST-ITL Standard.
- Record: A record is comprised of fields. Multiple records make up a transaction.
- Field: A field may have one or multiple values (called subfields in the standard). Each value can either be a simple value or a collection of information items.
- Info Item: Abbreviation for information item. See "Field".
This guide assumes you already have the following files:
nist_validator-0.2.0-py3-none-any.whlnist_validator_cli-0.2.0-py3-none-any.whlnist_validator_gui-0.2.0-py3-none-any.whl
- Create a directory for the installation, e.g., nist_validator.
- Copy the above .whl files into this directory.
python3 -m venv venv
source venv/bin/activate
python -m pip install nist_validator-0.2.0-py3-none-any.whl
python -m pip install nist_validator_cli-0.2.0-py3-none-any.whl
python -m pip install nist_validator_gui-0.2.0-py3-none-any.whl
deactivatepython -m venv venv
venv\Scripts\activate
python -m pip install nist_validator-0.2.0-py3-none-any.whl
python -m pip install nist_validator_cli-0.2.0-py3-none-any.whl
python -m pip install nist_validator_gui-0.2.0-py3-none-any.whl
deactivateOnce the installation is complete, you can safely delete the .whl files as they are no longer needed. Usage
After installation, you can run:
- CLI version:
venv/Scripts/nival(Windows) orvenv/bin/nival(Linux/macOS)
- GUI version:
venv/Scripts/nival_gui(Windows) orvenv/bin/nival_gui(Linux/macOS)
To update an existing installation, simply follow the installation steps again. The new versions will replace the old ones.
To completely remove the installation, delete the venv directory or the installation directory (nist_validator, if following step 1).
To install and use the modules follow these steps:
- Package
- Install
- Verify packages (optional)
- Run
Run:
python dev_util/package_modules.pyYou will find the generated packages (*.tar.gz and .whl files) in the dist folder.
Install the desired packages into your project by running this from your project root:
Option 1: Pre-built (faster, without source code):
python -m pip install path/to/nist_validator-0.2.0-py3-none-any.whl
python -m pip install path/to/nist_validator_cli-0.2.0-py3-none-any.whl
python -m pip install path/to/nist_validator_gui-0.2.0-py3-none-any.whlOption 2: Source distribution (slower, with source code):
python -m pip install path/to/nist_validator-0.2.0.tar.gz
python -m pip install path/to/nist_validator_cli-0.2.0.tar.gz
python -m pip install path/to/nist_validator_gui-0.2.0.tar.gzNote: Using .whl files installs pre-built packages for faster set-up, using .tar.gz files includes the source code and requires building during installation.
There is a helper script to test if the *.tar.gz and .whl files can be installed:
python dev_util/validate_packaged_modules.pyThis creates a virtual environment in the dist folder, and then installs and tests the modules it can find.
See the respective README.md files per module.
To start developing, checkout/clone this repo and then run:
python dev_util/setup_developer_env.pyYou can run this script as often as desired.
This will create a virtual environment venv and install in venv:
requirements-dev.txt: The dependencies for formatting, testing, packaging and committing the code.- The modules
nist_validator,nist_validator_cliandnist_validator_guiin editable mode.
You can now start your integrated development environment (IDE). Direct it to the virtual environment venv and start
running/editing the code.
Sometimes IDEs have problems recognizing the editable modules. In that case, it can help to:
- close the IDE
- remove the
venvfolder - re-run
python dev_util/setup_developer_env.py(even two times can be helpful) - re-open the IDE
The NIST-ITL-Validator is licensed under the European Union Public License Version 1.2 (or-later). For more information on the license, see the included license text itself or the according website of the European Commission.