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

📄 aes.cpp

📁 mysql-5.0.33源码包
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    AS2(    movd  mm1, esi                                              )      /*    Put2 (mm2) =            Td0[GETBYTE(get2, rs24)] ^            Td1[GETBYTE(get1, rs16)] ^            Td2[GETBYTE(get0, rs 8)] ^            Td3[GETBYTE(tet3,     )]        */    AS2(    mov   esi, ecx                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )                                                        AS2(    mov   edi, ebx                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )    AS2(    movzx edi, ah                                               )    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )    AS2(    movzx edi, dl                                               )    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )    AS2(    movd  mm2, esi                                              )      /*    Put3 (edx) =            Td0[GETBYTE(get3, rs24)] ^            Td1[GETBYTE(get2, rs16)] ^            Td2[GETBYTE(get1, rs 8)] ^            Td3[GETBYTE(tet0,     )]        */    AS2(    mov   esi, edx                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   edx, DWORD PTR [ebp + esi*4]                          )                                                        AS2(    mov   edi, ecx                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    xor   edx, DWORD PTR [ebp + 1024 + edi*4]                   )    AS2(    movzx esi, bh                                               )    AS2(    xor   edx, DWORD PTR [ebp + 2048 + esi*4]                   )    AS2(    movzx edi, al                                               )    AS2(    xor   edx, DWORD PTR [ebp + 3072 + edi*4]                   )            // xOr    AS2(    movd  esi, mm6                      )   //  rk    AS2(    add   esi, 16                                               )    AS2(    movd  mm6, esi                      )   //  save back    AS2(    movd  eax, mm0                                              )    AS2(    movd  ebx, mm1                                              )    AS2(    movd  ecx, mm2                                              )    AS2(    xor   eax, DWORD PTR [esi]                                  )    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )    AS2(    xor   edx, DWORD PTR [esi + 12]                             )    AS2(    movd  edi, mm5                                              )    AS1(    dec   edi                                                   )    AS2(    movd  mm5, edi                                              )    AS1(    jnz   loop2                                                 )            // last round            /*            Put0 (mm0) =                (Td4[get0, rs24] & 0xff000000) ^  h = 4278190080                (Td4[get3, rs16] & 0x00ff0000) ^  h =   16711680                (Td4[get2, rs 8] & 0x0000ff00) ^  h =      65280                (Td4[get1, rs 0] & 0x000000ff)    h =        255            */    AS2(    mov   esi, eax                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )    AS2(    and   esi, 4278190080                                       )    AS2(    mov   edi, edx                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 16711680                                         )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, ch                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 65280                                            )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, bl                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 255                                              )    AS2(    xor   esi, edi                                              )    AS2(    movd  mm0, esi                                              )            /*            Put1 (mm1) =                (Td4[get1, rs24] & 0xff000000) ^  h = 4278190080                (Td4[get0, rs16] & 0x00ff0000) ^  h =   16711680                (Td4[get3, rs 8] & 0x0000ff00) ^  h =      65280                (Td4[get2, rs 0] & 0x000000ff)    h =        255            */    AS2(    mov   esi, ebx                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )    AS2(    and   esi, 4278190080                                       )    AS2(    mov   edi, eax                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 16711680                                         )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, dh                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 65280                                            )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, cl                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 255                                              )    AS2(    xor   esi, edi                                              )    AS2(    movd  mm1, esi                                              )            /*            Put2 (mm2) =                (Td4[get2, rs24] & 0xff000000) ^  h = 4278190080                (Td4[get1, rs16] & 0x00ff0000) ^  h =   16711680                (Td4[get0, rs 8] & 0x0000ff00) ^  h =      65280                (Td4[get3, rs 0] & 0x000000ff)    h =        255            */    AS2(    mov   esi, ecx                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )    AS2(    and   esi, 4278190080                                       )    AS2(    mov   edi, ebx                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 16711680                                         )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, ah                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 65280                                            )    AS2(    xor   esi, edi                                              )    AS2(    movzx edi, dl                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   edi, 255                                              )    AS2(    xor   esi, edi                                              )    AS2(    movd  mm2, esi                                              )            /*            Put3 (edx) =                (Td4[get3, rs24] & 0xff000000) ^  h = 4278190080                (Td4[get2, rs16] & 0x00ff0000) ^  h =   16711680                (Td4[get1, rs 8] & 0x0000ff00) ^  h =      65280                (Td4[get0, rs 0] & 0x000000ff)    h =        255            */    AS2(    mov   esi, edx                                              )    AS2(    shr   esi, 24                                               )    AS2(    mov   edx, DWORD PTR [ebp + 4096 + esi*4]                   )    AS2(    and   edx, 4278190080                                       )    AS2(    mov   edi, ecx                                              )    AS2(    shr   edi, 16                                               )    AS2(    and   edi, 255                                              )    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   esi, 16711680                                         )    AS2(    xor   edx, esi                                              )    AS2(    movzx esi, bh                                               )    AS2(    mov   edi, DWORD PTR [ebp + 4096 + esi*4]                   )    AS2(    and   edi, 65280                                            )    AS2(    xor   edx, edi                                              )    AS2(    movzx edi, al                                               )    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )    AS2(    and   esi, 255                                              )    AS2(    xor   edx, esi                                              )            // xOr    AS2(    movd  esi, mm6                      )   //  rk    AS2(    add   esi, 16                                               )    AS2(    movd   eax, mm0                                             )    AS2(    movd   ebx, mm1                                             )    AS2(    movd   ecx, mm2                                             )    AS2(    xor   eax, DWORD PTR [esi]                                  )    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )    AS2(    xor   edx, DWORD PTR [esi + 12]                             )    // end    AS2(    movd  ebp, mm7                                              )            // swap    AS1(    bswap eax                                                   )    AS1(    bswap ebx                                                   )    AS1(    bswap ecx                                                   )    AS1(    bswap edx                                                   )            // store    #ifdef __GNUC__        AS2(    mov esi, DWORD PTR [ebp + 16]       )   //  outBlock    #else        AS2(    mov esi, DWORD PTR [ebp + 12]       )   //  outBlock    #endif    AS2(    mov DWORD PTR [esi],      eax                               )    AS2(    mov DWORD PTR [esi +  4], ebx                               )    AS2(    mov DWORD PTR [esi +  8], ecx                               )    AS2(    mov DWORD PTR [esi + 12], edx                               )    EPILOG()}#endif // defined(DO_AES_ASM)const word32 AES::Te[5][256] = {{    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,    0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,    0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,    0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,    0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,    0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,    0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,    0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,    0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,    0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,    0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,    0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,    0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,    0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,    0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,    0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,    0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,    0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,    0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,    0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,    0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,    0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,    0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,    0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,    0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,    0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,    0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,    0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,    0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,    0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,    0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,    0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,    0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,    0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,    0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,    0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,    0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,    0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,    0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,    0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,    0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,    0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,    0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,    0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,    0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,    0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,    0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,    0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,    0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,    0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,    0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,    0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,    0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,    0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,    0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,    0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,    0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,    0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,    0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,    0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,    0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,

⌨️ 快捷键说明

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