Skip to content
Extraits de code Groupes Projets
gf256_tables.h 335 ko
Newer Older
  • Learn to ignore specific revisions
  • Louis Navarre's avatar
    Louis Navarre a validé
         247, 15, 26, 226, 48, 200, 221, 37},
        {0, 249, 239, 22, 195, 58, 44, 213,
         155, 98, 116, 141, 88, 161, 183, 78,
         43, 210, 196, 61, 232, 17, 7, 254,
         176, 73, 95, 166, 115, 138, 156, 101,
         86, 175, 185, 64, 149, 108, 122, 131,
         205, 52, 34, 219, 14, 247, 225, 24,
         125, 132, 146, 107, 190, 71, 81, 168,
         230, 31, 9, 240, 37, 220, 202, 51,
         172, 85, 67, 186, 111, 150, 128, 121,
         55, 206, 216, 33, 244, 13, 27, 226,
         135, 126, 104, 145, 68, 189, 171, 82,
         28, 229, 243, 10, 223, 38, 48, 201,
         250, 3, 21, 236, 57, 192, 214, 47,
         97, 152, 142, 119, 162, 91, 77, 180,
         209, 40, 62, 199, 18, 235, 253, 4,
         74, 179, 165, 92, 137, 112, 102, 159,
         69, 188, 170, 83, 134, 127, 105, 144,
         222, 39, 49, 200, 29, 228, 242, 11,
         110, 151, 129, 120, 173, 84, 66, 187,
         245, 12, 26, 227, 54, 207, 217, 32,
         19, 234, 252, 5, 208, 41, 63, 198,
         136, 113, 103, 158, 75, 178, 164, 93,
         56, 193, 215, 46, 251, 2, 20, 237,
         163, 90, 76, 181, 96, 153, 143, 118,
         233, 16, 6, 255, 42, 211, 197, 60,
         114, 139, 157, 100, 177, 72, 94, 167,
         194, 59, 45, 212, 1, 248, 238, 23,
         89, 160, 182, 79, 154, 99, 117, 140,
         191, 70, 80, 169, 124, 133, 147, 106,
         36, 221, 203, 50, 231, 30, 8, 241,
         148, 109, 123, 130, 87, 174, 184, 65,
         15, 246, 224, 25, 204, 53, 35, 218},
        {0, 250, 233, 19, 207, 53, 38, 220,
         131, 121, 106, 144, 76, 182, 165, 95,
         27, 225, 242, 8, 212, 46, 61, 199,
         152, 98, 113, 139, 87, 173, 190, 68,
         54, 204, 223, 37, 249, 3, 16, 234,
         181, 79, 92, 166, 122, 128, 147, 105,
         45, 215, 196, 62, 226, 24, 11, 241,
         174, 84, 71, 189, 97, 155, 136, 114,
         108, 150, 133, 127, 163, 89, 74, 176,
         239, 21, 6, 252, 32, 218, 201, 51,
         119, 141, 158, 100, 184, 66, 81, 171,
         244, 14, 29, 231, 59, 193, 210, 40,
         90, 160, 179, 73, 149, 111, 124, 134,
         217, 35, 48, 202, 22, 236, 255, 5,
         65, 187, 168, 82, 142, 116, 103, 157,
         194, 56, 43, 209, 13, 247, 228, 30,
         216, 34, 49, 203, 23, 237, 254, 4,
         91, 161, 178, 72, 148, 110, 125, 135,
         195, 57, 42, 208, 12, 246, 229, 31,
         64, 186, 169, 83, 143, 117, 102, 156,
         238, 20, 7, 253, 33, 219, 200, 50,
         109, 151, 132, 126, 162, 88, 75, 177,
         245, 15, 28, 230, 58, 192, 211, 41,
         118, 140, 159, 101, 185, 67, 80, 170,
         180, 78, 93, 167, 123, 129, 146, 104,
         55, 205, 222, 36, 248, 2, 17, 235,
         175, 85, 70, 188, 96, 154, 137, 115,
         44, 214, 197, 63, 227, 25, 10, 240,
         130, 120, 107, 145, 77, 183, 164, 94,
         1, 251, 232, 18, 206, 52, 39, 221,
         153, 99, 112, 138, 86, 172, 191, 69,
         26, 224, 243, 9, 213, 47, 60, 198},
        {0, 251, 235, 16, 203, 48, 32, 219,
         139, 112, 96, 155, 64, 187, 171, 80,
         11, 240, 224, 27, 192, 59, 43, 208,
         128, 123, 107, 144, 75, 176, 160, 91,
         22, 237, 253, 6, 221, 38, 54, 205,
         157, 102, 118, 141, 86, 173, 189, 70,
         29, 230, 246, 13, 214, 45, 61, 198,
         150, 109, 125, 134, 93, 166, 182, 77,
         44, 215, 199, 60, 231, 28, 12, 247,
         167, 92, 76, 183, 108, 151, 135, 124,
         39, 220, 204, 55, 236, 23, 7, 252,
         172, 87, 71, 188, 103, 156, 140, 119,
         58, 193, 209, 42, 241, 10, 26, 225,
         177, 74, 90, 161, 122, 129, 145, 106,
         49, 202, 218, 33, 250, 1, 17, 234,
         186, 65, 81, 170, 113, 138, 154, 97,
         88, 163, 179, 72, 147, 104, 120, 131,
         211, 40, 56, 195, 24, 227, 243, 8,
         83, 168, 184, 67, 152, 99, 115, 136,
         216, 35, 51, 200, 19, 232, 248, 3,
         78, 181, 165, 94, 133, 126, 110, 149,
         197, 62, 46, 213, 14, 245, 229, 30,
         69, 190, 174, 85, 142, 117, 101, 158,
         206, 53, 37, 222, 5, 254, 238, 21,
         116, 143, 159, 100, 191, 68, 84, 175,
         255, 4, 20, 239, 52, 207, 223, 36,
         127, 132, 148, 111, 180, 79, 95, 164,
         244, 15, 31, 228, 63, 196, 212, 47,
         98, 153, 137, 114, 169, 82, 66, 185,
         233, 18, 2, 249, 34, 217, 201, 50,
         105, 146, 130, 121, 162, 89, 73, 178,
         226, 25, 9, 242, 41, 210, 194, 57},
        {0, 252, 229, 25, 215, 43, 50, 206,
         179, 79, 86, 170, 100, 152, 129, 125,
         123, 135, 158, 98, 172, 80, 73, 181,
         200, 52, 45, 209, 31, 227, 250, 6,
         246, 10, 19, 239, 33, 221, 196, 56,
         69, 185, 160, 92, 146, 110, 119, 139,
         141, 113, 104, 148, 90, 166, 191, 67,
         62, 194, 219, 39, 233, 21, 12, 240,
         241, 13, 20, 232, 38, 218, 195, 63,
         66, 190, 167, 91, 149, 105, 112, 140,
         138, 118, 111, 147, 93, 161, 184, 68,
         57, 197, 220, 32, 238, 18, 11, 247,
         7, 251, 226, 30, 208, 44, 53, 201,
         180, 72, 81, 173, 99, 159, 134, 122,
         124, 128, 153, 101, 171, 87, 78, 178,
         207, 51, 42, 214, 24, 228, 253, 1,
         255, 3, 26, 230, 40, 212, 205, 49,
         76, 176, 169, 85, 155, 103, 126, 130,
         132, 120, 97, 157, 83, 175, 182, 74,
         55, 203, 210, 46, 224, 28, 5, 249,
         9, 245, 236, 16, 222, 34, 59, 199,
         186, 70, 95, 163, 109, 145, 136, 116,
         114, 142, 151, 107, 165, 89, 64, 188,
         193, 61, 36, 216, 22, 234, 243, 15,
         14, 242, 235, 23, 217, 37, 60, 192,
         189, 65, 88, 164, 106, 150, 143, 115,
         117, 137, 144, 108, 162, 94, 71, 187,
         198, 58, 35, 223, 17, 237, 244, 8,
         248, 4, 29, 225, 47, 211, 202, 54,
         75, 183, 174, 82, 156, 96, 121, 133,
         131, 127, 102, 154, 84, 168, 177, 77,
         48, 204, 213, 41, 231, 27, 2, 254},
        {0, 253, 231, 26, 211, 46, 52, 201,
         187, 70, 92, 161, 104, 149, 143, 114,
         107, 150, 140, 113, 184, 69, 95, 162,
         208, 45, 55, 202, 3, 254, 228, 25,
         214, 43, 49, 204, 5, 248, 226, 31,
         109, 144, 138, 119, 190, 67, 89, 164,
         189, 64, 90, 167, 110, 147, 137, 116,
         6, 251, 225, 28, 213, 40, 50, 207,
         177, 76, 86, 171, 98, 159, 133, 120,
         10, 247, 237, 16, 217, 36, 62, 195,
         218, 39, 61, 192, 9, 244, 238, 19,
         97, 156, 134, 123, 178, 79, 85, 168,
         103, 154, 128, 125, 180, 73, 83, 174,
         220, 33, 59, 198, 15, 242, 232, 21,
         12, 241, 235, 22, 223, 34, 56, 197,
         183, 74, 80, 173, 100, 153, 131, 126,
         127, 130, 152, 101, 172, 81, 75, 182,
         196, 57, 35, 222, 23, 234, 240, 13,
         20, 233, 243, 14, 199, 58, 32, 221,
         175, 82, 72, 181, 124, 129, 155, 102,
         169, 84, 78, 179, 122, 135, 157, 96,
         18, 239, 245, 8, 193, 60, 38, 219,
         194, 63, 37, 216, 17, 236, 246, 11,
         121, 132, 158, 99, 170, 87, 77, 176,
         206, 51, 41, 212, 29, 224, 250, 7,
         117, 136, 146, 111, 166, 91, 65, 188,
         165, 88, 66, 191, 118, 139, 145, 108,
         30, 227, 249, 4, 205, 48, 42, 215,
         24, 229, 255, 2, 203, 54, 44, 209,
         163, 94, 68, 185, 112, 141, 151, 106,
         115, 142, 148, 105, 160, 93, 71, 186,
         200, 53, 47, 210, 27, 230, 252, 1},
        {0, 254, 225, 31, 223, 33, 62, 192,
         163, 93, 66, 188, 124, 130, 157, 99,
         91, 165, 186, 68, 132, 122, 101, 155,
         248, 6, 25, 231, 39, 217, 198, 56,
         182, 72, 87, 169, 105, 151, 136, 118,
         21, 235, 244, 10, 202, 52, 43, 213,
         237, 19, 12, 242, 50, 204, 211, 45,
         78, 176, 175, 81, 145, 111, 112, 142,
         113, 143, 144, 110, 174, 80, 79, 177,
         210, 44, 51, 205, 13, 243, 236, 18,
         42, 212, 203, 53, 245, 11, 20, 234,
         137, 119, 104, 150, 86, 168, 183, 73,
         199, 57, 38, 216, 24, 230, 249, 7,
         100, 154, 133, 123, 187, 69, 90, 164,
         156, 98, 125, 131, 67, 189, 162, 92,
         63, 193, 222, 32, 224, 30, 1, 255,
         226, 28, 3, 253, 61, 195, 220, 34,
         65, 191, 160, 94, 158, 96, 127, 129,
         185, 71, 88, 166, 102, 152, 135, 121,
         26, 228, 251, 5, 197, 59, 36, 218,
         84, 170, 181, 75, 139, 117, 106, 148,
         247, 9, 22, 232, 40, 214, 201, 55,
         15, 241, 238, 16, 208, 46, 49, 207,
         172, 82, 77, 179, 115, 141, 146, 108,
         147, 109, 114, 140, 76, 178, 173, 83,
         48, 206, 209, 47, 239, 17, 14, 240,
         200, 54, 41, 215, 23, 233, 246, 8,
         107, 149, 138, 116, 180, 74, 85, 171,
         37, 219, 196, 58, 250, 4, 27, 229,
         134, 120, 103, 153, 89, 167, 184, 70,
         126, 128, 159, 97, 161, 95, 64, 190,
         221, 35, 60, 194, 2, 252, 227, 29},
        {0, 255, 227, 28, 219, 36, 56, 199,
         171, 84, 72, 183, 112, 143, 147, 108,
         75, 180, 168, 87, 144, 111, 115, 140,
         224, 31, 3, 252, 59, 196, 216, 39,
         150, 105, 117, 138, 77, 178, 174, 81,
         61, 194, 222, 33, 230, 25, 5, 250,
         221, 34, 62, 193, 6, 249, 229, 26,
         118, 137, 149, 106, 173, 82, 78, 177,
         49, 206, 210, 45, 234, 21, 9, 246,
         154, 101, 121, 134, 65, 190, 162, 93,
         122, 133, 153, 102, 161, 94, 66, 189,
         209, 46, 50, 205, 10, 245, 233, 22,
         167, 88, 68, 187, 124, 131, 159, 96,
         12, 243, 239, 16, 215, 40, 52, 203,
         236, 19, 15, 240, 55, 200, 212, 43,
         71, 184, 164, 91, 156, 99, 127, 128,
         98, 157, 129, 126, 185, 70, 90, 165,
         201, 54, 42, 213, 18, 237, 241, 14,
         41, 214, 202, 53, 242, 13, 17, 238,
         130, 125, 97, 158, 89, 166, 186, 69,
         244, 11, 23, 232, 47, 208, 204, 51,
         95, 160, 188, 67, 132, 123, 103, 152,
         191, 64, 92, 163, 100, 155, 135, 120,
         20, 235, 247, 8, 207, 48, 44, 211,
         83, 172, 176, 79, 136, 119, 107, 148,
         248, 7, 27, 228, 35, 220, 192, 63,
         24, 231, 251, 4, 195, 60, 32, 223,
         179, 76, 80, 175, 104, 151, 139, 116,
         197, 58, 38, 217, 30, 225, 253, 2,
         110, 145, 141, 114, 181, 74, 86, 169,
         142, 113, 109, 146, 85, 170, 182, 73,
         37, 218, 198, 57, 254, 1, 29, 226}};
    
    static const uint8_t gf256_inv_table[256] = {
        0, 1, 142, 244, 71, 167, 122, 186,
        173, 157, 221, 152, 61, 170, 93, 150,
        216, 114, 192, 88, 224, 62, 76, 102,
        144, 222, 85, 128, 160, 131, 75, 42,
        108, 237, 57, 81, 96, 86, 44, 138,
        112, 208, 31, 74, 38, 139, 51, 110,
        72, 137, 111, 46, 164, 195, 64, 94,
        80, 34, 207, 169, 171, 12, 21, 225,
        54, 95, 248, 213, 146, 78, 166, 4,
        48, 136, 43, 30, 22, 103, 69, 147,
        56, 35, 104, 140, 129, 26, 37, 97,
        19, 193, 203, 99, 151, 14, 55, 65,
        36, 87, 202, 91, 185, 196, 23, 77,
        82, 141, 239, 179, 32, 236, 47, 50,
        40, 209, 17, 217, 233, 251, 218, 121,
        219, 119, 6, 187, 132, 205, 254, 252,
        27, 84, 161, 29, 124, 204, 228, 176,
        73, 49, 39, 45, 83, 105, 2, 245,
        24, 223, 68, 79, 155, 188, 15, 92,
        11, 220, 189, 148, 172, 9, 199, 162,
        28, 130, 159, 198, 52, 194, 70, 5,
        206, 59, 13, 60, 156, 8, 190, 183,
        135, 229, 238, 107, 235, 242, 191, 175,
        197, 100, 7, 123, 149, 154, 174, 182,
        18, 89, 165, 53, 101, 184, 163, 158,
        210, 247, 98, 90, 133, 125, 168, 58,
        41, 113, 200, 246, 249, 67, 215, 214,
        16, 115, 118, 120, 153, 10, 25, 145,
        20, 63, 230, 240, 134, 177, 226, 241,
        250, 116, 243, 180, 109, 33, 178, 106,
        227, 231, 181, 234, 3, 143, 211, 201,
        66, 212, 232, 117, 127, 255, 126, 253};
    
    #endif /* GF256_TABLES_H */