Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article describe knowledge about SmartTap 2.1.

All resource upload and record here. 

Specification

Part 1 describe the detail of SmartTap 2.1 feature.

Part 2 describe the timing requirement. But VP3300 would need longer time than requirement because VP3300 implement software encryption(microECC Library).

SmartTap2.1-Part1-NFCProtocolDRAFT-v0.976.pdf

SmartTap2.0-Part2-TerminalCertificationDRAFT-v0.3.1.pdf

Test App

Before validate VP3300 transaction result, we could use terminal app and merchant app to simulate transaction flow.

Reader(ex. VP3300) should act like terminal app, and VAS app(ex. pass) should act like merchant app. Setup detail could be refer to App Setup Instructions.

terminalapp_v1_6_21.apk

merchantapp_v2_6_24.apk

2017-06-22 11_32_02.563561.7z

[READ ME] App Setup Instructions.docx

Long term private key(LTPK)

How to generate a PEM file

It seem that OpenSSL for Windows could generate PEM file, but I have no idea now.

How to get long term private key from pem file

To get private key from a pem file, you may have some tools to support openssl first, such as OpenSSL for Windows.

When you have tools support openssl, for example, change direction to openssl direction

...

c:\>cd "Program Files (x86)"

c:\Program Files (x86)>cd GnuWin32

c:\Program Files (x86)\GnuWin32>cd bin

c:\Program Files (x86)\GnuWin32\bin>

 

And using openssl.exe to read pem file(ex. PRIVATE.key_CS1630.pem, from Pronto)

...

c:\Program Files (x86)\GnuWin32\bin>openssl.exe ec -noout -text -in "c:\PRIVATE.key.pem"

read EC key

Private-Key: (256 bit)

priv:

    00:f5:36:87:08:93:39:20:55:3b:7b:9f:fb:16:ae:

    ed:9c:77:d5:bf:d9:66:2a:f1:49:a6:b9:f9:65:b7:

    3f:0c:ca

pub:

    04:38:0b:8f:7f:0a:43:33:a7:e4:f2:2a:96:b1:ce:

    a8:c3:eb:38:7a:af:d8:36:63:2d:62:dc:c0:a6:61:

    9c:cc:28:b4:28:c5:bf:86:38:d7:0e:93:28:c6:b4:

    61:39:1e:b2:ef:de:a8:db:bf:fe:93:c1:7d:14:e2:

    e6:94:dc:8e:4c

ASN1 OID: prime256v1

And the priv is the string we need.

How to load long term private key to reader

Customer could load LTPK to reader via command C7-62.

Before loading LTPK to reader, we could get private key from PEM file, and we should use RSA 2048 alogrithm to encrypt private key, the step is as below:

RSA Private Key:

...

RSA Public Key:

...

RSA Exp:

...

Long term private key

...

Padding “00” + Version(ex. 00 00 00 01) + Long term private key to 256 bytes data

...

Calculate SHA-256 for data

...

Use RSA private key encrypt data

...

Add encrypt data and sha-256 data

...

IDG Command 

...

How to configuration reader

There are some configurations need to setup for difference type transaction.

...

Yes,

0x00, 0xBC, 0x61, 0x4E(12345678)

...

Need to transfer decimal to hex when set Merchant ID to reader

...

Yes

0x05, 0x00, 0x10, 0x00, 0x08, 0x01

...

Stop Payment if smart tap2.1 failed support

...

How to parser NDEF

To understand NDEF please refer to 3.2 Record Layout NFCForum-TS-NDEF-1.pdf and NDEF Parser.

Image Removed

Pronto case

Setup 2 cases for Pronto,

  1. Pronto with Loyalty: return Loyalty ID "7147616368
  2. Pronto with no Loyalty : SW 9001

because we get "9001" or "9102" from Pronto CX(which provided from customer), and we validated the result:

...

so I got SW 9102 becasue I do not setup a credit card in my Androidpay.

...

    1. Download Pronto.json to Android phone
    2. open Terminal app
      Image Removed
    3. click the setting symbol in the uppper right corner

...

  1. click LOAD
  2. Image Removed
  3. get the Pronto.json file 
    Image Removed
  4. go back to Terminal App
    Image Removed

...

  1. Download test-cases-Pronto.json to Android phone
  2. click Merchant App
    Image Removed
  3. click setting symbol in the upper left corner
    Image Removed
  4. click LOAD TEST SUITE and load test-cases-Pronto.json
  5. create
    Image RemovedImage Removed
  6. long press to AVTIVATE test case
    Image Removed

...

  1. Pronto with Loyalty, SW = 9000
    Image RemovedImage Removed
  2. Pronto with nothing. SW = 9001
    Image RemovedImage Removed

...

idRelated Information

...

Jira Legacy
serverID TECH - JIRA
serverId5c72af4b-e2b8-3562-b028-6bcef8f5fab0
keyTS-10251
Jira Legacy
serverID TECH - JIRA
serverId5c72af4b-e2b8-3562-b028-6bcef8f5fab0
keyCS-1630

 

Filter by label (Content by label)
showLabelsfalse
max5
spacesTWRD
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel = "kb-how-to-article" and type = "page" and space = "TWRD"
labelskb-how-to-article