Contact and Contactless Kernels from the acknowledged experts in EMV technology

An oversized purple tablet, a man holding a purple box with an icon on it and a crane against a cityscape.

As technology partners with EMVCo – the body that defines and implements EMV standards, we have early visibility of changes in requirements and the impact they will have on your payment products. To date over 1 million of our EMV Kernels are deployed worldwide in ATMs, PINpads, mobile chip card readers for smartphones, parking payment machines, kiosks and a multitude of other devices.

This makes NMI’s Level 2 Kernels the most adopted, deployed and trusted in the world.

Cost-effective Kernel development gets your terminal to market quicker

People using oversized smartphone, tablet and unattended payment solutions to buy items.

When your payment terminal is ready for market, the clock is ticking because in three years’ time, recertification will be required.  NMI’s 100% first-time pass certification record means we can work confidently to your development timelines and ensure you’re fast to market in the first place, and that you have no interruptions to terminal sales through Kernel expiry. We help you reduce risk, minimize implementation time and control the cost of any EMV terminal development.

Kernel choices to suit your application, operating system and card acceptance need

As a payment terminal manufacturer you chose the processor, operating system and hardware to match your customers’ requirements and your manufacturing strategy. We have an EMV Kernel to suit whatever hardware and software platform you’re using.

Product Summary

  EmvX EMV.LIB Contactless.LIB
