sync with OpenBSD -current

This commit is contained in:
purplerain 2024-02-24 21:16:08 +00:00
parent aee4243932
commit 951aae1a1a
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
39 changed files with 531 additions and 183 deletions

View file

@ -318,7 +318,7 @@ $code.=<<___;
.type _x86_64_AES_encrypt,\@abi-omnipotent
.align 16
_x86_64_AES_encrypt:
endbr64
_CET_ENDBR
xor 0($key),$s0 # xor with key
xor 4($key),$s1
xor 8($key),$s2
@ -549,7 +549,7 @@ $code.=<<___;
.type _x86_64_AES_encrypt_compact,\@abi-omnipotent
.align 16
_x86_64_AES_encrypt_compact:
endbr64
_CET_ENDBR
lea 128($sbox),$inp # size optimization
mov 0-128($inp),$acc1 # prefetch Te4
mov 32-128($inp),$acc2
@ -595,7 +595,7 @@ $code.=<<___;
.hidden asm_AES_encrypt
asm_AES_encrypt:
AES_encrypt:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -887,7 +887,7 @@ $code.=<<___;
.type _x86_64_AES_decrypt,\@abi-omnipotent
.align 16
_x86_64_AES_decrypt:
endbr64
_CET_ENDBR
xor 0($key),$s0 # xor with key
xor 4($key),$s1
xor 8($key),$s2
@ -1142,7 +1142,7 @@ $code.=<<___;
.type _x86_64_AES_decrypt_compact,\@abi-omnipotent
.align 16
_x86_64_AES_decrypt_compact:
endbr64
_CET_ENDBR
lea 128($sbox),$inp # size optimization
mov 0-128($inp),$acc1 # prefetch Td4
mov 32-128($inp),$acc2
@ -1197,7 +1197,7 @@ $code.=<<___;
.hidden asm_AES_decrypt
asm_AES_decrypt:
AES_decrypt:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -1297,7 +1297,7 @@ $code.=<<___;
.type AES_set_encrypt_key,\@function,3
.align 16
AES_set_encrypt_key:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12 # redundant, but allows to share
@ -1323,7 +1323,7 @@ AES_set_encrypt_key:
.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
.align 16
_x86_64_AES_set_encrypt_key:
endbr64
_CET_ENDBR
mov %esi,%ecx # %ecx=bits
mov %rdi,%rsi # %rsi=userKey
mov %rdx,%rdi # %rdi=key
@ -1569,7 +1569,7 @@ $code.=<<___;
.type AES_set_decrypt_key,\@function,3
.align 16
AES_set_decrypt_key:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -1669,7 +1669,7 @@ $code.=<<___;
.hidden asm_AES_cbc_encrypt
asm_AES_cbc_encrypt:
AES_cbc_encrypt:
endbr64
_CET_ENDBR
cmp \$0,%rdx # check length
je .Lcbc_epilogue
pushfq
@ -2561,7 +2561,7 @@ $code.=<<___;
.type block_se_handler,\@abi-omnipotent
.align 16
block_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2620,7 +2620,7 @@ block_se_handler:
.type key_se_handler,\@abi-omnipotent
.align 16
key_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2678,7 +2678,7 @@ key_se_handler:
.type cbc_se_handler,\@abi-omnipotent
.align 16
cbc_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -89,7 +89,7 @@ $code.=<<___;
.type aesni_cbc_sha1_enc,\@abi-omnipotent
.align 16
aesni_cbc_sha1_enc:
endbr64
_CET_ENDBR
# caller should check for SSSE3 and AES-NI bits
mov OPENSSL_ia32cap_P+0(%rip),%r10d
mov OPENSSL_ia32cap_P+4(%rip),%r11d
@ -133,7 +133,7 @@ $code.=<<___;
.type aesni_cbc_sha1_enc_ssse3,\@function,6
.align 16
aesni_cbc_sha1_enc_ssse3:
endbr64
_CET_ENDBR
mov `($win64?56:8)`(%rsp),$inp # load 7th argument
#shr \$6,$len # debugging artefact
#jz .Lepilogue_ssse3 # debugging artefact
@ -652,7 +652,7 @@ $code.=<<___;
.type aesni_cbc_sha1_enc_avx,\@function,6
.align 16
aesni_cbc_sha1_enc_avx:
endbr64
_CET_ENDBR
mov `($win64?56:8)`(%rsp),$inp # load 7th argument
#shr \$6,$len # debugging artefact
#jz .Lepilogue_avx # debugging artefact
@ -1103,7 +1103,7 @@ $code.=<<___;
.type ssse3_handler,\@abi-omnipotent
.align 16
ssse3_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -242,7 +242,7 @@ $code.=<<___;
.type ${PREFIX}_encrypt,\@abi-omnipotent
.align 16
${PREFIX}_encrypt:
endbr64
_CET_ENDBR
movups ($inp),$inout0 # load input
mov 240($key),$rounds # key->rounds
___
@ -256,7 +256,7 @@ $code.=<<___;
.type ${PREFIX}_decrypt,\@abi-omnipotent
.align 16
${PREFIX}_decrypt:
endbr64
_CET_ENDBR
movups ($inp),$inout0 # load input
mov 240($key),$rounds # key->rounds
___
@ -286,7 +286,7 @@ $code.=<<___;
.type _aesni_${dir}rypt3,\@abi-omnipotent
.align 16
_aesni_${dir}rypt3:
endbr64
_CET_ENDBR
$movkey ($key),$rndkey0
shr \$1,$rounds
$movkey 16($key),$rndkey1
@ -331,7 +331,7 @@ $code.=<<___;
.type _aesni_${dir}rypt4,\@abi-omnipotent
.align 16
_aesni_${dir}rypt4:
endbr64
_CET_ENDBR
$movkey ($key),$rndkey0
shr \$1,$rounds
$movkey 16($key),$rndkey1
@ -377,7 +377,7 @@ $code.=<<___;
.type _aesni_${dir}rypt6,\@abi-omnipotent
.align 16
_aesni_${dir}rypt6:
endbr64
_CET_ENDBR
$movkey ($key),$rndkey0
shr \$1,$rounds
$movkey 16($key),$rndkey1
@ -442,7 +442,7 @@ $code.=<<___;
.type _aesni_${dir}rypt8,\@abi-omnipotent
.align 16
_aesni_${dir}rypt8:
endbr64
_CET_ENDBR
$movkey ($key),$rndkey0
shr \$1,$rounds
$movkey 16($key),$rndkey1
@ -531,7 +531,7 @@ $code.=<<___;
.type aesni_ecb_encrypt,\@function,5
.align 16
aesni_ecb_encrypt:
endbr64
_CET_ENDBR
and \$-16,$len
jz .Lecb_ret
@ -838,7 +838,7 @@ $code.=<<___;
.type aesni_ccm64_encrypt_blocks,\@function,6
.align 16
aesni_ccm64_encrypt_blocks:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0x58(%rsp),%rsp
@ -919,6 +919,7 @@ $code.=<<___;
.type aesni_ccm64_decrypt_blocks,\@function,6
.align 16
aesni_ccm64_decrypt_blocks:
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0x58(%rsp),%rsp
@ -1027,7 +1028,7 @@ $code.=<<___;
.type aesni_ctr32_encrypt_blocks,\@function,5
.align 16
aesni_ctr32_encrypt_blocks:
endbr64
_CET_ENDBR
lea (%rsp),%rax
push %rbp
sub \$$frame_size,%rsp
@ -1319,6 +1320,7 @@ $code.=<<___;
.type aesni_xts_encrypt,\@function,6
.align 16
aesni_xts_encrypt:
_CET_ENDBR
lea (%rsp),%rax
push %rbp
sub \$$frame_size,%rsp
@ -1713,6 +1715,7 @@ $code.=<<___;
.type aesni_xts_decrypt,\@function,6
.align 16
aesni_xts_decrypt:
_CET_ENDBR
lea (%rsp),%rax
push %rbp
sub \$$frame_size,%rsp
@ -2150,6 +2153,7 @@ $code.=<<___;
.type ${PREFIX}_cbc_encrypt,\@function,6
.align 16
${PREFIX}_cbc_encrypt:
_CET_ENDBR
test $len,$len # check length
jz .Lcbc_ret
@ -2491,7 +2495,7 @@ $code.=<<___;
.type ${PREFIX}_set_decrypt_key,\@abi-omnipotent
.align 16
${PREFIX}_set_decrypt_key:
endbr64
_CET_ENDBR
sub \$8,%rsp
call __aesni_set_encrypt_key
shl \$4,$bits # rounds-1 after _aesni_set_encrypt_key
@ -2542,7 +2546,7 @@ $code.=<<___;
.type ${PREFIX}_set_encrypt_key,\@abi-omnipotent
.align 16
${PREFIX}_set_encrypt_key:
endbr64
_CET_ENDBR
__aesni_set_encrypt_key:
sub \$8,%rsp
mov \$-1,%rax
@ -2764,7 +2768,7 @@ $code.=<<___ if ($PREFIX eq "aesni");
.type ecb_se_handler,\@abi-omnipotent
.align 16
ecb_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2784,7 +2788,7 @@ ecb_se_handler:
.type ccm64_se_handler,\@abi-omnipotent
.align 16
ccm64_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2826,7 +2830,7 @@ ccm64_se_handler:
.type ctr32_se_handler,\@abi-omnipotent
.align 16
ctr32_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2862,7 +2866,7 @@ ctr32_se_handler:
.type xts_se_handler,\@abi-omnipotent
.align 16
xts_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx
@ -2904,7 +2908,7 @@ $code.=<<___;
.type cbc_se_handler,\@abi-omnipotent
.align 16
cbc_se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -813,7 +813,7 @@ $code.=<<___;
.type _bsaes_encrypt8,\@abi-omnipotent
.align 64
_bsaes_encrypt8:
endbr64
_CET_ENDBR
lea .LBS0(%rip), $const # constants table
movdqa ($key), @XMM[9] # round 0 key
@ -878,7 +878,7 @@ $code.=<<___;
.type _bsaes_decrypt8,\@abi-omnipotent
.align 64
_bsaes_decrypt8:
endbr64
_CET_ENDBR
lea .LBS0(%rip), $const # constants table
movdqa ($key), @XMM[9] # round 0 key
@ -970,7 +970,7 @@ $code.=<<___;
.type _bsaes_key_convert,\@abi-omnipotent
.align 16
_bsaes_key_convert:
endbr64
_CET_ENDBR
lea .Lmasks(%rip), $const
movdqu ($inp), %xmm7 # load round 0 key
lea 0x10($inp), $inp
@ -1060,7 +1060,7 @@ $code.=<<___;
.type bsaes_enc_key_convert,\@function,2
.align 16
bsaes_enc_key_convert:
endbr64
_CET_ENDBR
mov 240($inp),%r10d # pass rounds
mov $inp,%rcx # pass key
mov $out,%rax # pass key schedule
@ -1075,7 +1075,7 @@ bsaes_enc_key_convert:
.align 16
bsaes_encrypt_128:
.Lenc128_loop:
endbr64
_CET_ENDBR
movdqu 0x00($inp), @XMM[0] # load input
movdqu 0x10($inp), @XMM[1]
movdqu 0x20($inp), @XMM[2]
@ -1108,7 +1108,7 @@ bsaes_encrypt_128:
.type bsaes_dec_key_convert,\@function,2
.align 16
bsaes_dec_key_convert:
endbr64
_CET_ENDBR
mov 240($inp),%r10d # pass rounds
mov $inp,%rcx # pass key
mov $out,%rax # pass key schedule
@ -1123,7 +1123,7 @@ bsaes_dec_key_convert:
.type bsaes_decrypt_128,\@function,4
.align 16
bsaes_decrypt_128:
endbr64
_CET_ENDBR
.Ldec128_loop:
movdqu 0x00($inp), @XMM[0] # load input
movdqu 0x10($inp), @XMM[1]
@ -1169,7 +1169,7 @@ $code.=<<___;
.type bsaes_ecb_encrypt_blocks,\@abi-omnipotent
.align 16
bsaes_ecb_encrypt_blocks:
endbr64
_CET_ENDBR
mov %rsp, %rax
.Lecb_enc_prologue:
push %rbp
@ -1371,7 +1371,7 @@ $code.=<<___;
.type bsaes_ecb_decrypt_blocks,\@abi-omnipotent
.align 16
bsaes_ecb_decrypt_blocks:
endbr64
_CET_ENDBR
mov %rsp, %rax
.Lecb_dec_prologue:
push %rbp
@ -1577,7 +1577,7 @@ $code.=<<___;
.type bsaes_cbc_encrypt,\@abi-omnipotent
.align 16
bsaes_cbc_encrypt:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
mov 48(%rsp),$arg6 # pull direction flag
@ -1865,7 +1865,7 @@ $code.=<<___;
.type bsaes_ctr32_encrypt_blocks,\@abi-omnipotent
.align 16
bsaes_ctr32_encrypt_blocks:
endbr64
_CET_ENDBR
mov %rsp, %rax
.Lctr_enc_prologue:
push %rbp
@ -2107,7 +2107,7 @@ $code.=<<___;
.type bsaes_xts_encrypt,\@abi-omnipotent
.align 16
bsaes_xts_encrypt:
endbr64
_CET_ENDBR
mov %rsp, %rax
.Lxts_enc_prologue:
push %rbp
@ -2489,7 +2489,7 @@ $code.=<<___;
.type bsaes_xts_decrypt,\@abi-omnipotent
.align 16
bsaes_xts_decrypt:
endbr64
_CET_ENDBR
mov %rsp, %rax
.Lxts_dec_prologue:
push %rbp
@ -2966,7 +2966,7 @@ $code.=<<___;
.type se_handler,\@abi-omnipotent
.align 16
se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -82,7 +82,7 @@ $code.=<<___;
.type _vpaes_encrypt_core,\@abi-omnipotent
.align 16
_vpaes_encrypt_core:
endbr64
_CET_ENDBR
mov %rdx, %r9
mov \$16, %r11
mov 240(%rdx),%eax
@ -173,7 +173,7 @@ _vpaes_encrypt_core:
.type _vpaes_decrypt_core,\@abi-omnipotent
.align 16
_vpaes_decrypt_core:
endbr64
_CET_ENDBR
mov %rdx, %r9 # load key
mov 240(%rdx),%eax
movdqa %xmm9, %xmm1
@ -281,7 +281,7 @@ _vpaes_decrypt_core:
.type _vpaes_schedule_core,\@abi-omnipotent
.align 16
_vpaes_schedule_core:
endbr64
_CET_ENDBR
# rdi = key
# rsi = size in bits
# rdx = buffer
@ -467,7 +467,7 @@ _vpaes_schedule_core:
.type _vpaes_schedule_192_smear,\@abi-omnipotent
.align 16
_vpaes_schedule_192_smear:
endbr64
_CET_ENDBR
pshufd \$0x80, %xmm6, %xmm0 # d c 0 0 -> c 0 0 0
pxor %xmm0, %xmm6 # -> c+d c 0 0
pshufd \$0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a
@ -499,7 +499,7 @@ _vpaes_schedule_192_smear:
.type _vpaes_schedule_round,\@abi-omnipotent
.align 16
_vpaes_schedule_round:
endbr64
_CET_ENDBR
# extract rcon from xmm8
pxor %xmm1, %xmm1
palignr \$15, %xmm8, %xmm1
@ -567,7 +567,7 @@ _vpaes_schedule_low_round:
.type _vpaes_schedule_transform,\@abi-omnipotent
.align 16
_vpaes_schedule_transform:
endbr64
_CET_ENDBR
movdqa %xmm9, %xmm1
pandn %xmm0, %xmm1
psrld \$4, %xmm1
@ -606,7 +606,7 @@ _vpaes_schedule_transform:
.type _vpaes_schedule_mangle,\@abi-omnipotent
.align 16
_vpaes_schedule_mangle:
endbr64
_CET_ENDBR
movdqa %xmm0, %xmm4 # save xmm0 for later
movdqa .Lk_mc_forward(%rip),%xmm5
test %rcx, %rcx
@ -680,7 +680,7 @@ _vpaes_schedule_mangle:
.type ${PREFIX}_set_encrypt_key,\@function,3
.align 16
${PREFIX}_set_encrypt_key:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0xb8(%rsp),%rsp
@ -729,7 +729,7 @@ $code.=<<___;
.type ${PREFIX}_set_decrypt_key,\@function,3
.align 16
${PREFIX}_set_decrypt_key:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0xb8(%rsp),%rsp
@ -783,7 +783,7 @@ $code.=<<___;
.type ${PREFIX}_encrypt,\@function,3
.align 16
${PREFIX}_encrypt:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0xb8(%rsp),%rsp
@ -827,7 +827,7 @@ $code.=<<___;
.type ${PREFIX}_decrypt,\@function,3
.align 16
${PREFIX}_decrypt:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
lea -0xb8(%rsp),%rsp
@ -877,7 +877,7 @@ $code.=<<___;
.type ${PREFIX}_cbc_encrypt,\@function,6
.align 16
${PREFIX}_cbc_encrypt:
endbr64
_CET_ENDBR
xchg $key,$len
___
($len,$key)=($key,$len);
@ -961,7 +961,7 @@ $code.=<<___;
.type _vpaes_preheat,\@abi-omnipotent
.align 16
_vpaes_preheat:
endbr64
_CET_ENDBR
lea .Lk_s0F(%rip), %r10
movdqa -0x20(%r10), %xmm10 # .Lk_inv
movdqa -0x10(%r10), %xmm11 # .Lk_inv+16
@ -1092,7 +1092,7 @@ $code.=<<___;
.type se_handler,\@abi-omnipotent
.align 16
se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -49,7 +49,7 @@
S2N_BN_SYMBOL(bignum_add):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -54,7 +54,7 @@
S2N_BN_SYMBOL(bignum_cmadd):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -51,7 +51,7 @@
S2N_BN_SYMBOL(bignum_cmul):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -59,7 +59,7 @@
S2N_BN_SYMBOL(bignum_mul):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -72,7 +72,7 @@
adc h, rdx
S2N_BN_SYMBOL(bignum_mul_4_8_alt):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -72,7 +72,7 @@
adc h, rdx
S2N_BN_SYMBOL(bignum_mul_8_16_alt):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -62,7 +62,7 @@
#define llshort ebp
S2N_BN_SYMBOL(bignum_sqr):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -71,7 +71,7 @@
adc c, 0
S2N_BN_SYMBOL(bignum_sqr_4_8_alt):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -103,7 +103,7 @@
adc c, 0
S2N_BN_SYMBOL(bignum_sqr_8_16_alt):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -49,7 +49,7 @@
S2N_BN_SYMBOL(bignum_sub):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -30,7 +30,7 @@
.text
S2N_BN_SYMBOL(word_clz):
endbr64
_CET_ENDBR
#if WINDOWS_ABI
push rdi

