Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
.github/workflows/ | H | - | - | 72 | 66 | |
crc/ | H | - | - | 22,421 | 18,081 | |
doc/ | H | - | - | 331 | 242 | |
erasure_code/ | H | - | - | 42,576 | 34,544 | |
examples/ | H | - | - | 1,317 | 896 | |
igzip/ | H | - | - | 39,120 | 31,858 | |
include/ | H | - | - | 5,657 | 2,894 | |
mem/ | H | - | - | 1,580 | 1,189 | |
programs/ | H | - | - | 1,615 | 1,310 | |
raid/ | H | - | - | 5,865 | 4,531 | |
tests/fuzz/ | H | - | - | 386 | 282 | |
tools/ | H | - | - | 1,024 | 839 | |
.clang-format | H A D | 19-Apr-2024 | 2 KiB | 47 | 45 | |
.clang-format-ignore | H A D | 02-May-2024 | 69 | 4 | 3 | |
.gitignore | H A D | 22-Apr-2019 | 233 | 29 | 26 | |
.travis.yml | H A D | 21-May-2021 | 2 KiB | 87 | 69 | |
CONTRIBUTING.md | H A D | 19-Apr-2024 | 1.3 KiB | 40 | 26 | |
Doxyfile | H A D | 19-Jul-2022 | 1.2 KiB | 36 | 32 | |
LICENSE | H A D | 07-Dec-2023 | 1.6 KiB | 29 | 25 | |
Makefile.am | H A D | 07-Jan-2025 | 4.2 KiB | |||
Makefile.nmake | H A D | 18-Dec-2024 | 10.9 KiB | 386 | 316 | |
Makefile.unx | H A D | 07-Mar-2020 | 2.3 KiB | 57 | 18 | |
README.md | H A D | 19-Mar-2024 | 4.3 KiB | 103 | 77 | |
Release_notes.txt | H A D | 07-Jan-2025 | 11.3 KiB | 359 | 244 | |
SECURITY.md | H A D | 19-Jul-2022 | 430 | 12 | 7 | |
autogen.sh | H A D | 04-Dec-2023 | 443 | 18 | 12 | |
configure.ac | H A D | 18-Dec-2024 | 9 KiB | 329 | 301 | |
isa-l.def | H A D | 20-Dec-2023 | 3.7 KiB | 125 | 123 | |
isa-l.rc | H A D | 03-Sep-2021 | 3.6 KiB | 79 | 69 | |
libisal.pc.in | H A D | 22-Oct-2015 | 220 | 12 | 10 | |
make.inc | H A D | 18-Dec-2024 | 13.1 KiB | 406 | 339 |
README.md
1Intel(R) Intelligent Storage Acceleration Library 2================================================= 3 4 5[](https://anaconda.org/conda-forge/isa-l) 6[](https://scan.coverity.com/projects/intel-isa-l) 7[](https://securityscorecards.dev/viewer/?uri=github.com/intel/isa-l) 8 9ISA-L is a collection of optimized low-level functions targeting storage 10applications. ISA-L includes: 11* Erasure codes - Fast block Reed-Solomon type erasure codes for any 12 encode/decode matrix in GF(2^8). 13* CRC - Fast implementations of cyclic redundancy check. Six different 14 polynomials supported. 15 - iscsi32, ieee32, t10dif, ecma64, iso64, jones64, rocksoft64. 16* Raid - calculate and operate on XOR and P+Q parity found in common RAID 17 implementations. 18* Compression - Fast deflate-compatible data compression. 19* De-compression - Fast inflate-compatible data compression. 20* igzip - A command line application like gzip, accelerated with ISA-L. 21 22Also see: 23* [ISA-L for updates](https://github.com/intel/isa-l). 24* For crypto functions see [isa-l_crypto on github](https://github.com/intel/isa-l_crypto). 25* The [github wiki](https://github.com/intel/isa-l/wiki) including a list of 26 [distros/ports](https://github.com/intel/isa-l/wiki/Ports--Repos) offering binary packages 27 as well as a list of [language bindings](https://github.com/intel/isa-l/wiki/Language-Bindings). 28* [Contributing](CONTRIBUTING.md). 29* [Security Policy](SECURITY.md). 30* Docs on [units](doc/functions.md), [tests](doc/test.md), or [build details](doc/build.md). 31 32Building ISA-L 33-------------- 34 35### Prerequisites 36 37* Make: GNU 'make' or 'nmake' (Windows). 38* Optional: Building with autotools requires autoconf/automake/libtool packages. 39* Optional: Manual generation requires help2man package. 40 41x86_64: 42* Assembler: nasm. Version 2.15 or later suggested (other versions of nasm and 43 yasm may build but with limited function [support](doc/build.md)). 44* Compiler: gcc, clang, icc or VC compiler. 45 46aarch64: 47* Assembler: gas v2.24 or later. 48* Compiler: gcc v4.7 or later. 49 50other: 51* Compiler: Portable base functions are available that build with most C compilers. 52 53### Autotools 54To build and install the library with autotools it is usually sufficient to run: 55 56 ./autogen.sh 57 ./configure 58 make 59 sudo make install 60 61### Makefile 62To use a standard makefile run: 63 64 make -f Makefile.unx 65 66### Windows 67On Windows use nmake to build dll and static lib: 68 69 nmake -f Makefile.nmake 70 71or see [details on setting up environment here](doc/build.md). 72 73### Other make targets 74Other targets include: 75* `make check` : create and run tests 76* `make tests` : create additional unit tests 77* `make perfs` : create included performance tests 78* `make ex` : build examples 79* `make other` : build other utilities such as compression file tests 80* `make doc` : build API manual 81 82DLL Injection Attack 83-------------------- 84 85### Problem 86 87The Windows OS has an insecure predefined search order and set of defaults when trying to locate a resource. If the resource location is not specified by the software, an attacker need only place a malicious version in one of the locations Windows will search, and it will be loaded instead. Although this weakness can occur with any resource, it is especially common with DLL files. 88 89### Solutions 90 91Applications using libisal DLL library may need to apply one of the solutions to prevent from DLL injection attack. 92 93Two solutions are available: 94- Using a Fully Qualified Path is the most secure way to load a DLL 95- Signature verification of the DLL 96 97### Resources and Solution Details 98 99- Security remarks section of LoadLibraryEx documentation by Microsoft: <https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa#security-remarks> 100- Microsoft Dynamic Link Library Security article: <https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-security> 101- Hijack Execution Flow: DLL Search Order Hijacking: <https://attack.mitre.org/techniques/T1574/001> 102- Hijack Execution Flow: DLL Side-Loading: <https://attack.mitre.org/techniques/T1574/002> 103