Skip to content

hurufu/nexoid-fat-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

217 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NEXO Financial Application for Terminals (FAT) implemented in C++

Here it is assumed that reader has prior knowledge of terminology and use-cases. A great place to get introduced is at Nexo. If HAP or SCAP doesn't mean anything to you then please read the specification first.

Build instructions

Currently only Linux is supported, some work was done to be able to compile on Windows, but it isn't yet stable, Cygwin or MinGW builds should work though, but due to lack of time they aren't frequently tested.

Preconditions

Install drakon-editor, and make sure that drakon-gen location is in your $PATH environment variable.

On Linux

make all

That command should suffice, it would produce nexoid-cpp executable that you can immediately run, but it wouldn't do much because it just implements FAST, for a full payment application you need SCAP and there are currently 2 implementations:

  • Web based nexui which is limited to CNP transactions and mostly serves as a demo and debugging tool.
  • Implemented in C for embedded use in some hardware terminals (list of supported brands and models is undisclosed now) with an ambition to be real SCAP for real payment terminals. Open Sourcing is quite tricky, because of NDA. It shall be done in such a way that doesn't upset IP holders.

Also you will need HAP and TMAP for a complete suite, but neither is currently implemented and you will have to write bindings to your vendors L2 EMV kernels too (for SCAP).

Cross-compilation

If you have a working SDK, just define a $TRIPLET for your target platform (like arm-linux-gnueabihf) and the rest should just work the same:

make all CC=$TRIPLET-cc CXX=$TRIPLET-c++

Integration

nexoid-cpp implements a network-oriented trusted layer around nexoid-ed business logic. What it does is it just calls Main() from nexoid-ed and then redirects all external calls to either RPC to SCAP, HAP, TMAP, etc or calls custom code, while checking if data is consistent and nothing suspicious isn't happening. That's basically all!

Most of the time integration should be quite trivial (the hardest part is SCAP, because it has to use a lot of vendor specific code for EMV, PIN entry, cryptography etc.) In many cases you can even run it locally on your laptop and connect to SCAP on the real terminal (this is actually how do I develop).

You will have to implement protocol from protocol-collection and connect to nexoid-cpp via NNG PUB/SUB mechanism.

About

NEXO Financial Application for Terminals (FAT) implemented in C++

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors