| ofs | hex dump | ascii |
|---|
| 0000 | 62 30 56 49 4d 20 38 2e 30 00 00 00 00 10 00 00 44 cb 83 58 3f 12 24 00 46 28 00 00 62 65 6e 65 | b0VIM.8.0.......D..X?.$.F(..bene |
| 0020 | 64 69 63 74 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 00 | dict............................ |
| 0040 | 00 00 00 00 73 75 70 65 72 2d 64 75 70 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....super-duper................. |
| 0060 | 00 00 00 00 00 00 00 00 00 00 00 00 7e 62 65 6e 65 64 69 63 74 2f 6d 61 74 61 6e 73 6f 5f 63 68 | ............~benedict/matanso_ch |
| 0080 | 61 6c 6c 61 6e 67 65 2f 6d 79 2f 6c 69 62 2f 6c 69 62 36 2e 63 00 00 00 00 00 00 00 00 00 00 00 | allange/my/lib/lib6.c........... |
| 00a0 | 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 00 00 00 00 00 | ................................ |
| 00c0 | 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 00 00 00 00 00 | ................................ |
| 00e0 | 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 00 00 00 00 00 | ................................ |
| 0100 | 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 00 00 00 00 00 | ................................ |
| 0120 | 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 00 00 00 00 00 | ................................ |
| 0140 | 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 00 00 00 00 00 | ................................ |
| 0160 | 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 00 00 00 00 00 | ................................ |
| 0180 | 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 00 00 00 00 00 | ................................ |
| 01a0 | 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 00 00 00 00 00 | ................................ |
| 01c0 | 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 00 00 00 00 00 | ................................ |
| 01e0 | 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 00 00 00 00 00 | ................................ |
| 0200 | 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 00 00 00 00 00 | ................................ |
| 0220 | 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 00 00 00 00 00 | ................................ |
| 0240 | 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 00 00 00 00 00 | ................................ |
| 0260 | 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 00 00 00 00 00 | ................................ |
| 0280 | 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 00 00 00 00 00 | ................................ |
| 02a0 | 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 00 00 00 00 00 | ................................ |
| 02c0 | 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 00 00 00 00 00 | ................................ |
| 02e0 | 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 00 00 00 00 00 | ................................ |
| 0300 | 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 00 00 00 00 00 | ................................ |
| 0320 | 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 00 00 00 00 00 | ................................ |
| 0340 | 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 00 00 00 00 00 | ................................ |
| 0360 | 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 00 00 00 00 00 | ................................ |
| 0380 | 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 00 00 00 00 00 | ................................ |
| 03a0 | 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 00 00 00 00 00 | ................................ |
| 03c0 | 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 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 55 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 | .........utf-8.U3210....#"!...U. |
| 0400 | 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 00 00 00 00 00 | ................................ |
| 0420 | 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 00 00 00 00 00 | ................................ |
| 0440 | 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 00 00 00 00 00 | ................................ |
| 0460 | 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 00 00 00 00 00 | ................................ |
| 0480 | 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 00 00 00 00 00 | ................................ |
| 04a0 | 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 00 00 00 00 00 | ................................ |
| 04c0 | 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 00 00 00 00 00 | ................................ |
| 04e0 | 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 00 00 00 00 00 | ................................ |
| 0500 | 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 00 00 00 00 00 | ................................ |
| 0520 | 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 00 00 00 00 00 | ................................ |
| 0540 | 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 00 00 00 00 00 | ................................ |
| 0560 | 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 00 00 00 00 00 | ................................ |
| 0580 | 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 00 00 00 00 00 | ................................ |
| 05a0 | 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 00 00 00 00 00 | ................................ |
| 05c0 | 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 00 00 00 00 00 | ................................ |
| 05e0 | 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 00 00 00 00 00 | ................................ |
| 0600 | 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 00 00 00 00 00 | ................................ |
| 0620 | 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 00 00 00 00 00 | ................................ |
| 0640 | 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 00 00 00 00 00 | ................................ |
| 0660 | 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 00 00 00 00 00 | ................................ |
| 0680 | 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 00 00 00 00 00 | ................................ |
| 06a0 | 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 00 00 00 00 00 | ................................ |
| 06c0 | 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 00 00 00 00 00 | ................................ |
| 06e0 | 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 00 00 00 00 00 | ................................ |
| 0700 | 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 00 00 00 00 00 | ................................ |
| 0720 | 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 00 00 00 00 00 | ................................ |
| 0740 | 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 00 00 00 00 00 | ................................ |
| 0760 | 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 00 00 00 00 00 | ................................ |
| 0780 | 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 00 00 00 00 00 | ................................ |
| 07a0 | 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 00 00 00 00 00 | ................................ |
| 07c0 | 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 00 00 00 00 00 | ................................ |
| 07e0 | 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 00 00 00 00 00 | ................................ |
| 0800 | 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 00 00 00 00 00 | ................................ |
| 0820 | 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 00 00 00 00 00 | ................................ |
| 0840 | 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 00 00 00 00 00 | ................................ |
| 0860 | 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 00 00 00 00 00 | ................................ |
| 0880 | 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 00 00 00 00 00 | ................................ |
| 08a0 | 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 00 00 00 00 00 | ................................ |
| 08c0 | 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 00 00 00 00 00 | ................................ |
| 08e0 | 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 00 00 00 00 00 | ................................ |
| 0900 | 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 00 00 00 00 00 | ................................ |
| 0920 | 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 00 00 00 00 00 | ................................ |
| 0940 | 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 00 00 00 00 00 | ................................ |
| 0960 | 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 00 00 00 00 00 | ................................ |
| 0980 | 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 00 00 00 00 00 | ................................ |
| 09a0 | 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 00 00 00 00 00 | ................................ |
| 09c0 | 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 00 00 00 00 00 | ................................ |
| 09e0 | 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 00 00 00 00 00 | ................................ |
| 0a00 | 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 00 00 00 00 00 | ................................ |
| 0a20 | 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 00 00 00 00 00 | ................................ |
| 0a40 | 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 00 00 00 00 00 | ................................ |
| 0a60 | 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 00 00 00 00 00 | ................................ |
| 0a80 | 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 00 00 00 00 00 | ................................ |
| 0aa0 | 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 00 00 00 00 00 | ................................ |
| 0ac0 | 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 00 00 00 00 00 | ................................ |
| 0ae0 | 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 00 00 00 00 00 | ................................ |
| 0b00 | 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 00 00 00 00 00 | ................................ |
| 0b20 | 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 00 00 00 00 00 | ................................ |
| 0b40 | 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 00 00 00 00 00 | ................................ |
| 0b60 | 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 00 00 00 00 00 | ................................ |
| 0b80 | 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 00 00 00 00 00 | ................................ |
| 0ba0 | 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 00 00 00 00 00 | ................................ |
| 0bc0 | 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 00 00 00 00 00 | ................................ |
| 0be0 | 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 00 00 00 00 00 | ................................ |
| 0c00 | 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 00 00 00 00 00 | ................................ |
| 0c20 | 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 00 00 00 00 00 | ................................ |
| 0c40 | 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 00 00 00 00 00 | ................................ |
| 0c60 | 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 00 00 00 00 00 | ................................ |
| 0c80 | 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 00 00 00 00 00 | ................................ |
| 0ca0 | 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 00 00 00 00 00 | ................................ |
| 0cc0 | 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 00 00 00 00 00 | ................................ |
| 0ce0 | 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 00 00 00 00 00 | ................................ |
| 0d00 | 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 00 00 00 00 00 | ................................ |
| 0d20 | 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 00 00 00 00 00 | ................................ |
| 0d40 | 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 00 00 00 00 00 | ................................ |
| 0d60 | 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 00 00 00 00 00 | ................................ |
| 0d80 | 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 00 00 00 00 00 | ................................ |
| 0da0 | 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 00 00 00 00 00 | ................................ |
| 0dc0 | 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 00 00 00 00 00 | ................................ |
| 0de0 | 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 00 00 00 00 00 | ................................ |
| 0e00 | 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 00 00 00 00 00 | ................................ |
| 0e20 | 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 00 00 00 00 00 | ................................ |
| 0e40 | 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 00 00 00 00 00 | ................................ |
| 0e60 | 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 00 00 00 00 00 | ................................ |
| 0e80 | 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 00 00 00 00 00 | ................................ |
| 0ea0 | 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 00 00 00 00 00 | ................................ |
| 0ec0 | 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 00 00 00 00 00 | ................................ |
| 0ee0 | 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 00 00 00 00 00 | ................................ |
| 0f00 | 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 00 00 00 00 00 | ................................ |
| 0f20 | 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 00 00 00 00 00 | ................................ |
| 0f40 | 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 00 00 00 00 00 | ................................ |
| 0f60 | 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 00 00 00 00 00 | ................................ |
| 0f80 | 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 00 00 00 00 00 | ................................ |
| 0fa0 | 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 00 00 00 00 00 | ................................ |
| 0fc0 | 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 00 00 00 00 00 | ................................ |
| 0fe0 | 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 00 00 00 00 00 | ................................ |
| 1000 | 74 70 04 00 7f 00 00 00 02 00 00 00 00 00 00 00 8c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 | tp.............................. |
| 1020 | 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 8c 00 00 00 00 00 00 00 | ................................ |
| 1040 | 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 86 00 00 00 00 00 00 00 0e 01 00 00 00 00 00 00 | ................................ |
| 1060 | 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 97 01 00 00 00 00 00 00 | ................)............... |
| 1080 | 01 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 00 00 00 00 | ................................ |
| 10a0 | 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 00 00 00 00 00 | ................................ |
| 10c0 | 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 00 00 00 00 00 | ................................ |
| 10e0 | 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 00 00 00 00 00 | ................................ |
| 1100 | 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 00 00 00 00 00 | ................................ |
| 1120 | 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 00 00 00 00 00 | ................................ |
| 1140 | 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 00 00 00 00 00 | ................................ |
| 1160 | 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 00 00 00 00 00 | ................................ |
| 1180 | 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 00 00 00 00 00 | ................................ |
| 11a0 | 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 00 00 00 00 00 | ................................ |
| 11c0 | 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 00 00 00 00 00 | ................................ |
| 11e0 | 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 00 00 00 00 00 | ................................ |
| 1200 | 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 00 00 00 00 00 | ................................ |
| 1220 | 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 00 00 00 00 00 | ................................ |
| 1240 | 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 00 00 00 00 00 | ................................ |
| 1260 | 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 00 00 00 00 00 | ................................ |
| 1280 | 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 00 00 00 00 00 | ................................ |
| 12a0 | 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 00 00 00 00 00 | ................................ |
| 12c0 | 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 00 00 00 00 00 | ................................ |
| 12e0 | 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 00 00 00 00 00 | ................................ |
| 1300 | 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 00 00 00 00 00 | ................................ |
| 1320 | 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 00 00 00 00 00 | ................................ |
| 1340 | 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 00 00 00 00 00 | ................................ |
| 1360 | 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 00 00 00 00 00 | ................................ |
| 1380 | 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 00 00 00 00 00 | ................................ |
| 13a0 | 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 00 00 00 00 00 | ................................ |
| 13c0 | 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 00 00 00 00 00 | ................................ |
| 13e0 | 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 00 00 00 00 00 | ................................ |
| 1400 | 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 00 00 00 00 00 | ................................ |
| 1420 | 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 00 00 00 00 00 | ................................ |
| 1440 | 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 00 00 00 00 00 | ................................ |
| 1460 | 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 00 00 00 00 00 | ................................ |
| 1480 | 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 00 00 00 00 00 | ................................ |
| 14a0 | 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 00 00 00 00 00 | ................................ |
| 14c0 | 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 00 00 00 00 00 | ................................ |
| 14e0 | 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 00 00 00 00 00 | ................................ |
| 1500 | 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 00 00 00 00 00 | ................................ |
| 1520 | 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 00 00 00 00 00 | ................................ |
| 1540 | 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 00 00 00 00 00 | ................................ |
| 1560 | 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 00 00 00 00 00 | ................................ |
| 1580 | 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 00 00 00 00 00 | ................................ |
| 15a0 | 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 00 00 00 00 00 | ................................ |
| 15c0 | 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 00 00 00 00 00 | ................................ |
| 15e0 | 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 00 00 00 00 00 | ................................ |
| 1600 | 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 00 00 00 00 00 | ................................ |
| 1620 | 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 00 00 00 00 00 | ................................ |
| 1640 | 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 00 00 00 00 00 | ................................ |
| 1660 | 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 00 00 00 00 00 | ................................ |
| 1680 | 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 00 00 00 00 00 | ................................ |
| 16a0 | 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 00 00 00 00 00 | ................................ |
| 16c0 | 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 00 00 00 00 00 | ................................ |
| 16e0 | 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 00 00 00 00 00 | ................................ |
| 1700 | 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 00 00 00 00 00 | ................................ |
| 1720 | 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 00 00 00 00 00 | ................................ |
| 1740 | 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 00 00 00 00 00 | ................................ |
| 1760 | 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 00 00 00 00 00 | ................................ |
| 1780 | 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 00 00 00 00 00 | ................................ |
| 17a0 | 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 00 00 00 00 00 | ................................ |
| 17c0 | 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 00 00 00 00 00 | ................................ |
| 17e0 | 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 00 00 00 00 00 | ................................ |
| 1800 | 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 00 00 00 00 00 | ................................ |
| 1820 | 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 00 00 00 00 00 | ................................ |
| 1840 | 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 00 00 00 00 00 | ................................ |
| 1860 | 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 00 00 00 00 00 | ................................ |
| 1880 | 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 00 00 00 00 00 | ................................ |
| 18a0 | 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 00 00 00 00 00 | ................................ |
| 18c0 | 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 00 00 00 00 00 | ................................ |
| 18e0 | 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 00 00 00 00 00 | ................................ |
| 1900 | 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 00 00 00 00 00 | ................................ |
| 1920 | 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 00 00 00 00 00 | ................................ |
| 1940 | 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 00 00 00 00 00 | ................................ |
| 1960 | 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 00 00 00 00 00 | ................................ |
| 1980 | 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 00 00 00 00 00 | ................................ |
| 19a0 | 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 00 00 00 00 00 | ................................ |
| 19c0 | 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 00 00 00 00 00 | ................................ |
| 19e0 | 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 00 00 00 00 00 | ................................ |
| 1a00 | 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 00 00 00 00 00 | ................................ |
| 1a20 | 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 00 00 00 00 00 | ................................ |
| 1a40 | 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 00 00 00 00 00 | ................................ |
| 1a60 | 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 00 00 00 00 00 | ................................ |
| 1a80 | 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 00 00 00 00 00 | ................................ |
| 1aa0 | 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 00 00 00 00 00 | ................................ |
| 1ac0 | 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 00 00 00 00 00 | ................................ |
| 1ae0 | 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 00 00 00 00 00 | ................................ |
| 1b00 | 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 00 00 00 00 00 | ................................ |
| 1b20 | 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 00 00 00 00 00 | ................................ |
| 1b40 | 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 00 00 00 00 00 | ................................ |
| 1b60 | 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 00 00 00 00 00 | ................................ |
| 1b80 | 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 00 00 00 00 00 | ................................ |
| 1ba0 | 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 00 00 00 00 00 | ................................ |
| 1bc0 | 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 00 00 00 00 00 | ................................ |
| 1be0 | 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 00 00 00 00 00 | ................................ |
| 1c00 | 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 00 00 00 00 00 | ................................ |
| 1c20 | 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 00 00 00 00 00 | ................................ |
| 1c40 | 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 00 00 00 00 00 | ................................ |
| 1c60 | 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 00 00 00 00 00 | ................................ |
| 1c80 | 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 00 00 00 00 00 | ................................ |
| 1ca0 | 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 00 00 00 00 00 | ................................ |
| 1cc0 | 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 00 00 00 00 00 | ................................ |
| 1ce0 | 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 00 00 00 00 00 | ................................ |
| 1d00 | 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 00 00 00 00 00 | ................................ |
| 1d20 | 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 00 00 00 00 00 | ................................ |
| 1d40 | 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 00 00 00 00 00 | ................................ |
| 1d60 | 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 00 00 00 00 00 | ................................ |
| 1d80 | 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 00 00 00 00 00 | ................................ |
| 1da0 | 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 00 00 00 00 00 | ................................ |
| 1dc0 | 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 00 00 00 00 00 | ................................ |
| 1de0 | 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 00 00 00 00 00 | ................................ |
| 1e00 | 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 00 00 00 00 00 | ................................ |
| 1e20 | 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 00 00 00 00 00 | ................................ |
| 1e40 | 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 00 00 00 00 00 | ................................ |
| 1e60 | 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 00 00 00 00 00 | ................................ |
| 1e80 | 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 00 00 00 00 00 | ................................ |
| 1ea0 | 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 00 00 00 00 00 | ................................ |
| 1ec0 | 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 00 00 00 00 00 | ................................ |
| 1ee0 | 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 00 00 00 00 00 | ................................ |
| 1f00 | 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 00 00 00 00 00 | ................................ |
| 1f20 | 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 00 00 00 00 00 | ................................ |
| 1f40 | 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 00 00 00 00 00 | ................................ |
| 1f60 | 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 00 00 00 00 00 | ................................ |
| 1f80 | 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 00 00 00 00 00 | ................................ |
| 1fa0 | 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 00 00 00 00 00 | ................................ |
| 1fc0 | 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 00 00 00 00 00 | ................................ |
| 1fe0 | 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 00 00 00 00 00 | ................................ |
| 2000 | 61 64 00 00 02 00 00 00 4e 02 00 00 00 10 00 00 8c 00 00 00 00 00 00 00 ee 0f 00 00 dc 0f 00 00 | ad......N....................... |
| 2020 | ca 0f 00 00 b8 0f 00 00 a6 0f 00 00 95 0f 00 00 7f 0f 00 00 66 0f 00 00 65 0f 00 00 64 0f 00 00 | ....................f...e...d... |
| 2040 | 07 0f 00 00 05 0f 00 00 ce 0e 00 00 cc 0e 00 00 cb 0e 00 00 69 0e 00 00 67 0e 00 00 4e 0e 00 00 | ....................i...g...N... |
| 2060 | 3f 0e 00 00 3e 0e 00 00 0c 0e 00 00 eb 0d 00 00 b7 0d 00 00 a2 0d 00 00 93 0d 00 00 84 0d 00 00 | ?...>........................... |
| 2080 | 83 0d 00 00 71 0d 00 00 6f 0d 00 00 6b 0d 00 00 48 0d 00 00 42 0d 00 00 ef 0c 00 00 ed 0c 00 00 | ....q...o...k...H...B........... |
| 20a0 | de 0c 00 00 c9 0c 00 00 c1 0c 00 00 c0 0c 00 00 95 0c 00 00 82 0c 00 00 6f 0c 00 00 47 0c 00 00 | ........................o...G... |
| 20c0 | 46 0c 00 00 30 0c 00 00 2f 0c 00 00 1c 0c 00 00 ed 0b 00 00 ce 0b 00 00 cd 0b 00 00 b8 0b 00 00 | F...0.../....................... |
| 20e0 | 86 0b 00 00 84 0b 00 00 83 0b 00 00 3f 0b 00 00 3d 0b 00 00 27 0b 00 00 1f 0b 00 00 1e 0b 00 00 | ............?...=...'........... |
| 2100 | e1 0a 00 00 b6 0a 00 00 9d 0a 00 00 86 0a 00 00 5a 0a 00 00 31 0a 00 00 05 0a 00 00 e9 09 00 00 | ................Z...1........... |
| 2120 | e8 09 00 00 bb 09 00 00 b9 09 00 00 b8 09 00 00 6d 09 00 00 6b 09 00 00 5f 09 00 00 4c 09 00 00 | ................m...k..._...L... |
| 2140 | 37 09 00 00 36 09 00 00 f8 08 00 00 ec 08 00 00 eb 08 00 00 b2 08 00 00 95 08 00 00 8e 08 00 00 | 7...6........................... |
| 2160 | 8d 08 00 00 87 08 00 00 6b 08 00 00 57 08 00 00 44 08 00 00 17 08 00 00 03 08 00 00 d3 07 00 00 | ........k...W...D............... |
| 2180 | d1 07 00 00 c9 07 00 00 af 07 00 00 8b 07 00 00 7e 07 00 00 7b 07 00 00 7a 07 00 00 63 07 00 00 | ................~...{...z...c... |
| 21a0 | 37 07 00 00 1b 07 00 00 10 07 00 00 0e 07 00 00 0d 07 00 00 d8 06 00 00 d6 06 00 00 93 06 00 00 | 7............................... |
| 21c0 | 5e 06 00 00 29 06 00 00 f4 05 00 00 bf 05 00 00 af 05 00 00 ae 05 00 00 73 05 00 00 72 05 00 00 | ^...)...................s...r... |
| 21e0 | 2f 05 00 00 fa 04 00 00 c5 04 00 00 90 04 00 00 5b 04 00 00 4b 04 00 00 4a 04 00 00 38 04 00 00 | /...............[...K...J...8... |
| 2200 | 26 04 00 00 14 04 00 00 13 04 00 00 f9 03 00 00 df 03 00 00 c5 03 00 00 a3 03 00 00 a1 03 00 00 | &............................... |
| 2220 | a0 03 00 00 55 03 00 00 33 03 00 00 31 03 00 00 f1 02 00 00 ab 02 00 00 68 02 00 00 51 02 00 00 | ....U...3...1...........h...Q... |
| 2240 | 4f 02 00 00 4e 02 00 00 00 00 00 00 00 00 00 7d 00 09 09 09 70 75 62 5f 70 61 72 61 6d 2d 3e 70 | O...N..........}....pub_param->p |
| 2260 | 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 65 78 70 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e | ,.ctx);..BN_mod_exp(priv_param-> |
| 2280 | 70 75 62 6c 69 63 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 67 2c 20 70 72 69 76 5f 70 61 72 61 6d | public,.pub_param->g,.priv_param |
| 22a0 | 2d 3e 70 72 69 76 61 74 65 2c 00 09 42 4e 5f 6d 6f 64 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 70 | ->private,..BN_mod(priv_param->p |
| 22c0 | 72 69 76 61 74 65 2c 20 70 72 69 76 5f 70 61 72 61 6d 2d 3e 70 72 69 76 61 74 65 2c 20 70 75 62 | rivate,.priv_param->private,.pub |
| 22e0 | 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 70 73 65 75 64 6f 5f 72 61 6e 64 | _param->q,.ctx);..BN_pseudo_rand |
| 2300 | 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 70 72 69 76 61 74 65 2c 20 70 75 62 5f 70 61 72 61 6d 2d | (priv_param->private,.pub_param- |
| 2320 | 3e 62 69 74 73 2c 20 2d 31 2c 20 2d 31 29 3b 09 00 7b 00 09 09 64 73 61 5f 70 65 72 5f 75 73 65 | >bits,.-1,.-1);..{...dsa_per_use |
| 2340 | 72 5f 70 61 72 61 6d 20 2a 70 72 69 76 5f 70 61 72 61 6d 29 00 76 6f 69 64 20 64 73 61 5f 63 6f | r_param.*priv_param).void.dsa_co |
| 2360 | 6d 70 75 74 65 5f 70 65 72 5f 75 73 65 72 5f 6b 65 79 73 28 73 74 72 75 63 74 20 64 73 61 5f 70 | mpute_per_user_keys(struct.dsa_p |
| 2380 | 75 62 6c 69 63 5f 70 61 72 61 6d 73 20 2a 70 75 62 5f 70 61 72 61 6d 2c 20 73 74 72 75 63 74 00 | ublic_params.*pub_param,.struct. |
| 23a0 | 00 7d 00 09 70 2d 3e 62 69 74 73 20 3d 20 42 4e 5f 6e 75 6d 5f 62 79 74 65 73 28 70 2d 3e 71 29 | .}..p->bits.=.BN_num_bytes(p->q) |
| 23c0 | 2a 31 36 3b 00 09 42 4e 5f 68 65 78 32 62 6e 28 26 70 2d 3e 67 2c 20 67 5f 73 74 72 29 3b 00 09 | *16;..BN_hex2bn(&p->g,.g_str);.. |
| 23e0 | 42 4e 5f 68 65 78 32 62 6e 28 26 70 2d 3e 71 2c 20 71 5f 73 74 72 29 3b 00 09 42 4e 5f 68 65 78 | BN_hex2bn(&p->q,.q_str);..BN_hex |
| 2400 | 32 62 6e 28 26 70 2d 3e 70 2c 20 70 5f 73 74 72 29 3b 00 00 09 70 2d 3e 67 20 3d 20 42 4e 5f 6e | 2bn(&p->p,.p_str);...p->g.=.BN_n |
| 2420 | 65 77 28 29 3b 00 09 70 2d 3e 71 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 70 2d 3e 70 20 3d 20 | ew();..p->q.=.BN_new();..p->p.=. |
| 2440 | 42 4e 5f 6e 65 77 28 29 3b 00 00 09 22 39 66 63 39 35 33 30 32 32 39 31 22 3b 00 09 22 38 37 38 | BN_new();..."9fc95302291";.."878 |
| 2460 | 34 38 30 65 39 39 30 34 31 62 65 36 30 31 61 36 32 31 36 36 63 61 36 38 39 34 62 64 64 34 31 61 | 480e99041be601a62166ca6894bdd41a |
| 2480 | 37 30 35 34 65 63 38 39 66 37 35 36 62 61 22 00 09 22 30 66 35 62 36 34 63 33 36 62 36 32 35 61 | 7054ec89f756ba".."0f5b64c36b625a |
| 24a0 | 30 39 37 66 31 36 35 31 66 65 37 37 35 33 32 33 35 35 36 66 65 30 30 62 33 36 30 38 63 38 38 37 | 097f1651fe775323556fe00b3608c887 |
| 24c0 | 38 39 32 22 00 09 22 33 32 32 61 35 35 39 39 34 36 61 37 31 39 30 33 66 39 39 30 66 31 66 37 65 | 892".."322a559946a71903f990f1f7e |
| 24e0 | 30 65 30 32 35 65 32 64 37 66 37 63 66 34 39 34 61 66 66 31 61 30 34 37 22 00 09 22 34 35 38 66 | 0e025e2d7f7cf494aff1a047".."458f |
| 2500 | 65 66 35 33 38 62 38 66 61 34 30 34 36 63 38 64 62 35 33 30 33 39 64 62 36 32 30 63 30 39 34 63 | ef538b8fa4046c8db53039db620c094c |
| 2520 | 39 66 61 30 37 37 65 66 33 38 39 62 35 22 00 09 63 68 61 72 20 2a 67 5f 73 74 72 20 3d 20 22 35 | 9fa077ef389b5"..char.*g_str.=."5 |
| 2540 | 39 35 38 63 39 64 33 38 39 38 62 32 32 34 62 31 32 36 37 32 63 30 62 39 38 65 30 36 63 36 30 64 | 958c9d3898b224b12672c0b98e06c60d |
| 2560 | 66 39 32 33 63 62 38 62 63 39 39 39 64 31 31 39 22 00 00 09 63 68 61 72 20 2a 71 5f 73 74 72 20 | f923cb8bc999d119"...char.*q_str. |
| 2580 | 3d 20 22 66 34 66 34 37 66 30 35 37 39 34 62 32 35 36 31 37 34 62 62 61 36 65 39 62 33 39 36 61 | =."f4f47f05794b256174bba6e9b396a |
| 25a0 | 37 37 30 37 65 35 36 33 63 35 62 22 3b 00 00 09 22 31 61 35 38 34 34 37 31 62 62 31 22 3b 00 09 | 7707e563c5b";..."1a584471bb1";.. |
| 25c0 | 22 62 34 64 65 62 35 30 61 61 31 38 65 65 39 65 31 33 32 62 66 61 38 35 61 63 34 33 37 34 64 37 | "b4deb50aa18ee9e132bfa85ac4374d7 |
| 25e0 | 66 39 30 39 31 61 62 63 33 64 30 31 35 65 66 63 38 37 22 00 09 22 61 63 30 34 66 34 38 63 33 63 | f9091abc3d015efc87".."ac04f48c3c |
| 2600 | 38 34 61 66 62 37 39 36 64 36 31 65 35 61 34 66 39 61 38 66 64 61 38 31 32 61 62 35 39 34 39 34 | 84afb796d61e5a4f9a8fda812ab59494 |
| 2620 | 32 33 32 63 37 64 32 22 00 09 22 32 64 33 37 34 64 38 33 38 39 65 61 35 61 65 66 66 64 33 32 32 | 232c7d2".."2d374d8389ea5aeffd322 |
| 2640 | 36 61 30 35 33 30 63 63 35 36 35 66 33 62 66 36 62 35 30 39 32 39 31 33 39 65 62 65 22 00 09 22 | 6a0530cc565f3bf6b50929139ebe".." |
| 2660 | 38 35 39 66 32 31 37 31 65 32 35 65 36 35 65 61 63 36 39 38 63 31 37 30 32 35 37 38 62 30 37 64 | 859f2171e25e65eac698c1702578b07d |
| 2680 | 63 32 61 31 30 37 36 64 61 32 34 31 63 37 36 63 36 22 00 09 63 68 61 72 20 2a 70 5f 73 74 72 20 | c2a1076da241c76c6"..char.*p_str. |
| 26a0 | 3d 20 22 38 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 39 65 31 38 35 35 32 31 38 61 30 65 | =."800000000000000089e1855218a0e |
| 26c0 | 37 64 61 63 33 38 31 33 36 66 66 61 66 61 37 32 65 64 61 37 22 00 7b 00 76 6f 69 64 20 69 6e 69 | 7dac38136ffafa72eda7".{.void.ini |
| 26e0 | 74 5f 64 73 61 5f 70 75 62 5f 70 61 72 61 6d 28 73 74 72 75 63 74 20 64 73 61 5f 70 75 62 6c 69 | t_dsa_pub_param(struct.dsa_publi |
| 2700 | 63 5f 70 61 72 61 6d 73 20 2a 70 29 00 00 7d 00 09 72 65 74 75 72 6e 20 31 3b 00 09 70 72 69 6e | c_params.*p)..}..return.1;..prin |
| 2720 | 74 66 28 22 67 6f 74 3a 5c 6e 25 73 5c 6e 22 2c 20 62 75 66 29 3b 00 09 68 65 78 5f 62 69 6e 61 | tf("got:\n%s\n",.buf);..hex_bina |
| 2740 | 72 79 5f 74 6f 5f 73 74 72 69 6e 67 28 74 6f 5f 76 65 72 69 66 79 2c 20 62 75 66 2c 20 6c 65 6e | ry_to_string(to_verify,.buf,.len |
| 2760 | 29 3b 00 09 63 68 61 72 20 62 75 66 5b 28 31 30 32 34 2f 38 29 2a 32 5d 3b 00 00 09 7d 00 09 09 | );..char.buf[(1024/8)*2];...}... |
| 2780 | 09 72 65 74 75 72 6e 20 30 3b 00 09 09 69 66 20 28 74 6f 5f 76 65 72 69 66 79 5b 69 5d 20 21 3d | .return.0;...if.(to_verify[i].!= |
| 27a0 | 20 73 68 61 31 5f 68 61 73 68 5b 6a 5d 29 00 09 66 6f 72 28 6a 3d 30 3b 6a 3c 32 30 3b 6a 2b 2b | .sha1_hash[j])..for(j=0;j<20;j++ |
| 27c0 | 2c 20 69 2b 2b 29 20 7b 00 09 69 6e 74 20 6a 3b 00 09 00 09 6d 65 6d 63 70 79 28 73 68 61 31 5f | ,.i++).{..int.j;....memcpy(sha1_ |
| 27e0 | 68 61 73 68 2c 20 26 28 73 68 61 31 2e 4d 65 73 73 61 67 65 5f 44 69 67 65 73 74 29 2c 20 32 30 | hash,.&(sha1.Message_Digest),.20 |
| 2800 | 29 3b 00 09 53 48 41 31 52 65 73 75 6c 74 28 26 73 68 61 31 29 3b 00 09 53 48 41 31 49 6e 70 75 | );..SHA1Result(&sha1);..SHA1Inpu |
| 2820 | 74 28 26 73 68 61 31 2c 20 6d 65 73 73 61 67 65 2c 20 73 74 72 6c 65 6e 28 6d 65 73 73 61 67 65 | t(&sha1,.message,.strlen(message |
| 2840 | 29 29 3b 00 09 53 48 41 31 52 65 73 65 74 28 26 73 68 61 31 29 3b 00 09 2f 2f 20 76 65 72 66 69 | ));..SHA1Reset(&sha1);..//.verfi |
| 2860 | 79 20 74 68 65 20 68 61 73 68 00 09 2f 2f 20 54 4f 44 4f 20 63 68 65 63 6b 20 61 73 6e 2e 31 20 | y.the.hash..//.TODO.check.asn.1. |
| 2880 | 74 68 69 6e 67 73 00 09 69 2b 2b 3b 00 00 09 09 69 2b 2b 3b 00 09 77 68 69 6c 65 28 74 6f 5f 76 | things..i++;....i++;..while(to_v |
| 28a0 | 65 72 69 66 79 5b 69 5d 20 21 3d 20 30 78 30 30 29 00 09 2f 2f 20 73 65 61 72 63 68 20 66 6f 72 | erify[i].!=.0x00)..//.search.for |
| 28c0 | 20 74 68 65 20 6e 65 78 74 20 30 78 30 30 20 6e 6f 20 6d 61 74 74 65 72 20 77 68 61 74 27 73 20 | .the.next.0x00.no.matter.what's. |
| 28e0 | 69 6e 20 62 65 74 77 65 65 6e 00 00 09 09 72 65 74 75 72 6e 20 30 3b 00 09 69 66 20 28 6c 65 6e | in.between....return.0;..if.(len |
| 2900 | 20 3c 20 32 20 26 26 20 74 6f 5f 76 65 72 69 66 79 5b 30 5d 20 21 3d 20 30 78 30 30 20 26 26 20 | .<.2.&&.to_verify[0].!=.0x00.&&. |
| 2920 | 74 6f 5f 76 65 72 69 66 79 5b 31 5d 20 21 3d 20 30 78 30 31 29 00 00 09 63 68 61 72 20 73 68 61 | to_verify[1].!=.0x01)...char.sha |
| 2940 | 31 5f 68 61 73 68 5b 32 30 5d 3b 00 09 53 48 41 31 43 6f 6e 74 65 78 74 20 73 68 61 31 3b 00 09 | 1_hash[20];..SHA1Context.sha1;.. |
| 2960 | 69 6e 74 20 69 20 3d 20 32 3b 00 7b 00 69 6e 74 20 73 68 69 74 74 79 5f 70 6b 63 73 31 5f 35 5f | int.i.=.2;.{.int.shitty_pkcs1_5_ |
| 2980 | 70 61 64 64 69 6e 67 5f 76 65 72 69 66 79 28 63 68 61 72 20 2a 74 6f 5f 76 65 72 69 66 79 2c 20 | padding_verify(char.*to_verify,. |
| 29a0 | 69 6e 74 20 6c 65 6e 2c 20 63 68 61 72 20 2a 6d 65 73 73 61 67 65 29 00 00 7d 00 09 72 65 74 75 | int.len,.char.*message)..}..retu |
| 29c0 | 72 6e 20 6d 65 6d 63 6d 70 28 74 6f 5f 76 65 72 69 66 79 2c 20 72 65 73 75 6c 74 2c 20 31 32 38 | rn.memcmp(to_verify,.result,.128 |
| 29e0 | 29 20 3d 3d 20 30 3b 00 00 09 70 72 69 6e 74 66 28 22 67 6f 74 3a 5c 6e 25 73 5c 6e 22 2c 20 62 | ).==.0;...printf("got:\n%s\n",.b |
| 2a00 | 75 66 29 3b 00 09 68 65 78 5f 62 69 6e 61 72 79 5f 74 6f 5f 73 74 72 69 6e 67 28 74 6f 5f 76 65 | uf);..hex_binary_to_string(to_ve |
| 2a20 | 72 69 66 79 2c 20 62 75 66 2c 20 6c 65 6e 29 3b 00 09 70 72 69 6e 74 66 28 22 65 78 70 65 63 74 | rify,.buf,.len);..printf("expect |
| 2a40 | 65 64 20 70 61 64 64 69 6e 67 3a 5c 6e 25 73 5c 6e 22 2c 20 62 75 66 29 3b 00 09 68 65 78 5f 62 | ed.padding:\n%s\n",.buf);..hex_b |
| 2a60 | 69 6e 61 72 79 5f 74 6f 5f 73 74 72 69 6e 67 28 72 65 73 75 6c 74 2c 20 62 75 66 2c 20 31 30 32 | inary_to_string(result,.buf,.102 |
| 2a80 | 34 2f 38 29 3b 00 09 63 68 61 72 20 62 75 66 5b 28 31 30 32 34 2f 38 29 2a 32 5d 3b 00 09 2f 2f | 4/8);..char.buf[(1024/8)*2];..// |
| 2aa0 | 20 70 72 69 6e 74 66 20 62 6f 74 68 20 70 61 64 64 69 6e 67 73 00 09 70 6b 63 73 31 5f 35 5f 70 | .printf.both.paddings..pkcs1_5_p |
| 2ac0 | 61 64 64 69 6e 67 28 6d 65 73 73 61 67 65 2c 20 72 65 73 75 6c 74 2c 20 31 30 32 34 2f 38 29 3b | adding(message,.result,.1024/8); |
| 2ae0 | 00 09 2f 2f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 70 61 64 64 69 6e 67 20 68 6f 77 20 74 | ..//.construct.the.padding.how.t |
| 2b00 | 68 65 20 65 78 70 65 63 74 20 69 74 20 61 6e 64 20 74 68 61 6e 20 63 6f 6d 70 61 72 65 00 00 09 | he.expect.it.and.than.compare... |
| 2b20 | 69 6e 74 20 69 3b 00 09 63 68 61 72 20 72 65 73 75 6c 74 5b 31 30 32 34 2f 38 5d 3b 00 7b 00 69 | int.i;..char.result[1024/8];.{.i |
| 2b40 | 6e 74 20 70 6b 63 73 31 5f 35 5f 70 61 64 64 69 6e 67 5f 76 65 72 69 66 79 28 63 68 61 72 20 2a | nt.pkcs1_5_padding_verify(char.* |
| 2b60 | 74 6f 5f 76 65 72 69 66 79 2c 20 69 6e 74 20 6c 65 6e 2c 20 63 68 61 72 20 2a 6d 65 73 73 61 67 | to_verify,.int.len,.char.*messag |
| 2b80 | 65 29 00 00 7d 00 09 09 72 65 73 75 6c 74 5b 74 61 72 67 65 74 5f 6c 65 6e 67 74 68 5f 62 79 74 | e)..}...result[target_length_byt |
| 2ba0 | 65 2d 69 5d 20 3d 20 73 68 61 31 5f 68 61 73 68 5b 32 30 2d 69 5d 3b 00 09 66 6f 72 28 69 20 3d | e-i].=.sha1_hash[20-i];..for(i.= |
| 2bc0 | 20 32 30 3b 69 3e 30 3b 69 2d 2d 29 00 00 09 53 48 41 31 5f 46 69 6e 61 6c 28 73 68 61 31 5f 68 | .20;i>0;i--)...SHA1_Final(sha1_h |
| 2be0 | 61 73 68 2c 20 26 73 68 61 31 29 3b 00 09 53 48 41 31 5f 55 70 64 61 74 65 28 26 73 68 61 31 2c | ash,.&sha1);..SHA1_Update(&sha1, |
| 2c00 | 20 6d 65 73 73 61 67 65 2c 20 73 74 72 6c 65 6e 28 6d 65 73 73 61 67 65 29 29 3b 00 09 53 48 41 | .message,.strlen(message));..SHA |
| 2c20 | 31 5f 49 6e 69 74 28 26 73 68 61 31 29 3b 00 00 09 2f 2f 20 54 4f 44 4f 20 41 53 4e 2e 31 20 74 | 1_Init(&sha1);...//.TODO.ASN.1.t |
| 2c40 | 68 69 6e 67 73 00 00 09 72 65 73 75 6c 74 5b 74 61 72 67 65 74 5f 6c 65 6e 67 74 68 5f 62 79 74 | hings...result[target_length_byt |
| 2c60 | 65 2d 32 31 5d 20 3d 20 30 78 30 30 3b 09 00 09 72 65 73 75 6c 74 5b 31 5d 20 3d 20 30 78 30 32 | e-21].=.0x00;...result[1].=.0x02 |
| 2c80 | 3b 00 09 72 65 73 75 6c 74 5b 30 5d 20 3d 20 30 78 30 30 3b 00 09 6d 65 6d 73 65 74 28 72 65 73 | ;..result[0].=.0x00;..memset(res |
| 2ca0 | 75 6c 74 2c 20 30 78 66 66 2c 20 74 61 72 67 65 74 5f 6c 65 6e 67 74 68 5f 62 79 74 65 29 3b 00 | ult,.0xff,.target_length_byte);. |
| 2cc0 | 00 09 69 6e 74 20 69 3b 00 09 63 68 61 72 20 73 68 61 31 5f 68 61 73 68 5b 32 30 5d 3b 00 09 53 | ..int.i;..char.sha1_hash[20];..S |
| 2ce0 | 48 41 5f 43 54 58 20 73 68 61 31 3b 00 7b 00 76 6f 69 64 20 70 6b 63 73 31 5f 35 5f 70 61 64 64 | HA_CTX.sha1;.{.void.pkcs1_5_padd |
| 2d00 | 69 6e 67 28 63 68 61 72 20 2a 6d 65 73 73 61 67 65 2c 20 63 68 61 72 20 2a 72 65 73 75 6c 74 2c | ing(char.*message,.char.*result, |
| 2d20 | 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 74 61 72 67 65 74 5f 6c 65 6e 67 74 68 5f 62 79 74 65 | .unsigned.int.target_length_byte |
| 2d40 | 29 00 20 20 2a 2a 2f 00 20 20 2a 20 63 6f 6e 73 74 72 75 63 74 20 61 20 56 41 4c 49 44 20 70 6b | )...**/...*.construct.a.VALID.pk |
| 2d60 | 63 73 5f 70 61 64 64 69 6e 67 00 2f 2a 2a 00 7d 00 09 72 65 74 75 72 6e 20 72 65 74 20 3d 3d 20 | cs_padding./**.}..return.ret.==. |
| 2d80 | 30 3b 00 00 09 42 4e 5f 66 72 65 65 28 72 65 73 29 3b 00 09 70 72 69 6e 74 66 28 22 5c 6e 22 29 | 0;...BN_free(res);..printf("\n") |
| 2da0 | 3b 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 72 65 73 29 3b 00 09 70 72 69 6e 74 66 28 22 | ;..BN_print(out,.res);..printf(" |
| 2dc0 | 5c 6e 76 65 72 66 69 65 64 20 6d 65 73 73 20 72 65 74 3a 20 25 69 2c 20 6d 65 73 73 61 67 65 3a | \nverfied.mess.ret:.%i,.message: |
| 2de0 | 5c 6e 22 2c 20 72 65 74 29 3b 00 09 72 65 74 20 3d 20 42 4e 5f 63 6d 70 28 72 65 73 2c 20 6f 72 | \n",.ret);..ret.=.BN_cmp(res,.or |
| 2e00 | 67 5f 6d 65 73 73 61 67 65 29 3b 00 09 72 73 61 5f 64 65 63 72 79 70 74 5f 62 69 67 6e 75 6d 28 | g_message);..rsa_decrypt_bignum( |
| 2e20 | 73 69 67 6e 65 64 5f 6d 65 73 73 61 67 65 2c 20 72 65 73 2c 20 70 75 62 6c 69 63 29 3b 00 00 09 | signed_message,.res,.public);... |
| 2e40 | 69 6e 74 20 72 65 74 20 3d 20 2d 31 3b 00 09 42 49 47 4e 55 4d 20 2a 72 65 73 20 3d 20 42 4e 5f | int.ret.=.-1;..BIGNUM.*res.=.BN_ |
| 2e60 | 6e 65 77 28 29 3b 00 7b 00 69 6e 74 20 72 73 61 5f 76 65 72 69 66 79 5f 62 69 67 6e 75 6d 28 42 | new();.{.int.rsa_verify_bignum(B |
| 2e80 | 49 47 4e 55 4d 20 2a 73 69 67 6e 65 64 5f 6d 65 73 73 61 67 65 2c 20 42 49 47 4e 55 4d 20 2a 6f | IGNUM.*signed_message,.BIGNUM.*o |
| 2ea0 | 72 67 5f 6d 65 73 73 61 67 65 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 79 5f 62 69 67 6e 75 | rg_message,.struct.rsa_key_bignu |
| 2ec0 | 6d 20 2a 70 75 62 6c 69 63 29 00 00 7d 00 09 72 73 61 5f 65 6e 63 72 79 70 74 5f 62 69 67 6e 75 | m.*public)..}..rsa_encrypt_bignu |
| 2ee0 | 6d 28 6d 65 73 73 61 67 65 2c 20 73 69 67 6e 65 64 5f 6d 65 73 73 61 67 65 2c 20 70 72 69 76 61 | m(message,.signed_message,.priva |
| 2f00 | 74 65 29 3b 00 7b 00 69 6e 74 20 72 73 61 5f 73 69 67 6e 5f 62 69 67 6e 75 6d 28 42 49 47 4e 55 | te);.{.int.rsa_sign_bignum(BIGNU |
| 2f20 | 4d 20 2a 6d 65 73 73 61 67 65 2c 20 42 49 47 4e 55 4d 20 2a 73 69 67 6e 65 64 5f 6d 65 73 73 61 | M.*message,.BIGNUM.*signed_messa |
| 2f40 | 67 65 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 79 5f 62 69 67 6e 75 6d 20 2a 70 72 69 76 61 | ge,.struct.rsa_key_bignum.*priva |
| 2f60 | 74 65 29 00 00 00 23 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e 73 73 6c 2f 73 68 61 2e 68 3e 00 23 | te)...#include.<openssl/sha.h>.# |
| 2f80 | 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 2f 73 65 74 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6c | include."util/set.h".#include."l |
| 2fa0 | 69 62 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6c 69 62 32 2e 68 22 00 23 69 6e 63 6c 75 64 65 | ib.h".#include."lib2.h".#include |
| 2fc0 | 20 22 6c 69 62 33 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6c 69 62 34 2e 68 22 00 23 69 6e 63 | ."lib3.h".#include."lib4.h".#inc |
| 2fe0 | 6c 75 64 65 20 22 6c 69 62 35 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6c 69 62 36 2e 68 22 00 | lude."lib5.h".#include."lib6.h". |
| 3000 | 61 64 00 00 e2 0b 00 00 a2 0c 00 00 00 10 00 00 29 00 00 00 00 00 00 00 fe 0f 00 00 cc 0f 00 00 | ad..............)............... |
| 3020 | 91 0f 00 00 85 0f 00 00 82 0f 00 00 81 0f 00 00 76 0f 00 00 74 0f 00 00 73 0f 00 00 6f 0f 00 00 | ................v...t...s...o... |
| 3040 | 29 0f 00 00 d7 0e 00 00 b0 0e 00 00 5a 0e 00 00 56 0e 00 00 50 0e 00 00 4f 0e 00 00 f9 0d 00 00 | )...........Z...V...P...O....... |
| 3060 | f7 0d 00 00 d3 0d 00 00 b0 0d 00 00 a3 0d 00 00 9c 0d 00 00 8f 0d 00 00 85 0d 00 00 61 0d 00 00 | ............................a... |
| 3080 | 54 0d 00 00 4d 0d 00 00 40 0d 00 00 3d 0d 00 00 3a 0d 00 00 38 0d 00 00 37 0d 00 00 13 0d 00 00 | T...M...@...=...:...8...7....... |
| 30a0 | 11 0d 00 00 fe 0c 00 00 e3 0c 00 00 ce 0c 00 00 b3 0c 00 00 a4 0c 00 00 a2 0c 00 00 a1 0c 00 00 | ................................ |
| 30c0 | 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 00 00 00 00 00 | ................................ |
| 30e0 | 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 00 00 00 00 00 | ................................ |
| 3100 | 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 00 00 00 00 00 | ................................ |
| 3120 | 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 00 00 00 00 00 | ................................ |
| 3140 | 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 00 00 00 00 00 | ................................ |
| 3160 | 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 00 00 00 00 00 | ................................ |
| 3180 | 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 00 00 00 00 00 | ................................ |
| 31a0 | 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 00 00 00 00 00 | ................................ |
| 31c0 | 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 00 00 00 00 00 | ................................ |
| 31e0 | 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 00 00 00 00 00 | ................................ |
| 3200 | 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 00 00 00 00 00 | ................................ |
| 3220 | 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 00 00 00 00 00 | ................................ |
| 3240 | 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 00 00 00 00 00 | ................................ |
| 3260 | 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 00 00 00 00 00 | ................................ |
| 3280 | 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 00 00 00 00 00 | ................................ |
| 32a0 | 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 00 00 00 00 00 | ................................ |
| 32c0 | 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 00 00 00 00 00 | ................................ |
| 32e0 | 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 00 00 00 00 00 | ................................ |
| 3300 | 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 00 00 00 00 00 | ................................ |
| 3320 | 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 00 00 00 00 00 | ................................ |
| 3340 | 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 00 00 00 00 00 | ................................ |
| 3360 | 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 00 00 00 00 00 | ................................ |
| 3380 | 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 00 00 00 00 00 | ................................ |
| 33a0 | 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 00 00 00 00 00 | ................................ |
| 33c0 | 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 00 00 00 00 00 | ................................ |
| 33e0 | 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 00 00 00 00 00 | ................................ |
| 3400 | 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 00 00 00 00 00 | ................................ |
| 3420 | 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 00 00 00 00 00 | ................................ |
| 3440 | 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 00 00 00 00 00 | ................................ |
| 3460 | 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 00 00 00 00 00 | ................................ |
| 3480 | 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 00 00 00 00 00 | ................................ |
| 34a0 | 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 00 00 00 00 00 | ................................ |
| 34c0 | 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 00 00 00 00 00 | ................................ |
| 34e0 | 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 00 00 00 00 00 | ................................ |
| 3500 | 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 00 00 00 00 00 | ................................ |
| 3520 | 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 00 00 00 00 00 | ................................ |
| 3540 | 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 00 00 00 00 00 | ................................ |
| 3560 | 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 00 00 00 00 00 | ................................ |
| 3580 | 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 00 00 00 00 00 | ................................ |
| 35a0 | 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 00 00 00 00 00 | ................................ |
| 35c0 | 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 00 00 00 00 00 | ................................ |
| 35e0 | 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 00 00 00 00 00 | ................................ |
| 3600 | 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 00 00 00 00 00 | ................................ |
| 3620 | 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 00 00 00 00 00 | ................................ |
| 3640 | 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 00 00 00 00 00 | ................................ |
| 3660 | 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 00 00 00 00 00 | ................................ |
| 3680 | 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 00 00 00 00 00 | ................................ |
| 36a0 | 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 00 00 00 00 00 | ................................ |
| 36c0 | 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 00 00 00 00 00 | ................................ |
| 36e0 | 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 00 00 00 00 00 | ................................ |
| 3700 | 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 00 00 00 00 00 | ................................ |
| 3720 | 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 00 00 00 00 00 | ................................ |
| 3740 | 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 00 00 00 00 00 | ................................ |
| 3760 | 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 00 00 00 00 00 | ................................ |
| 3780 | 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 00 00 00 00 00 | ................................ |
| 37a0 | 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 00 00 00 00 00 | ................................ |
| 37c0 | 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 00 00 00 00 00 | ................................ |
| 37e0 | 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 00 00 00 00 00 | ................................ |
| 3800 | 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 00 00 00 00 00 | ................................ |
| 3820 | 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 00 00 00 00 00 | ................................ |
| 3840 | 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 00 00 00 00 00 | ................................ |
| 3860 | 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 00 00 00 00 00 | ................................ |
| 3880 | 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 00 00 00 00 00 | ................................ |
| 38a0 | 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 00 00 00 00 00 | ................................ |
| 38c0 | 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 00 00 00 00 00 | ................................ |
| 38e0 | 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 00 00 00 00 00 | ................................ |
| 3900 | 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 00 00 00 00 00 | ................................ |
| 3920 | 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 00 00 00 00 00 | ................................ |
| 3940 | 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 00 00 00 00 00 | ................................ |
| 3960 | 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 00 00 00 00 00 | ................................ |
| 3980 | 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 00 00 00 00 00 | ................................ |
| 39a0 | 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 00 00 00 00 00 | ................................ |
| 39c0 | 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 00 00 00 00 00 | ................................ |
| 39e0 | 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 00 00 00 00 00 | ................................ |
| 3a00 | 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 00 00 00 00 00 | ................................ |
| 3a20 | 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 00 00 00 00 00 | ................................ |
| 3a40 | 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 00 00 00 00 00 | ................................ |
| 3a60 | 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 00 00 00 00 00 | ................................ |
| 3a80 | 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 00 00 00 00 00 | ................................ |
| 3aa0 | 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 00 00 00 00 00 | ................................ |
| 3ac0 | 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 00 00 00 00 00 | ................................ |
| 3ae0 | 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 00 00 00 00 00 | ................................ |
| 3b00 | 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 00 00 00 00 00 | ................................ |
| 3b20 | 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 00 00 00 00 00 | ................................ |
| 3b40 | 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 00 00 00 00 00 | ................................ |
| 3b60 | 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 00 00 00 00 00 | ................................ |
| 3b80 | 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 00 00 00 00 00 | ................................ |
| 3ba0 | 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 00 00 00 00 00 | ................................ |
| 3bc0 | 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 00 00 00 00 00 | ................................ |
| 3be0 | 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 00 00 00 00 00 | ................................ |
| 3c00 | 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 00 00 00 00 00 | ................................ |
| 3c20 | 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 00 00 00 00 00 | ................................ |
| 3c40 | 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 00 00 00 00 00 | ................................ |
| 3c60 | 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 00 00 00 00 00 | ................................ |
| 3c80 | 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 00 00 00 00 00 | ................................ |
| 3ca0 | 00 00 7d 00 09 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 | ..}..printf("\n");..BN_print(out |
| 3cc0 | 2c 20 65 31 2d 3e 75 70 70 65 72 29 3b 00 09 70 72 69 6e 74 66 28 22 5c 6e 75 70 70 65 72 3a 22 | ,.e1->upper);..printf("\nupper:" |
| 3ce0 | 29 3b 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 65 31 2d 3e 6c 6f 77 65 72 29 3b 00 09 70 | );..BN_print(out,.e1->lower);..p |
| 3d00 | 72 69 6e 74 66 28 22 6c 6f 77 65 72 3a 22 29 3b 00 7b 00 76 6f 69 64 20 69 76 5f 70 72 69 6e 74 | rintf("lower:");.{.void.iv_print |
| 3d20 | 66 28 73 74 72 75 63 74 20 69 6e 74 65 72 76 61 6c 20 2a 65 31 29 00 00 7d 00 09 09 00 09 7d 00 | f(struct.interval.*e1)..}.....}. |
| 3d40 | 09 09 09 72 65 74 75 72 6e 20 33 3b 00 09 09 65 6c 73 65 00 09 09 09 72 65 74 75 72 6e 20 34 3b | ...return.3;...else....return.4; |
| 3d60 | 00 09 09 69 66 28 69 76 5f 6d 65 72 67 65 32 28 6d 69 64 64 6c 65 2c 20 72 69 67 74 68 29 20 3d | ...if(iv_merge2(middle,.rigth).= |
| 3d80 | 3d 20 31 29 00 09 7d 20 65 6c 73 65 20 7b 00 09 09 09 72 65 74 75 72 6e 20 32 3b 00 09 09 65 6c | =.1)..}.else.{....return.2;...el |
| 3da0 | 73 65 00 09 09 09 72 65 74 75 72 6e 20 31 3b 00 09 09 69 66 20 28 69 76 5f 6d 65 72 67 65 32 28 | se....return.1;...if.(iv_merge2( |
| 3dc0 | 6c 65 66 74 2c 20 72 69 67 74 68 29 20 3d 3d 20 31 29 00 09 69 66 28 69 76 5f 6d 65 72 67 65 32 | left,.rigth).==.1)..if(iv_merge2 |
| 3de0 | 28 6c 65 66 74 2c 20 6d 69 64 64 6c 65 29 20 3d 3d 20 31 29 20 7b 00 7b 00 69 6e 74 20 69 76 5f | (left,.middle).==.1).{.{.int.iv_ |
| 3e00 | 6d 65 72 67 65 33 28 73 74 72 75 63 74 20 69 6e 74 65 72 76 61 6c 20 2a 6c 65 66 74 2c 20 73 74 | merge3(struct.interval.*left,.st |
| 3e20 | 72 75 63 74 20 69 6e 74 65 72 76 61 6c 20 2a 6d 69 64 64 6c 65 2c 20 73 74 72 75 63 74 20 69 6e | ruct.interval.*middle,.struct.in |
| 3e40 | 74 65 72 76 61 6c 20 2a 72 69 67 74 68 29 00 00 20 20 2a 2a 2f 00 20 20 2a 00 20 20 2a 20 72 65 | terval.*rigth)....**/...*...*.re |
| 3e60 | 74 75 65 72 6e 20 34 20 69 66 20 74 68 65 20 6d 69 64 64 6c 65 20 61 6e 64 20 74 68 65 20 72 69 | tuern.4.if.the.middle.and.the.ri |
| 3e80 | 67 68 74 20 68 61 73 20 62 65 65 6e 20 6d 65 72 67 65 64 20 61 6e 64 20 6c 65 66 74 20 6e 6f 74 | ght.has.been.merged.and.left.not |
| 3ea0 | 2c 20 72 65 73 20 69 6e 20 6d 69 64 64 6c 65 00 20 20 2a 20 72 65 74 75 72 6e 73 20 33 20 69 66 | ,.res.in.middle...*.returns.3.if |
| 3ec0 | 20 6e 6f 6e 65 20 68 61 76 65 20 62 65 65 6e 20 6d 65 72 67 65 64 00 20 20 2a 20 72 65 74 75 72 | .none.have.been.merged...*.retur |
| 3ee0 | 6e 73 20 32 20 69 66 20 74 68 65 20 6c 65 66 74 20 2b 20 6d 69 64 64 6c 65 20 68 61 73 20 62 65 | ns.2.if.the.left.+.middle.has.be |
| 3f00 | 65 6e 20 6d 65 72 67 65 64 20 61 6e 64 20 74 68 65 20 72 69 67 68 74 20 6e 6f 74 2c 20 72 65 73 | en.merged.and.the.right.not,.res |
| 3f20 | 20 69 6e 20 6c 65 66 74 00 20 20 2a 20 72 65 74 75 72 6e 73 20 31 20 69 66 20 61 6c 6c 20 74 68 | .in.left...*.returns.1.if.all.th |
| 3f40 | 72 65 65 20 69 6e 74 65 72 76 61 6c 6c 73 20 68 61 76 65 20 6d 65 72 67 65 64 20 74 6f 20 6f 6e | ree.intervalls.have.merged.to.on |
| 3f60 | 65 2c 20 72 65 73 20 69 6e 20 6c 65 66 74 00 2f 2a 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 32 3b | e,.res.in.left./**..}..return.2; |
| 3f80 | 00 00 09 7d 00 09 09 72 65 74 75 72 6e 20 31 3b 00 09 09 42 4e 5f 63 6f 70 79 28 6c 65 66 74 2d | ...}...return.1;...BN_copy(left- |
| 3fa0 | 3e 75 70 70 65 72 2c 20 42 4e 5f 6d 61 78 28 6c 65 66 74 2d 3e 75 70 70 65 72 2c 20 72 69 67 68 | >upper,.BN_max(left->upper,.righ |
| 3fc0 | 74 2d 3e 75 70 70 65 72 29 29 3b 00 09 69 66 28 21 28 42 4e 5f 63 6d 70 28 6c 65 66 74 2d 3e 75 | t->upper));..if(!(BN_cmp(left->u |
| 3fe0 | 70 70 65 72 2c 20 72 69 67 68 74 2d 3e 6c 6f 77 65 72 29 20 3d 3d 20 2d 31 29 29 20 7b 00 7b 00 | pper,.right->lower).==.-1)).{.{. |
| 4000 | 61 64 00 00 3a 00 00 00 6e 02 00 00 00 10 00 00 86 00 00 00 00 00 00 00 ec 0f 00 00 d8 0f 00 00 | ad..:...n....................... |
| 4020 | c4 0f 00 00 ae 0f 00 00 9c 0f 00 00 88 0f 00 00 74 0f 00 00 60 0f 00 00 46 0f 00 00 45 0f 00 00 | ................t...`...F...E... |
| 4040 | 2c 0f 00 00 13 0f 00 00 f8 0e 00 00 e1 0e 00 00 e0 0e 00 00 a0 0e 00 00 89 0e 00 00 53 0e 00 00 | ,...........................S... |
| 4060 | 19 0e 00 00 e1 0d 00 00 ad 0d 00 00 9a 0d 00 00 82 0d 00 00 73 0d 00 00 71 0d 00 00 70 0d 00 00 | ....................s...q...p... |
| 4080 | 29 0d 00 00 f2 0c 00 00 f0 0c 00 00 c3 0c 00 00 a8 0c 00 00 a7 0c 00 00 8c 0c 00 00 75 0c 00 00 | )...........................u... |
| 40a0 | 57 0c 00 00 42 0c 00 00 41 0c 00 00 35 0c 00 00 1c 0c 00 00 db 0b 00 00 a2 0b 00 00 6d 0b 00 00 | W...B...A...5...............m... |
| 40c0 | 3b 0b 00 00 31 0b 00 00 2d 0b 00 00 18 0b 00 00 e3 0a 00 00 e0 0a 00 00 be 0a 00 00 a9 0a 00 00 | ;...1...-....................... |
| 40e0 | a7 0a 00 00 a3 0a 00 00 73 0a 00 00 6d 0a 00 00 12 0a 00 00 dc 09 00 00 da 09 00 00 c1 09 00 00 | ........s...m................... |
| 4100 | a2 09 00 00 87 09 00 00 6f 09 00 00 51 09 00 00 33 09 00 00 18 09 00 00 17 09 00 00 01 09 00 00 | ........o...Q...3............... |
| 4120 | c5 08 00 00 a9 08 00 00 8d 08 00 00 8c 08 00 00 68 08 00 00 4d 08 00 00 2d 08 00 00 f9 07 00 00 | ................h...M...-....... |
| 4140 | e6 07 00 00 d1 07 00 00 d0 07 00 00 b2 07 00 00 97 07 00 00 96 07 00 00 7a 07 00 00 44 07 00 00 | ........................z...D... |
| 4160 | 38 07 00 00 0f 07 00 00 ee 06 00 00 bb 06 00 00 9a 06 00 00 67 06 00 00 4d 06 00 00 32 06 00 00 | 8...................g...M...2... |
| 4180 | 18 06 00 00 fd 05 00 00 d4 05 00 00 ae 05 00 00 7f 05 00 00 3f 05 00 00 07 05 00 00 e0 04 00 00 | ....................?........... |
| 41a0 | af 04 00 00 9c 04 00 00 9b 04 00 00 7e 04 00 00 7a 04 00 00 77 04 00 00 74 04 00 00 73 04 00 00 | ............~...z...w...t...s... |
| 41c0 | 69 04 00 00 45 04 00 00 30 04 00 00 2e 04 00 00 2d 04 00 00 29 04 00 00 09 04 00 00 04 04 00 00 | i...E...0.......-...)........... |
| 41e0 | d0 03 00 00 ce 03 00 00 ae 03 00 00 93 03 00 00 92 03 00 00 90 03 00 00 8f 03 00 00 68 03 00 00 | ............................h... |
| 4200 | 66 03 00 00 4d 03 00 00 40 03 00 00 3a 03 00 00 2d 03 00 00 2b 03 00 00 2a 03 00 00 26 03 00 00 | f...M...@...:...-...+...*...&... |
| 4220 | e5 02 00 00 b1 02 00 00 ab 02 00 00 6e 02 00 00 6b 02 00 00 68 02 00 00 48 02 00 00 00 00 00 00 | ............n...k...h...H....... |
| 4240 | 00 00 69 6e 74 20 69 69 69 6e 74 20 69 76 5f 6d 65 72 67 65 32 28 73 74 72 75 63 74 20 69 6e 74 | ..int.iiint.iv_merge2(struct.int |
| 4260 | 65 72 76 61 6c 20 2a 6c 69 6e 74 69 6e 74 69 6e 74 20 69 76 5f 6d 65 72 67 65 32 28 73 74 72 75 | erval.*lintintint.iv_merge2(stru |
| 4280 | 63 74 20 69 6e 74 65 72 76 61 6c 20 2a 6c 65 66 74 2c 20 73 74 72 75 63 74 20 69 6e 74 65 72 76 | ct.interval.*left,.struct.interv |
| 42a0 | 61 6c 20 2a 72 69 67 68 74 29 00 20 20 2a 2a 2f 00 20 20 2a 20 32 20 69 66 20 69 6e 74 65 76 61 | al.*right)...**/...*.2.if.inteva |
| 42c0 | 6c 6c 73 20 6e 6f 74 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 28 74 77 6f 20 69 6e 74 65 72 76 61 | lls.not.overlapping.(two.interva |
| 42e0 | 6c 6c 73 29 00 20 20 2a 20 72 65 74 75 72 6e 73 20 31 20 69 66 20 74 68 65 20 69 6e 74 65 72 76 | lls)...*.returns.1.if.the.interv |
| 4300 | 61 6c 6c 20 68 61 76 65 20 62 65 65 6e 20 6d 65 72 67 65 64 20 28 6f 6e 65 20 69 6e 74 65 72 76 | all.have.been.merged.(one.interv |
| 4320 | 61 6c 6c 29 2c 00 2f 2a 2a 00 00 7d 00 09 09 72 65 74 75 72 6e 20 65 32 3b 00 09 65 6c 73 65 00 | all),./**..}...return.e2;..else. |
| 4340 | 09 09 72 65 74 75 72 6e 20 65 31 3b 00 09 69 66 28 42 4e 5f 63 6d 70 28 65 31 2c 20 65 32 29 20 | ..return.e1;..if(BN_cmp(e1,.e2). |
| 4360 | 3d 3d 20 31 29 00 7b 00 42 49 47 4e 55 4d 20 2a 42 4e 5f 6d 61 78 28 42 49 47 4e 55 4d 20 2a 65 | ==.1).{.BIGNUM.*BN_max(BIGNUM.*e |
| 4380 | 31 2c 20 42 49 47 4e 55 4d 20 2a 65 32 29 00 00 7d 00 00 09 2f 2f 20 63 6f 6d 70 75 74 65 20 6d | 1,.BIGNUM.*e2)..}...//.compute.m |
| 43a0 | 5f 69 20 66 72 6f 6d 20 6d 5f 69 2d 31 00 09 73 74 72 75 63 74 20 6c 69 73 74 20 2a 69 6e 74 65 | _i.from.m_i-1..struct.list.*inte |
| 43c0 | 72 76 61 6c 6c 2c 20 2a 68 65 61 64 3b 00 7b 00 69 6e 74 20 62 6c 65 69 63 68 65 6e 62 61 63 68 | rvall,.*head;.{.int.bleichenbach |
| 43e0 | 65 72 5f 73 74 65 70 5f 33 28 42 49 47 4e 55 4d 20 2a 73 5f 69 2c 20 73 65 74 5f 74 20 2a 6d 5f | er_step_3(BIGNUM.*s_i,.set_t.*m_ |
| 4400 | 69 31 29 00 20 2a 2a 2f 00 20 20 2a 20 4e 61 72 72 6f 77 69 6e 67 20 64 6f 77 6e 20 74 68 65 20 | i1)..**/...*.Narrowing.down.the. |
| 4420 | 73 6f 6c 75 74 69 6f 6e 00 2f 2a 2a 00 00 7d 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 73 | solution./**..}..BN_print(out,.s |
| 4440 | 5f 69 29 3b 00 09 70 72 69 6e 74 66 28 22 66 6f 75 6e 64 20 73 5f 69 20 69 6e 20 73 74 65 70 20 | _i);..printf("found.s_i.in.step. |
| 4460 | 32 63 3a 5c 6e 22 29 3b 00 66 6f 75 6e 64 5f 73 69 3a 00 00 09 09 00 09 7d 00 09 09 7d 00 09 09 | 2c:\n");.found_si:......}...}... |
| 4480 | 09 42 4e 5f 61 64 64 28 73 5f 69 2c 20 73 5f 69 2c 20 62 2d 3e 6f 6e 65 29 3b 00 00 09 09 09 09 | .BN_add(s_i,.s_i,.b->one);...... |
| 44a0 | 67 6f 74 6f 20 66 6f 75 6e 64 5f 73 69 3b 00 09 09 09 69 66 28 72 73 61 5f 62 6c 65 69 63 68 65 | goto.found_si;....if(rsa_bleiche |
| 44c0 | 6e 62 61 63 68 65 72 5f 6f 72 63 61 6c 65 28 6e 65 77 5f 63 2c 20 70 72 69 76 61 74 65 29 29 00 | nbacher_orcale(new_c,.private)). |
| 44e0 | 09 09 09 2f 2f 20 74 72 79 20 69 66 20 77 65 20 67 65 74 20 76 61 6c 69 64 20 70 6b 63 73 20 70 | ...//.try.if.we.get.valid.pkcs.p |
| 4500 | 61 64 64 69 6e 67 00 09 09 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 6e 65 77 5f 63 2c 20 74 6d 70 2c | adding....BN_mod_mul(new_c,.tmp, |
| 4520 | 20 62 2d 3e 63 5f 30 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 | .b->c_0,.public->modulo,.ctx);.. |
| 4540 | 09 09 42 4e 5f 6d 6f 64 5f 65 78 70 28 74 6d 70 2c 20 73 5f 69 2c 20 70 75 62 6c 69 63 2d 3e 65 | ..BN_mod_exp(tmp,.s_i,.public->e |
| 4560 | 78 70 6f 6e 65 6e 74 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 | xponent,.public->modulo,.ctx);.. |
| 4580 | 09 09 2f 2f 20 66 6f 72 20 61 6c 6c 20 73 5f 69 20 62 65 74 77 65 65 6e 20 5b 73 69 5f 6c 6f 77 | ..//.for.all.s_i.between.[si_low |
| 45a0 | 65 72 2c 20 73 69 5f 75 70 70 65 72 5d 00 09 09 77 68 69 6c 65 28 42 4e 5f 63 6d 70 28 73 5f 69 | er,.si_upper]...while(BN_cmp(s_i |
| 45c0 | 2c 20 73 69 5f 75 70 70 65 72 29 20 21 3d 20 31 29 20 7b 00 09 09 2f 2f 20 74 72 79 20 61 6c 6c | ,.si_upper).!=.1).{...//.try.all |
| 45e0 | 20 73 5f 69 20 69 6e 20 5b 73 69 5f 6c 6f 77 65 72 2c 20 73 69 5f 75 70 70 65 72 5d 00 09 09 42 | .s_i.in.[si_lower,.si_upper]...B |
| 4600 | 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 73 69 5f 75 70 70 65 72 29 3b 00 09 09 70 72 69 6e 74 66 | N_print(out,.si_upper);...printf |
| 4620 | 28 22 5c 6e 73 69 5f 75 70 70 65 72 5c 6e 22 29 3b 00 09 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 | ("\nsi_upper\n");...BN_print(out |
| 4640 | 2c 20 73 69 5f 6c 6f 77 65 72 29 3b 00 09 09 70 72 69 6e 74 66 28 22 5c 6e 73 69 5f 6c 6f 77 65 | ,.si_lower);...printf("\nsi_lowe |
| 4660 | 72 5c 6e 22 29 3b 00 09 09 42 4e 5f 64 69 76 28 73 69 5f 75 70 70 65 72 2c 20 4e 55 4c 4c 2c 20 | r\n");...BN_div(si_upper,.NULL,. |
| 4680 | 73 69 5f 75 70 70 65 72 2c 20 6d 2d 3e 6c 6f 77 65 72 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f 61 | si_upper,.m->lower,.ctx);...BN_a |
| 46a0 | 64 64 28 73 69 5f 75 70 70 65 72 2c 20 62 2d 3e 5f 33 42 2c 20 74 6d 70 29 3b 00 09 09 42 4e 5f | dd(si_upper,.b->_3B,.tmp);...BN_ |
| 46c0 | 64 69 76 28 73 69 5f 6c 6f 77 65 72 2c 20 4e 55 4c 4c 2c 20 73 69 5f 6c 6f 77 65 72 2c 20 6d 2d | div(si_lower,.NULL,.si_lower,.m- |
| 46e0 | 3e 75 70 70 65 72 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f 61 64 64 28 73 69 5f 6c 6f 77 65 72 2c | >upper,.ctx);...BN_add(si_lower, |
| 4700 | 20 62 2d 3e 5f 32 42 2c 20 74 6d 70 29 3b 00 09 09 42 4e 5f 6d 75 6c 28 74 6d 70 2c 20 72 5f 69 | .b->_2B,.tmp);...BN_mul(tmp,.r_i |
| 4720 | 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 77 68 69 6c 65 28 31 | ,.public->modulo,.ctx);..while(1 |
| 4740 | 29 20 7b 00 09 2f 2f 20 63 6f 6d 70 75 74 65 20 73 5f 69 20 69 6e 74 65 72 76 61 6c 6c 2c 20 69 | ).{..//.compute.s_i.intervall,.i |
| 4760 | 6e 63 72 65 6d 65 6e 74 20 72 5f 69 20 69 6e 20 74 68 69 73 20 6c 6f 6f 70 00 09 70 72 69 6e 74 | ncrement.r_i.in.this.loop..print |
| 4780 | 66 28 22 5c 6e 6f 75 74 20 6f 75 74 20 6f 75 74 5c 6e 22 29 3b 00 00 09 42 4e 5f 70 72 69 6e 74 | f("\nout.out.out\n");...BN_print |
| 47a0 | 28 6f 75 74 2c 20 72 5f 69 5f 73 74 61 72 74 29 3b 00 09 70 72 69 6e 74 66 28 22 5c 6e 72 5f 69 | (out,.r_i_start);..printf("\nr_i |
| 47c0 | 20 73 74 61 72 74 20 69 73 3a 5c 6e 22 29 3b 00 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 | .start.is:\n");...BN_print(out,. |
| 47e0 | 74 6d 70 29 3b 00 09 70 72 69 6e 74 66 28 22 74 6d 70 3a 5c 6e 22 29 3b 00 09 42 4e 5f 64 69 76 | tmp);..printf("tmp:\n");..BN_div |
| 4800 | 28 72 5f 69 5f 73 74 61 72 74 2c 20 4e 55 4c 4c 2c 20 74 6d 70 2c 20 70 75 62 6c 69 63 2d 3e 6d | (r_i_start,.NULL,.tmp,.public->m |
| 4820 | 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 75 6c 28 74 6d 70 2c 20 74 6d 70 2c 20 62 | odulo,.ctx);..BN_mul(tmp,.tmp,.b |
| 4840 | 2d 3e 74 77 6f 2c 20 63 74 78 29 3b 00 09 42 4e 5f 73 75 62 28 74 6d 70 2c 20 74 6d 70 2c 20 62 | ->two,.ctx);..BN_sub(tmp,.tmp,.b |
| 4860 | 2d 3e 5f 32 42 29 3b 00 09 42 4e 5f 6d 75 6c 28 74 6d 70 2c 20 73 5f 69 5f 31 2c 20 6d 2d 3e 75 | ->_2B);..BN_mul(tmp,.s_i_1,.m->u |
| 4880 | 70 70 65 72 2c 20 63 74 78 29 3b 00 00 09 42 4e 5f 63 6f 70 79 28 6d 2d 3e 75 70 70 65 72 2c 20 | pper,.ctx);...BN_copy(m->upper,. |
| 48a0 | 62 2d 3e 5f 33 42 29 3b 00 09 42 4e 5f 63 6f 70 79 28 6d 2d 3e 6c 6f 77 65 72 2c 20 62 2d 3e 5f | b->_3B);..BN_copy(m->lower,.b->_ |
| 48c0 | 32 42 29 3b 00 09 2f 2f 20 54 4f 44 4f 20 73 65 74 20 69 74 20 68 65 72 65 20 74 6f 20 6c 6f 6f | 2B);..//.TODO.set.it.here.to.loo |
| 48e0 | 6b 20 69 66 20 69 74 20 77 6f 72 6b 73 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 73 74 65 70 | k.if.it.works.for.the.first.step |
| 4900 | 00 09 42 4e 5f 63 6f 70 79 28 73 5f 69 5f 31 2c 20 73 5f 69 29 3b 00 00 09 42 49 47 4e 55 4d 20 | ..BN_copy(s_i_1,.s_i);...BIGNUM. |
| 4920 | 2a 6e 65 77 5f 63 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 73 69 5f 6c | *new_c.=.BN_new();..BIGNUM.*si_l |
| 4940 | 6f 77 65 72 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 73 69 5f 75 70 70 | ower.=.BN_new();..BIGNUM.*si_upp |
| 4960 | 65 72 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 74 6d 70 3d 20 42 4e 5f | er.=.BN_new();..BIGNUM.*tmp=.BN_ |
| 4980 | 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 73 5f 69 5f 31 20 3d 20 42 4e 5f 6e 65 77 28 29 | new();..BIGNUM.*s_i_1.=.BN_new() |
| 49a0 | 3b 00 09 42 49 47 4e 55 4d 20 2a 72 5f 69 5f 73 74 61 72 74 20 3d 20 42 4e 5f 6e 65 77 28 29 3b | ;..BIGNUM.*r_i_start.=.BN_new(); |
| 49c0 | 00 09 42 49 47 4e 55 4d 20 2a 72 5f 69 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 7b 00 09 73 74 72 | ..BIGNUM.*r_i.=.BN_new();.{..str |
| 49e0 | 75 63 74 20 72 73 61 5f 6b 65 79 5f 62 69 67 6e 75 6d 20 2a 70 72 69 76 61 74 65 2c 20 73 74 72 | uct.rsa_key_bignum.*private,.str |
| 4a00 | 75 63 74 20 62 62 5f 61 74 74 61 63 6b 20 2a 62 29 00 69 6e 74 20 62 6c 65 69 63 68 65 6e 62 61 | uct.bb_attack.*b).int.bleichenba |
| 4a20 | 63 68 65 72 5f 73 74 65 70 5f 32 63 28 73 74 72 75 63 74 20 69 6e 74 65 72 76 61 6c 20 2a 6d 2c | cher_step_2c(struct.interval.*m, |
| 4a40 | 20 42 49 47 4e 55 4d 20 2a 73 5f 69 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 79 5f 62 69 67 | .BIGNUM.*s_i,.struct.rsa_key_big |
| 4a60 | 6e 75 6d 20 2a 70 75 62 6c 69 63 2c 00 20 20 2a 2a 2f 00 20 20 2a 20 77 68 65 6e 20 6d 65 74 68 | num.*public,...**/...*.when.meth |
| 4a80 | 6f 64 73 20 67 65 74 20 63 61 6c 6c 65 64 2c 20 73 5f 69 20 63 6f 6e 74 61 69 6e 73 20 73 5f 69 | ods.get.called,.s_i.contains.s_i |
| 4aa0 | 2d 31 00 2f 2a 2a 00 7d 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 73 5f 69 29 3b 00 09 70 | -1./**.}..BN_print(out,.s_i);..p |
| 4ac0 | 72 69 6e 74 66 28 22 5c 6e 73 5f 69 20 66 72 6f 6d 20 73 74 65 70 20 32 61 3a 5c 6e 22 29 3b 00 | rintf("\ns_i.from.step.2a:\n");. |
| 4ae0 | 09 7d 00 09 09 42 4e 5f 6d 6f 64 5f 61 64 64 28 73 5f 69 2c 20 73 5f 69 2c 20 62 2d 3e 6f 6e 65 | .}...BN_mod_add(s_i,.s_i,.b->one |
| 4b00 | 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 09 2f 2f 20 74 72 79 | ,.public->modulo,.ctx);...//.try |
| 4b20 | 20 6e 65 78 74 20 6e 75 6d 62 65 72 00 09 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 69 66 28 | .next.number...}....break;...if( |
| 4b40 | 72 73 61 5f 62 6c 65 69 63 68 65 6e 62 61 63 68 65 72 5f 6f 72 63 61 6c 65 28 6e 65 77 5f 63 2c | rsa_bleichenbacher_orcale(new_c, |
| 4b60 | 20 70 72 69 76 61 74 65 29 29 20 7b 00 09 09 2f 2f 20 61 73 6b 69 6e 67 20 6f 72 63 61 6c 65 20 | .private)).{...//.asking.orcale. |
| 4b80 | 69 66 20 74 68 69 73 20 63 69 70 68 65 72 74 65 78 74 20 68 61 73 20 76 61 6c 69 64 20 70 6b 63 | if.this.ciphertext.has.valid.pkc |
| 4ba0 | 73 00 09 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 6e 65 77 5f 63 2c 20 6e 65 77 5f 63 2c 20 62 2d 3e | s...BN_mod_mul(new_c,.new_c,.b-> |
| 4bc0 | 63 5f 30 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f | c_0,.public->modulo,.ctx);...BN_ |
| 4be0 | 6d 6f 64 5f 65 78 70 28 6e 65 77 5f 63 2c 20 73 5f 69 2c 20 70 75 62 6c 69 63 2d 3e 65 78 70 6f | mod_exp(new_c,.s_i,.public->expo |
| 4c00 | 6e 65 6e 74 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 09 2f 2f | nent,.public->modulo,.ctx);...// |
| 4c20 | 20 63 5f 30 20 2a 20 73 5e 65 20 3d 20 6d 5f 30 20 2a 20 73 00 09 77 68 69 6c 65 28 31 29 20 7b | .c_0.*.s^e.=.m_0.*.s..while(1).{ |
| 4c40 | 00 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 73 5f 69 29 3b 00 09 70 72 69 6e 74 66 28 22 | ...BN_print(out,.s_i);..printf(" |
| 4c60 | 73 74 61 72 74 20 77 69 74 68 20 73 5f 69 3a 5c 6e 22 29 3b 00 09 42 4e 5f 63 6f 70 79 28 73 5f | start.with.s_i:\n");..BN_copy(s_ |
| 4c80 | 69 2c 20 62 2d 3e 5f 32 61 29 3b 00 09 2f 2f 20 73 74 61 72 74 20 66 72 6f 6d 20 32 61 20 3d 20 | i,.b->_2a);..//.start.from.2a.=. |
| 4ca0 | 63 5f 30 2f 33 42 00 00 09 42 49 47 4e 55 4d 20 2a 6e 65 77 5f 63 20 3d 20 42 4e 5f 6e 65 77 28 | c_0/3B...BIGNUM.*new_c.=.BN_new( |
| 4cc0 | 29 3b 00 09 70 72 69 6e 74 66 28 22 62 6c 65 69 63 68 65 6e 62 61 63 68 65 72 20 61 74 74 61 63 | );..printf("bleichenbacher.attac |
| 4ce0 | 6b 3a 20 73 74 65 70 20 32 61 5c 6e 22 29 3b 00 7b 00 09 09 73 74 72 75 63 74 20 72 73 61 5f 6b | k:.step.2a\n");.{...struct.rsa_k |
| 4d00 | 65 79 5f 62 69 67 6e 75 6d 20 2a 70 72 69 76 61 74 65 2c 20 73 74 72 75 63 74 20 62 62 5f 61 74 | ey_bignum.*private,.struct.bb_at |
| 4d20 | 74 61 63 6b 20 2a 62 29 00 69 6e 74 20 62 6c 65 69 63 68 65 6e 62 61 63 68 65 72 5f 73 74 65 70 | tack.*b).int.bleichenbacher_step |
| 4d40 | 5f 32 61 28 42 49 47 4e 55 4d 20 2a 73 5f 69 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 79 5f | _2a(BIGNUM.*s_i,.struct.rsa_key_ |
| 4d60 | 62 69 67 6e 75 6d 20 2a 70 75 62 6c 69 63 2c 00 00 7d 00 09 70 72 69 6e 74 66 28 22 5c 6e 22 29 | bignum.*public,..}..printf("\n") |
| 4d80 | 3b 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 62 2d 3e 5f 32 61 29 3b 00 09 70 72 69 6e 74 | ;..BN_print(out,.b->_2a);..print |
| 4da0 | 66 28 22 5c 6e 32 61 5c 6e 22 29 3b 00 09 42 4e 5f 64 69 76 28 62 2d 3e 5f 32 61 2c 20 4e 55 4c | f("\n2a\n");..BN_div(b->_2a,.NUL |
| 4dc0 | 4c 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 62 2d 3e 5f 33 42 2c 20 63 74 78 29 3b | L,.public->modulo,.b->_3B,.ctx); |
| 4de0 | 00 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 62 2d 3e 5f 32 42 2c 20 62 2d 3e 42 2c 20 62 2d 3e 74 77 | ..BN_mod_mul(b->_2B,.b->B,.b->tw |
| 4e00 | 6f 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 | o,.public->modulo,.ctx);..BN_mod |
| 4e20 | 5f 6d 75 6c 28 62 2d 3e 5f 33 42 2c 20 62 2d 3e 42 2c 20 62 2d 3e 74 68 72 65 65 2c 20 70 75 62 | _mul(b->_3B,.b->B,.b->three,.pub |
| 4e40 | 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 65 78 70 28 62 | lic->modulo,.ctx);..BN_mod_exp(b |
| 4e60 | 2d 3e 42 2c 20 62 2d 3e 74 77 6f 2c 20 74 6d 70 32 2c 20 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c | ->B,.b->two,.tmp2,.public->modul |
| 4e80 | 6f 2c 20 63 74 78 29 3b 00 09 42 4e 5f 73 65 74 5f 77 6f 72 64 28 74 6d 70 32 2c 20 6b 29 3b 00 | o,.ctx);..BN_set_word(tmp2,.k);. |
| 4ea0 | 09 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e 67 20 6b 20 3d 20 28 42 4e 5f 6e 75 6d 5f | .unsigned.long.long.k.=.(BN_num_ |
| 4ec0 | 62 79 74 65 73 28 70 75 62 6c 69 63 2d 3e 6d 6f 64 75 6c 6f 29 20 2d 20 32 29 20 2a 20 38 3b 00 | bytes(public->modulo).-.2).*.8;. |
| 4ee0 | 00 09 42 4e 5f 63 6f 70 79 28 62 2d 3e 63 5f 30 2c 20 63 5f 30 29 3b 00 09 42 4e 5f 73 65 74 5f | ..BN_copy(b->c_0,.c_0);..BN_set_ |
| 4f00 | 77 6f 72 64 28 62 2d 3e 74 68 72 65 65 2c 20 33 29 3b 00 09 42 4e 5f 73 65 74 5f 77 6f 72 64 28 | word(b->three,.3);..BN_set_word( |
| 4f20 | 62 2d 3e 74 77 6f 2c 20 32 29 3b 00 09 42 4e 5f 73 65 74 5f 77 6f 72 64 28 62 2d 3e 6f 6e 65 2c | b->two,.2);..BN_set_word(b->one, |
| 4f40 | 20 31 29 3b 00 00 09 42 49 47 4e 55 4d 20 2a 74 6d 70 32 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 | .1);...BIGNUM.*tmp2.=.BN_new();. |
| 4f60 | 09 62 2d 3e 63 5f 30 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 62 2d 3e 5f 33 42 20 3d 20 42 4e | .b->c_0.=.BN_new();..b->_3B.=.BN |
| 4f80 | 5f 6e 65 77 28 29 3b 00 09 62 2d 3e 5f 32 42 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 62 2d 3e | _new();..b->_2B.=.BN_new();..b-> |
| 4fa0 | 42 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 62 2d 3e 74 68 72 65 65 20 3d 20 42 4e 5f 6e 65 77 | B.=.BN_new();..b->three.=.BN_new |
| 4fc0 | 28 29 3b 00 09 62 2d 3e 74 77 6f 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 62 2d 3e 6f 6e 65 20 | ();..b->two.=.BN_new();..b->one. |
| 4fe0 | 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 62 2d 3e 5f 32 61 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 | =.BN_new();..b->_2a.=.BN_new();. |
| 5000 | 61 64 00 00 0e 00 00 00 32 02 00 00 00 10 00 00 82 00 00 00 00 00 00 00 a7 0f 00 00 8d 0f 00 00 | ad......2....................... |
| 5020 | 8b 0f 00 00 6e 0f 00 00 55 0f 00 00 38 0f 00 00 1f 0f 00 00 10 0f 00 00 fb 0e 00 00 fa 0e 00 00 | ....n...U...8................... |
| 5040 | e7 0e 00 00 be 0e 00 00 9f 0e 00 00 7b 0e 00 00 62 0e 00 00 49 0e 00 00 48 0e 00 00 05 0e 00 00 | ............{...b...I...H....... |
| 5060 | ef 0d 00 00 c0 0d 00 00 9c 0d 00 00 98 0d 00 00 57 0d 00 00 1c 0d 00 00 1b 0d 00 00 d1 0c 00 00 | ................W............... |
| 5080 | 9d 0c 00 00 70 0c 00 00 36 0c 00 00 31 0c 00 00 2f 0c 00 00 2e 0c 00 00 2d 0c 00 00 d9 0b 00 00 | ....p...6...1.../.......-....... |
| 50a0 | d0 0b 00 00 ce 0b 00 00 bf 0b 00 00 aa 0b 00 00 93 0b 00 00 7b 0b 00 00 63 0b 00 00 49 0b 00 00 | ....................{...c...I... |
| 50c0 | 2f 0b 00 00 18 0b 00 00 fb 0a 00 00 fa 0a 00 00 d0 0a 00 00 cf 0a 00 00 bc 0a 00 00 93 0a 00 00 | /............................... |
| 50e0 | 74 0a 00 00 50 0a 00 00 4e 0a 00 00 24 0a 00 00 fa 09 00 00 f9 09 00 00 cd 09 00 00 9b 09 00 00 | t...P...N...$................... |
| 5100 | 9a 09 00 00 71 09 00 00 55 09 00 00 54 09 00 00 38 09 00 00 36 09 00 00 35 09 00 00 eb 08 00 00 | ....q...U...T...8...6...5....... |
| 5120 | b5 08 00 00 b3 08 00 00 9a 08 00 00 6e 08 00 00 39 08 00 00 f6 07 00 00 b9 07 00 00 b7 07 00 00 | ............n...9............... |
| 5140 | b6 07 00 00 67 07 00 00 2e 07 00 00 00 07 00 00 fe 06 00 00 fd 06 00 00 e2 06 00 00 e1 06 00 00 | ....g........................... |
| 5160 | a8 06 00 00 83 06 00 00 5f 06 00 00 38 06 00 00 1a 06 00 00 07 06 00 00 05 06 00 00 04 06 00 00 | ........_...8................... |
| 5180 | a9 05 00 00 8d 05 00 00 8b 05 00 00 72 05 00 00 71 05 00 00 39 05 00 00 15 05 00 00 14 05 00 00 | ............r...q...9........... |
| 51a0 | e6 04 00 00 b5 04 00 00 b3 04 00 00 b1 04 00 00 b0 04 00 00 69 04 00 00 67 04 00 00 48 04 00 00 | ....................i...g...H... |
| 51c0 | 29 04 00 00 f7 03 00 00 d9 03 00 00 d7 03 00 00 d6 03 00 00 87 03 00 00 85 03 00 00 77 03 00 00 | )...........................w... |
| 51e0 | 58 03 00 00 26 03 00 00 fa 02 00 00 e0 02 00 00 df 02 00 00 cd 02 00 00 c2 02 00 00 c1 02 00 00 | X...&........................... |
| 5200 | b7 02 00 00 a2 02 00 00 95 02 00 00 93 02 00 00 92 02 00 00 4b 02 00 00 34 02 00 00 32 02 00 00 | ....................K...4...2... |
| 5220 | 31 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7b 00 09 09 73 74 72 75 63 74 20 62 62 5f | 1.................{...struct.bb_ |
| 5240 | 61 74 74 61 63 6b 20 2a 62 29 00 69 6e 74 20 62 6c 65 69 63 68 65 6e 62 61 63 68 65 72 5f 70 72 | attack.*b).int.bleichenbacher_pr |
| 5260 | 65 70 61 72 65 28 42 49 47 4e 55 4d 20 2a 63 5f 30 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 | epare(BIGNUM.*c_0,.struct.rsa_ke |
| 5280 | 79 5f 62 69 67 6e 75 6d 20 2a 70 75 62 6c 69 63 2c 00 00 7d 00 09 72 65 74 75 72 6e 20 72 65 74 | y_bignum.*public,..}..return.ret |
| 52a0 | 3b 00 09 42 4e 5f 66 72 65 65 28 70 6c 61 69 6e 74 65 78 74 29 3b 00 09 66 72 65 65 28 70 29 3b | ;..BN_free(plaintext);..free(p); |
| 52c0 | 00 00 09 09 72 65 74 20 3d 20 31 3b 00 09 69 66 28 70 5b 30 5d 20 3d 3d 20 30 78 30 32 29 00 00 | ....ret.=.1;..if(p[0].==.0x02).. |
| 52e0 | 09 42 4e 5f 62 6e 32 62 69 6e 28 70 6c 61 69 6e 74 65 78 74 2c 20 70 29 3b 00 09 63 68 61 72 20 | .BN_bn2bin(plaintext,.p);..char. |
| 5300 | 2a 70 20 3d 20 6d 61 6c 6c 6f 63 28 42 4e 5f 6e 75 6d 5f 62 79 74 65 73 28 70 6c 61 69 6e 74 65 | *p.=.malloc(BN_num_bytes(plainte |
| 5320 | 78 74 29 29 3b 00 09 72 73 61 5f 64 65 63 72 79 70 74 5f 62 69 67 6e 75 6d 28 63 69 70 68 65 72 | xt));..rsa_decrypt_bignum(cipher |
| 5340 | 74 65 78 74 2c 20 70 6c 61 69 6e 74 65 78 74 2c 20 70 72 69 76 29 3b 00 09 42 49 47 4e 55 4d 20 | text,.plaintext,.priv);..BIGNUM. |
| 5360 | 2a 70 6c 61 69 6e 74 65 78 74 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 69 6e 74 20 72 65 74 20 | *plaintext.=.BN_new();..int.ret. |
| 5380 | 3d 20 30 3b 00 7b 00 69 6e 74 20 72 73 61 5f 62 6c 65 69 63 68 65 6e 62 61 63 68 65 72 5f 6f 72 | =.0;.{.int.rsa_bleichenbacher_or |
| 53a0 | 63 61 6c 65 28 42 49 47 4e 55 4d 20 2a 63 69 70 68 65 72 74 65 78 74 2c 20 73 74 72 75 63 74 20 | cale(BIGNUM.*ciphertext,.struct. |
| 53c0 | 72 73 61 5f 6b 65 79 5f 62 69 67 6e 75 6d 20 2a 70 72 69 76 29 00 00 7d 00 09 72 65 74 75 72 6e | rsa_key_bignum.*priv)..}..return |
| 53e0 | 20 42 4e 5f 69 73 5f 6f 64 64 28 64 65 63 72 79 70 74 65 64 29 3b 00 09 72 73 61 5f 64 65 63 72 | .BN_is_odd(decrypted);..rsa_decr |
| 5400 | 79 70 74 5f 62 69 67 6e 75 6d 28 6d 65 73 73 61 67 65 2c 20 64 65 63 72 79 70 74 65 64 2c 20 70 | ypt_bignum(message,.decrypted,.p |
| 5420 | 72 69 76 61 74 65 29 3b 00 09 2f 2f 20 64 65 63 72 79 70 74 20 61 6e 64 20 63 68 65 63 6b 20 6c | rivate);..//.decrypt.and.check.l |
| 5440 | 61 73 74 20 62 69 74 00 09 42 49 47 4e 55 4d 20 2a 64 65 63 72 79 70 74 65 64 20 3d 20 42 4e 5f | ast.bit..BIGNUM.*decrypted.=.BN_ |
| 5460 | 6e 65 77 28 29 3b 00 7b 00 69 6e 74 20 72 73 61 5f 70 61 72 69 74 79 5f 6f 72 63 61 6c 65 28 42 | new();.{.int.rsa_parity_orcale(B |
| 5480 | 49 47 4e 55 4d 20 2a 6d 65 73 73 61 67 65 2c 20 73 74 72 75 63 74 20 72 73 61 5f 6b 65 79 5f 62 | IGNUM.*message,.struct.rsa_key_b |
| 54a0 | 69 67 6e 75 6d 20 2a 70 72 69 76 61 74 65 29 00 00 7d 00 09 00 09 42 4e 5f 6d 6f 64 5f 6d 75 6c | ignum.*private)..}....BN_mod_mul |
| 54c0 | 28 70 72 69 76 2d 3e 73 2c 20 70 72 69 76 2d 3e 72 2c 20 74 6d 70 2c 20 70 75 62 2d 3e 71 2c 20 | (priv->s,.priv->r,.tmp,.pub->q,. |
| 54e0 | 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 69 6e 76 65 72 73 65 28 74 6d 70 2c 20 6d 65 73 73 5f | ctx);..BN_mod_inverse(tmp,.mess_ |
| 5500 | 68 61 73 68 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 00 09 42 4e 5f 6d 6f 64 28 70 72 69 | hash,.pub->q,.ctx);...BN_mod(pri |
| 5520 | 76 2d 3e 72 2c 20 74 6d 70 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 | v->r,.tmp,.pub->q,.ctx);..BN_mod |
| 5540 | 5f 65 78 70 28 74 6d 70 2c 20 70 72 69 76 2d 3e 70 75 62 6c 69 63 2c 20 6d 65 73 73 5f 68 61 73 | _exp(tmp,.priv->public,.mess_has |
| 5560 | 68 2c 20 70 75 62 2d 3e 70 2c 20 63 74 78 29 3b 00 00 09 42 49 47 4e 55 4d 20 2a 74 6d 70 20 3d | h,.pub->p,.ctx);...BIGNUM.*tmp.= |
| 5580 | 20 42 4e 5f 6e 65 77 28 29 3b 00 7b 00 09 09 2a 70 72 69 76 2c 20 42 49 47 4e 55 4d 20 2a 6d 65 | .BN_new();.{...*priv,.BIGNUM.*me |
| 55a0 | 73 73 5f 68 61 73 68 29 00 76 6f 69 64 20 64 73 61 5f 67 65 6e 65 72 61 74 65 5f 6d 61 67 69 63 | ss_hash).void.dsa_generate_magic |
| 55c0 | 5f 73 69 67 6e 61 74 75 72 65 28 73 74 72 75 63 74 20 64 73 61 5f 70 75 62 6c 69 63 5f 70 61 72 | _signature(struct.dsa_public_par |
| 55e0 | 61 6d 73 20 2a 70 75 62 2c 20 73 74 72 75 63 74 20 64 73 61 5f 70 65 72 5f 75 73 65 72 5f 70 61 | ams.*pub,.struct.dsa_per_user_pa |
| 5600 | 72 61 6d 00 00 7d 00 09 42 4e 5f 70 72 69 6e 74 28 6f 75 74 2c 20 6b 29 3b 00 09 70 72 69 6e 74 | ram..}..BN_print(out,.k);..print |
| 5620 | 66 28 22 72 65 63 6f 76 65 72 64 20 6b 20 69 73 3a 20 5c 6e 22 29 3b 00 09 42 4e 5f 6d 6f 64 5f | f("recoverd.k.is:.\n");..BN_mod_ |
| 5640 | 6d 75 6c 28 6b 2c 20 6b 2c 20 64 69 66 66 31 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 | mul(k,.k,.diff1,.pub->q,.ctx);.. |
| 5660 | 42 4e 5f 6d 6f 64 5f 69 6e 76 65 72 73 65 28 6b 2c 20 6b 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 | BN_mod_inverse(k,.k,.pub->q,.ctx |
| 5680 | 29 3b 00 09 42 4e 5f 6d 6f 64 5f 73 75 62 28 6b 2c 20 73 31 2c 20 73 32 2c 20 70 75 62 2d 3e 71 | );..BN_mod_sub(k,.s1,.s2,.pub->q |
| 56a0 | 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 73 75 62 28 64 69 66 66 31 2c 20 6d 65 73 73 31 | ,.ctx);..BN_mod_sub(diff1,.mess1 |
| 56c0 | 5f 68 61 73 68 2c 20 6d 65 73 73 32 5f 68 61 73 68 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b | _hash,.mess2_hash,.pub->q,.ctx); |
| 56e0 | 00 00 09 42 49 47 4e 55 4d 20 2a 64 69 66 66 31 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 00 7b 00 | ...BIGNUM.*diff1.=.BN_new();..{. |
| 5700 | 09 09 73 74 72 75 63 74 20 64 73 61 5f 70 65 72 5f 75 73 65 72 5f 70 61 72 61 6d 20 2a 70 72 69 | ..struct.dsa_per_user_param.*pri |
| 5720 | 76 2c 20 42 49 47 4e 55 4d 20 2a 6b 29 00 09 09 42 49 47 4e 55 4d 20 2a 73 31 2c 20 42 49 47 4e | v,.BIGNUM.*k)...BIGNUM.*s1,.BIGN |
| 5740 | 55 4d 20 2a 73 32 2c 20 73 74 72 75 63 74 20 64 73 61 5f 70 75 62 6c 69 63 5f 70 61 72 61 6d 73 | UM.*s2,.struct.dsa_public_params |
| 5760 | 20 2a 70 75 62 2c 00 76 6f 69 64 20 64 73 61 5f 72 65 63 6f 76 65 72 5f 6b 5f 66 72 6f 6d 5f 72 | .*pub,.void.dsa_recover_k_from_r |
| 5780 | 65 70 65 61 74 65 64 5f 6e 6f 6e 63 65 28 42 49 47 4e 55 4d 20 2a 6d 65 73 73 31 5f 68 61 73 68 | epeated_nonce(BIGNUM.*mess1_hash |
| 57a0 | 2c 20 42 49 47 4e 55 4d 20 2a 6d 65 73 73 32 5f 68 61 73 68 2c 00 00 7d 00 09 42 4e 5f 6d 6f 64 | ,.BIGNUM.*mess2_hash,..}..BN_mod |
| 57c0 | 5f 6d 75 6c 28 70 72 69 76 2d 3e 70 72 69 76 61 74 65 2c 20 70 72 69 76 2d 3e 70 72 69 76 61 74 | _mul(priv->private,.priv->privat |
| 57e0 | 65 2c 20 72 5f 31 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 73 75 | e,.r_1,.pub->q,.ctx);..BN_mod_su |
| 5800 | 62 28 70 72 69 76 2d 3e 70 72 69 76 61 74 65 2c 20 70 72 69 76 2d 3e 70 72 69 76 61 74 65 2c 20 | b(priv->private,.priv->private,. |
| 5820 | 6d 65 73 73 5f 68 61 73 68 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 | mess_hash,.pub->q,.ctx);..BN_mod |
| 5840 | 5f 6d 75 6c 28 70 72 69 76 2d 3e 70 72 69 76 61 74 65 2c 20 6b 2c 20 70 72 69 76 2d 3e 73 2c 20 | _mul(priv->private,.k,.priv->s,. |
| 5860 | 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 69 6e 76 65 72 73 65 28 72 5f | pub->q,.ctx);..BN_mod_inverse(r_ |
| 5880 | 31 2c 20 70 72 69 76 2d 3e 72 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 49 47 4e 55 | 1,.priv->r,.pub->q,.ctx);..BIGNU |
| 58a0 | 4d 20 2a 72 5f 31 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 7b 00 09 09 73 74 72 75 63 74 20 64 73 | M.*r_1.=.BN_new();.{...struct.ds |
| 58c0 | 61 5f 70 65 72 5f 75 73 65 72 5f 70 61 72 61 6d 20 2a 70 72 69 76 2c 20 42 49 47 4e 55 4d 20 2a | a_per_user_param.*priv,.BIGNUM.* |
| 58e0 | 6d 65 73 73 5f 68 61 73 68 29 00 76 6f 69 64 20 64 73 61 5f 72 65 63 6f 76 65 72 5f 78 5f 66 72 | mess_hash).void.dsa_recover_x_fr |
| 5900 | 6f 6d 5f 6b 6e 6f 77 6e 5f 6b 28 73 74 72 75 63 74 20 64 73 61 5f 70 75 62 6c 69 63 5f 70 61 72 | om_known_k(struct.dsa_public_par |
| 5920 | 61 6d 73 20 2a 70 75 62 2c 20 42 49 47 4e 55 4d 20 2a 6b 2c 00 00 7d 00 09 72 65 74 75 72 6e 20 | ams.*pub,.BIGNUM.*k,..}..return. |
| 5940 | 42 4e 5f 63 6d 70 28 76 2c 20 70 72 69 76 2d 3e 72 29 3b 00 00 09 42 4e 5f 6d 6f 64 28 76 2c 20 | BN_cmp(v,.priv->r);...BN_mod(v,. |
| 5960 | 76 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 76 2c 20 | v,.pub->q,.ctx);..BN_mod_mul(v,. |
| 5980 | 74 6d 70 31 2c 20 74 6d 70 32 2c 20 70 75 62 2d 3e 70 2c 20 63 74 78 29 3b 00 00 09 42 4e 5f 6d | tmp1,.tmp2,.pub->p,.ctx);...BN_m |
| 59a0 | 6f 64 5f 65 78 70 28 74 6d 70 32 2c 20 70 72 69 76 2d 3e 70 75 62 6c 69 63 2c 20 75 32 2c 20 70 | od_exp(tmp2,.priv->public,.u2,.p |
| 59c0 | 75 62 2d 3e 70 2c 20 63 74 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 65 78 70 28 74 6d 70 31 2c 20 70 | ub->p,.ctx);..BN_mod_exp(tmp1,.p |
| 59e0 | 75 62 2d 3e 67 2c 20 75 31 2c 20 70 75 62 2d 3e 70 2c 20 63 74 78 29 3b 00 00 09 42 4e 5f 6d 6f | ub->g,.u1,.pub->p,.ctx);...BN_mo |
| 5a00 | 64 5f 6d 75 6c 28 75 32 2c 20 70 72 69 76 2d 3e 72 2c 20 77 2c 20 70 75 62 2d 3e 71 2c 20 63 74 | d_mul(u2,.priv->r,.w,.pub->q,.ct |
| 5a20 | 78 29 3b 00 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 75 31 2c 20 77 2c 20 68 61 73 68 5f 62 6e 2c 20 | x);..BN_mod_mul(u1,.w,.hash_bn,. |
| 5a40 | 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 09 00 09 42 4e 5f 62 69 6e 32 62 6e 28 73 68 61 31 5f | pub->q,.ctx);....BN_bin2bn(sha1_ |
| 5a60 | 68 61 73 68 2c 20 32 30 2c 20 68 61 73 68 5f 62 6e 29 3b 00 09 53 48 41 31 5f 46 69 6e 61 6c 28 | hash,.20,.hash_bn);..SHA1_Final( |
| 5a80 | 73 68 61 31 5f 68 61 73 68 2c 20 26 73 68 61 31 29 3b 00 09 53 48 41 31 5f 55 70 64 61 74 65 28 | sha1_hash,.&sha1);..SHA1_Update( |
| 5aa0 | 26 73 68 61 31 2c 20 6d 65 73 73 2c 20 73 74 72 6c 65 6e 28 6d 65 73 73 29 29 3b 00 09 53 48 41 | &sha1,.mess,.strlen(mess));..SHA |
| 5ac0 | 31 5f 49 6e 69 74 28 26 73 68 61 31 29 3b 00 00 09 42 4e 5f 6d 6f 64 5f 69 6e 76 65 72 73 65 28 | 1_Init(&sha1);...BN_mod_inverse( |
| 5ae0 | 77 2c 20 70 72 69 76 2d 3e 73 2c 20 70 75 62 2d 3e 71 2c 20 63 74 78 29 3b 00 00 09 42 49 47 4e | w,.priv->s,.pub->q,.ctx);...BIGN |
| 5b00 | 55 4d 20 2a 68 61 73 68 5f 62 6e 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 | UM.*hash_bn.=.BN_new();..BIGNUM. |
| 5b20 | 2a 76 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 74 6d 70 32 20 3d 20 42 | *v.=.BN_new();..BIGNUM.*tmp2.=.B |
| 5b40 | 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 74 6d 70 31 20 3d 20 42 4e 5f 6e 65 77 28 | N_new();..BIGNUM.*tmp1.=.BN_new( |
| 5b60 | 29 3b 00 09 42 49 47 4e 55 4d 20 2a 75 32 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e | );..BIGNUM.*u2.=.BN_new();..BIGN |
| 5b80 | 55 4d 20 2a 75 31 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 77 20 3d 20 | UM.*u1.=.BN_new();..BIGNUM.*w.=. |
| 5ba0 | 42 4e 5f 6e 65 77 28 29 3b 00 09 63 68 61 72 20 73 68 61 31 5f 68 61 73 68 5b 32 30 5d 3b 00 09 | BN_new();..char.sha1_hash[20];.. |
| 5bc0 | 53 48 41 5f 43 54 58 20 73 68 61 31 3b 00 7b 00 09 09 2a 70 72 69 76 29 00 69 6e 74 20 64 73 61 | SHA_CTX.sha1;.{...*priv).int.dsa |
| 5be0 | 5f 76 65 72 69 66 79 28 63 68 61 72 20 2a 6d 65 73 73 2c 20 73 74 72 75 63 74 20 64 73 61 5f 70 | _verify(char.*mess,.struct.dsa_p |
| 5c00 | 75 62 6c 69 63 5f 70 61 72 61 6d 73 20 2a 70 75 62 2c 20 73 74 72 75 63 74 20 64 73 61 5f 70 65 | ublic_params.*pub,.struct.dsa_pe |
| 5c20 | 72 5f 75 73 65 72 5f 70 61 72 61 6d 00 00 00 7d 00 09 2f 2f 7d 00 09 09 42 4e 5f 6d 6f 64 5f 6d | r_user_param...}..//}...BN_mod_m |
| 5c40 | 75 6c 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 73 2c 20 6b 5f 31 2c 20 74 6d 70 2c 20 70 75 62 5f | ul(priv_param->s,.k_1,.tmp,.pub_ |
| 5c60 | 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f 6d 6f 64 5f 69 6e 76 65 72 73 65 | param->q,.ctx);...BN_mod_inverse |
| 5c80 | 28 6b 5f 31 2c 20 6b 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 09 09 42 | (k_1,.k,.pub_param->q,.ctx);...B |
| 5ca0 | 4e 5f 6d 6f 64 5f 61 64 64 28 74 6d 70 2c 20 68 61 73 68 5f 62 6e 2c 20 74 6d 70 2c 20 70 75 62 | N_mod_add(tmp,.hash_bn,.tmp,.pub |
| 5cc0 | 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f 6d 6f 64 5f 6d 75 6c 28 74 6d | _param->q,.ctx);...BN_mod_mul(tm |
| 5ce0 | 70 2c 20 70 72 69 76 5f 70 61 72 61 6d 2d 3e 70 72 69 76 61 74 65 2c 20 70 72 69 76 5f 70 61 72 | p,.priv_param->private,.priv_par |
| 5d00 | 61 6d 2d 3e 72 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 00 09 09 42 4e | am->r,.pub_param->q,.ctx);....BN |
| 5d20 | 5f 6d 6f 64 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 72 2c 20 70 72 69 76 5f 70 61 72 61 6d 2d 3e | _mod(priv_param->r,.priv_param-> |
| 5d40 | 72 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 09 09 42 4e 5f 6d 6f 64 5f | r,.pub_param->q,.ctx);...BN_mod_ |
| 5d60 | 65 78 70 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 72 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 67 2c | exp(priv_param->r,.pub_param->g, |
| 5d80 | 20 6b 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 70 2c 20 63 74 78 29 3b 00 09 09 7d 00 09 09 09 42 | .k,.pub_param->p,.ctx);...}....B |
| 5da0 | 4e 5f 6d 6f 64 28 6b 2c 20 6b 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e 71 2c 20 63 74 78 29 3b 00 | N_mod(k,.k,.pub_param->q,.ctx);. |
| 5dc0 | 09 09 09 42 4e 5f 70 73 65 75 64 6f 5f 72 61 6e 64 28 6b 2c 20 70 75 62 5f 70 61 72 61 6d 2d 3e | ...BN_pseudo_rand(k,.pub_param-> |
| 5de0 | 62 69 74 73 2c 20 2d 31 2c 20 2d 31 29 3b 00 09 09 69 66 28 42 4e 5f 69 73 5f 7a 65 72 6f 28 6b | bits,.-1,.-1);...if(BN_is_zero(k |
| 5e00 | 29 29 20 7b 00 09 2f 2f 77 68 69 6c 65 28 42 4e 5f 69 73 5f 7a 65 72 6f 28 70 72 69 76 5f 70 61 | )).{..//while(BN_is_zero(priv_pa |
| 5e20 | 72 61 6d 2d 3e 72 29 20 7c 7c 20 42 4e 5f 69 73 5f 7a 65 72 6f 28 70 72 69 76 5f 70 61 72 61 6d | ram->r).||.BN_is_zero(priv_param |
| 5e40 | 2d 3e 73 29 29 20 7b 00 00 09 42 4e 5f 7a 65 72 6f 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 73 29 | ->s)).{...BN_zero(priv_param->s) |
| 5e60 | 3b 00 09 42 4e 5f 7a 65 72 6f 28 70 72 69 76 5f 70 61 72 61 6d 2d 3e 72 29 3b 00 09 42 4e 5f 62 | ;..BN_zero(priv_param->r);..BN_b |
| 5e80 | 69 6e 32 62 6e 28 73 68 61 31 5f 68 61 73 68 2c 20 32 30 2c 20 68 61 73 68 5f 62 6e 29 3b 00 09 | in2bn(sha1_hash,.20,.hash_bn);.. |
| 5ea0 | 53 48 41 31 5f 46 69 6e 61 6c 28 73 68 61 31 5f 68 61 73 68 2c 20 26 73 68 61 31 29 3b 00 09 53 | SHA1_Final(sha1_hash,.&sha1);..S |
| 5ec0 | 48 41 31 5f 55 70 64 61 74 65 28 26 73 68 61 31 2c 20 6d 65 73 73 2c 20 73 74 72 6c 65 6e 28 6d | HA1_Update(&sha1,.mess,.strlen(m |
| 5ee0 | 65 73 73 29 29 3b 00 09 53 48 41 31 5f 49 6e 69 74 28 26 73 68 61 31 29 3b 00 00 09 63 68 61 72 | ess));..SHA1_Init(&sha1);...char |
| 5f00 | 20 73 68 61 31 5f 68 61 73 68 5b 32 30 5d 3b 00 09 53 48 41 5f 43 54 58 20 73 68 61 31 3b 00 09 | .sha1_hash[20];..SHA_CTX.sha1;.. |
| 5f20 | 42 49 47 4e 55 4d 20 2a 74 6d 70 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 | BIGNUM.*tmp.=.BN_new();..BIGNUM. |
| 5f40 | 2a 68 61 73 68 5f 62 6e 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 42 49 47 4e 55 4d 20 2a 6b 5f | *hash_bn.=.BN_new();..BIGNUM.*k_ |
| 5f60 | 31 20 3d 20 42 4e 5f 6e 65 77 28 29 3b 00 09 2f 2f 20 72 61 6e 64 6f 6d 20 70 65 72 20 6d 65 73 | 1.=.BN_new();..//.random.per.mes |
| 5f80 | 73 61 67 65 20 76 61 6c 75 65 00 7b 00 09 09 2a 70 72 69 76 5f 70 61 72 61 6d 2c 20 42 49 47 4e | sage.value.{...*priv_param,.BIGN |
| 5fa0 | 55 4d 20 2a 6b 29 00 76 6f 69 64 20 64 73 61 5f 73 69 67 6e 28 63 68 61 72 20 2a 6d 65 73 73 2c | UM.*k).void.dsa_sign(char.*mess, |
| 5fc0 | 20 73 74 72 75 63 74 20 64 73 61 5f 70 75 62 6c 69 63 5f 70 61 72 61 6d 73 20 2a 70 75 62 5f 70 | .struct.dsa_public_params.*pub_p |
| 5fe0 | 61 72 61 6d 2c 20 73 74 72 75 63 74 20 64 73 61 5f 70 65 72 5f 75 73 65 72 5f 70 61 72 61 6d 00 | aram,.struct.dsa_per_user_param. |