⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aes.c

📁 mediastreamer2是开源的网络传输媒体流的库
💻 C
📖 第 1 页 / 共 5 页
字号:
  0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb,   0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883,   0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef,   0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629,   0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035,   0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533,   0x4984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17,   0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4,   0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46,   0x5eea049d, 0x8c355d01, 0x877473fa, 0xb412efb,   0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d,   0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb,   0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a,   0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73,   0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678,   0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2,   0x1dc37216, 0xe2250cbc, 0x3c498b28, 0xd9541ff,   0xa8017139, 0xcb3de08, 0xb4e49cd8, 0x56c19064,   0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0 };#endif/*  * the following tables (aes_sbox, aes_inv_sbox, T4, U4) are * endian-neutral  */static uint8_taes_sbox[256] = {  0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,   0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,   0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,   0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,   0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,   0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,   0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,   0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,   0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,   0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,   0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,   0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,   0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,   0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,   0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,   0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,   0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,   0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,   0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,   0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,   0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,   0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,   0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,   0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,   0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,   0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,   0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,   0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,   0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,   0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,   0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,   0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 };#ifndef CPU_RISCstatic uint8_taes_inv_sbox[256] = {  0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38,   0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,  0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,  0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,  0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d,   0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,  0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2,  0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,  0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,   0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,  0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda,   0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,  0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a,   0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,  0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,   0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,  0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea,   0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,  0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85,   0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,  0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,   0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,  0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20,   0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,  0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31,   0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,  0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,   0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,  0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0,   0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,  0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26,   0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d};#endif /* ! CPU_RISC */#ifdef CPU_RISCstatic uint32_tT4[256] = {   0x63636363, 0x7c7c7c7c, 0x77777777, 0x7b7b7b7b,  0xf2f2f2f2, 0x6b6b6b6b, 0x6f6f6f6f, 0xc5c5c5c5,   0x30303030, 0x01010101, 0x67676767, 0x2b2b2b2b,   0xfefefefe, 0xd7d7d7d7, 0xabababab, 0x76767676,   0xcacacaca, 0x82828282, 0xc9c9c9c9, 0x7d7d7d7d,   0xfafafafa, 0x59595959, 0x47474747, 0xf0f0f0f0,  0xadadadad, 0xd4d4d4d4, 0xa2a2a2a2, 0xafafafaf,  0x9c9c9c9c, 0xa4a4a4a4, 0x72727272, 0xc0c0c0c0,  0xb7b7b7b7, 0xfdfdfdfd, 0x93939393, 0x26262626,  0x36363636, 0x3f3f3f3f, 0xf7f7f7f7, 0xcccccccc,  0x34343434, 0xa5a5a5a5, 0xe5e5e5e5, 0xf1f1f1f1,  0x71717171, 0xd8d8d8d8, 0x31313131, 0x15151515,  0x04040404, 0xc7c7c7c7, 0x23232323, 0xc3c3c3c3,  0x18181818, 0x96969696, 0x05050505, 0x9a9a9a9a,  0x07070707, 0x12121212, 0x80808080, 0xe2e2e2e2,  0xebebebeb, 0x27272727, 0xb2b2b2b2, 0x75757575,  0x09090909, 0x83838383, 0x2c2c2c2c, 0x1a1a1a1a,   0x1b1b1b1b, 0x6e6e6e6e, 0x5a5a5a5a, 0xa0a0a0a0,  0x52525252, 0x3b3b3b3b, 0xd6d6d6d6, 0xb3b3b3b3,  0x29292929, 0xe3e3e3e3, 0x2f2f2f2f, 0x84848484,  0x53535353, 0xd1d1d1d1, 0x00000000, 0xedededed,  0x20202020, 0xfcfcfcfc, 0xb1b1b1b1, 0x5b5b5b5b,  0x6a6a6a6a, 0xcbcbcbcb, 0xbebebebe, 0x39393939,  0x4a4a4a4a, 0x4c4c4c4c, 0x58585858, 0xcfcfcfcf,  0xd0d0d0d0, 0xefefefef, 0xaaaaaaaa, 0xfbfbfbfb,  0x43434343, 0x4d4d4d4d, 0x33333333, 0x85858585,  0x45454545, 0xf9f9f9f9, 0x02020202, 0x7f7f7f7f,  0x50505050, 0x3c3c3c3c, 0x9f9f9f9f, 0xa8a8a8a8,  0x51515151, 0xa3a3a3a3, 0x40404040, 0x8f8f8f8f,  0x92929292, 0x9d9d9d9d, 0x38383838, 0xf5f5f5f5,  0xbcbcbcbc, 0xb6b6b6b6, 0xdadadada, 0x21212121,  0x10101010, 0xffffffff, 0xf3f3f3f3, 0xd2d2d2d2,  0xcdcdcdcd, 0x0c0c0c0c, 0x13131313, 0xecececec,  0x5f5f5f5f, 0x97979797, 0x44444444, 0x17171717,  0xc4c4c4c4, 0xa7a7a7a7, 0x7e7e7e7e, 0x3d3d3d3d,  0x64646464, 0x5d5d5d5d, 0x19191919, 0x73737373,  0x60606060, 0x81818181, 0x4f4f4f4f, 0xdcdcdcdc,  0x22222222, 0x2a2a2a2a, 0x90909090, 0x88888888,  0x46464646, 0xeeeeeeee, 0xb8b8b8b8, 0x14141414,   0xdededede, 0x5e5e5e5e, 0x0b0b0b0b, 0xdbdbdbdb,   0xe0e0e0e0, 0x32323232, 0x3a3a3a3a, 0x0a0a0a0a,  0x49494949, 0x06060606, 0x24242424, 0x5c5c5c5c,  0xc2c2c2c2, 0xd3d3d3d3, 0xacacacac, 0x62626262,   0x91919191, 0x95959595, 0xe4e4e4e4, 0x79797979,  0xe7e7e7e7, 0xc8c8c8c8, 0x37373737, 0x6d6d6d6d,  0x8d8d8d8d, 0xd5d5d5d5, 0x4e4e4e4e, 0xa9a9a9a9,   0x6c6c6c6c, 0x56565656, 0xf4f4f4f4, 0xeaeaeaea,  0x65656565, 0x7a7a7a7a, 0xaeaeaeae, 0x08080808,   0xbabababa, 0x78787878, 0x25252525, 0x2e2e2e2e,  0x1c1c1c1c, 0xa6a6a6a6, 0xb4b4b4b4, 0xc6c6c6c6,  0xe8e8e8e8, 0xdddddddd, 0x74747474, 0x1f1f1f1f,  0x4b4b4b4b, 0xbdbdbdbd, 0x8b8b8b8b, 0x8a8a8a8a,  0x70707070, 0x3e3e3e3e, 0xb5b5b5b5, 0x66666666,  0x48484848, 0x03030303, 0xf6f6f6f6, 0x0e0e0e0e,  0x61616161, 0x35353535, 0x57575757, 0xb9b9b9b9,  0x86868686, 0xc1c1c1c1, 0x1d1d1d1d, 0x9e9e9e9e,  0xe1e1e1e1, 0xf8f8f8f8, 0x98989898, 0x11111111,   0x69696969, 0xd9d9d9d9, 0x8e8e8e8e, 0x94949494,  0x9b9b9b9b, 0x1e1e1e1e, 0x87878787, 0xe9e9e9e9,  0xcececece, 0x55555555, 0x28282828, 0xdfdfdfdf,  0x8c8c8c8c, 0xa1a1a1a1, 0x89898989, 0x0d0d0d0d,  0xbfbfbfbf, 0xe6e6e6e6, 0x42424242, 0x68686868,  0x41414141, 0x99999999, 0x2d2d2d2d, 0x0f0f0f0f,  0xb0b0b0b0, 0x54545454, 0xbbbbbbbb, 0x16161616};static uint32_t U4[256] = {  0x52525252, 0x9090909, 0x6a6a6a6a, 0xd5d5d5d5,   0x30303030, 0x36363636, 0xa5a5a5a5, 0x38383838,   0xbfbfbfbf, 0x40404040, 0xa3a3a3a3, 0x9e9e9e9e,   0x81818181, 0xf3f3f3f3, 0xd7d7d7d7, 0xfbfbfbfb,   0x7c7c7c7c, 0xe3e3e3e3, 0x39393939, 0x82828282,   0x9b9b9b9b, 0x2f2f2f2f, 0xffffffff, 0x87878787,   0x34343434, 0x8e8e8e8e, 0x43434343, 0x44444444,   0xc4c4c4c4, 0xdededede, 0xe9e9e9e9, 0xcbcbcbcb,   0x54545454, 0x7b7b7b7b, 0x94949494, 0x32323232,   0xa6a6a6a6, 0xc2c2c2c2, 0x23232323, 0x3d3d3d3d,   0xeeeeeeee, 0x4c4c4c4c, 0x95959595, 0xb0b0b0b,   0x42424242, 0xfafafafa, 0xc3c3c3c3, 0x4e4e4e4e,   0x8080808, 0x2e2e2e2e, 0xa1a1a1a1, 0x66666666,   0x28282828, 0xd9d9d9d9, 0x24242424, 0xb2b2b2b2,   0x76767676, 0x5b5b5b5b, 0xa2a2a2a2, 0x49494949,   0x6d6d6d6d, 0x8b8b8b8b, 0xd1d1d1d1, 0x25252525,   0x72727272, 0xf8f8f8f8, 0xf6f6f6f6, 0x64646464,   0x86868686, 0x68686868, 0x98989898, 0x16161616,   0xd4d4d4d4, 0xa4a4a4a4, 0x5c5c5c5c, 0xcccccccc,   0x5d5d5d5d, 0x65656565, 0xb6b6b6b6, 0x92929292,   0x6c6c6c6c, 0x70707070, 0x48484848, 0x50505050,   0xfdfdfdfd, 0xedededed, 0xb9b9b9b9, 0xdadadada,   0x5e5e5e5e, 0x15151515, 0x46464646, 0x57575757,   0xa7a7a7a7, 0x8d8d8d8d, 0x9d9d9d9d, 0x84848484,   0x90909090, 0xd8d8d8d8, 0xabababab, 0x0,   0x8c8c8c8c, 0xbcbcbcbc, 0xd3d3d3d3, 0xa0a0a0a,   0xf7f7f7f7, 0xe4e4e4e4, 0x58585858, 0x5050505,   0xb8b8b8b8, 0xb3b3b3b3, 0x45454545, 0x6060606,   0xd0d0d0d0, 0x2c2c2c2c, 0x1e1e1e1e, 0x8f8f8f8f,   0xcacacaca, 0x3f3f3f3f, 0xf0f0f0f, 0x2020202,   0xc1c1c1c1, 0xafafafaf, 0xbdbdbdbd, 0x3030303,   0x1010101, 0x13131313, 0x8a8a8a8a, 0x6b6b6b6b,   0x3a3a3a3a, 0x91919191, 0x11111111, 0x41414141,   0x4f4f4f4f, 0x67676767, 0xdcdcdcdc, 0xeaeaeaea,   0x97979797, 0xf2f2f2f2, 0xcfcfcfcf, 0xcececece,   0xf0f0f0f0, 0xb4b4b4b4, 0xe6e6e6e6, 0x73737373,   0x96969696, 0xacacacac, 0x74747474, 0x22222222,   0xe7e7e7e7, 0xadadadad, 0x35353535, 0x85858585,   0xe2e2e2e2, 0xf9f9f9f9, 0x37373737, 0xe8e8e8e8,   0x1c1c1c1c, 0x75757575, 0xdfdfdfdf, 0x6e6e6e6e,   0x47474747, 0xf1f1f1f1, 0x1a1a1a1a, 0x71717171,   0x1d1d1d1d, 0x29292929, 0xc5c5c5c5, 0x89898989,   0x6f6f6f6f, 0xb7b7b7b7, 0x62626262, 0xe0e0e0e,   0xaaaaaaaa, 0x18181818, 0xbebebebe, 0x1b1b1b1b,   0xfcfcfcfc, 0x56565656, 0x3e3e3e3e, 0x4b4b4b4b,   0xc6c6c6c6, 0xd2d2d2d2, 0x79797979, 0x20202020,   0x9a9a9a9a, 0xdbdbdbdb, 0xc0c0c0c0, 0xfefefefe,   0x78787878, 0xcdcdcdcd, 0x5a5a5a5a, 0xf4f4f4f4,   0x1f1f1f1f, 0xdddddddd, 0xa8a8a8a8, 0x33333333,   0x88888888, 0x7070707, 0xc7c7c7c7, 0x31313131,   0xb1b1b1b1, 0x12121212, 0x10101010, 0x59595959,   0x27272727, 0x80808080, 0xecececec, 0x5f5f5f5f,   0x60606060, 0x51515151, 0x7f7f7f7f, 0xa9a9a9a9,   0x19191919, 0xb5b5b5b5, 0x4a4a4a4a, 0xd0d0d0d,   0x2d2d2d2d, 0xe5e5e5e5, 0x7a7a7a7a, 0x9f9f9f9f,   0x93939393, 0xc9c9c9c9, 0x9c9c9c9c, 0xefefefef,   0xa0a0a0a0, 0xe0e0e0e0, 0x3b3b3b3b, 0x4d4d4d4d,   0xaeaeaeae, 0x2a2a2a2a, 0xf5f5f5f5, 0xb0b0b0b0,   0xc8c8c8c8, 0xebebebeb, 0xbbbbbbbb, 0x3c3c3c3c,   0x83838383, 0x53535353, 0x99999999, 0x61616161,   0x17171717, 0x2b2b2b2b, 0x4040404, 0x7e7e7e7e,   0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626,   0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363,   0x55555555, 0x21212121, 0xc0c0c0c, 0x7d7d7d7d};#endif /* CPU_RISC *//* aes internals */extern debug_module_t mod_aes_icm;voidaes_expand_encryption_key(const v128_t *key, 			  aes_expanded_key_t expanded_key) {  int i;  gf2_8 rc;  /* initialize round constant */  rc = 1;  expanded_key[0].v32[0] = key->v32[0];  expanded_key[0].v32[1] = key->v32[1];  expanded_key[0].v32[2] = key->v32[2];  expanded_key[0].v32[3] = key->v32[3];#if 0  debug_print(mod_aes_icm, 	      "expanded key[0]:  %s", v128_hex_string(&expanded_key[0])); #endif  /* loop over round keys */  for (i=1; i < 11; i++) {    /* munge first word of round key */    expanded_key[i].v8[0] = aes_sbox[expanded_key[i-1].v8[13]] ^ rc;    expanded_key[i].v8[1] = aes_sbox[expanded_key[i-1].v8[14]];    expanded_key[i].v8[2] = aes_sbox[expanded_key[i-1].v8[15]];    expanded_key[i].v8[3] = aes_sbox[expanded_key[i-1].v8[12]];    expanded_key[i].v32[0] ^=  expanded_key[i-1].v32[0];  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -