1libipsec-mb(7)             Linux Programmer's Manual            libipsec-mb(7)
2
3
4

NAME

6       libipsec-mb  -  overview  of Intel(R) Multi-Buffer Crypto for IPSec li‐
7       brary
8

DESCRIPTION

10       Intel Multi-Buffer Crypto for IPsec Library  provides  highly-optimized
11       software  crypto  implementations  targeting packet processing applica‐
12       tions such as IPsec, TLS, Wireless (RAN), Cable and MPEG DRM  and  pro‐
13       vides industry-leading performance on a range of Intel(R) Processors.
14       The  library offers API crafted for applications where a buffer is sub‐
15       ject of encryption and/or integrity operations.
16       For best processor utilization it uses multi buffer technology for  al‐
17       gorithms that don't allow multi block processing.
18       See more in the Intel White Paper: "Fast Multi-buffer IPsec Implementa‐
19       tions on Intel Architecture Processors".  Jim  Guilford,  Sean  Gulley,
20       et. al.
21       The easiest way to find it is to search the Internet for the title.
22
23
24       More     information     can     be     found     at     intel-ipsec-mb
25https://github.com/intel/intel-ipsec-mb⟩.
26
27
28   ENCRYPTION ALGORITHMS
29       AES128-GCM, AES192-GCM, AES256-GCM, AES128-CBC, AES192-CBC, AES256-CBC,
30       AES128-CTR, AES192-CTR, AES256-CTR, AES128-CCM, AES256-CCM, AES128-ECB,
31       AES192-ECB, AES256-ECB, NULL, AES128-DOCSIS, AES256-DOCSIS, DES-DOCSIS,
32       3DES, DES, KASUMI-F8, ZUC-EEA3, ZUC-EEA3-256, SNOW3G-UEA2, AES128-CBCS,
33       CHACHA20, CHACHA20 AEAD, SNOW-V, SNOW-V AEAD and PON-CRC-BIP.
34
35
36   INTEGRITY ALGORITHMS
37       AES-XCBC-96,  HMAC-MD5-96,   HMAC-SHA1-96,   HMAC-SHA2-224_112,   HMAC-
38       SHA2-256_128,    HMAC-SHA2-384_192,   HMAC-SHA2-512_256,   AES128-GMAC,
39       AES192-GMAC, AES256-GMAC, NULL, AES128-CCM, AES256-CCM, AES128-CMAC-96,
40       AES256-CMAC-96, KASUMI-F9, ZUC-EIA3, ZUC-EIA3-256, SNOW3G-UIA2, DOCSIS-
41       CRC32, HEC, POLY1305, POLY1305 AEAD, SNOW-V AEAD, GHASH, PON-CRC-BIP as
42       well as multiple CRC types.
43
44
45   RECOMMENDATIONS
46       DES  algorithm  should be avoided and AES encryption should be used in‐
47       stead.
48       3DES is a legacy algorithms and AES encryption is  recommended  to  use
49       instead.
50       HMAC-MD5-96  is  a legacy algorithm and HMAC-SHA1 is recommended to use
51       instead.
52       DES, 3DES and HMAC-MD5-96 are implemented in  the  library  to  support
53       legacy applications.
54       AES-ECB  algorithm should be avoided and AES-CBC or AES-CNTR encryption
55       should be used instead.
56
57
58   KEY STORAGE
59       The library doesn't offer any solution for secure key storage or  stor‐
60       age  of sensitive information.  It is up to application to arrange safe
61       storage of sensitive information.
62
63
64   API
65       The library offers four sets of identical API's. Each  set  corresponds
66       to one architecture: SSE, AVX, AVX2 and AVX512.
67       It   comprises   of  init_mb_mgr,  get_next_job,  submit_job,  get_com‐
68       pleted_job and flush_job operations.
69       init_mb_mgr()  - initializes the instance of the multi-buffer manager
70       get_next_job() - obtains pointer to next available job entry
71       submit_job()   - submits job for processing
72       get_completed_job() - returns already completed jobs
73       flush_job()    - flushes multi-buffer manager and completes any outstanding operations.
74
75       The basic usage of the API is presented by this pseudo code:
76
77               init_mb_mgr(&mb_mgr);
78               ...
79               while (work_to_be_done) {
80                       job = get_next_job(&mb_mgr);
81                       /* TODO: Fill in job fields */
82                       job = submit_job(&mb_mgr);
83                       while (job != NULL) {
84                               /* TODO: Complete processing on job */
85                            job = get_completed_job(&mb_mgr);
86                       }
87               }
88
89               job = flush_job(&mb_mgr);
90               while (job != NULL) {
91                       /* TODO: Complete processing on job */
92                    job = flush_job(&mb_mgr);
93               }
94
95       The library provides more interface functions i.e.  single  block  hash
96       functions for HMAC OPAD and IPAD calculations.
97

BUGS

99       Report  bugs  at intel-ipsec-mb/issueshttps://github.com/intel/intel-
100       ipsec-mb/issues⟩.
101
102

AUTHORS

104       Jim Guilford <james.guilford@intel.com>, Tomasz  Kantecki  <tomasz.kan‐
105       tecki@intel.com>
106
107
108       This is free software; see the source for copying conditions.  There is
109       NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR
110       PURPOSE.
111
112
113
114Linux                             2018-03-01                    libipsec-mb(7)
Impressum