290 likes | 298 Views
Digital Signatures, Font Files, and Recursion. Illustrated Examples. Original signed file. 0. 1. 2. 3. 4. 5. 6. 7. red nodes indicate hash values in the signed file. Subsetted signed file. 0. 1. 2. 3. 4. 5. 6. 7. subsetted file contains glyphs 0, 1, and 2.
E N D
Digital Signatures, Font Files, and Recursion Illustrated Examples
Original signed file 0 1 2 3 4 5 6 7 red nodes indicate hash values in the signed file
Subsetted signed file 0 1 2 3 4 5 6 7 subsetted file contains glyphs 0, 1, and 2
Further subsetted file 0 1 2 3 4 5 6 7 further subsetted file contains just glyph 1
Illustration of subsetting glyphs 0, 1, and 2 0 1 2 3 4 5 6 7 black highlighted nodes indicate the current recursive call return h(0, 0). do not emit. red: smallest glyph in file not processed yet blue: smallest glyph in output file not processed yet
Illustration (slide 2) 0 1 2 3 4 5 6 7 return h(1, 1). do not emit.
Illustration (slide 3) 0 1 2 3 4 5 6 7 return h(0, 1). do not emit.
Illustration (slide 4) 0 1 2 3 4 5 6 7 return h(2, 2). do not emit.
Illustration (slide 5) 0 1 2 3 4 5 6 7 return h(3, 3). emit h(3, 3).
Illustration (slide 6) 0 1 2 3 4 5 6 7 return h(2, 3). do not emit.
Illustration (slide 7) 0 1 2 3 4 5 6 7 return h(0, 3). do not emit.
Illustration (slide 8) 0 1 2 3 4 5 6 7 return h(4, 4). do not emit.
Illustration (slide 9) 0 1 2 3 4 5 6 7 return h(5, 5). do not emit.
Illustration (slide 10) 0 1 2 3 4 5 6 7 return h(4, 5). do not emit.
Illustration (slide 11) 0 1 2 3 4 5 6 7 return h(6, 6). do not emit.
Illustration (slide 12) 0 1 2 3 4 5 6 7 return h(7, 7). do not emit.
Illustration (slide 13) 0 1 2 3 4 5 6 7 return h(6, 7). do not emit.
Illustration (slide 14) 0 1 2 3 4 5 6 7 return h(4, 7). emit h(4, 7).
Illustration (slide 15) 0 1 2 3 4 5 6 7 copy h(0, 7) from original file to output file.
Subsetting • Important: Note that the decisions to emit a hash value to the output file and whether to make recursive calls depend on the position of the red and blue arrows at the time the recursive call is made.
Illustration of further subsetting to just glyph 1 0 1 2 3 4 5 6 7 Input file has glyphs 0, 1, 2, and hash values h(3, 3) and h(4, 7). Output file has just glyph 1. return h(0, 0). emit h(0, 0).
Illustration (slide 2) 0 1 2 3 4 5 6 7 return h(1, 1). do not emit.
Illustration (slide 3) 0 1 2 3 4 5 6 7 return h(0, 1). do not emit.
Illustration (slide 4) 0 1 2 3 4 5 6 7 return h(2, 2). do not emit.
Illustration (slide 5) 0 1 2 3 4 5 6 7 return h(3, 3). do not emit.
Illustration (slide 6) 0 1 2 3 4 5 6 7 return h(2, 3). emit h(2, 3).
Illustration (slide 7) 0 1 2 3 4 5 6 7 return h(0, 3). do not emit.
Illustration (slide 8) 0 1 2 3 4 5 6 7 return h(4, 7), which is in the original file. emit h(4, 7).
Illustration (slide 9) 0 1 2 3 4 5 6 7 copy h(0, 7) from original file to output file.