View file

@ -347,7 +347,7 @@ $code.=<<___;
.type MULADD_128x512,\@abi-omnipotent
.align 16
MULADD_128x512:
endbr64
_CET_ENDBR
___
&MULSTEP_512([map("%r$_",(8..15))], "(+8*0)(%rcx)", "%rsi", "%rbp", "%rbx");
$code.=<<___;
@ -415,7 +415,7 @@ $code.=<<___;
.type mont_reduce,\@abi-omnipotent
.align 16
mont_reduce:
endbr64
_CET_ENDBR
___
my $STACK_DEPTH = 8;
@ -678,7 +678,7 @@ $code.=<<___;
.type mont_mul_a3b,\@abi-omnipotent
.align 16
mont_mul_a3b:
endbr64
_CET_ENDBR
#
# multiply tmp = src1 * src2
# For multiply: dst = rcx, src1 = rdi, src2 = rsi
@ -1080,7 +1080,7 @@ $code.=<<___;
.type sqr_reduce,\@abi-omnipotent
.align 16
sqr_reduce:
endbr64
_CET_ENDBR
mov (+$pResult_offset+8)(%rsp), %rcx
___
&SQR_512("%rsp+$tmp16_offset+8", "%rcx", [map("%r$_",(10..15,8..9))], "%rbx", "%rbp", "%rsi", "%rdi");
@ -1110,7 +1110,7 @@ $code.=<<___;
.globl mod_exp_512
.type mod_exp_512,\@function,4
mod_exp_512:
endbr64
_CET_ENDBR
push %rbp
push %rbx
push %r12

