Skip to content

Latest commit

 

History

History

go

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

ubirch protocol SIM interface for Go

cd main
go run github.com/ubirch/ubirch-protocol-sim/go/main /dev/ttyUSB0 115200

A configuration file main/config.json is required. To be able to communicate with the UBIRCH backend, it must contain the "password"-key which is the UBIRCH API auth token and can be acquired at the UBIRCH web UI. (See here how to claim your IMSI) and copy the value of the "password" from the apiConfig as your auth token.

The default UBIRCH backend environment is "prod", but may be overwritten with the "env"-key. For testing, set it to "demo".

{
    "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
    "env": "demo"
}

If you wish to test the SIM functionality without actually sending ubirch protocol packages (UPPs) to the UBIRCH backend at all, simply don't set the "password"-key in the config file and the script will skip backend communication.

The PIN to unlock the SIM card is normally acquired through a bootstrapping with the UBIRCH backend, but bootstrapping can be omitted by setting the "pin"-key.

The "debug"-key additionally enables extended debug output.

{
    "pin": "1234",
    "debug": true
}

To test this implementation with a Pycom Gpy, install the uart proxy and then run main.go with the corresponding connection to the USB serial interface:

How to claim your SIM card identity (IMSI)

  • Go to UBIRCH web UI
  • Login or register if you don't have an account yet.
  • Go to Things (in the menu on the left) and click on + ADD NEW DEVICE.
  • Enter the IMSI of your SIM card to the ID field, add a description and click on register.
  • Click on your device (IMSI) in the overview and take note of the the apiConfig.
  • The value of the

Example output:

