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

📄 tdes_fips81.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 5 页
字号:
    208              TestBuf[i] = tdes_fips81[index][i+IN_OFFSET];
   \                     ??AT91F_TDES_PDC_Mode_2:
   \   0000004C   9800               LSL         R0,R3,#+0x2
   \   0000004E   0D1C               MOV         R5,R1
   \   00000050   1835               ADD         R5,#+0x18
   \   00000052   2D58               LDR         R5,[R5, R0]
   \   00000054   1550               STR         R5,[R2, R0]
   \   00000056   5B1C               ADD         R3,R3,#+0x1
   \   00000058   1806               LSL         R0,R3,#+0x18
   \   0000005A   000E               LSR         R0,R0,#+0x18
   \   0000005C   0228               CMP         R0,#+0x2
   \   0000005E   F5D3               BCC         ??AT91F_TDES_PDC_Mode_2
   \   00000060   1F48               LDR         R0,??AT91F_TDES_PDC_Mode_1+0x4  ;; 0xfffa8104
   \   00000062   204B               LDR         R3,??AT91F_TDES_PDC_Mode_1+0x8  ;; 0xfffa8100
   \   00000064   204D               LDR         R5,??AT91F_TDES_PDC_Mode_1+0xC  ;; 0xfffa810c
   \   00000066   214E               LDR         R6,??AT91F_TDES_PDC_Mode_1+0x10  ;; 0xfffa8108
   \   00000068   C027               MOV         R7,#+0xC0
   \   0000006A   BF02               LSL         R7,R7,#+0xA        ;; #+0x30000
   \   0000006C   BC42               CMP         R4,R7
   \   0000006E   3260               STR         R2,[R6, #+0]
   \   00000070   01D1               BNE         ??AT91F_TDES_PDC_Mode_3
    209          
    210            // Set xCR & xPR
    211            if(submode == AT91C_TDES_CFBS_8_BIT) {
    212              AT91F_PDC_SetTx(AT91C_BASE_PDC_TDES, (char *)TestBuf, 1);
   \   00000072   0126               MOV         R6,#+0x1
   \   00000074   00E0               B           ??AT91F_TDES_PDC_Mode_4
    213              AT91F_PDC_SetRx(AT91C_BASE_PDC_TDES, (char *)TestBuf, 1);
    214            }	else {
    215              AT91F_PDC_SetTx(AT91C_BASE_PDC_TDES, (char *)TestBuf, 2);
   \                     ??AT91F_TDES_PDC_Mode_3:
   \   00000076   0226               MOV         R6,#+0x2
   \                     ??AT91F_TDES_PDC_Mode_4:
   \   00000078   2E60               STR         R6,[R5, #+0]
    216              AT91F_PDC_SetRx(AT91C_BASE_PDC_TDES, (char *)TestBuf, 2);
   \   0000007A   1A60               STR         R2,[R3, #+0]
   \   0000007C   0660               STR         R6,[R0, #+0]
    217            }
    218          
    219            // Enable ITs
    220            test = AT91C_TEST_NOK;
   \   0000007E   ....               LDR         R0,??DataTable25   ;; test
   \   00000080   0023               MOV         R3,#+0
   \   00000082   0370               STRB        R3,[R0, #+0]
    221            AT91F_TDES_EnableIt(AT91C_BASE_TDES,AT91C_TDES_ENDRX);
   \   00000084   ....               LDR         R3,??DataTable26   ;; 0xfffa8010
   \   00000086   0225               MOV         R5,#+0x2
   \   00000088   1D60               STR         R5,[R3, #+0]
    222          
    223            // Enable PDC => Start Tx/Rx
    224            AT91C_BASE_PDC_TDES->PDC_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
   \   0000008A   194B               LDR         R3,??AT91F_TDES_PDC_Mode_1+0x14  ;; 0xfffa8120
   \   0000008C   FF25               MOV         R5,#+0xFF
   \   0000008E   AD1C               ADD         R5,R5,#+0x2        ;; #+0x101
   \   00000090   1D60               STR         R5,[R3, #+0]
    225          
    226            // Wait end of Transfer
    227            while(test != AT91C_TEST_OK);
   \                     ??AT91F_TDES_PDC_Mode_5:
   \   00000092   0578               LDRB        R5,[R0, #+0]
   \   00000094   012D               CMP         R5,#+0x1
   \   00000096   FCD1               BNE         ??AT91F_TDES_PDC_Mode_5
    228          
    229            // Disable PDC
    230            AT91C_BASE_PDC_TDES->PDC_PTCR = AT91C_PDC_TXTDIS | AT91C_PDC_RXTDIS;
   \   00000098   1648               LDR         R0,??AT91F_TDES_PDC_Mode_1+0x18  ;; 0x202
   \   0000009A   1860               STR         R0,[R3, #+0]
    231          
    232            // Check Output Text
    233            if(submode == AT91C_TDES_CFBS_8_BIT) {
   \   0000009C   ....               LDR         R0,??DataTable28   ;; _Stdout
   \   0000009E   BC42               CMP         R4,R7
   \   000000A0   09D1               BNE         ??AT91F_TDES_PDC_Mode_6
    234              if( ((char) *TestBuf) != (char)(tdes_fips81[index][0+OUT_OFFSET]) )
   \   000000A2   1268               LDR         R2,[R2, #+0]
   \   000000A4   096A               LDR         R1,[R1, #+0x20]
   \   000000A6   1206               LSL         R2,R2,#+0x18
   \   000000A8   120E               LSR         R2,R2,#+0x18
   \   000000AA   0906               LSL         R1,R1,#+0x18
   \   000000AC   090E               LSR         R1,R1,#+0x18
   \   000000AE   8A42               CMP         R2,R1
   \   000000B0   12D0               BEQ         ??AT91F_TDES_PDC_Mode_7
    235                return FALSE;
   \                     ??AT91F_TDES_PDC_Mode_8:
   \   000000B2   0020               MOV         R0,#+0
   \   000000B4   F8BD               POP         {R3-R7,PC}         ;; return
    236            }
    237            else {
    238              for(i=0;i<0x2;i++) {
   \                     ??AT91F_TDES_PDC_Mode_6:
   \   000000B6   0023               MOV         R3,#+0
    239                if( TestBuf[i] != (tdes_fips81[index][i+OUT_OFFSET]) ) {
   \                     ??AT91F_TDES_PDC_Mode_9:
   \   000000B8   9C00               LSL         R4,R3,#+0x2
   \   000000BA   1559               LDR         R5,[R2, R4]
   \   000000BC   0E1C               MOV         R6,R1
   \   000000BE   2036               ADD         R6,#+0x20
   \   000000C0   3459               LDR         R4,[R6, R4]
   \   000000C2   A542               CMP         R5,R4
   \   000000C4   03D0               BEQ         ??AT91F_TDES_PDC_Mode_10
    240                  TRACE_ERROR("........ => FAILED\n\r");
   \   000000C6   0C49               LDR         R1,??AT91F_TDES_PDC_Mode_1+0x1C  ;; tdes_fips81 + 1824
   \   000000C8   ........           _BLF        fprintf,fprintf??rT
   \   000000CC   F1E7               B           ??AT91F_TDES_PDC_Mode_8
    241                  return FALSE;
    242                }
    243              }
   \                     ??AT91F_TDES_PDC_Mode_10:
   \   000000CE   5B1C               ADD         R3,R3,#+0x1
   \   000000D0   1C06               LSL         R4,R3,#+0x18
   \   000000D2   240E               LSR         R4,R4,#+0x18
   \   000000D4   022C               CMP         R4,#+0x2
   \   000000D6   EFD3               BCC         ??AT91F_TDES_PDC_Mode_9
    244            }			
    245            TRACE_INFO("........ => OK\n\r");
   \                     ??AT91F_TDES_PDC_Mode_7:
   \   000000D8   0849               LDR         R1,??AT91F_TDES_PDC_Mode_1+0x20  ;; tdes_fips81 + 1848
   \   000000DA   ....               B           ??Subroutine0_0
   \                     ??AT91F_TDES_PDC_Mode_1:
   \   000000DC   ........           DC32        TestBuf
   \   000000E0   0481FAFF           DC32        0xfffa8104
   \   000000E4   0081FAFF           DC32        0xfffa8100
   \   000000E8   0C81FAFF           DC32        0xfffa810c
   \   000000EC   0881FAFF           DC32        0xfffa8108
   \   000000F0   2081FAFF           DC32        0xfffa8120
   \   000000F4   02020000           DC32        0x202
   \   000000F8   ........           DC32        tdes_fips81 + 1824
   \   000000FC   ........           DC32        tdes_fips81 + 1848
    246            return TRUE;
    247          }
    248          
    249          //*----------------------------------------------------------------------------
    250          //* \fn    AT91F_BasicTestSuite
    251          //* \brief
    252          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
    253          void AT91F_BasicTestSuite(void)
    254          {
   \                     AT91F_BasicTestSuite:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
    255            // ECB
    256            TRACE_INFO("\n\r1a. ECB PDC Encryption      ");
   \   00000002   ....               LDR         R4,??DataTable28   ;; _Stdout
   \   00000004   8D4D               LDR         R5,??AT91F_BasicTestSuite_0  ;; `?<Constant "\\n\\r1a. ECB PDC Encrypt...">`
   \   00000006   291C               MOV         R1,R5
   \   00000008   201C               MOV         R0,R4
   \   0000000A   ........           _BLF        fprintf,fprintf??rT
    257            AT91F_TDES_PDC_Mode(AT91C_TDES_OPMOD_ECB,0,AT91C_TDES_CIPHER,ECB_ENCRYPT_OFFSET);
   \   0000000E   0023               MOV         R3,#+0
   \   00000010   0122               MOV         R2,#+0x1
   \   00000012   0021               MOV         R1,#+0
   \   00000014   181C               MOV         R0,R3
   \   00000016   ........           BL          AT91F_TDES_PDC_Mode
    258            TRACE_INFO("1b. ECB PDC Decryption      ");
   \   0000001A   291C               MOV         R1,R5
   \   0000001C   2031               ADD         R1,#+0x20
   \   0000001E   201C               MOV         R0,R4
   \   00000020   ........           _BLF        fprintf,fprintf??rT
    259            AT91F_TDES_PDC_Mode(AT91C_TDES_OPMOD_ECB,0,0,ECB_DECRYPT_OFFSET);
   \   00000024   0323               MOV         R3,#+0x3
   \   00000026   0022               MOV         R2,#+0
   \   00000028   111C               MOV         R1,R2
   \   0000002A   101C               MOV         R0,R2
   \   0000002C   ........           BL          AT91F_TDES_PDC_Mode
    260          
    261            TRACE_INFO("1c. ECB Manual Encryption   ");
   \   00000030   291C               MOV         R1,R5
   \   00000032   4031               ADD         R1,#+0x40
   \   00000034   201C               MOV         R0,R4
   \   00000036   ........           _BLF        fprintf,fprintf??rT
    262            AT91F_TDES_Manual_Auto_Mode(AT91C_TDES_OPMOD_ECB,AT91C_TDES_SMOD_MANUAL,AT91C_TDES_CIPHER,ECB_ENCRYPT_OFFSET);
   \   0000003A   0023               MOV         R3,#+0
   \   0000003C   0122               MOV         R2,#+0x1
   \   0000003E   191C               MOV         R1,R3
   \   00000040   181C               MOV         R0,R3
   \   00000042   ........           BL          AT91F_TDES_Manual_Auto_Mode
    263            TRACE_INFO("1d. ECB Manual Decryption   ");
   \   00000046   291C               MOV         R1,R5
   \   00000048   6031               ADD         R1,#+0x60
   \   0000004A   201C               MOV         R0,R4
   \   0000004C   ........           _BLF        fprintf,fprintf??rT
    264            AT91F_TDES_Manual_Auto_Mode(AT91C_TDES_OPMOD_ECB,AT91C_TDES_SMOD_MANUAL,0,ECB_DECRYPT_OFFSET);
   \   00000050   0323               MOV         R3,#+0x3
   \   00000052   0022               MOV         R2,#+0
   \   00000054   111C               MOV         R1,R2
   \   00000056   101C               MOV         R0,R2
   \   00000058   ........           BL          AT91F_TDES_Manual_Auto_Mode
    265          
    266            TRACE_INFO("1e. ECB Auto Encryption     ");
   \   0000005C   291C               MOV         R1,R5
   \   0000005E   8031               ADD         R1,#+0x80
   \   00000060   201C               MOV         R0,R4
   \   00000062   ........           _BLF        fprintf,fprintf??rT
    267            AT91F_TDES_Manual_Auto_Mode(AT91C_TDES_OPMOD_ECB,AT91C_TDES_SMOD_AUTO,AT91C_TDES_CIPHER,ECB_ENCRYPT_OFFSET);
   \   00000066   8026               MOV         R6,#+0x80
   \   00000068   7600               LSL         R6,R6,#+0x1        ;; #+0x100
   \   0000006A   0023               MOV         R3,#+0
   \   0000006C   0122               MOV         R2,#+0x1
   \   0000006E   311C               MOV         R1,R6
   \   00000070   181C               MOV         R0,R3
   \   00000072   ........           BL          AT91F_TDES_Manual_Auto_Mode
    268            TRACE_INFO("1f. ECB Auto Decryption     ");
   \   00000076   291C               MOV         R1,R5
   \   00000078   A031               ADD         R1,#+0xA0
   \   0000007A   201C               MOV         R0,R4
   \   0000007C   ........           _BLF        fprintf,fprintf??rT
    269            AT91F_TDES_Manual_Auto_Mode(AT91C_TDES_OPMOD_ECB,AT91C_TDES_SMOD_AUTO,0,ECB_DECRYPT_OFFSET);
   \   00000080   0323               MOV         R3,#+0x3
   \   00000082   0022               MOV         R2,#+0
   \   00000084   311C               MOV         R1,R6
   \   00000086   101C               MOV         R0,R2
   \   00000088   ........           BL          AT91F_TDES_Manual_Auto_Mode
    270          
    271            // CBC
    272            TRACE_INFO("\n\r2a. CBC PDC Encryption      ");
   \   0000008C   291C               MOV         R1,R5
   \   0000008E   C031               ADD         R1,#+0xC0
   \   00000090   201C               MOV         R0,R4
   \   00000092   ........           _BLF        fprintf,fprintf??rT
    273            AT91F_TDES_PDC_Mode(AT91C_TDES_OPMOD_CBC,0,AT91C_TDES_CIPHER,CBC_ENCRYPT_OFFSET);
   \   00000096   3701               LSL         R7,R6,#+0x4
   \   00000098   0623               MOV         R3,#+0x6
   \   0000009A   0122               MOV         R2,#+0x1
   \   0000009C   0021               MOV         R1,#+0
   \   0000009E   381C               MOV         R0,R7
   \   000000A0   ........           BL          AT91F_TDES_PDC_Mode
    274            TRACE_INFO("2b. CBC PDC Decryption      ");
   \   0

⌨️ 快捷键说明

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