View file

@ -63,7 +63,7 @@ $code=<<___;
.type bn_mul_mont,\@function,6
.align 16
bn_mul_mont:
endbr64
_CET_ENDBR
test \$3,${num}d
jnz .Lmul_enter
cmp \$8,${num}d
@ -279,7 +279,7 @@ $code.=<<___;
.align 16
bn_mul4x_mont:
.Lmul4x_enter:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -708,7 +708,7 @@ $code.=<<___;
.align 16
bn_sqr4x_mont:
.Lsqr4x_enter:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12

View file

@ -57,7 +57,7 @@ $code=<<___;
.type bn_mul_mont_gather5,\@function,6
.align 64
bn_mul_mont_gather5:
endbr64
_CET_ENDBR
test \$3,${num}d
jnz .Lmul_enter
cmp \$8,${num}d
@ -388,7 +388,7 @@ $code.=<<___;
.type bn_mul4x_mont_gather5,\@function,6
.align 16
bn_mul4x_mont_gather5:
endbr64
_CET_ENDBR
.Lmul4x_enter:
mov ${num}d,${num}d
movd `($win64?56:8)`(%rsp),%xmm5 # load 7th argument
@ -927,7 +927,7 @@ $code.=<<___;
.type bn_scatter5,\@abi-omnipotent
.align 16
bn_scatter5:
endbr64
_CET_ENDBR
cmp \$0, $num
jz .Lscatter_epilogue
lea ($tbl,$idx,8),$tbl
@ -946,7 +946,7 @@ bn_scatter5:
.type bn_gather5,\@abi-omnipotent
.align 16
bn_gather5:
endbr64
_CET_ENDBR
.LSEH_begin_bn_gather5: # Win64 thing, but harmless in other cases
# I can't trust assembler to use specific encoding:-(
.byte 0x4c,0x8d,0x14,0x24 # lea (%rsp),%r10
@ -1057,7 +1057,7 @@ $code.=<<___;
.type mul_handler,\@abi-omnipotent
.align 16
mul_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -18,6 +18,12 @@
# define S2N_BN_SYMBOL(name) name
#endif
#ifdef __CET__
# include <cet.h>
#else
# define _CET_ENDBR
#endif
#define S2N_BN_SYM_VISIBILITY_DIRECTIVE(name) .globl S2N_BN_SYMBOL(name)
#ifdef S2N_BN_HIDE_SYMBOLS
# ifdef __APPLE__

