--- libaitio/inc/aitio.h 2015/01/19 23:32:30 1.41 +++ libaitio/inc/aitio.h 2019/10/08 12:58:55 1.42.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.41 2015/01/19 23:32:30 misho Exp $ +* $Id: aitio.h,v 1.42.2.1 2019/10/08 12:58:55 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004 - 2014 +Copyright 2004 - 2016 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -51,20 +51,48 @@ SUCH DAMAGE. #include #include -#include +#include #include -#include -#include +#include +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + #include +#endif #include #include #include +#ifndef __linux__ +#include +#include #include #include +#endif #include #include #include +#ifndef evp_cipher_ctx_st +struct evp_cipher_ctx_st { + const EVP_CIPHER *cipher; + ENGINE *engine; /* functional reference if 'cipher' is + * ENGINE-provided */ + int encrypt; /* encrypt or decrypt */ + int buf_len; /* number we have left */ + unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ + unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ + unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ + int num; /* used by cfb/ofb/ctr mode */ + /* FIXME: Should this even exist? It appears unused */ + void *app_data; /* application stuff */ + int key_len; /* May change for variable length cipher */ + unsigned long flags; /* Various flags */ + void *cipher_data; /* per EVP data */ + int final_used; + int block_mask; + unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ +} /* EVP_CIPHER_CTX */ ; +#endif + #ifndef STRSIZ #define STRSIZ 256 #endif @@ -631,6 +659,7 @@ FILE *io_fd2buf(int fd, const char *mode); * return: -1 error or open file handle */ int io_dumbFile(const char *csFile, int mode, off_t size); +#define io_emptyFile io_dumbFile /* @@ -639,7 +668,7 @@ int io_dumbFile(const char *csFile, int mode, off_t si * @csIface = interface name * @flags = open flags * @whdr = with complete headers - * @wdlt = with data link type + * @wdlt = with data link type, on Linux is protocol number * @buflen = buffer length * @zcbuf = zero copy buffer, if BPF supports it and isn't NULL * return: -1 error or >-1 bpf handle @@ -655,6 +684,7 @@ int io_etherOpen(const char *csIface, int flags, unsig */ void io_etherClose(int eth, void **zcbuf); +#ifndef __linux__ /* * io_etherFilter() - BPF filter routine * @@ -666,6 +696,7 @@ void io_etherClose(int eth, void **zcbuf); * return: -1 error or 0 ok */ int io_etherFilter(int eth, int io, struct bpf_insn * __restrict insn, size_t insnlen); +#endif /* * io_etherSend() - Send packet to bpf