Latest update.
This commit is contained in:
+20
-10
@@ -63,9 +63,6 @@ void engine_load_afalg_int(void)
|
||||
# define ALG_OP_TYPE unsigned int
|
||||
# define ALG_OP_LEN (sizeof(ALG_OP_TYPE))
|
||||
|
||||
#define ALG_MAX_SALG_NAME 64
|
||||
#define ALG_MAX_SALG_TYPE 14
|
||||
|
||||
# ifdef OPENSSL_NO_DYNAMIC_ENGINE
|
||||
void engine_load_afalg_int(void);
|
||||
# endif
|
||||
@@ -128,7 +125,23 @@ static ossl_inline int io_getevents(aio_context_t ctx, long min, long max,
|
||||
struct io_event *events,
|
||||
struct timespec *timeout)
|
||||
{
|
||||
#if defined(__NR_io_getevents)
|
||||
return syscall(__NR_io_getevents, ctx, min, max, events, timeout);
|
||||
#elif defined(__NR_io_pgetevents_time64)
|
||||
/* Let's only support the 64 suffix syscalls for 64-bit time_t.
|
||||
* This simplifies the code for us as we don't need to use a 64-bit
|
||||
* version of timespec with a 32-bit time_t and handle converting
|
||||
* between 64-bit and 32-bit times and check for overflows.
|
||||
*/
|
||||
if (sizeof(timeout->tv_sec) == 8)
|
||||
return syscall(__NR_io_pgetevents_time64, ctx, min, max, events, timeout, NULL);
|
||||
else {
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
#else
|
||||
# error "We require either the io_getevents syscall or __NR_io_pgetevents_time64."
|
||||
#endif
|
||||
}
|
||||
|
||||
static void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,
|
||||
@@ -371,10 +384,8 @@ static int afalg_create_sk(afalg_ctx *actx, const char *ciphertype,
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.salg_family = AF_ALG;
|
||||
strncpy((char *) sa.salg_type, ciphertype, ALG_MAX_SALG_TYPE);
|
||||
sa.salg_type[ALG_MAX_SALG_TYPE-1] = '\0';
|
||||
strncpy((char *) sa.salg_name, ciphername, ALG_MAX_SALG_NAME);
|
||||
sa.salg_name[ALG_MAX_SALG_NAME-1] = '\0';
|
||||
OPENSSL_strlcpy((char *) sa.salg_type, ciphertype, sizeof(sa.salg_type));
|
||||
OPENSSL_strlcpy((char *) sa.salg_name, ciphername, sizeof(sa.salg_name));
|
||||
|
||||
actx->bfd = socket(AF_ALG, SOCK_SEQPACKET, 0);
|
||||
if (actx->bfd == -1) {
|
||||
@@ -503,7 +514,7 @@ static int afalg_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
int ciphertype;
|
||||
int ret;
|
||||
afalg_ctx *actx;
|
||||
char ciphername[ALG_MAX_SALG_NAME];
|
||||
const char *ciphername;
|
||||
|
||||
if (ctx == NULL || key == NULL) {
|
||||
ALG_WARN("%s(%d): Null Parameter\n", __FILE__, __LINE__);
|
||||
@@ -526,14 +537,13 @@ static int afalg_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
case NID_aes_128_cbc:
|
||||
case NID_aes_192_cbc:
|
||||
case NID_aes_256_cbc:
|
||||
strncpy(ciphername, "cbc(aes)", ALG_MAX_SALG_NAME);
|
||||
ciphername = "cbc(aes)";
|
||||
break;
|
||||
default:
|
||||
ALG_WARN("%s(%d): Unsupported Cipher type %d\n", __FILE__, __LINE__,
|
||||
ciphertype);
|
||||
return 0;
|
||||
}
|
||||
ciphername[ALG_MAX_SALG_NAME-1]='\0';
|
||||
|
||||
if (ALG_AES_IV_LEN != EVP_CIPHER_CTX_iv_length(ctx)) {
|
||||
ALG_WARN("%s(%d): Unsupported IV length :%d\n", __FILE__, __LINE__,
|
||||
|
||||
Reference in New Issue
Block a user