View file

@ -116,7 +116,7 @@ $code=<<___;
.type Camellia_EncryptBlock,\@abi-omnipotent
.align 16
Camellia_EncryptBlock:
endbr64
_CET_ENDBR
movl \$128,%eax
subl $arg0d,%eax
movl \$3,$arg0d
@ -129,7 +129,7 @@ Camellia_EncryptBlock:
.align 16
.Lenc_rounds:
Camellia_EncryptBlock_Rounds:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r13
@ -178,7 +178,7 @@ Camellia_EncryptBlock_Rounds:
.type _x86_64_Camellia_encrypt,\@abi-omnipotent
.align 16
_x86_64_Camellia_encrypt:
endbr64
_CET_ENDBR
xor 0($key),@S[1]
xor 4($key),@S[0] # ^=key[0-3]
xor 8($key),@S[3]
@ -229,7 +229,7 @@ $code.=<<___;
.type Camellia_DecryptBlock,\@abi-omnipotent
.align 16
Camellia_DecryptBlock:
endbr64
_CET_ENDBR
movl \$128,%eax
subl $arg0d,%eax
movl \$3,$arg0d
@ -242,7 +242,7 @@ Camellia_DecryptBlock:
.align 16
.Ldec_rounds:
Camellia_DecryptBlock_Rounds:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r13
@ -291,7 +291,7 @@ Camellia_DecryptBlock_Rounds:
.type _x86_64_Camellia_decrypt,\@abi-omnipotent
.align 16
_x86_64_Camellia_decrypt:
endbr64
_CET_ENDBR
xor 0($key),@S[1]
xor 4($key),@S[0] # ^=key[0-3]
xor 8($key),@S[3]
@ -406,7 +406,7 @@ $code.=<<___;
.type Camellia_Ekeygen,\@function,3
.align 16
Camellia_Ekeygen:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r13
@ -637,7 +637,7 @@ $code.=<<___;
.type Camellia_cbc_encrypt,\@function,6
.align 16
Camellia_cbc_encrypt:
endbr64
_CET_ENDBR
cmp \$0,%rdx
je .Lcbc_abort
push %rbx

