Code Climate Gem Version

VACMAN Controller is VASCO's implementation of OTP physical and virtual devices, revolving around the AAL2 library.

This gem contains a very thin wrapper around AAL2 and allows to parse DPX files, generate OTPs and verify them.


Get Vacman Controller library from the TrustBuilder repo, download the aal2sdk-*.rpm and place its contents in /opt/vasco. The Ruby extension looks for /opt/vasco/VACMAN_Controller-*

Add to your application Gemfile

gem 'vacman_controller'

To run specs download the sources and execute



The library provides access to the low-level functions of libaal2 through the VacmanController::LowLevel module, that has only singleton methods and does not keep any state.

The only shared state across all threads are the kernel params. Please ensure that all threads coordinate when changing it.

The library provides also a VacmanController::Token abstraction, providing token information and APIs that decode from and to Ruby objects when reading and writing.

Ensure to persist the token.to_h value after performing any operation on a token. The token hash contains the token state, that is altered by most APIs.

For extended usage examples, please have a look at the specs.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some great feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request