2020/05/08 13:32:11 SIM Interface Example
2020/05/08 13:32:11 +++ AT+CFUN? (8)
2020/05/08 13:32:11 --- ERROR (5)
2020/05/08 13:32:11 +++ AT+CFUN=4,1 (11)
2020/05/08 13:32:11 --- OK (2)
2020/05/08 13:32:11 +++ AT+CFUN? (8)
2020/05/08 13:32:20 --- +SHUTDOWN (9)
2020/05/08 13:32:20 --- +SYSSTART (9)
2020/05/08 13:32:20 --- +CFUN: 4 (8)
2020/05/08 13:32:20 --- OK (2)
2020/05/08 13:32:20 >> get IMSI
2020/05/08 13:32:20 +++ AT+CIMI (7)
2020/05/08 13:32:20 --- ERROR (5)
2020/05/08 13:32:21 +++ AT+CIMI (7)
2020/05/08 13:32:21 --- 987654321054321 (15)
2020/05/08 13:32:21 --- OK (2)
2020/05/08 13:32:21 IMSI: 987654321054321
2020/05/08 13:32:22 PIN: 1234
2020/05/08 13:32:22 >> select SIM applet
2020/05/08 13:32:22 +++ AT+CSIM=42,"00A4040010D2760001180002FF34108389C0028B02" (55)
2020/05/08 13:32:22 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:22 --- OK (2)
2020/05/08 13:32:22 >> authenticate
2020/05/08 13:32:22 +++ AT+CSIM=18,"002000000431323334" (31)
2020/05/08 13:32:22 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:22 --- OK (2)
2020/05/08 13:32:22 >> get certificate "ucrt"
2020/05/08 13:32:22 +++ AT+CSIM=18,"80A500000475637274" (31)
2020/05/08 13:32:23 --- +CSIM: 4,6118 (13)
2020/05/08 13:32:23 --- OK (2)
2020/05/08 13:32:23 >> get response
2020/05/08 13:32:23 +++ AT+CSIM=10,"00C0000018" (23)
2020/05/08 13:32:23 --- +CSIM: 52,C40475637274C01003120206091240209202000018A8619F9000 (62)
2020/05/08 13:32:23 --- OK (2)
2020/05/08 13:32:23 +++ AT+CSIM=10,"80CC000000" (23)
2020/05/08 13:32:23 --- +CSIM: 516,C38202BF308202783082021FA003020102020A00898822806660170001300A06082A8648CE3D0403023081AD3127302506092A864886F70D01090116186B65796D616E6167656D656E74407562697263682E636F6D310B30090603550406130244453120301E06035504080C174E6F727468205268696E652D576573747068616C69616E3110300E06035504070C07436F6C6F676E6531193017060355040A0C10756269726368205465737420476D62483126302406035504030C1D75626972636820476D624820446576696365205369676E696E67204341301E170D3230303333313130303230365A170D3430303332363130303230365A304E310B3009066310 (527)
2020/05/08 13:32:23 --- OK (2)
2020/05/08 13:32:23 +++ AT+CSIM=10,"80CC010000" (23)
2020/05/08 13:32:24 --- +CSIM: 516,035504061302444531143012060355040A0C0B75626972636820476D62483129302706035504030C2030333132303230363039313234303230393230323030303031384138363139463059301306072A8648CE3D020106082A8648CE3D030107034200045F8ABFCF849244055507544A5FAD890F6B0E85DC9EEF6BE0F6988FE8282D03CA1F2654F67B84516312978FA0653DBAF8CD89F136407ABD31C7861F495BD69F50A38184308181300E0603551D0F0101FF04040302078030150603551D20040E300C300A06086781120101010101301D0603551D0E04160414CCF918A22559CA97498BF91AC46DD2AEA246DCF5301806086781120101010000040C0C0A6310 (527)
2020/05/08 13:32:24 --- OK (2)
2020/05/08 13:32:24 +++ AT+CSIM=10,"80CC010000" (23)
2020/05/08 13:32:24 --- +CSIM: 394,47442D4E472D30363137301F0603551D2304183016801461FF0342F9D212185342C879E63FD9E9A63F1D9A300A06082A8648CE3D040302034700304402203AF38012A8760169BF5F4BAFDE93B94413323AE9A6B760BDF8340295B019B28802206F09BAB852A823CB45F7063CB22D1591F8772780514A392E1C98F6793A9D9DEF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000 (405)
2020/05/08 13:32:24 --- OK (2)
2020/05/08 13:32:24 DEC tag=0xc3, len=703 [2bf], data=308202783082021fa003020102020a00898822806660170001300a06082a8648ce3d0403023081ad3127302506092a864886f70d01090116186b65796d616e6167656d656e74407562697263682e636f6d310b30090603550406130244453120301e06035504080c174e6f727468205268696e652d576573747068616c69616e3110300e06035504070c07436f6c6f676e6531193017060355040a0c10756269726368205465737420476d62483126302406035504030c1d75626972636820476d624820446576696365205369676e696e67204341301e170d3230303333313130303230365a170d3430303332363130303230365a304e310b300906035504061302444531143012060355040a0c0b75626972636820476d62483129302706035504030c2030333132303230363039313234303230393230323030303031384138363139463059301306072a8648ce3d020106082a8648ce3d030107034200045f8abfcf849244055507544a5fad890f6b0e85dc9eef6be0f6988fe8282d03ca1f2654f67b84516312978fa0653dbaf8cd89f136407abd31c7861f495bd69f50a38184308181300e0603551d0f0101ff04040302078030150603551d20040e300c300a06086781120101010101301d0603551d0e04160414ccf918a22559ca97498bf91ac46dd2aea246dcf5301806086781120101010000040c0c0a47442d4e472d30363137301f0603551d2304183016801461ff0342f9d212185342c879e63fd9e9a63f1d9a300a06082a8648ce3d040302034700304402203af38012a8760169bf5f4bafde93b94413323ae9a6b760bdf8340295b019b28802206f09bab852a823cb45f7063cb22d1591f8772780514a392e1c98f6793a9d9def00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ["0\x82\x02x0\x82\x02\x1f\xa0\x03\x02\x01\x02\x02\n\x00\x89\x88\"\x80f`\x17\x00\x010\n\x06\b*\x86H\xce=\x04\x03\x020\x81\xad1'0%\x06\t*\x86H\x86\xf7\r\x01\t\x01\x16\[email protected]\v0\t\x06\x03U\x04\x06\x13\x02DE1 0\x1e\x06\x03U\x04\b\f\x17North Rhine-Westphalian1\x100\x0e\x06\x03U\x04\a\f\aCologne1\x190\x17\x06\x03U\x04\n\f\x10ubirch Test GmbH1&0$\x06\x03U\x04\x03\f\x1dubirch GmbH Device Signing CA0\x1e\x17\r200331100206Z\x17\r400326100206Z0N1\v0\t\x06\x03U\x04\x06\x13\x02DE1\x140\x12\x06\x03U\x04\n\f\vubirch GmbH1)0'\x06\x03U\x04\x03\f 03120206091240209202000018A8619F0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03B\x00\x04_\x8a\xbfτ\x92D\x05U\aTJ_\xad\x89\x0fk\x0e\x85ܞ\xefk\xe0\xf6\x98\x8f\xe8(-\x03\xca\x1f&T\xf6{\x84Qc\x12\x97\x8f\xa0e=\xba\xf8͉\xf16@z\xbd1dž\x1fI[֟P\xa3\x81\x840\x81\x810\x0e\x06\x03U\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\a\x800\x15\x06\x03U\x1d \x04\x0e0\f0\n\x06\bg\x81\x12\x01\x01\x01\x01\x010\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\xcc\xf9\x18\xa2%YʗI\x8b\xf9\x1a\xc4mҮ\xa2F\xdc\xf50\x18\x06\bg\x81\x12\x01\x01\x01\x00\x00\x04\f\f\nGD-NG-06170\x1f\x06\x03U\x1d#\x04\x180\x16\x80\x14a\xff\x03B\xf9\xd2\x12\x18SB\xc8y\xe6?\xd9\xe9\xa6?\x1d\x9a0\n\x06\b*\x86H\xce=\x04\x03\x02\x03G\x000D\x02 :\xf3\x80\x12\xa8v\x01i\xbf_K\xafޓ\xb9D\x132:馷`\xbd\xf84\x02\x95\xb0\x19\xb2\x88\x02 o\t\xba\xb8R\xa8#\xcbE\xf7\x06<\xb2-\x15\x91\xf8w'\x80QJ9.\x1c\x98\xf6y:\x9d\x9d\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"]
2020/05/08 13:32:24 retrieved certificate from SIM: 308202783082021fa003020102020a00898822806660170001300a06082a8648ce3d0403023081ad3127302506092a864886f70d01090116186b65796d616e6167656d656e74407562697263682e636f6d310b30090603550406130244453120301e06035504080c174e6f727468205268696e652d576573747068616c69616e3110300e06035504070c07436f6c6f676e6531193017060355040a0c10756269726368205465737420476d62483126302406035504030c1d75626972636820476d624820446576696365205369676e696e67204341301e170d3230303333313130303230365a170d3430303332363130303230365a304e310b300906035504061302444531143012060355040a0c0b75626972636820476d62483129302706035504030c2030333132303230363039313234303230393230323030303031384138363139463059301306072a8648ce3d020106082a8648ce3d030107034200045f8abfcf849244055507544a5fad890f6b0e85dc9eef6be0f6988fe8282d03ca1f2654f67b84516312978fa0653dbaf8cd89f136407abd31c7861f495bd69f50a38184308181300e0603551d0f0101ff04040302078030150603551d20040e300c300a06086781120101010101301d0603551d0e04160414ccf918a22559ca97498bf91ac46dd2aea246dcf5301806086781120101010000040c0c0a47442d4e472d30363137301f0603551d2304183016801461ff0342f9d212185342c879e63fd9e9a63f1d9a300a06082a8648ce3d040302034700304402203af38012a8760169bf5f4bafde93b94413323ae9a6b760bdf8340295b019b28802206f09bab852a823cb45f7063cb22d1591f8772780514a392e1c98f6793a9d9def00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2020/05/08 13:32:24 >> get key "ukey"
2020/05/08 13:32:24 +++ AT+CSIM=18,"80A5000004756b6579" (31)
2020/05/08 13:32:24 --- +CSIM: 4,6118 (13)
2020/05/08 13:32:24 --- OK (2)
2020/05/08 13:32:24 >> get response
2020/05/08 13:32:24 +++ AT+CSIM=10,"00C0000018" (23)
2020/05/08 13:32:25 --- +CSIM: 52,C404756B6579C010498D2C4D5F634206B9F75B4754EBD6249000 (62)
2020/05/08 13:32:25 --- OK (2)
2020/05/08 13:32:25 ENC tag=0xd0, len=  1 [01], data=00 ["\x00"]
2020/05/08 13:32:25 +++ AT+CSIM=16,"80CB000003D00100" (29)
2020/05/08 13:32:25 --- +CSIM: 4,6148 (13)
2020/05/08 13:32:25 --- OK (2)
2020/05/08 13:32:25 >> get response
2020/05/08 13:32:25 +++ AT+CSIM=10,"00C0000048" (23)
2020/05/08 13:32:25 --- +CSIM: 148,C2030B0100C341048D21F58705AFF6425690196C616F22041585E25DC1BC0C8EB060DCE334AD511B000E348AC9F36963D1A47CDF0EA25EBDE2EA7BF320FA180535D40C35FCC9D3BB9000 (159)
2020/05/08 13:32:25 --- OK (2)
2020/05/08 13:32:25 DEC tag=0xc2, len=  3 [03], data=0b0100 ["\v\x01\x00"]
2020/05/08 13:32:25 DEC tag=0xc3, len= 65 [41], data=048d21f58705aff6425690196c616f22041585e25dc1bc0c8eb060dce334ad511b000e348ac9f36963d1a47cdf0ea25ebde2ea7bf320fa180535d40c35fcc9d3bb ["\x04\x8d!\xf5\x87\x05\xaf\xf6BV\x90\x19lao\"\x04\x15\x85\xe2]\xc1\xbc\f\x8e\xb0`\xdc\xe34\xadQ\x1b\x00\x0e4\x8a\xc9\xf3icѤ|\xdf\x0e\xa2^\xbd\xe2\xea{\xf3 \xfa\x18\x055\xd4\f5\xfc\xc9ӻ"]
2020/05/08 13:32:25 public key [base64]: jSH1hwWv9kJWkBlsYW8iBBWF4l3BvAyOsGDc4zStURsADjSKyfNpY9GkfN8Ool694up78yD6GAU11Aw1/MnTuw==
2020/05/08 13:32:25 public key [hex]:    8d21f58705aff6425690196c616f22041585e25dc1bc0c8eb060dce334ad511b000e348ac9f36963d1a47cdf0ea25ebde2ea7bf320fa180535d40c35fcc9d3bb
2020/05/08 13:32:25 >> get UUID of "ukey"
2020/05/08 13:32:25 +++ AT+CSIM=18,"80A5000004756b6579" (31)
2020/05/08 13:32:25 --- +CSIM: 4,6118 (13)
2020/05/08 13:32:25 --- OK (2)
2020/05/08 13:32:25 >> get response
2020/05/08 13:32:25 +++ AT+CSIM=10,"00C0000018" (23)
2020/05/08 13:32:26 --- +CSIM: 52,C404756B6579C010498D2C4D5F634206B9F75B4754EBD6249000 (62)
2020/05/08 13:32:26 --- OK (2)
2020/05/08 13:32:26 DEC tag=0xc4, len=  4 [04], data=756b6579 ["ukey"]
2020/05/08 13:32:26 DEC tag=0xc0, len= 16 [10], data=498d2c4d5f634206b9f75b4754ebd624 ["I\x8d,M_cB\x06\xb9\xf7[GT\xeb\xd6$"]
2020/05/08 13:32:26 UUID: 498d2c4d-5f63-4206-b9f7-5b4754ebd624
2020/05/08 13:32:27 >> sign with key "_ukey"
2020/05/08 13:32:27 ENC tag=0xc4, len=  5 [05], data=5f756b6579 ["_ukey"]
2020/05/08 13:32:27 ENC tag=0xd0, len=  1 [01], data=21 ["!"]
2020/05/08 13:32:27 >> sign init
2020/05/08 13:32:27 +++ AT+CSIM=30,"80B500000AC4055F756B6579D00121" (43)
2020/05/08 13:32:27 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:27 --- OK (2)
2020/05/08 13:32:27 >> sign update/final
2020/05/08 13:32:27 +++ AT+CSIM=138,"80B60000407b22616c676f726974686d223a2265636473612d703235367631222c2263726561746564223a22323032302d30352d30385431313a34393a32322e3235315a22" (152)
2020/05/08 13:32:27 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:27 --- OK (2)
2020/05/08 13:32:27 >> sign update/final
2020/05/08 13:32:27 +++ AT+CSIM=138,"80B60000402c2268774465766963654964223a2234393864326334642d356636332d343230362d623966372d356234373534656264363234222c227075624b6579223a226a" (152)
2020/05/08 13:32:27 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:27 --- OK (2)
2020/05/08 13:32:27 >> sign update/final
2020/05/08 13:32:27 +++ AT+CSIM=138,"80B600004053483168775776396b4a576b426c735957386942425746346c33427641794f73474463347a537455527341446a534b79664e705939476b664e384f6f6c363934" (152)
2020/05/08 13:32:28 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:28 --- OK (2)
2020/05/08 13:32:28 >> sign update/final
2020/05/08 13:32:28 +++ AT+CSIM=138,"80B60000407570373879443647415531314177312f4d6e5475773d3d222c227075624b65794964223a226a53483168775776396b4a576b426c735957386942425746346c33" (152)
2020/05/08 13:32:28 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:28 --- OK (2)
2020/05/08 13:32:28 >> sign update/final
2020/05/08 13:32:28 +++ AT+CSIM=138,"80B6000040427641794f73474463347a537455527341446a534b79664e705939476b664e384f6f6c3639347570373879443647415531314177312f4d6e5475773d3d222c22" (152)
2020/05/08 13:32:28 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:28 --- OK (2)
2020/05/08 13:32:28 >> sign update/final
2020/05/08 13:32:28 +++ AT+CSIM=138,"80B600004076616c69644e6f744166746572223a22323032312d30352d30385431313a34393a32322e3235315a222c2276616c69644e6f744265666f7265223a2232303230" (152)
2020/05/08 13:32:29 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:29 --- OK (2)
2020/05/08 13:32:29 >> sign update/final
2020/05/08 13:32:29 +++ AT+CSIM=54,"80B68000162d30352d30385431313a34393a32322e3235315a227d" (67)
2020/05/08 13:32:29 --- +CSIM: 4,6146 (13)
2020/05/08 13:32:29 --- OK (2)
2020/05/08 13:32:29 >> get response
2020/05/08 13:32:29 +++ AT+CSIM=10,"00C0000046" (23)
2020/05/08 13:32:29 --- +CSIM: 144,304402200EBFAEEBA0AEB4A71ACC6FE3CEB10EBF540035F33FD5849845908EF6240EA5480220215DB3A86036D960DA4084721971012B0B4C5695F717421A1DBDE77B6F15385E9000 (155)
2020/05/08 13:32:29 --- OK (2)
2020/05/08 13:32:29 certificate: {"pubKeyInfo":{"algorithm":"ecdsa-p256v1","created":"2020-05-08T11:32:26.251Z","hwDeviceId":"498d2c4d-5f63-4206-b9f7-5b4754ebd624","pubKey":"jSH1hwWv9kJWkBlsYW8iBBWF4l3BvAyOsGDc4zStURsADjSKyfNpY9GkfN8Ool694up78yD6GAU11Aw1/MnTuw==","pubKeyId":"jSH1hwWv9kJWkBlsYW8iBBWF4l3BvAyOsGDc4zStURsADjSKyfNpY9GkfN8Ool694up78yD6GAU11Aw1/MnTuw==","validNotAfter":"2021-05-08T11:32:26.251Z","validNotBefore":"2020-05-08T11:32:26.251Z"},"signature":"MEQCIA6/ruugrrSnGsxv486xDr9UADXzP9WEmEWQjvYkDqVIAiAhXbOoYDbZYNpAhHIZcQErC0xWlfcXQhodved7bxU4Xg=="}
2020/05/08 13:32:29 key registration successful. response: {"pubKeyInfo":{"algorithm":"ecdsa-p256v1","created":"2020-05-08T11:32:26.251Z","hwDeviceId":"498d2c4d-5f63-4206-b9f7-5b4754ebd624","pubKey":"jSH1hwWv9kJWkBlsYW8iBBWF4l3BvAyOsGDc4zStURsADjSKyfNpY9GkfN8Ool694up78yD6GAU11Aw1/MnTuw==","pubKeyId":"jSH1hwWv9kJWkBlsYW8iBBWF4l3BvAyOsGDc4zStURsADjSKyfNpY9GkfN8Ool694up78yD6GAU11Aw1/MnTuw==","validNotAfter":"2021-05-08T11:32:26.251Z","validNotBefore":"2020-05-08T11:32:26.251Z"},"signature":"MEQCIA6/ruugrrSnGsxv486xDr9UADXzP9WEmEWQjvYkDqVIAiAhXbOoYDbZYNpAhHIZcQErC0xWlfcXQhodved7bxU4Xg=="}
2020/05/08 13:32:30 {"Timestamp":1588938565,"ID":"498d2c4d-5f63-4206-b9f7-5b4754ebd624","Value":2596996162}
2020/05/08 13:32:30 data hash [base64]: RcsOOUpHHv0xqi1r6z/fLkpqXVY+zO9KnOGR/m0FAxI=
2020/05/08 13:32:30 >> sign with key "_ukey"
2020/05/08 13:32:30 ENC tag=0xc4, len=  5 [05], data=5f756b6579 ["_ukey"]
2020/05/08 13:32:30 ENC tag=0xd0, len=  1 [01], data=21 ["!"]
2020/05/08 13:32:30 >> sign init
2020/05/08 13:32:30 +++ AT+CSIM=30,"80B562000AC4055F756B6579D00121" (43)
2020/05/08 13:32:30 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:30 --- OK (2)
2020/05/08 13:32:30 >> sign update/final
2020/05/08 13:32:30 +++ AT+CSIM=138,"80B60000407b2254696d657374616d70223a313538383933383536352c224944223a2234393864326334642d356636332d343230362d623966372d35623437353465626436" (152)
2020/05/08 13:32:30 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:30 --- OK (2)
2020/05/08 13:32:30 >> sign update/final
2020/05/08 13:32:30 +++ AT+CSIM=56,"80B68000173234222c2256616c7565223a323539363939363136327d" (69)
2020/05/08 13:32:30 --- +CSIM: 4,6179 (13)
2020/05/08 13:32:30 --- OK (2)
2020/05/08 13:32:30 >> get response
2020/05/08 13:32:30 +++ AT+CSIM=10,"00C0000079" (23)
2020/05/08 13:32:31 --- +CSIM: 246,9522C410498D2C4D5F634206B9F75B4754EBD62400C42045CB0E394A471EFD31AA2D6BEB3FDF2E4A6A5D563ECCEF4A9CE191FE6D050312C440B333E047215603324BAF27ACEC24EB7E914C463BC673FF272B8D8D18E5DF61AB47D92BA06DAEFD1BC1E2DB7F80FC4A9856D9786C69FE234478C56A6DD9162EDF9000 (257)
2020/05/08 13:32:31 --- OK (2)
2020/05/08 13:32:31 UPP [hex]: 9522c410498d2c4d5f634206b9f75b4754ebd62400c42045cb0e394a471efd31aa2d6beb3fdf2e4a6a5d563eccef4a9ce191fe6d050312c440b333e047215603324baf27acec24eb7e914c463bc673ff272b8d8d18e5df61ab47d92ba06daefd1bc1e2db7f80fc4a9856d9786c69fe234478c56a6dd9162edf
2020/05/08 13:32:31 >> verify with key "ukey"
2020/05/08 13:32:31 ENC tag=0xc4, len=  4 [04], data=756b6579 ["ukey"]
2020/05/08 13:32:31 ENC tag=0xd0, len=  1 [01], data=21 ["!"]
2020/05/08 13:32:31 >> verify init
2020/05/08 13:32:31 +++ AT+CSIM=28,"80B7220009C404756B6579D00121" (41)
2020/05/08 13:32:31 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:31 --- OK (2)
2020/05/08 13:32:31 >> verify update/final
2020/05/08 13:32:31 +++ AT+CSIM=138,"80B80000409522c410498d2c4d5f634206b9f75b4754ebd62400c42045cb0e394a471efd31aa2d6beb3fdf2e4a6a5d563eccef4a9ce191fe6d050312c440b333e047215603" (152)
2020/05/08 13:32:31 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:31 --- OK (2)
2020/05/08 13:32:31 >> verify update/final
2020/05/08 13:32:31 +++ AT+CSIM=124,"80B8800039324baf27acec24eb7e914c463bc673ff272b8d8d18e5df61ab47d92ba06daefd1bc1e2db7f80fc4a9856d9786c69fe234478c56a6dd9162edf" (138)
2020/05/08 13:32:32 --- +CSIM: 4,9000 (13)
2020/05/08 13:32:32 --- OK (2)
2020/05/08 13:32:32 verified: true