epicqr/README.md

1.6 KiB

EPIC QR Decoder

Haxe library to decode a QR code on a modern EPIC Card. This is a polyglot repo, containing source code for multiple languages:

  • Haxe
  • Java

The Haxe code can be cross-compiled to several targets including PHP/Python/Flash/JVM/JS etc.

TODO

  • Tests for Haxe.
  • Tests for Haxe with specific targets
  • Publish 1.0.
  • Publish releases for Swift.
  • Publish releases for JS.
  • Publish releases for Nodejs.
  • Create maven release on GitHub Packages.
  • Create Demo website.

Usage

Haxe

import eci.EpicQR;

class Main{
	static function Main(){
		// This is the result of scanning the QR code as text.
		var result = decrypt("dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==");
		trace(result.epic); // "ABC1234566"
		trace(result.id); // 1234
	}
}

Java

import eci.EpicQR;
// This is the result of scanning the QR code as text.
String e1 = "dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==";
Result r1 = EpicQR.decode(e1);
assert r1.epic.equals("ABC1234566") : "Invalid EPIC";
assert r1.id == 1234 :  "Invalid Unique ID";

Nodejs

// TODO Import
const E = require('eci').EpicQR;
var r = E.decode("dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==")
console.log(r.epic) // "ABC1234566"

Specification

See SPEC.md.

LICENSE

Licensed under MIT. See LICENCE file for more details.