sync with OpenBSD -current
This commit is contained in:
parent
cc5edceac3
commit
6278c437f5
76 changed files with 1108 additions and 2495 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: aes.c,v 1.1 2024/03/28 00:57:26 jsing Exp $ */
|
||||
/* $OpenBSD: aes.c,v 1.2 2024/03/28 12:52:58 jsing Exp $ */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
|
@ -59,6 +59,31 @@ static const unsigned char aes_wrap_default_iv[] = {
|
|||
0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
|
||||
};
|
||||
|
||||
#ifdef HAVE_AES_CBC_ENCRYPT_INTERNAL
|
||||
void aes_cbc_encrypt_internal(const unsigned char *in, unsigned char *out,
|
||||
size_t len, const AES_KEY *key, unsigned char *ivec, const int enc);
|
||||
|
||||
#else
|
||||
static inline void
|
||||
aes_cbc_encrypt_internal(const unsigned char *in, unsigned char *out,
|
||||
size_t len, const AES_KEY *key, unsigned char *ivec, const int enc)
|
||||
{
|
||||
if (enc)
|
||||
CRYPTO_cbc128_encrypt(in, out, len, key, ivec,
|
||||
(block128_f)AES_encrypt);
|
||||
else
|
||||
CRYPTO_cbc128_decrypt(in, out, len, key, ivec,
|
||||
(block128_f)AES_decrypt);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
||||
size_t len, const AES_KEY *key, unsigned char *ivec, const int enc)
|
||||
{
|
||||
aes_cbc_encrypt_internal(in, out, len, key, ivec, enc);
|
||||
}
|
||||
|
||||
/*
|
||||
* The input and output encrypted as though 128bit cfb mode is being
|
||||
* used. The extra state information to record how much of the
|
||||
|
|
|
@ -2004,9 +2004,8 @@ sub declast()
|
|||
&mov (&DWP(12,$acc),$s3);
|
||||
&function_end("AES_decrypt");
|
||||
|
||||
# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
|
||||
# size_t length, const AES_KEY *key,
|
||||
# unsigned char *ivp,const int enc);
|
||||
# void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out,
|
||||
# size_t length, const AES_KEY *key, unsigned char *ivp,const int enc);
|
||||
{
|
||||
# stack frame layout
|
||||
# -4(%esp) # return address 0(%esp)
|
||||
|
@ -2029,7 +2028,7 @@ my $ivec=&DWP(60,"esp"); # ivec[16]
|
|||
my $aes_key=&DWP(76,"esp"); # copy of aes_key
|
||||
my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
|
||||
|
||||
&function_begin("AES_cbc_encrypt");
|
||||
&function_begin("aes_cbc_encrypt_internal");
|
||||
&mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len
|
||||
&cmp ($s2,0);
|
||||
&je (&label("drop_out"));
|
||||
|
@ -2617,7 +2616,7 @@ my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
|
|||
|
||||
&mov ("esp",$_esp);
|
||||
&popf ();
|
||||
&function_end("AES_cbc_encrypt");
|
||||
&function_end("aes_cbc_encrypt_internal");
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------#
|
||||
|
|
|
@ -1641,9 +1641,8 @@ $code.=<<___;
|
|||
.size AES_set_decrypt_key,.-AES_set_decrypt_key
|
||||
___
|
||||
|
||||
# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
|
||||
# size_t length, const AES_KEY *key,
|
||||
# unsigned char *ivp,const int enc);
|
||||
# void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out,
|
||||
# size_t length, const AES_KEY *key, unsigned char *ivp,const int enc);
|
||||
{
|
||||
# stack frame layout
|
||||
# -8(%rsp) return address
|
||||
|
@ -1660,15 +1659,15 @@ my $aes_key="80(%rsp)"; # copy of aes_key
|
|||
my $mark="80+240(%rsp)"; # copy of aes_key->rounds
|
||||
|
||||
$code.=<<___;
|
||||
.globl AES_cbc_encrypt
|
||||
.type AES_cbc_encrypt,\@function,6
|
||||
.globl aes_cbc_encrypt_internal
|
||||
.type aes_cbc_encrypt_internal,\@function,6
|
||||
.align 16
|
||||
.extern OPENSSL_ia32cap_P
|
||||
.hidden OPENSSL_ia32cap_P
|
||||
.globl asm_AES_cbc_encrypt
|
||||
.hidden asm_AES_cbc_encrypt
|
||||
asm_AES_cbc_encrypt:
|
||||
AES_cbc_encrypt:
|
||||
aes_cbc_encrypt_internal:
|
||||
_CET_ENDBR
|
||||
cmp \$0,%rdx # check length
|
||||
je .Lcbc_epilogue
|
||||
|
@ -2118,7 +2117,7 @@ AES_cbc_encrypt:
|
|||
popfq
|
||||
.Lcbc_epilogue:
|
||||
ret
|
||||
.size AES_cbc_encrypt,.-AES_cbc_encrypt
|
||||
.size aes_cbc_encrypt_internal,.-aes_cbc_encrypt_internal
|
||||
___
|
||||
}
|
||||
|
||||
|
@ -2799,9 +2798,9 @@ cbc_se_handler:
|
|||
.rva .LSEH_end_AES_set_decrypt_key
|
||||
.rva .LSEH_info_AES_set_decrypt_key
|
||||
|
||||
.rva .LSEH_begin_AES_cbc_encrypt
|
||||
.rva .LSEH_end_AES_cbc_encrypt
|
||||
.rva .LSEH_info_AES_cbc_encrypt
|
||||
.rva .LSEH_begin_aes_cbc_encrypt_internal
|
||||
.rva .LSEH_end_aes_cbc_encrypt_internal
|
||||
.rva .LSEH_info_aes_cbc_encrypt_internal
|
||||
|
||||
.section .xdata
|
||||
.align 8
|
||||
|
@ -2821,7 +2820,7 @@ cbc_se_handler:
|
|||
.byte 9,0,0,0
|
||||
.rva key_se_handler
|
||||
.rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[]
|
||||
.LSEH_info_AES_cbc_encrypt:
|
||||
.LSEH_info_aes_cbc_encrypt_internal:
|
||||
.byte 9,0,0,0
|
||||
.rva cbc_se_handler
|
||||
___
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue