Skip to content

LibHaLo - Programmatically interact with HaLo tags from the web browser, mobile application or the desktop.

License

Notifications You must be signed in to change notification settings

amit-shah-cb/libhalo

 
 

Repository files navigation

LibHaLo

Integrity check Release halocli tool Release libhalo.js

Programmatically interact with HaLo tags from the web browser, mobile application or the desktop.

Installation

Using NPM:

npm install --save @arx-research/libhalo

Using Yarn:

yarn add @arx-research/libhalo

Available APIs

The library exposes the following API functions:

(Web browser) execHaloCmdWeb

async function execHaloCmdWeb(command, options)

For web browser applications: scan the HaLo tag presented to the smartphone, execute the HaLo command and return the result. Supporting Chrome (Android), Safari (iOS) and other browsers. Installation of additional software is not required on the user's side.

Guides:

(React Native) execHaloCmdRN

async function execHaloCmdRN(nfcManager, command, options)

For React Native mobile applications (Android/iOS) based on react-native-nfc-manager library: scan the HaLo tag presented to the smartphone, execute the HaLo command and return the result.

Guides:

(Desktop) execHaloCmdPCSC

async function execHaloCmdPCSC(command, reader)

For desktop applications based on nfc-pcsc library: scan the HaLo tag present at the specified reader, execute the HaLo command and return the result.

Guides:

Supported HaLo commands

This library supports the following HaLo tag commands:

  • sign - sign arbitrary data using ECDSA private key on the NFC tag;
  • sign_random - sign a sequential counter with random pad using ECDSA private key on the NFC tag;
  • write_latch - write one-time programmable memory slot on the NFC tag;
  • cfg_ndef - configure the parameters returned in the dynamic URL when the NFC tag is scanned;
  • gen_key - request generation of the key #3 on the NFC tag;
  • gen_key_confirm - confirm the generated public key of key slot #3;
  • get_pkeys - get tag's public keys #1, #2 and #3;
  • version - check HaLo tag's firmware version (only for PCSC/React Native);
  • read_ndef - read the dynamic URL generated by the tag (only for PCSC/React Native);

Full articles:

Additional tools

This project also features additional tools which could increase interoperability.

HaLo Bridge

The Bridge could be used to locally interconnect the USB NFC reader directly with a web application. This allows to execute multiple HaLo commands against multiple tags very quickly.

Guides:

HaLo Gateway

The Gateway could allow to use a compatible web application on the desktop computer, but with your own smartphone instead of the card reader.

Guides:

About

LibHaLo - Programmatically interact with HaLo tags from the web browser, mobile application or the desktop.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 68.1%
  • HTML 29.5%
  • CSS 1.3%
  • Shell 1.1%