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

📄 aes_sp800-38a.lst

📁 本程序为AT91SAM7X256-BasicAES-IAR430A-1_2
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \              BEE2        
   \   00001224   2E409F96E93D       DC32 2527019054, 293486057, 706188147, 4092785136, 4160157172
   \              7E117393172A
   \              F0F1F2F3F4F5
   \              F6F7        
   \   00001238   F8F9FAFBFCFD       DC32 4227529208, 4294901244, 370507307, 2798825000, 2283141035
   \              FEFF2B7E1516
   \              28AED2A6ABF7
   \              1588        
   \   0000124C   09CF4F3C9806       DC32 1011863305, 1811285656, 4294799481, 2065176454, 4294836153
   \              F66B7970FDFF
   \              8617187BB9FF
   \              FDFF        
   \   00001260   AE2D8A571E03       DC32 1468673454, 2628518686, 2893002654, 1368305477, 4092785136
   \              AC9C9EB76FAC
   \              45AF8E51F0F1
   \              F2F3        
   \   00001274   F4F5F6F7F8F9       DC32 4160157172, 4227529208, 4294901244, 370507307, 2798825000
   \              FAFBFCFDFEFF
   \              2B7E151628AE
   \              D2A6        
   \   00001288   ABF7158809CF       DC32 2283141035, 1011863305, 1054860378, 1590941147, 34164571
   \              4F3C5AE4DF3E
   \              DBD5D35E5B4F
   \              0902        
   \   0000129C   0DB03EAB30C8       DC32 2873012237, 1176291376, 300178595, 432143333, 4015131162
   \              1C46A35CE411
   \              E5FBC1191A0A
   \              52EF        
   \   000012B0   F0F1F2F3F4F5       DC32 4092785136, 4160157172, 4227529208, 4294901244, 370507307
   \              F6F7F8F9FAFB
   \              FCFDFEFF2B7E
   \              1516        
   \   000012C4   28AED2A6ABF7       DC32 2798825000, 2283141035, 1011863305, 3659334430, 3506683439
   \              158809CF4F3C
   \              1E031DDA2FBE
   \              03D1        
   \   000012D8   792170A0F300       DC32 2691703161, 4003201267, 1160028150, 396054495, 2067868589
   \              9CEEF69F2445
   \              DF4F9B17AD2B
   \              417B        
   \   000012EC   E66C3710F0F1       DC32 272067814, 4092785136, 4160157172, 4227529208, 4294901244
   \              F2F3F4F5F6F7
   \              F8F9FAFBFCFD
   \              FEFF        
     21          

   \                                 In segment DATA_Z, align 4, align-sorted
     22          unsigned int TestBuf[4];
   \                     TestBuf:
   \   00000000                      DS8 16
     23          
     24          //*----------------------------------------------------------------------------
     25          //* \fn    AT91F_AES_SetKeys
     26          //* \brief
     27          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     28          void AT91F_AES_SetKeys(const unsigned int array[][16],unsigned int index)
     29          {
   \                     AT91F_AES_SetKeys:
   \   00000000   70B5               PUSH        {R4-R6,LR}
   \   00000002   041C               MOV         R4,R0
   \   00000004   0D1C               MOV         R5,R1
     30            unsigned char i;
     31          
     32            for (i=0;i<4;i++)
   \   00000006   0020               MOV         R0,#+0
   \   00000008   061C               MOV         R6,R0
   \                     ??AT91F_AES_SetKeys_0:
   \   0000000A   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   0000000C   360E               LSR         R6,R6,#+0x18
   \   0000000E   042E               CMP         R6,#+0x4
   \   00000010   0FD2               BCS         ??AT91F_AES_SetKeys_1
     33              AT91F_AES_SetCryptoKey(AT91C_BASE_AES,i,array[index][i+KEY_OFFSET]);
   \   00000012   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   00000014   360E               LSR         R6,R6,#+0x18
   \   00000016   0420               MOV         R0,#+0x4
   \   00000018   7043               MUL         R0,R6
   \   0000001A   4021               MOV         R1,#+0x40
   \   0000001C   6943               MUL         R1,R5
   \   0000001E   6118               ADD         R1,R4,R1
   \   00000020   0A58               LDR         R2,[R1, R0]
   \   00000022   311C               MOV         R1,R6
   \   00000024   0906               LSL         R1,R1,#+0x18       ;; ZeroExt     R1,R1,#+0x18,#+0x18
   \   00000026   090E               LSR         R1,R1,#+0x18
   \   00000028   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   0000002A   ........           _BLF        AT91F_AES_SetCryptoKey,AT91F_AES_SetCryptoKey??rT
   \   0000002E   761C               ADD         R6,#+0x1
   \   00000030   EBE7               B           ??AT91F_AES_SetKeys_0
     34          }
   \                     ??AT91F_AES_SetKeys_1:
   \   00000032   70BC               POP         {R4-R6}
   \   00000034   01BC               POP         {R0}
   \   00000036   0047               BX          R0                 ;; return
     35          
     36          //*----------------------------------------------------------------------------
     37          //* \fn    AT91F_AES_SetInitializationVectors
     38          //* \brief
     39          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     40          void AT91F_AES_SetInitializationVectors(const unsigned int array[][16],unsigned int index)
     41          {
   \                     AT91F_AES_SetInitializationVectors:
   \   00000000   70B5               PUSH        {R4-R6,LR}
   \   00000002   041C               MOV         R4,R0
   \   00000004   0D1C               MOV         R5,R1
     42            unsigned char i;
     43          
     44            for (i=0;i<4;i++)
   \   00000006   0020               MOV         R0,#+0
   \   00000008   061C               MOV         R6,R0
   \                     ??AT91F_AES_SetInitializationVectors_0:
   \   0000000A   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   0000000C   360E               LSR         R6,R6,#+0x18
   \   0000000E   042E               CMP         R6,#+0x4
   \   00000010   10D2               BCS         ??AT91F_AES_SetInitializationVectors_1
     45              AT91F_AES_SetInitializationVector(AT91C_BASE_AES,i,array[index][i+INIT_OFFSET]);
   \   00000012   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   00000014   360E               LSR         R6,R6,#+0x18
   \   00000016   0420               MOV         R0,#+0x4
   \   00000018   7043               MUL         R0,R6
   \   0000001A   4021               MOV         R1,#+0x40
   \   0000001C   6943               MUL         R1,R5
   \   0000001E   6118               ADD         R1,R4,R1
   \   00000020   0818               ADD         R0,R1,R0
   \   00000022   026B               LDR         R2,[R0, #+0x30]
   \   00000024   311C               MOV         R1,R6
   \   00000026   0906               LSL         R1,R1,#+0x18       ;; ZeroExt     R1,R1,#+0x18,#+0x18
   \   00000028   090E               LSR         R1,R1,#+0x18
   \   0000002A   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   0000002C   ........           _BLF        AT91F_AES_SetInitializationVector,AT91F_AES_SetInitializationVector??rT
   \   00000030   761C               ADD         R6,#+0x1
   \   00000032   EAE7               B           ??AT91F_AES_SetInitializationVectors_0
     46          }
   \                     ??AT91F_AES_SetInitializationVectors_1:
   \   00000034   70BC               POP         {R4-R6}
   \   00000036   01BC               POP         {R0}
   \   00000038   0047               BX          R0                 ;; return
     47          
     48          //*----------------------------------------------------------------------------
     49          //* \fn    AT91F_AES_SetPlainText
     50          //* \brief
     51          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     52          void AT91F_AES_SetPlainText(const unsigned int array[][16],unsigned int index)
     53          {
   \                     AT91F_AES_SetPlainText:
   \   00000000   70B5               PUSH        {R4-R6,LR}
   \   00000002   041C               MOV         R4,R0
   \   00000004   0D1C               MOV         R5,R1
     54            unsigned char i;
     55          
     56            for (i=0;i<4;i++)
   \   00000006   0020               MOV         R0,#+0
   \   00000008   061C               MOV         R6,R0
   \                     ??AT91F_AES_SetPlainText_0:
   \   0000000A   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   0000000C   360E               LSR         R6,R6,#+0x18
   \   0000000E   042E               CMP         R6,#+0x4
   \   00000010   10D2               BCS         ??AT91F_AES_SetPlainText_1
     57              AT91F_AES_InputData(AT91C_BASE_AES,i,array[index][i+IN_OFFSET]);
   \   00000012   3606               LSL         R6,R6,#+0x18       ;; ZeroExt     R6,R6,#+0x18,#+0x18
   \   00000014   360E               LSR         R6,R6,#+0x18
   \   00000016   0420               MOV         R0,#+0x4
   \   00000018   7043               MUL         R0,R6
   \   0000001A   4021               MOV         R1,#+0x40
   \   0000001C   6943               MUL         R1,R5
   \   0000001E   6118               ADD         R1,R4,R1
   \   00000020   0818               ADD         R0,R1,R0
   \   00000022   0269               LDR         R2,[R0, #+0x10]
   \   00000024   311C               MOV         R1,R6
   \   00000026   0906               LSL         R1,R1,#+0x18       ;; ZeroExt     R1,R1,#+0x18,#+0x18
   \   00000028   090E               LSR         R1,R1,#+0x18
   \   0000002A   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   0000002C   ........           _BLF        AT91F_AES_InputData,AT91F_AES_InputData??rT
   \   00000030   761C               ADD         R6,#+0x1
   \   00000032   EAE7               B           ??AT91F_AES_SetPlainText_0
     58          }
   \                     ??AT91F_AES_SetPlainText_1:
   \   00000034   70BC               POP         {R4-R6}
   \   00000036   01BC               POP         {R0}
   \   00000038   0047               BX          R0                 ;; return
     59          
     60          //*----------------------------------------------------------------------------
     61          //* \fn    AT91F_AES_Manual_Auto_Mode
     62          //* \brief
     63          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     64          unsigned int AT91F_AES_Manual_Auto_Mode(unsigned int mode,unsigned int startmode,unsigned int cipher,unsigned int index)
     65          {
   \                     AT91F_AES_Manual_Auto_Mode:
   \   00000000   F5B5               PUSH        {R0,R2,R4-R7,LR}
   \   00000002   83B0               SUB         SP,#+0xC
   \   00000004   0C1C               MOV         R4,R1
   \   00000006   1D1C               MOV         R5,R3
     66            unsigned int out1,out2,out3,out4;
     67            unsigned char i;
     68          
     69            AT91F_AES_SoftReset(AT91C_BASE_AES);
   \   00000008   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   0000000A   ........           _BLF        AT91F_AES_SoftReset,AT91F_AES_SoftReset??rT
     70            AT91F_AES_CfgModeReg(AT91C_BASE_AES,cipher|startmode|mode);
   \   0000000E   0498               LDR         R0,[SP, #+0x10]
   \   00000010   2043               ORR         R0,R4
   \   00000012   0399               LDR         R1,[SP, #+0xC]
   \   00000014   0143               ORR         R1,R0
   \   00000016   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   00000018   ........           _BLF        AT91F_AES_CfgModeReg,AT91F_AES_CfgModeReg??rT
     71          
     72            // Set Key
     73            AT91F_AES_SetKeys(aes_sp800_38a,index);
   \   0000001C   291C               MOV         R1,R5
   \   0000001E   ....               LDR         R0,??DataTable37   ;; aes_sp800_38a
   \   00000020   ........           BL          AT91F_AES_SetKeys
     74          
     75            // Set Init Vector for Chained Modes
     76            if(mode != AT91C_AES_OPMOD_ECB)
   \   00000024   0398               LDR         R0,[SP, #+0xC]
   \   00000026   0028               CMP         R0,#+0
   \   00000028   03D0               BEQ         ??AT91F_AES_Manual_Auto_Mode_0
     77              AT91F_AES_SetInitializationVectors(aes_sp800_38a,index);
   \   0000002A   291C               MOV         R1,R5
   \   0000002C   ....               LDR         R0,??DataTable37   ;; aes_sp800_38a
   \   0000002E   ........           BL          AT91F_AES_SetInitializationVectors
     78          
     79            for(i=0;i<4;i++,index++) {
   \                     ??AT91F_AES_Manual_Auto_Mode_0:
   \   00000032   0020               MOV         R0,#+0
   \   00000034   071C               MOV         R7,R0
   \                     ??AT91F_AES_Manual_Auto_Mode_1:
   \   00000036   3F06               LSL         R7,R7,#+0x18       ;; ZeroExt     R7,R7,#+0x18,#+0x18
   \   00000038   3F0E               LSR         R7,R7,#+0x18
   \   0000003A   042F               CMP         R7,#+0x4
   \   0000003C   52D2               BCS         ??AT91F_AES_Manual_Auto_Mode_2
     80          
     81              // DATRDY flag already cleared (output data reg read before)
     82              test = AT91C_TEST_NOK;
   \   0000003E   ....               LDR         R0,??DataTable35   ;; test
   \   00000040   0021               MOV         R1,#+0
   \   00000042   0170               STRB        R1,[R0, #+0]
     83              AT91F_AES_EnableIt(AT91C_BASE_AES,AT91C_AES_DATRDY);
   \   00000044   0121               MOV         R1,#+0x1
   \   00000046   ....               LDR         R0,??DataTable36   ;; 0xfffa4000
   \   00000048   ........           _BLF        AT91F_AES_EnableIt,AT91F_AES_EnableIt??rT
     84          
     85              // Start Processing (for AUTO Mode)
     86              // 4 accesses required for 128-bit modes to Start Processing (for AUTO Mode)
     87              AT91F_AES_SetPlainText(aes_sp800_38a,index);
   \   0000004C   291C               MOV         R1,R5
   \   0000004E   ....               LDR         R0,??DataT

⌨️ 快捷键说明

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