Skip to content

Instantly share code, notes, and snippets.

@eventualbuddha
Created October 11, 2021 23:59
Show Gist options
  • Save eventualbuddha/d0c5c70480dc4d22deb4054ac11535fc to your computer and use it in GitHub Desktop.
Save eventualbuddha/d0c5c70480dc4d22deb4054ac11535fc to your computer and use it in GitHub Desktop.
OMNIKEY HID Card Reader Incompatibility

OMNIKEY HID Card Reader Incompatibility

Certain model years of the OMNIKEY smart card readers seem to be incompatible with pcsc on Ubuntu Linux 18.x and possibly other versions. This document describes how to reproduce the issue.

Steps to Reproduce

  1. Copy write.scriptor and read.scriptor to a directory on your Ubuntu Linux 18.x system.
  2. Install pcsc-tools.
  3. Choose a card reader to be considered BAD from OMNIKEY 3021 (rev C 2021) or OMNIKEY 3121 (rev A 2017).
  4. Choose a card reader to be considered GOOD from OMNIKEY 3021 (rev A 2016) or OMNIKEY 3121 (rev A 2016).
  5. Choose a AT24C64 card capable of responding to i2c commands.
  6. Test the card readers to ensure pcsc_scan can see both of them and the card (it identifies the card as a German Health Insurance Card with ATR 3B 04 49 32 43 2E).
  7. Plug in GOOD card reader with the card.
  8. Run scriptor write.scriptor to pre-populate the expected sample data.
  9. Run scriptor write.scriptor > write-good.stdout
  10. Run scriptor read.scriptor > read-good.stdout
  11. Unplug GOOD card reader and remove the card.
  12. Plug in BAD card reader and insert the card.
  13. Run scriptor write.scriptor > write-bad.stdout
  14. Run scriptor read.scriptor > read-bad.stdout
  15. Compare write-good.stdout and write-bad.stdout (i.e. diff -U -1 write-{good,bad}.stdout) and note they are not the same.
  16. Compare read-good.stdout and read-bad.stdout (i.e. diff -U -1 read-{good,bad}.stdout) and note they are not the same.
