diff options
| author | jsing <> | 2025-06-15 15:11:50 +0000 |
|---|---|---|
| committer | jsing <> | 2025-06-15 15:11:50 +0000 |
| commit | 51f804b282da1b0813454f9f6027d3726deea4c7 (patch) | |
| tree | 0878a73d8f7c407a43db41308974923535249794 /src/lib/libcrypto/aes/asm | |
| parent | 9fe52b4c66b17ca20d6e89f97ea00d36ce86086e (diff) | |
| download | openbsd-51f804b282da1b0813454f9f6027d3726deea4c7.tar.gz openbsd-51f804b282da1b0813454f9f6027d3726deea4c7.tar.bz2 openbsd-51f804b282da1b0813454f9f6027d3726deea4c7.zip | |
Integrate AES-NI into the AES code.
Currently, the AES-NI code is only integrated into EVP - add code to
integrate AES-NI into AES. Rename the assembly provided functions and
provide C versions for the original names, which check for AES-NI support
and dispatch to the appropriate function. This means that the AES_* public
API will now use AES-NI, if available.
ok tb@
Diffstat (limited to 'src/lib/libcrypto/aes/asm')
| -rw-r--r-- | src/lib/libcrypto/aes/asm/aes-586.pl | 30 | ||||
| -rwxr-xr-x | src/lib/libcrypto/aes/asm/aes-x86_64.pl | 90 |
2 files changed, 60 insertions, 60 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-586.pl b/src/lib/libcrypto/aes/asm/aes-586.pl index 364099d4d3..402a1a3c46 100644 --- a/src/lib/libcrypto/aes/asm/aes-586.pl +++ b/src/lib/libcrypto/aes/asm/aes-586.pl | |||
| @@ -1158,8 +1158,8 @@ sub enclast() | |||
| 1158 | &data_word(0x00000000, 0x00000000, 0x00000000, 0x00000000); | 1158 | &data_word(0x00000000, 0x00000000, 0x00000000, 0x00000000); |
| 1159 | &previous(); | 1159 | &previous(); |
| 1160 | 1160 | ||
| 1161 | # void aes_encrypt_internal(const void *inp, void *out, const AES_KEY *key); | 1161 | # void aes_encrypt_generic(const void *inp, void *out, const AES_KEY *key); |
| 1162 | &function_begin("aes_encrypt_internal"); | 1162 | &function_begin("aes_encrypt_generic"); |
| 1163 | &mov ($acc,&wparam(0)); # load inp | 1163 | &mov ($acc,&wparam(0)); # load inp |
| 1164 | &mov ($key,&wparam(2)); # load key | 1164 | &mov ($key,&wparam(2)); # load key |
| 1165 | 1165 | ||
| @@ -1213,7 +1213,7 @@ sub enclast() | |||
| 1213 | &mov (&DWP(4,$acc),$s1); | 1213 | &mov (&DWP(4,$acc),$s1); |
| 1214 | &mov (&DWP(8,$acc),$s2); | 1214 | &mov (&DWP(8,$acc),$s2); |
| 1215 | &mov (&DWP(12,$acc),$s3); | 1215 | &mov (&DWP(12,$acc),$s3); |
| 1216 | &function_end("aes_encrypt_internal"); | 1216 | &function_end("aes_encrypt_generic"); |
| 1217 | 1217 | ||
| 1218 | #--------------------------------------------------------------------# | 1218 | #--------------------------------------------------------------------# |
| 1219 | 1219 | ||
| @@ -1947,8 +1947,8 @@ sub declast() | |||
| 1947 | &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d); | 1947 | &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d); |
| 1948 | &previous(); | 1948 | &previous(); |
| 1949 | 1949 | ||
| 1950 | # void aes_decrypt_internal(const void *inp, void *out, const AES_KEY *key); | 1950 | # void aes_decrypt_generic(const void *inp, void *out, const AES_KEY *key); |
| 1951 | &function_begin("aes_decrypt_internal"); | 1951 | &function_begin("aes_decrypt_generic"); |
| 1952 | &mov ($acc,&wparam(0)); # load inp | 1952 | &mov ($acc,&wparam(0)); # load inp |
| 1953 | &mov ($key,&wparam(2)); # load key | 1953 | &mov ($key,&wparam(2)); # load key |
| 1954 | 1954 | ||
| @@ -2002,9 +2002,9 @@ sub declast() | |||
| 2002 | &mov (&DWP(4,$acc),$s1); | 2002 | &mov (&DWP(4,$acc),$s1); |
| 2003 | &mov (&DWP(8,$acc),$s2); | 2003 | &mov (&DWP(8,$acc),$s2); |
| 2004 | &mov (&DWP(12,$acc),$s3); | 2004 | &mov (&DWP(12,$acc),$s3); |
| 2005 | &function_end("aes_decrypt_internal"); | 2005 | &function_end("aes_decrypt_generic"); |
| 2006 | 2006 | ||
| 2007 | # void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out, | 2007 | # void aes_cbc_encrypt_generic(const void char *inp, unsigned char *out, |
| 2008 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); | 2008 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); |
| 2009 | { | 2009 | { |
| 2010 | # stack frame layout | 2010 | # stack frame layout |
| @@ -2028,7 +2028,7 @@ my $ivec=&DWP(60,"esp"); # ivec[16] | |||
| 2028 | my $aes_key=&DWP(76,"esp"); # copy of aes_key | 2028 | my $aes_key=&DWP(76,"esp"); # copy of aes_key |
| 2029 | my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds | 2029 | my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds |
| 2030 | 2030 | ||
| 2031 | &function_begin("aes_cbc_encrypt_internal"); | 2031 | &function_begin("aes_cbc_encrypt_generic"); |
| 2032 | &mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len | 2032 | &mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len |
| 2033 | &cmp ($s2,0); | 2033 | &cmp ($s2,0); |
| 2034 | &je (&label("drop_out")); | 2034 | &je (&label("drop_out")); |
| @@ -2616,7 +2616,7 @@ my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds | |||
| 2616 | 2616 | ||
| 2617 | &mov ("esp",$_esp); | 2617 | &mov ("esp",$_esp); |
| 2618 | &popf (); | 2618 | &popf (); |
| 2619 | &function_end("aes_cbc_encrypt_internal"); | 2619 | &function_end("aes_cbc_encrypt_generic"); |
| 2620 | } | 2620 | } |
| 2621 | 2621 | ||
| 2622 | #------------------------------------------------------------------# | 2622 | #------------------------------------------------------------------# |
| @@ -2849,12 +2849,12 @@ sub enckey() | |||
| 2849 | &set_label("exit"); | 2849 | &set_label("exit"); |
| 2850 | &function_end("_x86_AES_set_encrypt_key"); | 2850 | &function_end("_x86_AES_set_encrypt_key"); |
| 2851 | 2851 | ||
| 2852 | # int aes_set_encrypt_key_internal(const unsigned char *userKey, const int bits, | 2852 | # int aes_set_encrypt_key_generic(const unsigned char *userKey, const int bits, |
| 2853 | # AES_KEY *key) | 2853 | # AES_KEY *key) |
| 2854 | &function_begin_B("aes_set_encrypt_key_internal"); | 2854 | &function_begin_B("aes_set_encrypt_key_generic"); |
| 2855 | &call ("_x86_AES_set_encrypt_key"); | 2855 | &call ("_x86_AES_set_encrypt_key"); |
| 2856 | &ret (); | 2856 | &ret (); |
| 2857 | &function_end_B("aes_set_encrypt_key_internal"); | 2857 | &function_end_B("aes_set_encrypt_key_generic"); |
| 2858 | 2858 | ||
| 2859 | sub deckey() | 2859 | sub deckey() |
| 2860 | { my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_; | 2860 | { my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_; |
| @@ -2911,9 +2911,9 @@ sub deckey() | |||
| 2911 | &mov (&DWP(4*$i,$key),$tp1); | 2911 | &mov (&DWP(4*$i,$key),$tp1); |
| 2912 | } | 2912 | } |
| 2913 | 2913 | ||
| 2914 | # int aes_set_decrypt_key_internal(const unsigned char *userKey, const int bits, | 2914 | # int aes_set_decrypt_key_generic(const unsigned char *userKey, const int bits, |
| 2915 | # AES_KEY *key) | 2915 | # AES_KEY *key) |
| 2916 | &function_begin_B("aes_set_decrypt_key_internal"); | 2916 | &function_begin_B("aes_set_decrypt_key_generic"); |
| 2917 | &call ("_x86_AES_set_encrypt_key"); | 2917 | &call ("_x86_AES_set_encrypt_key"); |
| 2918 | &cmp ("eax",0); | 2918 | &cmp ("eax",0); |
| 2919 | &je (&label("proceed")); | 2919 | &je (&label("proceed")); |
| @@ -2969,6 +2969,6 @@ sub deckey() | |||
| 2969 | &jb (&label("permute")); | 2969 | &jb (&label("permute")); |
| 2970 | 2970 | ||
| 2971 | &xor ("eax","eax"); # return success | 2971 | &xor ("eax","eax"); # return success |
| 2972 | &function_end("aes_set_decrypt_key_internal"); | 2972 | &function_end("aes_set_decrypt_key_generic"); |
| 2973 | 2973 | ||
| 2974 | &asm_finish(); | 2974 | &asm_finish(); |
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl index 324c4a2be2..2c73627546 100755 --- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl | |||
| @@ -586,15 +586,15 @@ $code.=<<___; | |||
| 586 | .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact | 586 | .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact |
| 587 | ___ | 587 | ___ |
| 588 | 588 | ||
| 589 | # void aes_encrypt_internal(const void *inp, void *out, const AES_KEY *key); | 589 | # void aes_encrypt_generic(const void *inp, void *out, const AES_KEY *key); |
| 590 | $code.=<<___; | 590 | $code.=<<___; |
| 591 | .globl aes_encrypt_internal | 591 | .globl aes_encrypt_generic |
| 592 | .type aes_encrypt_internal,\@function,3 | 592 | .type aes_encrypt_generic,\@function,3 |
| 593 | .align 16 | 593 | .align 16 |
| 594 | .globl asm_AES_encrypt | 594 | .globl asm_AES_encrypt |
| 595 | .hidden asm_AES_encrypt | 595 | .hidden asm_AES_encrypt |
| 596 | asm_AES_encrypt: | 596 | asm_AES_encrypt: |
| 597 | aes_encrypt_internal: | 597 | aes_encrypt_generic: |
| 598 | _CET_ENDBR | 598 | _CET_ENDBR |
| 599 | push %rbx | 599 | push %rbx |
| 600 | push %rbp | 600 | push %rbp |
| @@ -655,7 +655,7 @@ aes_encrypt_internal: | |||
| 655 | lea 48(%rsi),%rsp | 655 | lea 48(%rsi),%rsp |
| 656 | .Lenc_epilogue: | 656 | .Lenc_epilogue: |
| 657 | ret | 657 | ret |
| 658 | .size aes_encrypt_internal,.-aes_encrypt_internal | 658 | .size aes_encrypt_generic,.-aes_encrypt_generic |
| 659 | ___ | 659 | ___ |
| 660 | 660 | ||
| 661 | #------------------------------------------------------------------# | 661 | #------------------------------------------------------------------# |
| @@ -1188,15 +1188,15 @@ $code.=<<___; | |||
| 1188 | .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact | 1188 | .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact |
| 1189 | ___ | 1189 | ___ |
| 1190 | 1190 | ||
| 1191 | # void aes_decrypt_internal(const void *inp, void *out, const AES_KEY *key); | 1191 | # void aes_decrypt_generic(const void *inp, void *out, const AES_KEY *key); |
| 1192 | $code.=<<___; | 1192 | $code.=<<___; |
| 1193 | .globl aes_decrypt_internal | 1193 | .globl aes_decrypt_generic |
| 1194 | .type aes_decrypt_internal,\@function,3 | 1194 | .type aes_decrypt_generic,\@function,3 |
| 1195 | .align 16 | 1195 | .align 16 |
| 1196 | .globl asm_AES_decrypt | 1196 | .globl asm_AES_decrypt |
| 1197 | .hidden asm_AES_decrypt | 1197 | .hidden asm_AES_decrypt |
| 1198 | asm_AES_decrypt: | 1198 | asm_AES_decrypt: |
| 1199 | aes_decrypt_internal: | 1199 | aes_decrypt_generic: |
| 1200 | _CET_ENDBR | 1200 | _CET_ENDBR |
| 1201 | push %rbx | 1201 | push %rbx |
| 1202 | push %rbp | 1202 | push %rbp |
| @@ -1259,7 +1259,7 @@ aes_decrypt_internal: | |||
| 1259 | lea 48(%rsi),%rsp | 1259 | lea 48(%rsi),%rsp |
| 1260 | .Ldec_epilogue: | 1260 | .Ldec_epilogue: |
| 1261 | ret | 1261 | ret |
| 1262 | .size aes_decrypt_internal,.-aes_decrypt_internal | 1262 | .size aes_decrypt_generic,.-aes_decrypt_generic |
| 1263 | ___ | 1263 | ___ |
| 1264 | #------------------------------------------------------------------# | 1264 | #------------------------------------------------------------------# |
| 1265 | 1265 | ||
| @@ -1290,13 +1290,13 @@ $code.=<<___; | |||
| 1290 | ___ | 1290 | ___ |
| 1291 | } | 1291 | } |
| 1292 | 1292 | ||
| 1293 | # int aes_set_encrypt_key_internal(const unsigned char *userKey, const int bits, | 1293 | # int aes_set_encrypt_key_generic(const unsigned char *userKey, const int bits, |
| 1294 | # AES_KEY *key) | 1294 | # AES_KEY *key) |
| 1295 | $code.=<<___; | 1295 | $code.=<<___; |
| 1296 | .globl aes_set_encrypt_key_internal | 1296 | .globl aes_set_encrypt_key_generic |
| 1297 | .type aes_set_encrypt_key_internal,\@function,3 | 1297 | .type aes_set_encrypt_key_generic,\@function,3 |
| 1298 | .align 16 | 1298 | .align 16 |
| 1299 | aes_set_encrypt_key_internal: | 1299 | aes_set_encrypt_key_generic: |
| 1300 | _CET_ENDBR | 1300 | _CET_ENDBR |
| 1301 | push %rbx | 1301 | push %rbx |
| 1302 | push %rbp | 1302 | push %rbp |
| @@ -1318,7 +1318,7 @@ aes_set_encrypt_key_internal: | |||
| 1318 | add \$56,%rsp | 1318 | add \$56,%rsp |
| 1319 | .Lenc_key_epilogue: | 1319 | .Lenc_key_epilogue: |
| 1320 | ret | 1320 | ret |
| 1321 | .size aes_set_encrypt_key_internal,.-aes_set_encrypt_key_internal | 1321 | .size aes_set_encrypt_key_generic,.-aes_set_encrypt_key_generic |
| 1322 | 1322 | ||
| 1323 | .type _x86_64_AES_set_encrypt_key,\@abi-omnipotent | 1323 | .type _x86_64_AES_set_encrypt_key,\@abi-omnipotent |
| 1324 | .align 16 | 1324 | .align 16 |
| @@ -1562,13 +1562,13 @@ $code.=<<___; | |||
| 1562 | ___ | 1562 | ___ |
| 1563 | } | 1563 | } |
| 1564 | 1564 | ||
| 1565 | # int aes_set_decrypt_key_internal(const unsigned char *userKey, const int bits, | 1565 | # int aes_set_decrypt_key_generic(const unsigned char *userKey, const int bits, |
| 1566 | # AES_KEY *key) | 1566 | # AES_KEY *key) |
| 1567 | $code.=<<___; | 1567 | $code.=<<___; |
| 1568 | .globl aes_set_decrypt_key_internal | 1568 | .globl aes_set_decrypt_key_generic |
| 1569 | .type aes_set_decrypt_key_internal,\@function,3 | 1569 | .type aes_set_decrypt_key_generic,\@function,3 |
| 1570 | .align 16 | 1570 | .align 16 |
| 1571 | aes_set_decrypt_key_internal: | 1571 | aes_set_decrypt_key_generic: |
| 1572 | _CET_ENDBR | 1572 | _CET_ENDBR |
| 1573 | push %rbx | 1573 | push %rbx |
| 1574 | push %rbp | 1574 | push %rbp |
| @@ -1638,10 +1638,10 @@ $code.=<<___; | |||
| 1638 | add \$56,%rsp | 1638 | add \$56,%rsp |
| 1639 | .Ldec_key_epilogue: | 1639 | .Ldec_key_epilogue: |
| 1640 | ret | 1640 | ret |
| 1641 | .size aes_set_decrypt_key_internal,.-aes_set_decrypt_key_internal | 1641 | .size aes_set_decrypt_key_generic,.-aes_set_decrypt_key_generic |
| 1642 | ___ | 1642 | ___ |
| 1643 | 1643 | ||
| 1644 | # void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out, | 1644 | # void aes_cbc_encrypt_generic(const void char *inp, unsigned char *out, |
| 1645 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); | 1645 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); |
| 1646 | { | 1646 | { |
| 1647 | # stack frame layout | 1647 | # stack frame layout |
| @@ -1659,15 +1659,15 @@ my $aes_key="80(%rsp)"; # copy of aes_key | |||
| 1659 | my $mark="80+240(%rsp)"; # copy of aes_key->rounds | 1659 | my $mark="80+240(%rsp)"; # copy of aes_key->rounds |
| 1660 | 1660 | ||
| 1661 | $code.=<<___; | 1661 | $code.=<<___; |
| 1662 | .globl aes_cbc_encrypt_internal | 1662 | .globl aes_cbc_encrypt_generic |
| 1663 | .type aes_cbc_encrypt_internal,\@function,6 | 1663 | .type aes_cbc_encrypt_generic,\@function,6 |
| 1664 | .align 16 | 1664 | .align 16 |
| 1665 | .extern OPENSSL_ia32cap_P | 1665 | .extern OPENSSL_ia32cap_P |
| 1666 | .hidden OPENSSL_ia32cap_P | 1666 | .hidden OPENSSL_ia32cap_P |
| 1667 | .globl asm_AES_cbc_encrypt | 1667 | .globl asm_AES_cbc_encrypt |
| 1668 | .hidden asm_AES_cbc_encrypt | 1668 | .hidden asm_AES_cbc_encrypt |
| 1669 | asm_AES_cbc_encrypt: | 1669 | asm_AES_cbc_encrypt: |
| 1670 | aes_cbc_encrypt_internal: | 1670 | aes_cbc_encrypt_generic: |
| 1671 | _CET_ENDBR | 1671 | _CET_ENDBR |
| 1672 | cmp \$0,%rdx # check length | 1672 | cmp \$0,%rdx # check length |
| 1673 | je .Lcbc_epilogue | 1673 | je .Lcbc_epilogue |
| @@ -2117,7 +2117,7 @@ aes_cbc_encrypt_internal: | |||
| 2117 | popfq | 2117 | popfq |
| 2118 | .Lcbc_epilogue: | 2118 | .Lcbc_epilogue: |
| 2119 | ret | 2119 | ret |
| 2120 | .size aes_cbc_encrypt_internal,.-aes_cbc_encrypt_internal | 2120 | .size aes_cbc_encrypt_generic,.-aes_cbc_encrypt_generic |
| 2121 | ___ | 2121 | ___ |
| 2122 | } | 2122 | } |
| 2123 | 2123 | ||
| @@ -2782,45 +2782,45 @@ cbc_se_handler: | |||
| 2782 | 2782 | ||
| 2783 | .section .pdata | 2783 | .section .pdata |
| 2784 | .align 4 | 2784 | .align 4 |
| 2785 | .rva .LSEH_begin_aes_encrypt_internal | 2785 | .rva .LSEH_begin_aes_encrypt_generic |
| 2786 | .rva .LSEH_end_aes_encrypt_internal | 2786 | .rva .LSEH_end_aes_encrypt_generic |
| 2787 | .rva .LSEH_info_aes_encrypt_internal | 2787 | .rva .LSEH_info_aes_encrypt_generic |
| 2788 | 2788 | ||
| 2789 | .rva .LSEH_begin_aes_decrypt_internal | 2789 | .rva .LSEH_begin_aes_decrypt_generic |
| 2790 | .rva .LSEH_end_aes_decrypt_internal | 2790 | .rva .LSEH_end_aes_decrypt_generic |
| 2791 | .rva .LSEH_info_aes_decrypt_internal | 2791 | .rva .LSEH_info_aes_decrypt_generic |
| 2792 | 2792 | ||
| 2793 | .rva .LSEH_begin_aes_set_encrypt_key_internal | 2793 | .rva .LSEH_begin_aes_set_encrypt_key_generic |
| 2794 | .rva .LSEH_end_aes_set_encrypt_key_internal | 2794 | .rva .LSEH_end_aes_set_encrypt_key_generic |
| 2795 | .rva .LSEH_info_aes_set_encrypt_key_internal | 2795 | .rva .LSEH_info_aes_set_encrypt_key_generic |
| 2796 | 2796 | ||
| 2797 | .rva .LSEH_begin_aes_set_decrypt_key_internal | 2797 | .rva .LSEH_begin_aes_set_decrypt_key_generic |
| 2798 | .rva .LSEH_end_aes_set_decrypt_key_internal | 2798 | .rva .LSEH_end_aes_set_decrypt_key_generic |
| 2799 | .rva .LSEH_info_aes_set_decrypt_key_internal | 2799 | .rva .LSEH_info_aes_set_decrypt_key_generic |
| 2800 | 2800 | ||
| 2801 | .rva .LSEH_begin_aes_cbc_encrypt_internal | 2801 | .rva .LSEH_begin_aes_cbc_encrypt_generic |
| 2802 | .rva .LSEH_end_aes_cbc_encrypt_internal | 2802 | .rva .LSEH_end_aes_cbc_encrypt_generic |
| 2803 | .rva .LSEH_info_aes_cbc_encrypt_internal | 2803 | .rva .LSEH_info_aes_cbc_encrypt_generic |
| 2804 | 2804 | ||
| 2805 | .section .xdata | 2805 | .section .xdata |
| 2806 | .align 8 | 2806 | .align 8 |
| 2807 | .LSEH_info_aes_encrypt_internal: | 2807 | .LSEH_info_aes_encrypt_generic: |
| 2808 | .byte 9,0,0,0 | 2808 | .byte 9,0,0,0 |
| 2809 | .rva block_se_handler | 2809 | .rva block_se_handler |
| 2810 | .rva .Lenc_prologue,.Lenc_epilogue # HandlerData[] | 2810 | .rva .Lenc_prologue,.Lenc_epilogue # HandlerData[] |
| 2811 | .LSEH_info_aes_decrypt_internal: | 2811 | .LSEH_info_aes_decrypt_generic: |
| 2812 | .byte 9,0,0,0 | 2812 | .byte 9,0,0,0 |
| 2813 | .rva block_se_handler | 2813 | .rva block_se_handler |
| 2814 | .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] | 2814 | .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] |
| 2815 | .LSEH_info_aes_set_encrypt_key_internal: | 2815 | .LSEH_info_aes_set_encrypt_key_generic: |
| 2816 | .byte 9,0,0,0 | 2816 | .byte 9,0,0,0 |
| 2817 | .rva key_se_handler | 2817 | .rva key_se_handler |
| 2818 | .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[] | 2818 | .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[] |
| 2819 | .LSEH_info_aes_set_decrypt_key_internal: | 2819 | .LSEH_info_aes_set_decrypt_key_generic: |
| 2820 | .byte 9,0,0,0 | 2820 | .byte 9,0,0,0 |
| 2821 | .rva key_se_handler | 2821 | .rva key_se_handler |
| 2822 | .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[] | 2822 | .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[] |
| 2823 | .LSEH_info_aes_cbc_encrypt_internal: | 2823 | .LSEH_info_aes_cbc_encrypt_generic: |
| 2824 | .byte 9,0,0,0 | 2824 | .byte 9,0,0,0 |
| 2825 | .rva cbc_se_handler | 2825 | .rva cbc_se_handler |
| 2826 | ___ | 2826 | ___ |