Operating Systems Windows 95/XP/7, Windows CE Any platform that has a C compiler Any platform that has a C compiler
Supported Development Languages Any language that supports Windows COM interfaces or .NET (e.g. C++, C#, Visual Basic) C, C++ C, C++
Library Format Windows .DLL using COM interface Dependent on toolset (object files or static library) Dependent on toolset (object files or static library)
Advantages Easy to integrate, handles platform specific functionality automatically Fully ANSI-C compliant and hardware independent, custom-built for each platform Fully ANSI-C compliant and hardware independent, custom-built for each target platform
Suited for: Retail, kiosk and other payment applications running on Windows Embedded platforms with limited resources and custom hardware NFC enabled devices & embedded platforms with limited resources and custom hardware

EmvX is an EMV Level 2 Kernel for Windows and Windows CE. It offers a simple and rapid method of adding EMV Level 2 functionality to a payment application, using the Microsoft COM architecture.

Key Highlights

  • Ease of adding EMV Level 2 compliance to existing Windows applications. A simple example in Visual Basic performing an EMV compliant transaction with a PIN pad requires only a few lines of code
  • The EmvX Toolkit runs natively on the Windows platform.
  • Low system resource usage. The memory requirement of the EmvX Toolkit is around 2 megabytes, and on a typical PIII-based machine less than 20 milliseconds of CPU time is spent executing EmvX Toolkit Kernel code
  • Easy interface to peripherals. Drivers for popular card readers and PIN pads are already provided with the Toolkit
  • Easy interface to third party EFT packages. Template applications are included in the EmvX Toolkit

EmvX Toolkit

To ensure that EmvX can be used in a wide variety of terminal configurations it has been created as a toolkit of EMV functions that can be called in the correct order to enable an EMV Level 2 transaction to take place. All the external functions such as the online authorization and PIN pad interfaces are provided in the form of drivers. A number of these drivers are already available but in the event that a suitable one is not available, driver templates can be provided.

Easy to Update

As the cost of ownership is one of the key factors in the development of an EMV Level 2 Kernel, all the elements that change over time have been designed to enable this to be executed as simply as possible. For example, EmvX stores its configuration in the Windows registry so that it can be simply updated using a script that can be completed locally or remotely. The same is also true of the CA Public Keys used for data authentication.

EmvXCE

EmvXCE is the Windows CE version of EmvX and offers developers implementing Chip and PIN in this environment the same benefits as EmvX. Due to its limited system dependencies, EmvXCE will work with any version of Windows CE, irrespective of the hardware platform, and provides a simple method of adding EMV Level 2 functionality to a payment system.

EMV Supported Features

The EmvX Toolkit fully supports a variety of data authentication, configuration, CVM methods and other special features within the EMV Level 2 version 4.3 specification.

Data Authentication Methods Static, Dynamic and Combined Data Authentication (SDA, DDA and CDA).
Acquirer Interfaces Authorization Request, Financial Transaction Request, Batch Data Capture, Online Data Capture.
Cardholder Verification Methods Offline Plaintext PIN, Offline Enciphered PIN, Signature, No CVM, Fail CVM.
Miscellaneous Certificate Revocation, Velocity and Floor Limit Checking, Exception Lists, Recommended EMV Application Selection Algorithms.

Developing EMV Level 2 Kernel technology for embedded systems or those based around a non-Windows operating system, presents its own unique set of challenges. Many of the terminals that require the addition of EMV Level 2 functionality were not designed with CPU intensive encryption and hashing in mind. EMV.LIB provides a solution to many of these problems.

Key Highlights

  • Very small memory footprint, stack and resource utilization
  • Compile in or out blocks of EMV functionality to suit your target platform and EMV ICS
  • Specific optimizations for smaller 8 and 16 bit CPUs
  • Compiled size less than 200Kb
  • Hardware Abstraction Layer (HAL) enables easy integration into target platform
  • Endian indifferent
  • Caters for older compiler quirks such as short variable and function names
  • Runs on a wide variety of Chipsets including Maxim 32550 (Lighthouse) and Freescale K21

EMV Level 2 Kernel in ANSI C

The EMV specifications offer some flexibility in how these challenges are met by enabling certain terminal types to avoid the use of the more processor intensive elements, such as the RSA encryption used in Data Authentication. However it does not solve the problem of how to add the remaining functionality. Creditcall’s solution to this problem was to develop an EMV Level 2 Kernel in strict ANSI C with all of the hardware and operating system specific functionality abstracted away from the core functions of the Kernel through the use of the EMV.LIB Hardware Abstraction Layer (HAL).

EMV.LIB Portable to Most Environments

This architecture and the use of ANSI C means that EMV.LIB can be ported to virtually any environment for which there is a suitable C compiler. This approach has enabled this version of the NMI (formerly Creditcall) EMV Kernel to become the critical component in many Chip and PIN solutions and is now the most widely certified EMV Level 2 Kernel available today.

“To date EMV.LIB has been compiled on everything from a Zilog Z180 right the way through to more recent microprocessors such as the ARM 7 and 9 series”

The Hardware Abstraction Layer is a series of empty functions. Each function deals with an element of EMV that cannot be addressed in a manner that is platform independent. Once these functions have been populated, the Kernel can be compiled for the target platform. The resulting object code can then be linked with the payment application to create a fully functional EMV Level 2 compliant solution.

EMV Supported Features

EMV.LIB supports a variety of data authentication, configuration, CVM methods and other special features within the EMV Level 2 version 4.3d specification.

Data Authentication Methods Static, Dynamic and Combined Data Authentication (SDA, DDA and CDA).
Terminal Configuration Online Only, Online with Offline, Offline with Online, and Offline Only.
Acquirer Interfaces Authorization Request, Financial Transaction Request, Batch Data Capture, Online Data Capture.
Cardholder Verification Methods Offline Plaintext PIN, Offline Enciphered PIN, Signature, No CVM, Fail CVM.
Miscellaneous Certificate Revocation, Velocity and Floor Limit Checking, Exception Lists, Recommended EMV Application Selection Algorithms.

Contactless.LIB is designed specifically for terminal manufacturers and payment software developers wishing to add NFC and contactless card support to their payment applications such as Visa payWave qVSDC, MasterCard & Maestro  Contactless, American Express ExpressPay, Discover ZIP, and Visa payWave Asia Pacific.

Key Highlights

  • Very small memory footprint, stack and resource utilization
  • Specific optimizations for smaller 8 and 16 bit CPUs
  • Hardware Abstraction Layer (HAL) enables easy integration into target platform
  • Endian indifferent
  • Caters for older compiler quirks such as short variable and function names
  • Highly optimized to comply with the timing constraints for contactless transactions
  • Runs on a wide variety of Chipsets including Maxim 32550 (Lighthouse) and Freescale K21

Flexible EMV Contactless Kernel

The Contactless Kernel has been developed in strict ANSI C, with all of the hardware and operating system specific functionality abstracted away from the core functions, through the use of a HAL (Hardware Abstraction Layer). This means that the Kernel can be ported to virtually any environment for which there is a suitable C compiler, whether it is adding contactless support to an existing embedded system running a proprietary operating system, or a new PC-based solution running the latest version of Windows.

The HAL contains a number of empty functions; each function deals with an element of contactless processing that cannot be addressed in a manner that is platform independent. Once these functions have been populated, the Kernel can be compiled for the target platform. The resulting object code can be linked with the payment application to create a fully functional contactless solution compliant with all necessary industry requirements.

Contactless Supported Features

Contactless.LIB supports a variety of data authentication, configuration, CVM methods and other special features within the contactless specifications.

Supported Card Schemes

MasterCard Contactless (Version 3.0.2) for M/Chip and M/Stripe cards

Visa payWave VCPS (Version 2.1.3) for qVSDC and MSD cards

Visa payWave Asia Pacific (Version 3.1.3) for Wave 2 cards

American Express ExpressPay (Version 3.0)

Discover ZIP (Version 3.1.2)

Discover DPAS (Version 1.0)

Data Authentication Methods

Visa payWave fast Dynamic Data Authentication (fDDA)

MasterCard and Maestro Contactless SDA and CDA

American Express ExpressPay SDA and CDA

Discover DPAS CDA

Terminal Configuration Online Only, Offline with Online capability, and Offline Only
Acquirer Interfaces Authorization Request, Financial Transaction Request, Batch Data Capture, Online Data Capture
Cardholder Verification Methods Online Enciphered PIN, Signature, No CVM, Fail CVM and Mobile Device CVM
Miscellaneous Certificate Revocation, Exception Lists

Power the next era of payments

Get in touch with us today to learn more