Task 1 Create Google Private Key
Download drive-download-20180207T222536Z-001.zip and extract to drive C:\CS-1630\20180208
and it should look like this
and there are 2 PEM file in drive-download-20180207T222536Z-001\
C:\Users\Richard Cheng>cd c:\ c:\>cd "Program Files (x86)" c:\Program Files (x86)>cd GnuWin32 c:\Program Files (x86)\GnuWin32>cd bin c:\Program Files (x86)\GnuWin32\bin>openssl.exe ec -noout -text -in "c:\CS-1630\20180208\drive-download-20180207T222536Z-001\PRIVATE.key.pem" |
There are 2 part in this private key, and we need to load priv part to reader,
RSA Private Key:
3238682B00491F585E6D728DE13B5AE672C3D7E578D852563B1432A927CCDECA7655CEA2DB391F99FA55ED93CF6956AB9978D1BA9E73039355C40DFB3FF877BCFF55D9968BF1AD965D8DC8FD620C035C113D449F0B34A34C7BFF05330B376C7CE93A633D1B2DC5188CC332519ACAE06DAE8452265543A43F6BFC400336EBD20C0604C5497D416F113117A51F5736EFD471C16EEA993BAAE69F3A80B12DB6E8B7696423C7D661F236410DBD38DFC92FA1755ACBF2D64BCB7EA612AA3112133927CB5DB33B305E7357C8C5EC3998734BED901D319FC5ECAC8D56B266E417FC637673912571597B93082BA71813D9EC29EA317DCB97CD7682E8E24151123AC62059 |
RSA Public Key:
AAF0CB6B8459733E0FFAB1D6684F4C79C27F329F30575EBA44B148DA67BC39A46EBB6EB5F7624B6711BC4BC1BC271E241D18DA4FD4C88798BC27F0091ED0F48154A06A1B5B5899103C78D06A83A5FA85ECB6491420B42AAB152FE869F293CB3167680F6AA3940A66D433268AD30A1F037832006856B73CF674E4BE48CB5CA1E551C223AAC4AAD3E1C712EBAC9505D95FF31311E70C57ADDA5E08308645C33EB0F67E1C54C1C2D35AC9E96AE3F34724128131E3B21B663FD1A9A8E9957D7D38DCCE0A34C54D3AC2B6496F174E66CE2B8CE4249E0A6FC80A1EB3D20BE00CC637EBC50BFFF06873ADF771F3A2BB774F36C28046C026D8EC550EEFFC3C5627BCA1E9 |
RSA Exp:
010001 |
Long term private key
00826d17e50767b165b0e4d9e332f8d1d1e20224284fb4daf1e50a03246e70797d |
Padding “00” + Version(ex. 00 00 00 01) + Long term private key to 256 bytes data
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100826D17E50767B165B0E4D9E332F8D1D1E20224284FB4DAF1E50A03246E70797D |
Calculate SHA-256 for data
A0271BD196D3C0C458CB5FD6D9EDAB128EB3CD24BC27F2DBE6447C755F630943 |
Use RSA private key encrypt data
A782BE58B2FBE051D0CE534888D04AABC52237D3E2A73A41C0BBC1BD711BB9F6AE95A614458A9D1188005CB8200F568FEDC83B1DA91FBD0FF4924E72D71CA79129448479FEBACE55DF9A2BAC6A40BC1A1A90F2181F0D5A1E040DCB5D90333E1A6A4A366BFBD035DCFB9552F874AB47FC0F9964961C7627D1AC5FE77C87B202A19AC23C9C8A2CCAD63F24FF56521A453BEBD7C54AF57BD289A3E03B19CE2A9AE3B98B49302F9795FFB1557463D76AA71470ADB0A8E84E6A746A6C2922B7C6C2771EECB5D7C4E3E26C05F143B30A2962F1E5492663E4873938021AFEEEB74870B0A4FF1A93105DCD8E745D9BB734C8A47A1CB27948D1195FF59704063F7DF4BE4D |
Append encrypt data and sha-256 data
A782BE58B2FBE051D0CE534888D04AABC52237D3E2A73A41C0BBC1BD711BB9F6AE95A614458A9D1188005CB8200F568FEDC83B1DA91FBD0FF4924E72D71CA79129448479FEBACE55DF9A2BAC6A40BC1A1A90F2181F0D5A1E040DCB5D90333E1A6A4A366BFBD035DCFB9552F874AB47FC0F9964961C7627D1AC5FE77C87B202A19AC23C9C8A2CCAD63F24FF56521A453BEBD7C54AF57BD289A3E03B19CE2A9AE3B98B49302F9795FFB1557463D76AA71470ADB0A8E84E6A746A6C2922B7C6C2771EECB5D7C4E3E26C05F143B30A2962F1E5492663E4873938021AFEEEB74870B0A4FF1A93105DCD8E745D9BB734C8A47A1CB27948D1195FF59704063F7DF4BE4DA0271BD196D3C0C458CB5FD6D9EDAB128EB3CD24BC27F2DBE6447C755F630943 |
IDG Command
5669564F746563683200C7620120A782BE58B2FBE051D0CE534888D04AABC52237D3E2A73A41C0BBC1BD711BB9F6AE95A614458A9D1188005CB8200F568FEDC83B1DA91FBD0FF4924E72D71CA79129448479FEBACE55DF9A2BAC6A40BC1A1A90F2181F0D5A1E040DCB5D90333E1A6A4A366BFBD035DCFB9552F874AB47FC0F9964961C7627D1AC5FE77C87B202A19AC23C9C8A2CCAD63F24FF56521A453BEBD7C54AF57BD289A3E03B19CE2A9AE3B98B49302F9795FFB1557463D76AA71470ADB0A8E84E6A746A6C2922B7C6C2771EECB5D7C4E3E26C05F143B30A2962F1E5492663E4873938021AFEEEB74870B0A4FF1A93105DCD8E745D9BB734C8A47A1CB27948D1195FF59704063F7DF4BE4DA0271BD196D3C0C458CB5FD6D9EDAB128EB3CD24BC27F2DBE6447C755F630943BE36 |
Task 2 Create Pronto Private Key
Download pronto.key.zip and extract to drive C:\CS-1630\20180208
and it should look like this
and there are 2 PEM file in pronto.key\
open command line tool, and change path
C:\Users\Richard Cheng>cd c:\ c:\>cd "Program Files (x86)" c:\Program Files (x86)>cd GnuWin32 c:\Program Files (x86)\GnuWin32>cd bin c:\Program Files (x86)\GnuWin32\bin>openssl.exe ec -noout -text -in "c:\CS-1630\20180208\pronto.key\pronto-PRIVATE.key.pem" |
There are 2 part in this private key, and we need to load priv part to reader,
RSA Private Key:
3238682B00491F585E6D728DE13B5AE672C3D7E578D852563B1432A927CCDECA7655CEA2DB391F99FA55ED93CF6956AB9978D1BA9E73039355C40DFB3FF877BCFF55D9968BF1AD965D8DC8FD620C035C113D449F0B34A34C7BFF05330B376C7CE93A633D1B2DC5188CC332519ACAE06DAE8452265543A43F6BFC400336EBD20C0604C5497D416F113117A51F5736EFD471C16EEA993BAAE69F3A80B12DB6E8B7696423C7D661F236410DBD38DFC92FA1755ACBF2D64BCB7EA612AA3112133927CB5DB33B305E7357C8C5EC3998734BED901D319FC5ECAC8D56B266E417FC637673912571597B93082BA71813D9EC29EA317DCB97CD7682E8E24151123AC62059 |
RSA Public Key:
AAF0CB6B8459733E0FFAB1D6684F4C79C27F329F30575EBA44B148DA67BC39A46EBB6EB5F7624B6711BC4BC1BC271E241D18DA4FD4C88798BC27F0091ED0F48154A06A1B5B5899103C78D06A83A5FA85ECB6491420B42AAB152FE869F293CB3167680F6AA3940A66D433268AD30A1F037832006856B73CF674E4BE48CB5CA1E551C223AAC4AAD3E1C712EBAC9505D95FF31311E70C57ADDA5E08308645C33EB0F67E1C54C1C2D35AC9E96AE3F34724128131E3B21B663FD1A9A8E9957D7D38DCCE0A34C54D3AC2B6496F174E66CE2B8CE4249E0A6FC80A1EB3D20BE00CC637EBC50BFFF06873ADF771F3A2BB774F36C28046C026D8EC550EEFFC3C5627BCA1E9 |
RSA Exp:
010001 |
Long term private key
00F5368708933920553B7B9FFB16AEED9C77D5BFD9662AF149A6B9F965B73F0CCA |
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100F5368708933920553B7B9FFB16AEED9C77D5BFD9662AF149A6B9F965B73F0CCA |
Calculate SHA-256 for data
BD422E43F804506F002B4E93DD0165F488FC18660F21A0DC7D9B3057E36C504B |
A997961F9A8D1C44F89B46A95045DC51D767032EC645E80FA2DDB528690D28C820A828D44C322586FC0CB91B6FCF48513D7F7E579221A5F089E22FF1CB792070D6237D25198B77E3ECB053D519AB1BAB260B27DD8FD5E95C7A21CDA073D8E6AD928B0AD6F698074A5EDC2A5496C02F6B50DD650D9CC61E0385EAE15CF381EE639073A208A5C3A4ADA935369D689A295CE77BC9372A544492034A857F767854EDDFC922D6497B3905B588333447078F7DE55064EF3EA35E0877505E4107FA49126F26CB0114943267FC8BABB5C90A07AEE359A32A71ABFBCE529BF875501F70E4FE022D14FC43D1AE2BD18F4904962BE1C376658D16F298B6E0DEADA829021A85 |
Append encrypt data and sha-256 data
A997961F9A8D1C44F89B46A95045DC51D767032EC645E80FA2DDB528690D28C820A828D44C322586FC0CB91B6FCF48513D7F7E579221A5F089E22FF1CB792070D6237D25198B77E3ECB053D519AB1BAB260B27DD8FD5E95C7A21CDA073D8E6AD928B0AD6F698074A5EDC2A5496C02F6B50DD650D9CC61E0385EAE15CF381EE639073A208A5C3A4ADA935369D689A295CE77BC9372A544492034A857F767854EDDFC922D6497B3905B588333447078F7DE55064EF3EA35E0877505E4107FA49126F26CB0114943267FC8BABB5C90A07AEE359A32A71ABFBCE529BF875501F70E4FE022D14FC43D1AE2BD18F4904962BE1C376658D16F298B6E0DEADA829021A85BD422E43F804506F002B4E93DD0165F488FC18660F21A0DC7D9B3057E36C504B |
IDG Command
5669564F746563683200C7620120A997961F9A8D1C44F89B46A95045DC51D767032EC645E80FA2DDB528690D28C820A828D44C322586FC0CB91B6FCF48513D7F7E579221A5F089E22FF1CB792070D6237D25198B77E3ECB053D519AB1BAB260B27DD8FD5E95C7A21CDA073D8E6AD928B0AD6F698074A5EDC2A5496C02F6B50DD650D9CC61E0385EAE15CF381EE639073A208A5C3A4ADA935369D689A295CE77BC9372A544492034A857F767854EDDFC922D6497B3905B588333447078F7DE55064EF3EA35E0877505E4107FA49126F26CB0114943267FC8BABB5C90A07AEE359A32A71ABFBCE529BF875501F70E4FE022D14FC43D1AE2BD18F4904962BE1C376658D16F298B6E0DEADA829021A85BD422E43F804506F002B4E93DD0165F488FC18660F21A0DC7D9B3057E36C504B6E7C |
Test test-cases2074294809.json with Terminal App case 0.3
Download Terminal configuration file terminal_configs.7z to Android phone, which used to as Terminal.
Click Terminal App → Setting → Click "LOAD" → go to direction where store Terminal configuration file → serch for 0.3.json → clikc OK
→ scroll down, change Merchant ID to 50248994(if need) and check Long term private key, which should be same as the priv we use openssl to read PEM file(Google's or Pronto's) → return to Terminal App → tapping new pass
→ SW 9102.- Change LTPK to Pronto's, Terminal APP → Setting → scroll down to LTPK → click LTPK → "LOAD KEY FROM FILE" → select Pronto' s PEM file → SAVE → tapping new pass → SW 9102.
Suggenstion
To validate customer' s pass via Terminal App is a best way. If Terminal App could read data and get SW 9000, that means VP3300 should get same data.
One more thing should be notice is, test case 0.3 need to do negotiate with pass, so we could read log from Terminal App, and knwo SW of Negotiate is 9500(Authorization failed).
I think customer and Google may use Terminal App and pass to read something back successfully first, then set the same configuratioin to VP3300 and read pass.
If Terminal App success but VP3300 fail, then we fix it.