View file

@ -1,4 +1,4 @@
/* $OpenBSD: err.c,v 1.56 2023/07/28 10:23:19 tb Exp $ */
/* $OpenBSD: err.c,v 1.58 2024/02/24 07:53:01 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@ -328,17 +328,14 @@ err_string_data_cmp(const ERR_STRING_DATA *a, const ERR_STRING_DATA *b)
}
static IMPLEMENT_LHASH_COMP_FN(err_string_data, ERR_STRING_DATA)
static
LHASH_OF(ERR_STRING_DATA) *int_err_get(int create)
static LHASH_OF(ERR_STRING_DATA) *
int_err_get(int create)
{
LHASH_OF(ERR_STRING_DATA) *ret = NULL;
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
if (!int_error_hash && create) {
CRYPTO_push_info("int_err_get (err.c)");
if (!int_error_hash && create)
int_error_hash = lh_ERR_STRING_DATA_new();
CRYPTO_pop_info();
}
if (int_error_hash)
ret = int_error_hash;
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
@ -425,17 +422,14 @@ err_state_cmp(const ERR_STATE *a, const ERR_STATE *b)
}
static IMPLEMENT_LHASH_COMP_FN(err_state, ERR_STATE)
static
LHASH_OF(ERR_STATE) *int_thread_get(int create)
static LHASH_OF(ERR_STATE) *
int_thread_get(int create)
{
LHASH_OF(ERR_STATE) *ret = NULL;
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
if (!int_thread_hash && create) {
CRYPTO_push_info("int_thread_get (err.c)");
if (!int_thread_hash && create)
int_thread_hash = lh_ERR_STATE_new();
CRYPTO_pop_info();
}
if (int_thread_hash) {
int_thread_hash_references++;
ret = int_thread_hash;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: evp_cipher.c,v 1.19 2024/02/18 15:53:54 tb Exp $ */
/* $OpenBSD: evp_cipher.c,v 1.20 2024/02/24 08:00:37 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@ -804,10 +804,6 @@ EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx)
int
EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx, int key_len)
{
/* XXX - remove this. It's unused. */
if (ctx->cipher->flags & EVP_CIPH_CUSTOM_KEY_LENGTH)
return EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_KEY_LENGTH,
key_len, NULL);
if (ctx->key_len == key_len)
return 1;
if (key_len > 0 && (ctx->cipher->flags & EVP_CIPH_VARIABLE_LENGTH)) {

View file

@ -128,7 +128,7 @@ $code .= <<EOF;
.globl md5_block_asm_data_order
.type md5_block_asm_data_order,\@function,3
md5_block_asm_data_order:
endbr64
_CET_ENDBR
push %rbp
push %rbx
push %r12

View file

@ -165,6 +165,7 @@ $code=<<___;
.type gcm_gmult_4bit,\@function,2
.align 16
gcm_gmult_4bit:
_CET_ENDBR
push %rbx
push %rbp # %rbp and %r12 are pushed exclusively in
push %r12 # order to reuse Win64 exception handler...
@ -195,6 +196,7 @@ $code.=<<___;
.type gcm_ghash_4bit,\@function,4
.align 16
gcm_ghash_4bit:
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -412,7 +414,7 @@ $code.=<<___;
.type gcm_init_clmul,\@abi-omnipotent
.align 16
gcm_init_clmul:
endbr64
_CET_ENDBR
movdqu ($Xip),$Hkey
pshufd \$0b01001110,$Hkey,$Hkey # dword swap
@ -450,7 +452,7 @@ $code.=<<___;
.type gcm_gmult_clmul,\@abi-omnipotent
.align 16
gcm_gmult_clmul:
endbr64
_CET_ENDBR
movdqu ($Xip),$Xi
movdqa .Lbswap_mask(%rip),$T3
movdqu ($Htbl),$Hkey
@ -478,7 +480,7 @@ $code.=<<___;
.type gcm_ghash_clmul,\@abi-omnipotent
.align 16
gcm_ghash_clmul:
endbr64
_CET_ENDBR
___
$code.=<<___ if ($win64);
.LSEH_begin_gcm_ghash_clmul:
@ -689,7 +691,7 @@ $code.=<<___;
.type se_handler,\@abi-omnipotent
.align 16
se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -781,6 +781,22 @@ ___
OPTION DOTNAME
___
}
if ($nasm) {
print <<___;
\%define _CET_ENDBR
___
} else {
print <<___;
#if defined(__CET__)
#include <cet.h>
#else
#define _CET_ENDBR
#endif
___
}
print "#include \"x86_arch.h\"\n";
while($line=<>) {

View file

@ -109,7 +109,7 @@ $code.=<<___;
.globl $func
.type $func,\@function,$nargs
$func:
endbr64
_CET_ENDBR
cmp \$0,$len
je .Labort
push %rbx
@ -454,7 +454,7 @@ $code.=<<___;
.type RC4_set_key,\@function,3
.align 16
RC4_set_key:
endbr64
_CET_ENDBR
lea 8($dat),$dat
lea ($inp,$len),$inp
neg $len

View file

@ -128,7 +128,7 @@ $code=<<___;
.type RC4,\@function,4
.align 16
RC4:
endbr64
_CET_ENDBR
or $len,$len
jne .Lentry
ret
@ -435,7 +435,7 @@ $code.=<<___;
.type RC4_set_key,\@function,3
.align 16
RC4_set_key:
endbr64
_CET_ENDBR
lea 8($dat),$dat
lea ($inp,$len),$inp
neg $len

View file

@ -222,7 +222,7 @@ $code.=<<___;
.type sha1_block_data_order,\@function,3
.align 16
sha1_block_data_order:
endbr64
_CET_ENDBR
mov OPENSSL_ia32cap_P+0(%rip),%r9d
mov OPENSSL_ia32cap_P+4(%rip),%r8d
test \$IA32CAP_MASK1_SSSE3,%r8d # check SSSE3 bit
@ -310,7 +310,7 @@ $code.=<<___;
.align 16
sha1_block_data_order_ssse3:
_ssse3_shortcut:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -731,7 +731,7 @@ $code.=<<___;
.align 16
sha1_block_data_order_avx:
_avx_shortcut:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12
@ -1102,7 +1102,7 @@ $code.=<<___;
.type se_handler,\@abi-omnipotent
.align 16
se_handler:
endbr64
_CET_ENDBR
push %rsi
push %rdi
push %rbx

View file

@ -175,7 +175,7 @@ $code=<<___;
.type $func,\@function,4
.align 16
$func:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12

View file

@ -57,7 +57,7 @@ $code=<<___;
.type $func,\@function,3
.align 16
$func:
endbr64
_CET_ENDBR
push %rbx
push %rbp
push %r12

View file

@ -18,7 +18,7 @@ print<<___;
.extern OPENSSL_cpuid_setup
.hidden OPENSSL_cpuid_setup
.section .init
endbr64
_CET_ENDBR
call OPENSSL_cpuid_setup
.extern OPENSSL_ia32cap_P
@ -30,7 +30,7 @@ print<<___;
.type OPENSSL_ia32_cpuid,\@abi-omnipotent
.align 16
OPENSSL_ia32_cpuid:
endbr64
_CET_ENDBR
mov %rbx,%r8 # save %rbx
xor %eax,%eax