5.7.17. SE05X PCR example¶
This project can be used to demonstrate PCR as Policy.
5.7.17.1. Building the Demo¶
Build Plug & Trust middleware stack. (Refer Building / Compiling)
Project:
se05x_PCR
5.7.17.2. Running the Example¶
If you have built a binary, flash the binary on to the board and reset the board.
If you have built an exe to be run from Windows using VCOM, run as:
se05x_PCR.exe <PORT NAME>
Where <PORT NAME> is the VCOM COM port.
On Raspberry-Pi or iMX board, run as:
./se05x_PCR
5.7.17.3. Console output¶
If everything is successful, the output will be similar to:
APDU :DEBUG:CheckObjectExists []
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0xEF000040
smCom :DEBUG:Tx> (Len=11)
80 04 00 27 06 41 04 EF 00 00 40
smCom :DEBUG:<Rx (Len=5)
41 01 02 90 00
sss :DEBUG:sss_key_store_generate_key(@EF000040, cipherType=kSSS_CipherType_EC_NIST_P, keyBitLen=256)
APDU :DEBUG:ReadECCurveList []
smCom :DEBUG:Tx> (Len=5)
80 02 0B 25 00
smCom :DEBUG:<Rx (Len=23)
41 82 00 11 01 01 02 01 01 01 01 01 01 01 01 01
01 01 01 01 01 90 00
APDU :DEBUG:CheckObjectExists []
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0xEF000040
smCom :DEBUG:Tx> (Len=11)
80 04 00 27 06 41 04 EF 00 00 40
smCom :DEBUG:<Rx (Len=5)
41 01 02 90 00
APDU :DEBUG:WriteECKey []
APDU :DEBUG:kSE05x_TAG_POLICY
APDU :DEBUG:policy (Len=45)
2C 00 00 00 00 1F FD 90 00 7F FF FF FF 87 D3 E3
93 19 8F 5C 80 E0 BC 9B C9 82 00 1F B0 EE 20 1C
27 0B 6D C8 84 52 E4 13 A3 25 56 81 75
APDU :DEBUG:kSE05x_TAG_MAX_ATTEMPTS [maxAttempt] = 0x0
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0xEF000040
APDU :DEBUG:kSE05x_TAG_2 [curveID] = 0x3
APDU :DEBUG:kSE05x_TAG_3 [privKey] (Len=0)
APDU :DEBUG:kSE05x_TAG_4 [pubKey] (Len=0)
smCom :DEBUG:Tx> (Len=61)
80 01 61 00 38 11 2D 2C 00 00 00 00 1F FD 90 00
7F FF FF FF 87 D3 E3 93 19 8F 5C 80 E0 BC 9B C9
82 00 1F B0 EE 20 1C 27 0B 6D C8 84 52 E4 13 A3
25 56 81 75 41 04 EF 00 00 40 42 01 03
smCom :DEBUG:<Rx (Len=2)
90 00
APDU :DEBUG:ECDSASign []
APDU :DEBUG:kSE05x_TAG_1 [objectID] = 0xEF000040
APDU :DEBUG:kSE05x_TAG_2 [ecSignAlgo] = 0x21
APDU :DEBUG:kSE05x_TAG_3 [inputData] (Len=32)
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
smCom :DEBUG:Tx> (Len=48)
80 03 0C 09 2B 41 04 EF 00 00 40 42 01 21 43 20
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
smCom :DEBUG:<Rx (Len=2)
69 85
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:5601 Function:sss_se05x_TXn
App :INFO :Sign failed due to PCR expected value mismatch!!!
APDU :DEBUG:CheckObjectExists []
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0x7FFFFFFF
smCom :DEBUG:Tx> (Len=11)
80 04 00 27 06 41 04 7F FF FF FF
smCom :DEBUG:<Rx (Len=5)
41 01 02 90 00
APDU :DEBUG:WritePCR []
APDU :INFO :Policy is NULL
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0x7FFFFFFF
APDU :DEBUG:kSE05x_TAG_2 [initialValue] (Len=32)
12 A1 49 82 32 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
APDU :DEBUG:kSE05x_TAG_3 [inputData] (Len=0)
smCom :DEBUG:Tx> (Len=45)
80 01 09 00 28 41 04 7F FF FF FF 42 20 12 A1 49
82 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
smCom :DEBUG:<Rx (Len=2)
90 00
APDU :DEBUG:WritePCR []
APDU :INFO :Policy is NULL
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0x7FFFFFFF
APDU :DEBUG:kSE05x_TAG_2 [initialValue] (Len=0)
APDU :DEBUG:kSE05x_TAG_3 [inputData] (Len=5)
12 A1 49 82 32
smCom :DEBUG:Tx> (Len=18)
80 01 09 00 0D 41 04 7F FF FF FF 43 05 12 A1 49
82 32
smCom :DEBUG:<Rx (Len=2)
90 00
APDU :DEBUG:ECDSASign []
APDU :DEBUG:kSE05x_TAG_1 [objectID] = 0xEF000040
APDU :DEBUG:kSE05x_TAG_2 [ecSignAlgo] = 0x21
APDU :DEBUG:kSE05x_TAG_3 [inputData] (Len=32)
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
smCom :DEBUG:Tx> (Len=48)
80 03 0C 09 2B 41 04 EF 00 00 40 42 01 21 43 20
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
smCom :DEBUG:<Rx (Len=76)
41 82 00 46 30 44 02 20 50 06 84 FF D1 CE 87 E7
F6 89 BE 6C 5B 93 EE EB 26 FB 9D 86 01 25 4F C5
CE EF 4E 0D 68 9A 64 D9 02 20 6A 4F 27 D0 95 CC
BD D4 20 66 60 B2 9E 52 26 96 A1 31 3C 1F 7D 77
E3 16 02 AA B2 E3 36 61 05 70 90 00
APDU :DEBUG:ECDSAVerify []
APDU :DEBUG:kSE05x_TAG_1 [objectID] = 0xEF000040
APDU :DEBUG:kSE05x_TAG_2 [ecSignAlgo] = 0x21
APDU :DEBUG:kSE05x_TAG_3 [inputData] (Len=32)
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
APDU :DEBUG:kSE05x_TAG_5 [signature] (Len=70)
30 44 02 20 50 06 84 FF D1 CE 87 E7 F6 89 BE 6C
5B 93 EE EB 26 FB 9D 86 01 25 4F C5 CE EF 4E 0D
68 9A 64 D9 02 20 6A 4F 27 D0 95 CC BD D4 20 66
60 B2 9E 52 26 96 A1 31 3C 1F 7D 77 E3 16 02 AA
B2 E3 36 61 05 70
smCom :DEBUG:Tx> (Len=120)
80 03 0C 0A 73 41 04 EF 00 00 40 42 01 21 43 20
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
45 46 30 44 02 20 50 06 84 FF D1 CE 87 E7 F6 89
BE 6C 5B 93 EE EB 26 FB 9D 86 01 25 4F C5 CE EF
4E 0D 68 9A 64 D9 02 20 6A 4F 27 D0 95 CC BD D4
20 66 60 B2 9E 52 26 96 A1 31 3C 1F 7D 77 E3 16
02 AA B2 E3 36 61 05 70
smCom :DEBUG:<Rx (Len=5)
41 01 01 90 00
App :INFO :Sign & Verify is Success with Expected PCR value!!!
APDU :DEBUG:DeleteSecureObject []
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0xEF000040
smCom :DEBUG:Tx> (Len=11)
80 04 00 28 06 41 04 EF 00 00 40
smCom :DEBUG:<Rx (Len=2)
90 00
APDU :DEBUG:DeleteSecureObject []
APDU :DEBUG:kSE05x_TAG_1 [object id] = 0x7FFFFFFF
smCom :DEBUG:Tx> (Len=11)
80 04 00 28 06 41 04 7F FF FF FF
smCom :DEBUG:<Rx (Len=2)
90 00
App :INFO :ex_sss Finished
Press any key to continue . . .