📄 tdes_fips81.lst
字号:
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 + -