?? aes_sp800-38a.lst
字號:
\ 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 + -