Fail to parse the generated CAI data
bafu opened this issue · comments
Bofu Chen commented
Steps to Reproduce
- Create CAI data by entering these answers
$ python3 cai_tool.py | tee starling-cai-rollback.txt
How many assertions? 4
Assertion JSON: data/Assertions/starling.device.json
Assertion Label: starling.device
Assertion JSON: data/Assertions/starling.integrity.json
Assertion Label: starling.integrity
Assertion JSON: data/Assertions/starling.location.precise.json
Assertion Label: starling.location.precise
Assertion JSON: data/Assertions/starling.sensors.json
Assertion Label: starling.sensors
Claim JSON: data/Claim/starling.claim.json
Store label: cb.starling_1
-
Insert the CAI data into dog.jpg after the leading bytes
FFD8
- CAI data: starling-cai-rollback.txt
- Raw image: dog.jpg
- Injected image: dog-rollback
-
Run CAI parser
You will get the error *** box unknown box has invalid box length
Environment
- starling-cai: commit
dfe61a3
(cai-tool
) - codestream-parser: commit
7fb6d4b
(feature-support-py3
)
ethanwu155 commented
Fix: cee4cdc
Error in assertion super_block (see line 259 - 263) in def create_assertions(list, label)
. Was inputting in the same super_block for every assertion.
Result for Image: DSCN0010.jpg
(base) MacintoshUsers-MacBook-2:codestream-parser macuser$ python jp2file.py DSCN0010.jpg
###############################################################
# JP2 file format log file generated by jp2file.py #
###############################################################
0 : New marker: SOI (Start of image)
2 : New marker: APP11 (JPEG XT Extension Marker)
0 : Sub Box: "jumb" JUMBF Box
8 : Sub Box: "jumd" JUMBF Description box
TYPE: 63 61 63 62 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: cai
No ID
No Signature
37 : Sub Box: "jumb" JUMBF Box
45 : Sub Box: "jumd" JUMBF Description box
TYPE: 63 61 73 74 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: cb.starling_1
No ID
No Signature
84 : Sub Box: "jumb" JUMBF Box
92 : Sub Box: "jumd" JUMBF Description box
TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: cai.assertions
No ID
No Signature
132 : Sub Box: "jumb" JUMBF Box
140 : Sub Box: "jumd" JUMBF Description box
TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: starling.location.precise
No ID
No Signature
191 : Sub Box: "json" JSON box
Data:
{"starling:GPSAccuracy": "11.792", "starling:GPSAltitude": -4.617279053, "starling:GPSBaring": 212.94905, "starling:GPSBearingAccuracy": 0.0, "starling:GPSLatitude": "25,2,42.842N", "starling:GPSLongitude": "121,31,50.861E", "starling:GPSSpeed": 0.20248456, "starling:GPSSpeedAccuracy": 0.20248456, "starling:GPSTime": 1583266055000, "starling:GPSTimeStamp": "2020-03-03T20:07:35Z", "starling:GPSVerticalAccuracy": 8.0}
618 : Sub Box: "jumb" JUMBF Box
626 : Sub Box: "jumd" JUMBF Description box
TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: starling.sensors
No ID
No Signature
668 : Sub Box: "json" JSON box
Data:
{"starling:SensorAccelerometer": "SensorData(accuracy=3.0, value=[-2.2584498, 5.544669, 7.7695217])", "starling:SensorAccelerometerUncalibrated": "SensorData(accuracy=3.0, value=[-1.820267, 5.5468745, 7.781287, 0.0, 0.0, 0.0])", "starling:SensorGameRotationVector": "SensorData(accuracy=3.0, value=[0.28894028, 0.089926116, -0.077565834, 0.94995135])", "starling:SensorGeomagneticRotationVector": "SensorData(accuracy=3.0, value=[0.13018766, 0.28469607, 0.67535406, 0.66776913, 0.0])", "starling:SensorGravity": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[-2.1173487, 5.2436786, 8.011802])", "starling:SensorGyroscope": "SensorData(accuracy=3.0, value=[0.0090546375, 0.0026631376, 0.011718297])", "starling:SensorGyroscopeUncalibrated": "SensorData(accuracy=3.0, value=[-0.007457021, 0.004261021, -0.0069242665, 0.0, 0.0, 0.0])", "starling:SensorLight": "SensorData(accuracy=3.0, value=[477.0, 0.0, 0.0])", "starling:SensorLinearAcceleration": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[0.19492735, 0.059680037, 0.20064202])", "starling:SensorMagneticField": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[106.72393, -18.183104, -12.878148])", "starling:SensorMagneticFieldUncalibrated": "SensorData(accuracy=3.0, value=[105.09807, 27.845383, -12.322319, 9.477424E-38, 46.511898, 0.20629947])", "starling:SensorRotationVector": "SensorData(accuracy=3.0, value=[0.14844818, 0.26368022, 0.59541535, 0.7442592, 0.0])"}
2137 : Sub Box: "jumb" JUMBF Box
2145 : Sub Box: "jumd" JUMBF Description box
TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: starling.device
No ID
No Signature
2186 : Sub Box: "json" JSON box
Data:
{"android:AndroidIdHash": "8b46aab82c3867c7bda32682b1534178d7fce95dce749aa20ccc7d83708ddb7a", "android:BuildId": "PQ2A.190205.003 release-keys", "android:BuildTags": "release-keys", "android:BuildTime": 1583266055000, "android:BuildTimestamp": "2020-04-12T04:33:00Z", "android:BuildType": "user", "android:DeviceBoard": "sdm845", "android:DeviceBrand": "htc", "android:DeviceName": "htc_exodugl", "android:EndProductName": "EXODUS 1", "android:Fingerprint": "htc/exodugl_00709/htc_exodugl:9/PQ2A.190205.003/1109191.2:user/release-keys", "android:Hardware": "htc_exo", "android:Manufacturer": "HTC", "android:OverallProductName": "exodugl_00709"}
2839 : Sub Box: "jumb" JUMBF Box
2847 : Sub Box: "jumd" JUMBF Description box
TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: starling.integrity
No ID
No Signature
2891 : Sub Box: "json" JSON box
Data:
{"starling:PublicKey": "-----BEGIN PGP PUBLIC KEY BLOCK-----Version: BCPG v@RELEASE_NAME@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YeTD-----END PGP PUBLIC KEY BLOCK-----", "starling:MediaHash": "ba51b0f154bb75d3e5f557569e4612b2e1e04c556e5beaf27bfcde040412de52", "starilng:MediaKey": "ba51b0f154_1583258659459"}
6092 : Sub Box: "jumb" JUMBF Box
6100 : Sub Box: "jumd" JUMBF Description box
TYPE: 63 61 63 6c 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: cai.claim
No ID
No Signature
6135 : Sub Box: "json" JSON box
Data:
{"recorder": "Starling Capture", "signature": "self#jumbf=cai/cb.starling_1/cai.signature", "assertions": ["self#jumbf=cai/cb.starling_1/cai.assertions/starling.location.precise?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMoBUAVbTEB7K", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.sensors?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMvY4QFEN3973", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.device?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMwEoBojZcUrZ", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.integrity?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMo3SG72sZg13"], "asset_hashes": [{"start": "0x0000000000000000", "length": "0x0000000000009959", "name": "JFIF SOI-APP0", "url": "", "value": "EiAuxjtmax46cC2N3Y9aFmBO9Jfay8LEwJWzBUtZ0sUM8gA="}, {"start": "0x0000000000009959", "length": "0x000000000000027d", "name": "JFIF APP1/XMP", "url": "", "value": "EiDjZifCgG2iKxcYeChKTOcWlJ9I/UC9/c5XFiJREqJFpwA="}, {"start": "0x000000000000a90c", "length": "0x00000000000215e6", "name": "JFIF DQT-EOI", "url": "", "value": "EiArx031oA0N5KOEG6n9R/bJJFYJvmGlDoLtuwbRipLTKAA="}]}
7331 : Sub Box: "jumb" JUMBF Box
7339 : Sub Box: "jumd" JUMBF Description box
TYPE: 63 61 73 67 00 11 00 10 80 00 00 aa 00 38 9b 71
TOGGLES: 0b11
LABEL: cai.signature
No ID
No Signature
7378 : Sub Box: "uuid" UUID box
UUID : 63 61 73 67 00 11 00 10 80 00 00 aa 00 38 9b 71
UUID Data :
73 69 67 6e 61 74 75 72 65 20 70 6c 61 63 65 68 signature placeh
6f 6c 64 65 72 3a 63 62 2e 73 74 61 72 6c 69 6e older:cb.starlin
67 5f 31 20 20 20 20 20 20 20 20 20 20 20 20 20 g_1
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20
7517 : New marker: APP1 (Application marker #1)
18777 : New marker: DQT (Define quantization table)
Entry size : byte
Table destination : 0
Quantization Matrix :
5 4 3 5 8 13 16 20
4 4 4 6 8 19 19 18
4 4 5 8 13 18 22 18
4 5 7 9 16 28 26 20
6 7 12 18 22 35 33 25
8 11 18 20 26 33 36 29
16 20 25 28 33 39 38 32
23 29 30 31 36 32 33 32
Entry size : byte
Table destination : 1
Quantization Matrix :
5 6 8 15 32 32 32 32
6 7 8 21 32 32 32 32
8 8 18 32 32 32 32 32
15 21 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
Entry size : byte
Table destination : 2
Quantization Matrix :
5 6 8 15 32 32 32 32
6 7 8 21 32 32 32 32
8 8 18 32 32 32 32 32
15 21 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
18976 : New marker: DHT (Define huffman table)
Huffman table class : dc
Huffman table destination : 0
1 symbols of size 2 : [0]
5 symbols of size 3 : [1, 2, 3, 4, 5]
1 symbols of size 4 : [6]
1 symbols of size 5 : [7]
1 symbols of size 6 : [8]
1 symbols of size 7 : [9]
1 symbols of size 8 : [10]
1 symbols of size 9 : [11]
Huffman table class : ac
Huffman table destination : 0
2 symbols of size 2 : [1, 2]
1 symbols of size 3 : [3]
3 symbols of size 4 : [0, 4, 17]
3 symbols of size 5 : [5, 18, 33]
2 symbols of size 6 : [49, 65]
4 symbols of size 7 : [6, 19, 81, 97]
3 symbols of size 8 : [7, 34, 113]
5 symbols of size 9 : [20, 50, 129, 145, 161]
5 symbols of size 10 : [8, 35, 66, 177, 193]
4 symbols of size 11 : [21, 82, 209, 240]
4 symbols of size 12 : [36, 51, 98, 114]
1 symbols of size 15 : [130]
125 symbols of size 16 : [9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250]
Huffman table class : dc
Huffman table destination : 1
3 symbols of size 2 : [0, 1, 2]
1 symbols of size 3 : [3]
1 symbols of size 4 : [4]
1 symbols of size 5 : [5]
1 symbols of size 6 : [6]
1 symbols of size 7 : [7]
1 symbols of size 8 : [8]
1 symbols of size 9 : [9]
1 symbols of size 10 : [10]
1 symbols of size 11 : [11]
Huffman table class : ac
Huffman table destination : 1
2 symbols of size 2 : [0, 1]
1 symbols of size 3 : [2]
2 symbols of size 4 : [3, 17]
4 symbols of size 5 : [4, 5, 33, 49]
4 symbols of size 6 : [6, 18, 65, 81]
3 symbols of size 7 : [7, 97, 113]
4 symbols of size 8 : [19, 34, 50, 129]
7 symbols of size 9 : [8, 20, 66, 145, 161, 177, 193]
5 symbols of size 10 : [9, 35, 51, 82, 240]
4 symbols of size 11 : [21, 98, 114, 209]
4 symbols of size 12 : [10, 22, 36, 52]
1 symbols of size 14 : [225]
2 symbols of size 15 : [37, 241]
119 symbols of size 16 : [23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250]
19396 : New marker: SOF (Start of frame, type: baseline)
Frame bit precision : 8
Frame width : 640
Frame height : 480
Depth : 3
Component Id : 1
MCU Width : 1
MCU Height : 2
Quantization Table : 0
Component Id : 2
MCU Width : 1
MCU Height : 1
Quantization Table : 1
Component Id : 3
MCU Width : 1
MCU Height : 1
Quantization Table : 1
19415 : New marker: APP1 (Application marker #1)
23448 : New marker: SOS (Start of Scan)
Number of Components : 3
Component 0 : 1
DC table 0 : 0
AC table 0 : 0
Component 1 : 2
DC table 1 : 1
AC table 1 : 1
Component 2 : 3
DC table 2 : 1
AC table 2 : 1
Scan start : 0
Scan stop : 63
Shift high : 0
Shift low : 0
145764 bytes of entropy coded data
169226 : New marker: EOI (End of image)
Checksum : 0xf9ec
Size : 169230 bytes
Data Size : 145766 bytes
Overhead : 23464 bytes (13%)