Using T=0 protocol
reset
> RESET
< OK: 3B 04 49 32 43 2E
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
> FF 30 00 04 08 01 18 40 02 00 00 80 00
< 90 00 : Normal processing.
# read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
34 82 19 52 D7 0A F1 D6 19 E3 7A A0 06 39 33 90
EF 6A D2 CE 06 DE A4 B3 BB CF 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
34 82 19 52 D7 0A F1 D6 19 E3 7A A0 06 39 33 90
EF 6A D2 CE 06 DE A4 B3 BB CF 90 00 : Normal processing.
# read long value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
34 82 19 52 D7 0A F1 D6 19 E3 7A A0 06 39 33 90
EF 6A D2 CE 06 DE A4 B3 BB CF 90 00 : Normal processing.
# read long value: read chunk 1
ff30000509010000011a000000fa
> ff 30 00 05 09 01 00 00 01 1a 00 00 00 fa
< F7 B3 4E 13 C2 F4 34 82 19 52 D7 0A F1 D6 19 E3
7A A0 06 39 33 90 EF 6A D2 CE 06 DE A4 B3 BB CF
F7 B3 4E 13 C2 F4 9A 07 A3 57 08 C1 4D 84 98 CF
E7 A1 11 A3 88 2E DB 36 94 39 60 BC 6F 2D 88 B5
E4 D8 AA D3 46 E5 9A 07 A3 57 08 C1 4D 84 98 CF
E7 A1 11 A3 88 2E DB 36 94 39 60 BC 6F 2D 88 B5
E4 D8 AA D3 46 E5 E4 E2 EC EC BC CC B3 BE E7 C9
24 E7 4C F1 7B A7 43 1C 67 E6 16 D4 4B 8F 43 4B
A9 96 CE 61 3F F7 E4 E2 EC EC BC CC B3 BE E7 C9
24 E7 4C F1 7B A7 43 1C 67 E6 16 D4 4B 8F 43 4B
A9 96 CE 61 3F F7 46 91 56 C1 11 3B C4 98 E1 38
25 1E E5 E8 2F 9A 1A 16 4F 21 7F 78 66 B9 C4 E3
C8 E1 74 DF E1 B5 46 91 56 C1 11 3B C4 98 E1 38
25 1E E5 E8 2F 9A 1A 16 4F 21 7F 78 66 B9 C4 E3
C8 E1 74 DF E1 B5 44 D6 8B 31 A2 0E E0 51 AA C4
34 77 B1 D0 F7 D4 31 55 4A 92 90 00 : Normal processing.
# read long value: read chunk 2
ff300005090100000214000000fa
> ff 30 00 05 09 01 00 00 02 14 00 00 00 fa
< 04 B9 B7 06 DE CB 75 6B 78 FA 0A D9 44 D6 8B 31
A2 0E E0 51 AA C4 34 77 B1 D0 F7 D4 31 55 4A 92
04 B9 B7 06 DE CB 75 6B 78 FA 0A D9 60 74 A2 16
EE E6 BB 42 A1 9C B3 CF CA 61 77 92 34 1C C1 6D
88 51 7F 82 3F F8 8B 5D BF D0 4B CE 60 74 A2 16
EE E6 BB 42 A1 9C B3 CF CA 61 77 92 34 1C C1 6D
88 51 7F 82 3F F8 8B 5D BF D0 4B CE 14 DF 02 83
8F C0 B1 E4 D0 F2 85 09 19 36 2E A1 77 7E 15 EF
E3 5F C1 63 F4 2E F8 B7 15 36 8E 76 14 DF 02 83
8F C0 B1 E4 D0 F2 85 09 19 36 2E A1 77 7E 15 EF
E3 5F C1 63 F4 2E F8 B7 15 36 8E 76 19 C8 1D 28
17 E2 96 45 92 76 3B 9C 40 C4 CF 3E 8F 97 B9 80
F4 1C 85 C6 F5 81 F5 1C 7C C5 4A C8 19 C8 1D 28
17 E2 96 45 92 76 3B 9C 40 C4 CF 3E 8F 97 B9 80
F4 1C 85 C6 F5 81 F5 1C 7C C5 4A C8 ED 2E 65 66
E4 DF E0 AA 98 7F 80 FB E0 1E 90 00 : Normal processing.
# read long value: read chunk 3
ff30000509010000030e000000fa
> ff 30 00 05 09 01 00 00 03 0e 00 00 00 fa
< 8F 65 DD 38 F5 3F 3C 13 57 BA 46 1B F8 DD 7B F7
E9 6A ED 2E 65 66 E4 DF E0 AA 98 7F 80 FB E0 1E
8F 65 DD 38 F5 3F 3C 13 57 BA 46 1B F8 DD 7B F7
E9 6A 73 21 7E 00 1E C0 30 00 6B 06 00 00 B8 1A
7D BC F8 70 FE F5 DE 97 27 82 C1 99 CE 9B 8A BE
33 DC DB CA DF 4B 53 BA A4 3F E8 9F 9E 4E 79 FA
72 9A 4C 75 A5 C8 12 9B A9 6D A7 F4 D6 4D 97 0D
7D 8C A6 FD D4 88 C5 51 A8 78 29 73 54 96 5E DA
77 9F 2E D7 03 F6 13 D7 BA E1 B1 DD 06 00 00 B0
6A AA 5D 71 2C 23 7C 74 24 B5 A1 B6 7C 22 63 E9
31 4F 1D DE 09 16 87 8B A6 6B A9 CB 2E 95 8C 62
06 86 8D 01 43 45 E0 FB 45 DA 2A 83 0D 67 AB 45
E9 58 D6 50 D5 D8 CB 64 A4 43 FF AA EF B3 AF 53
B8 BE 3A EF FA 7F 1A 4B CB 6E 79 8D E6 73 A4 6A
73 C2 58 24 FE 22 96 F9 B4 B7 0D 47 ED B8 B7 33
61 6C DD CC 3D 28 A2 47 CC F1 90 00 : Normal processing.
Using T=0 protocol
reset
> RESET
< OK: 3B 04 49 32 43 2E
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
> FF 30 00 04 08 01 18 40 02 00 00 80 00
< 90 00 : Normal processing.
# read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# read long value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# read long value: read chunk 1
ff30000509010000011a000000fa
> ff 30 00 05 09 01 00 00 01 1a 00 00 00 fa
< C4 AC 19 B3 10 62 34 82 19 52 D7 0A F1 D6 19 E3
7A A0 06 39 33 90 EF 6A D2 CE 06 DE A4 B3 BB CF
F7 B3 4E 13 C2 F4 F2 E5 9B EB CB AF CF 8B A2 E4
5F DE 15 6B 75 12 AB 2C 91 B8 2D 82 AE 3D 15 9C
64 C1 77 39 7B 9D 9A 07 A3 57 08 C1 4D 84 98 CF
E7 A1 11 A3 88 2E DB 36 94 39 60 BC 6F 2D 88 B5
E4 D8 AA D3 46 E5 25 43 C5 AC 48 00 0E B3 F7 DA
18 A8 10 E4 46 6A 23 2B AE 20 09 1A A2 76 52 96
C6 D5 D2 34 2E D0 E4 E2 EC EC BC CC B3 BE E7 C9
24 E7 4C F1 7B A7 43 1C 67 E6 16 D4 4B 8F 43 4B
A9 96 CE 61 3F F7 90 4A 33 C2 0D 06 D2 76 29 C4
00 A5 B0 45 AB D0 D6 9A 99 DF BA 0E 2C A2 9A 1C
C1 25 84 B1 C2 4D 46 91 56 C1 11 3B C4 98 E1 38
25 1E E5 E8 2F 9A 1A 16 4F 21 7F 78 66 B9 C4 E3
C8 E1 74 DF E1 B5 AB 57 AC 77 72 0E 44 EB 08 F1
D1 B2 0B B8 B7 67 3E F1 68 79 90 00 : Normal processing.
# read long value: read chunk 2
ff300005090100000214000000fa
> ff 30 00 05 09 01 00 00 02 14 00 00 00 fa
< 80 54 38 D3 78 9A DA AE A5 05 B4 99 44 D6 8B 31
A2 0E E0 51 AA C4 34 77 B1 D0 F7 D4 31 55 4A 92
04 B9 B7 06 DE CB 75 6B 78 FA 0A D9 41 05 CC BA
B6 35 DB 08 EA C1 F5 8C 6A 30 79 89 A9 5A 68 AB
E3 F2 14 9C 87 2E 20 B0 73 85 5B EC 60 74 A2 16
EE E6 BB 42 A1 9C B3 CF CA 61 77 92 34 1C C1 6D
88 51 7F 82 3F F8 8B 5D BF D0 4B CE CE 13 48 B5
E6 A6 E3 60 A2 28 E3 90 91 9F 69 1A B1 68 B7 C3
FC E3 71 8E 2B 5B 49 4D 49 AE 1C 4A 14 DF 02 83
8F C0 B1 E4 D0 F2 85 09 19 36 2E A1 77 7E 15 EF
E3 5F C1 63 F4 2E F8 B7 15 36 8E 76 2D C7 D5 63
50 73 DC AF 01 63 51 8F B5 B6 35 C1 F9 8B 0B DE
56 6C 5D 47 E3 40 5B 4E 3E 9F 0E E6 19 C8 1D 28
17 E2 96 45 92 76 3B 9C 40 C4 CF 3E 8F 97 B9 80
F4 1C 85 C6 F5 81 F5 1C 7C C5 4A C8 CE D0 1E 66
F2 64 41 86 F2 7B 67 A4 C4 27 90 00 : Normal processing.
# read long value: read chunk 3
ff30000509010000030e000000fa
> ff 30 00 05 09 01 00 00 03 0e 00 00 00 fa
< 4B F1 00 F6 A0 CD 7F 89 F0 00 2F 25 1E D8 7D 65
A4 5D ED 2E 65 66 E4 DF E0 AA 98 7F 80 FB E0 1E
8F 65 DD 38 F5 3F 3C 13 57 BA 46 1B F8 DD 7B F7
E9 6A 73 21 7E 00 1E C0 30 00 6B 06 00 00 B8 1A
7D BC F8 70 FE F5 DE 97 27 82 C1 99 CE 9B 8A BE
33 DC DB CA DF 4B 53 BA A4 3F E8 9F 9E 4E 79 FA
72 9A 4C 75 A5 C8 12 9B A9 6D A7 F4 D6 4D 97 0D
7D 8C A6 FD D4 88 C5 51 A8 78 29 73 54 96 5E DA
77 9F 2E D7 03 F6 13 D7 BA E1 B1 DD 06 00 00 B0
6A AA 5D 71 2C 23 7C 74 24 B5 A1 B6 7C 22 63 E9
31 4F 1D DE 09 16 87 8B A6 6B A9 CB 2E 95 8C 62
06 86 8D 01 43 45 E0 FB 45 DA 2A 83 0D 67 AB 45
E9 58 D6 50 D5 D8 CB 64 A4 43 FF AA EF B3 AF 53
B8 BE 3A EF FA 7F 1A 4B CB 6E 79 8D E6 73 A4 6A
73 C2 58 24 FE 22 96 F9 B4 B7 0D 47 ED B8 B7 33
61 6C DD CC 3D 28 A2 47 CC F1 90 00 : Normal processing.
reset
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
# read chunk 0
ff300005090100000020000000fa
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
# read long value: read chunk 0
ff300005090100000020000000fa
# read long value: read chunk 1
ff30000509010000011a000000fa
# read long value: read chunk 2
ff300005090100000214000000fa
# read long value: read chunk 3
ff30000509010000030e000000fa
Using T=0 protocol
reset
> RESET
< OK: 3B 04 49 32 43 2E
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
> FF 30 00 04 08 01 18 40 02 00 00 80 00
< 90 00 : Normal processing.
# read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# write long value: write chunk 0
ff300006ff010000002056582e02015702ad7b2274223a202261646d696e222c202268223a202231643963363836633132353136663439663264353638376262313963343765383131363038366238363531626463333334336334666431363632613463613136227decfb1f0e1c2ac21dcfef05823f212c922b1543c1ac3584aff4ca73b183d7fe311f8b0800bf8d5f6102ffa5544d6f133110bdfb578c9403546a765b7acb8d8f82905a40490b870a29def5246be2d88b3d9b6dfe3d633b9b10958f42a568653b336f66de7bf608666be9e9b5f40aae9dea0c0a71d3e8003d5610d06fd043edd6adb368095aef365a610099fed796d02f648d408e8f6a672dd6840a42
> ff 30 00 06 ff 01 00 00 00 20 56 58 2e 02 01 57 02 ad 7b 22 74 22 3a 20 22 61 64 6d 69 6e 22 2c 20 22 68 22 3a 20 22 31 64 39 63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64 35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36 30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63 34 66 64 31 36 36 32 61 34 63 61 31 36 22 7d ec fb 1f 0e 1c 2a c2 1d cf ef 05 82 3f 21 2c 92 2b 15 43 c1 ac 35 84 af f4 ca 73 b1 83 d7 fe 31 1f 8b 08 00 bf 8d 5f 61 02 ff a5 54 4d 6f 13 31 10 bd fb 57 8c 94 03 54 6a 76 5b 7a cb 8d 8f 82 90 5a 40 49 0b 87 0a 29 de f5 24 6b e2 d8 8b 3d 9b 6d fe 3d 63 3b 9b 10 95 8f 42 a5 68 65 3b 33 6f 66 de 7b f6 08 66 6b e9 e9 b5 f4 0a ae 9d ea 0c 0a 71 d3 e8 00 3d 56 10 d0 6f d0 43 ed d6 ad b3 68 09 5a ef 36 5a 61 00 99 fe d7 96 d0 2f 64 8d 40 8e 8f 6a 67 2d d6 84 0a 42
< 90 00 : Normal processing.
# write long value: write chunk 1
ff300006ff010000011ac4ac19b3106234821952d70af1d619e37aa006393390ef6ad2ce06dea4b3bbcff7b34e13c2f4f2e59bebcbafcf8ba2e45fde156b7512ab2c91b82d82ae3d159c64c177397b9d9a07a35708c14d8498cfe7a111a3882edb36943960bc6f2d88b5e4d8aad346e52543c5ac48000eb3f7da18a810e4466a232bae20091aa2765296c6d5d2342ed0e4e2ececbcccb3bee7c924e74cf17ba7431c67e616d44b8f434ba996ce613ff7904a33c20d06d27629c400a5b045abd0d69a99dfba0e2ca29a1cc12584b1c24d469156c1113bc498e138251ee5e82f9a1a164f217f7866b9c4e3c8e174dfe1b5ab57ac77720e44eb08f1d1b20bb8b7673ef16879
> ff 30 00 06 ff 01 00 00 01 1a c4 ac 19 b3 10 62 34 82 19 52 d7 0a f1 d6 19 e3 7a a0 06 39 33 90 ef 6a d2 ce 06 de a4 b3 bb cf f7 b3 4e 13 c2 f4 f2 e5 9b eb cb af cf 8b a2 e4 5f de 15 6b 75 12 ab 2c 91 b8 2d 82 ae 3d 15 9c 64 c1 77 39 7b 9d 9a 07 a3 57 08 c1 4d 84 98 cf e7 a1 11 a3 88 2e db 36 94 39 60 bc 6f 2d 88 b5 e4 d8 aa d3 46 e5 25 43 c5 ac 48 00 0e b3 f7 da 18 a8 10 e4 46 6a 23 2b ae 20 09 1a a2 76 52 96 c6 d5 d2 34 2e d0 e4 e2 ec ec bc cc b3 be e7 c9 24 e7 4c f1 7b a7 43 1c 67 e6 16 d4 4b 8f 43 4b a9 96 ce 61 3f f7 90 4a 33 c2 0d 06 d2 76 29 c4 00 a5 b0 45 ab d0 d6 9a 99 df ba 0e 2c a2 9a 1c c1 25 84 b1 c2 4d 46 91 56 c1 11 3b c4 98 e1 38 25 1e e5 e8 2f 9a 1a 16 4f 21 7f 78 66 b9 c4 e3 c8 e1 74 df e1 b5 ab 57 ac 77 72 0e 44 eb 08 f1 d1 b2 0b b8 b7 67 3e f1 68 79
< 90 00 : Normal processing.
# write long value: write chunk 2
ff300006ff0100000214805438d3789adaaea505b49944d68b31a20ee051aac43477b1d0f7d431554a9204b9b706decb756b78fa0ad94105ccbab635db08eac1f58c6a307989a95a68abe3f2149c872e20b073855bec6074a216eee6bb42a19cb3cfca617792341cc16d88517f823ff88b5dbfd04bcece1348b5e6a6e360a228e390919f691ab168b7c3fce3718e2b5b494d49ae1c4a14df02838fc0b1e4d0f2850919362ea1777e15efe35fc163f42ef8b715368e762dc7d5635073dcaf0163518fb5b635c1f98b0bde566c5d47e3405b4e3e9f0ee619c81d2817e2964592763b9c40c4cf3e8f97b980f41c85c6f581f51c7cc54ac8ced01e66f2644186f27b67a4c427
> ff 30 00 06 ff 01 00 00 02 14 80 54 38 d3 78 9a da ae a5 05 b4 99 44 d6 8b 31 a2 0e e0 51 aa c4 34 77 b1 d0 f7 d4 31 55 4a 92 04 b9 b7 06 de cb 75 6b 78 fa 0a d9 41 05 cc ba b6 35 db 08 ea c1 f5 8c 6a 30 79 89 a9 5a 68 ab e3 f2 14 9c 87 2e 20 b0 73 85 5b ec 60 74 a2 16 ee e6 bb 42 a1 9c b3 cf ca 61 77 92 34 1c c1 6d 88 51 7f 82 3f f8 8b 5d bf d0 4b ce ce 13 48 b5 e6 a6 e3 60 a2 28 e3 90 91 9f 69 1a b1 68 b7 c3 fc e3 71 8e 2b 5b 49 4d 49 ae 1c 4a 14 df 02 83 8f c0 b1 e4 d0 f2 85 09 19 36 2e a1 77 7e 15 ef e3 5f c1 63 f4 2e f8 b7 15 36 8e 76 2d c7 d5 63 50 73 dc af 01 63 51 8f b5 b6 35 c1 f9 8b 0b de 56 6c 5d 47 e3 40 5b 4e 3e 9f 0e e6 19 c8 1d 28 17 e2 96 45 92 76 3b 9c 40 c4 cf 3e 8f 97 b9 80 f4 1c 85 c6 f5 81 f5 1c 7c c5 4a c8 ce d0 1e 66 f2 64 41 86 f2 7b 67 a4 c4 27
< 90 00 : Normal processing.
# write long value: write chunk 3
ff30000643010000030e4bf100f6a0cd7f89f0002f251ed87d65a45ded2e6566e4dfe0aa987f80fbe01e8f65dd38f53f3c1357ba461bf8dd7bf7e96a73217e001ec030006b060000
> ff 30 00 06 43 01 00 00 03 0e 4b f1 00 f6 a0 cd 7f 89 f0 00 2f 25 1e d8 7d 65 a4 5d ed 2e 65 66 e4 df e0 aa 98 7f 80 fb e0 1e 8f 65 dd 38 f5 3f 3c 13 57 ba 46 1b f8 dd 7b f7 e9 6a 73 21 7e 00 1e c0 30 00 6b 06 00 00
< 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< FF 90 00 : Normal processing.
Using T=0 protocol
reset
> RESET
< OK: 3B 04 49 32 43 2E
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
> FF 30 00 04 08 01 18 40 02 00 00 80 00
< 90 00 : Normal processing.
# read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< 56 58 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
# write long value: write chunk 0
ff300006ff010000002056582e02015702ad7b2274223a202261646d696e222c202268223a202231643963363836633132353136663439663264353638376262313963343765383131363038366238363531626463333334336334666431363632613463613136227decfb1f0e1c2ac21dcfef05823f212c922b1543c1ac3584aff4ca73b183d7fe311f8b0800bf8d5f6102ffa5544d6f133110bdfb578c9403546a765b7acb8d8f82905a40490b870a29def5246be2d88b3d9b6dfe3d633b9b10958f42a568653b336f66de7bf608666be9e9b5f40aae9dea0c0a71d3e8003d5610d06fd043edd6adb368095aef365a610099fed796d02f648d408e8f6a672dd6840a42
> ff 30 00 06 ff 01 00 00 00 20 56 58 2e 02 01 57 02 ad 7b 22 74 22 3a 20 22 61 64 6d 69 6e 22 2c 20 22 68 22 3a 20 22 31 64 39 63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64 35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36 30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63 34 66 64 31 36 36 32 61 34 63 61 31 36 22 7d ec fb 1f 0e 1c 2a c2 1d cf ef 05 82 3f 21 2c 92 2b 15 43 c1 ac 35 84 af f4 ca 73 b1 83 d7 fe 31 1f 8b 08 00 bf 8d 5f 61 02 ff a5 54 4d 6f 13 31 10 bd fb 57 8c 94 03 54 6a 76 5b 7a cb 8d 8f 82 90 5a 40 49 0b 87 0a 29 de f5 24 6b e2 d8 8b 3d 9b 6d fe 3d 63 3b 9b 10 95 8f 42 a5 68 65 3b 33 6f 66 de 7b f6 08 66 6b e9 e9 b5 f4 0a ae 9d ea 0c 0a 71 d3 e8 00 3d 56 10 d0 6f d0 43 ed d6 ad b3 68 09 5a ef 36 5a 61 00 99 fe d7 96 d0 2f 64 8d 40 8e 8f 6a 67 2d d6 84 0a 42
< 90 00 : Normal processing.
# write long value: write chunk 1
ff300006ff010000011ac4ac19b3106234821952d70af1d619e37aa006393390ef6ad2ce06dea4b3bbcff7b34e13c2f4f2e59bebcbafcf8ba2e45fde156b7512ab2c91b82d82ae3d159c64c177397b9d9a07a35708c14d8498cfe7a111a3882edb36943960bc6f2d88b5e4d8aad346e52543c5ac48000eb3f7da18a810e4466a232bae20091aa2765296c6d5d2342ed0e4e2ececbcccb3bee7c924e74cf17ba7431c67e616d44b8f434ba996ce613ff7904a33c20d06d27629c400a5b045abd0d69a99dfba0e2ca29a1cc12584b1c24d469156c1113bc498e138251ee5e82f9a1a164f217f7866b9c4e3c8e174dfe1b5ab57ac77720e44eb08f1d1b20bb8b7673ef16879
> ff 30 00 06 ff 01 00 00 01 1a c4 ac 19 b3 10 62 34 82 19 52 d7 0a f1 d6 19 e3 7a a0 06 39 33 90 ef 6a d2 ce 06 de a4 b3 bb cf f7 b3 4e 13 c2 f4 f2 e5 9b eb cb af cf 8b a2 e4 5f de 15 6b 75 12 ab 2c 91 b8 2d 82 ae 3d 15 9c 64 c1 77 39 7b 9d 9a 07 a3 57 08 c1 4d 84 98 cf e7 a1 11 a3 88 2e db 36 94 39 60 bc 6f 2d 88 b5 e4 d8 aa d3 46 e5 25 43 c5 ac 48 00 0e b3 f7 da 18 a8 10 e4 46 6a 23 2b ae 20 09 1a a2 76 52 96 c6 d5 d2 34 2e d0 e4 e2 ec ec bc cc b3 be e7 c9 24 e7 4c f1 7b a7 43 1c 67 e6 16 d4 4b 8f 43 4b a9 96 ce 61 3f f7 90 4a 33 c2 0d 06 d2 76 29 c4 00 a5 b0 45 ab d0 d6 9a 99 df ba 0e 2c a2 9a 1c c1 25 84 b1 c2 4d 46 91 56 c1 11 3b c4 98 e1 38 25 1e e5 e8 2f 9a 1a 16 4f 21 7f 78 66 b9 c4 e3 c8 e1 74 df e1 b5 ab 57 ac 77 72 0e 44 eb 08 f1 d1 b2 0b b8 b7 67 3e f1 68 79
< 90 00 : Normal processing.
# write long value: write chunk 2
ff300006ff0100000214805438d3789adaaea505b49944d68b31a20ee051aac43477b1d0f7d431554a9204b9b706decb756b78fa0ad94105ccbab635db08eac1f58c6a307989a95a68abe3f2149c872e20b073855bec6074a216eee6bb42a19cb3cfca617792341cc16d88517f823ff88b5dbfd04bcece1348b5e6a6e360a228e390919f691ab168b7c3fce3718e2b5b494d49ae1c4a14df02838fc0b1e4d0f2850919362ea1777e15efe35fc163f42ef8b715368e762dc7d5635073dcaf0163518fb5b635c1f98b0bde566c5d47e3405b4e3e9f0ee619c81d2817e2964592763b9c40c4cf3e8f97b980f41c85c6f581f51c7cc54ac8ced01e66f2644186f27b67a4c427
> ff 30 00 06 ff 01 00 00 02 14 80 54 38 d3 78 9a da ae a5 05 b4 99 44 d6 8b 31 a2 0e e0 51 aa c4 34 77 b1 d0 f7 d4 31 55 4a 92 04 b9 b7 06 de cb 75 6b 78 fa 0a d9 41 05 cc ba b6 35 db 08 ea c1 f5 8c 6a 30 79 89 a9 5a 68 ab e3 f2 14 9c 87 2e 20 b0 73 85 5b ec 60 74 a2 16 ee e6 bb 42 a1 9c b3 cf ca 61 77 92 34 1c c1 6d 88 51 7f 82 3f f8 8b 5d bf d0 4b ce ce 13 48 b5 e6 a6 e3 60 a2 28 e3 90 91 9f 69 1a b1 68 b7 c3 fc e3 71 8e 2b 5b 49 4d 49 ae 1c 4a 14 df 02 83 8f c0 b1 e4 d0 f2 85 09 19 36 2e a1 77 7e 15 ef e3 5f c1 63 f4 2e f8 b7 15 36 8e 76 2d c7 d5 63 50 73 dc af 01 63 51 8f b5 b6 35 c1 f9 8b 0b de 56 6c 5d 47 e3 40 5b 4e 3e 9f 0e e6 19 c8 1d 28 17 e2 96 45 92 76 3b 9c 40 c4 cf 3e 8f 97 b9 80 f4 1c 85 c6 f5 81 f5 1c 7c c5 4a c8 ce d0 1e 66 f2 64 41 86 f2 7b 67 a4 c4 27
< 90 00 : Normal processing.
# write long value: write chunk 3
ff30000643010000030e4bf100f6a0cd7f89f0002f251ed87d65a45ded2e6566e4dfe0aa987f80fbe01e8f65dd38f53f3c1357ba461bf8dd7bf7e96a73217e001ec030006b060000
> ff 30 00 06 43 01 00 00 03 0e 4b f1 00 f6 a0 cd 7f 89 f0 00 2f 25 1e d8 7d 65 a4 5d ed 2e 65 66 e4 df e0 aa 98 7f 80 fb e0 1e 8f 65 dd 38 f5 3f 3c 13 57 ba 46 1b f8 dd 7b f7 e9 6a 73 21 7e 00 1e c0 30 00 6b 06 00 00
< 90 00 : Normal processing.
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
> ff 30 00 05 09 01 00 00 00 20 00 00 00 fa
< FF FF 2E 02 01 57 02 AD 7B 22 74 22 3A 20 22 61
64 6D 69 6E 22 2C 20 22 68 22 3A 20 22 31 64 39
63 36 38 36 63 31 32 35 31 36 66 34 39 66 32 64
35 36 38 37 62 62 31 39 63 34 37 65 38 31 31 36
30 38 36 62 38 36 35 31 62 64 63 33 33 34 33 63
34 66 64 31 36 36 32 61 34 63 61 31 36 22 7D EC
FB 1F 0E 1C 2A C2 1D CF EF 05 82 3F 21 2C 92 2B
15 43 C1 AC 35 84 AF F4 CA 73 B1 83 D7 FE 31 1F
8B 08 00 BF 8D 5F 61 02 FF A5 54 4D 6F 13 31 10
BD FB 57 8C 94 03 54 6A 76 5B 7A CB 8D 8F 82 90
5A 40 49 0B 87 0A 29 DE F5 24 6B E2 D8 8B 3D 9B
6D FE 3D 63 3B 9B 10 95 8F 42 A5 68 65 3B 33 6F
66 DE 7B F6 08 66 6B E9 E9 B5 F4 0A AE 9D EA 0C
0A 71 D3 E8 00 3D 56 10 D0 6F D0 43 ED D6 AD B3
68 09 5A EF 36 5A 61 00 99 FE D7 96 D0 2F 64 8D
40 8E 8F 6A 67 2D D6 84 0A 42 90 00 : Normal processing.
reset
# init
# header
FF 30 00 04 \
# 1 + len(CARD_IDENTITY)
08 \
# VERSION?
01 \
# CARD_IDENTITY
18 40 02 00 00 80 00
# read chunk 0
ff300005090100000020000000fa
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
# write long value: write chunk 0
ff300006ff010000002056582e02015702ad7b2274223a202261646d696e222c202268223a202231643963363836633132353136663439663264353638376262313963343765383131363038366238363531626463333334336334666431363632613463613136227decfb1f0e1c2ac21dcfef05823f212c922b1543c1ac3584aff4ca73b183d7fe311f8b0800bf8d5f6102ffa5544d6f133110bdfb578c9403546a765b7acb8d8f82905a40490b870a29def5246be2d88b3d9b6dfe3d633b9b10958f42a568653b336f66de7bf608666be9e9b5f40aae9dea0c0a71d3e8003d5610d06fd043edd6adb368095aef365a610099fed796d02f648d408e8f6a672dd6840a42
# write long value: write chunk 1
ff300006ff010000011ac4ac19b3106234821952d70af1d619e37aa006393390ef6ad2ce06dea4b3bbcff7b34e13c2f4f2e59bebcbafcf8ba2e45fde156b7512ab2c91b82d82ae3d159c64c177397b9d9a07a35708c14d8498cfe7a111a3882edb36943960bc6f2d88b5e4d8aad346e52543c5ac48000eb3f7da18a810e4466a232bae20091aa2765296c6d5d2342ed0e4e2ececbcccb3bee7c924e74cf17ba7431c67e616d44b8f434ba996ce613ff7904a33c20d06d27629c400a5b045abd0d69a99dfba0e2ca29a1cc12584b1c24d469156c1113bc498e138251ee5e82f9a1a164f217f7866b9c4e3c8e174dfe1b5ab57ac77720e44eb08f1d1b20bb8b7673ef16879
# write long value: write chunk 2
ff300006ff0100000214805438d3789adaaea505b49944d68b31a20ee051aac43477b1d0f7d431554a9204b9b706decb756b78fa0ad94105ccbab635db08eac1f58c6a307989a95a68abe3f2149c872e20b073855bec6074a216eee6bb42a19cb3cfca617792341cc16d88517f823ff88b5dbfd04bcece1348b5e6a6e360a228e390919f691ab168b7c3fce3718e2b5b494d49ae1c4a14df02838fc0b1e4d0f2850919362ea1777e15efe35fc163f42ef8b715368e762dc7d5635073dcaf0163518fb5b635c1f98b0bde566c5d47e3405b4e3e9f0ee619c81d2817e2964592763b9c40c4cf3e8f97b980f41c85c6f581f51c7cc54ac8ced01e66f2644186f27b67a4c427
# write long value: write chunk 3
ff30000643010000030e4bf100f6a0cd7f89f0002f251ed87d65a45ded2e6566e4dfe0aa987f80fbe01e8f65dd38f53f3c1357ba461bf8dd7bf7e96a73217e001ec030006b060000
# read metadata + short value: read chunk 0
ff300005090100000020000000fa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment