#include <stdlib.h>
#include <stdint.h>
#include <errno.h>
Go to the source code of this file.
Data Structures | |
struct | imb_uint128_t |
struct | IMB_SGL_IOV |
struct | IMB_JOB |
struct | kasumi_key_sched_s |
struct | gcm_context_data |
holds GCM operation context More... | |
struct | chacha20_poly1305_context_data |
holds Chacha20-Poly1305 operation context More... | |
struct | gcm_key_data |
holds intermediate key data needed to improve performance More... | |
struct | snow3g_key_schedule_s |
struct | IMB_MGR |
Macros | |
#define | DECLARE_ALIGNED(decl, alignval) __declspec(align(alignval)) decl |
#define | __forceinline static __forceinline |
#define | IMB_DLL_EXPORT |
#define | IMB_DLL_LOCAL |
#define | IMB_VERSION_STR "1.2.0" |
#define | IMB_VERSION_NUM 0x10200 |
#define | IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c)) |
#define | IMB_ASSERT(x) |
#define | IMB_DIM(x) (sizeof(x) / sizeof(x[0])) |
#define | IMB_DES_KEY_SCHED_SIZE (16 * 8) |
#define | IMB_DES_BLOCK_SIZE 8 |
#define | IMB_AES_BLOCK_SIZE 16 |
#define | IMB_SHA1_DIGEST_SIZE_IN_BYTES 20 |
#define | IMB_SHA224_DIGEST_SIZE_IN_BYTES 28 |
#define | IMB_SHA256_DIGEST_SIZE_IN_BYTES 32 |
#define | IMB_SHA384_DIGEST_SIZE_IN_BYTES 48 |
#define | IMB_SHA512_DIGEST_SIZE_IN_BYTES 64 |
#define | IMB_SHA1_BLOCK_SIZE 64 |
#define | IMB_SHA_256_BLOCK_SIZE 64 |
#define | IMB_SHA_384_BLOCK_SIZE 128 |
#define | IMB_SHA_512_BLOCK_SIZE 128 |
#define | IMB_KASUMI_KEY_SIZE 16 |
#define | IMB_KASUMI_IV_SIZE 8 |
#define | IMB_KASUMI_BLOCK_SIZE 8 |
#define | IMB_KASUMI_DIGEST_SIZE 4 |
#define | IMB_DOCSIS_CRC32_MIN_ETH_PDU_SIZE 14 |
#define | IMB_DOCSIS_CRC32_TAG_SIZE 4 |
#define | KASUMI_KEY_SCHEDULE_SIZE 64 |
#define | IMB_GCM_BLOCK_LEN 16 |
#define | IMB_MAX_TAG_LEN (16) |
#define | IMB_GCM_IV_DATA_LEN (12) |
#define | IMB_GCM_128_KEY_LEN (16) |
#define | IMB_GCM_192_KEY_LEN (24) |
#define | IMB_GCM_256_KEY_LEN (32) |
#define | IMB_GCM_ENC_KEY_LEN 16 |
#define | IMB_GCM_KEY_SETS (15) |
#define | IMB_FLAG_SHANI_OFF (1ULL << 0) |
#define | IMB_FLAG_AESNI_OFF (1ULL << 1) |
#define | IMB_FEATURE_SHANI (1ULL << 0) |
#define | IMB_FEATURE_AESNI (1ULL << 1) |
#define | IMB_FEATURE_PCLMULQDQ (1ULL << 2) |
#define | IMB_FEATURE_CMOV (1ULL << 3) |
#define | IMB_FEATURE_SSE4_2 (1ULL << 4) |
#define | IMB_FEATURE_AVX (1ULL << 5) |
#define | IMB_FEATURE_AVX2 (1ULL << 6) |
#define | IMB_FEATURE_AVX512F (1ULL << 7) |
#define | IMB_FEATURE_AVX512DQ (1ULL << 8) |
#define | IMB_FEATURE_AVX512CD (1ULL << 9) |
#define | IMB_FEATURE_AVX512BW (1ULL << 10) |
#define | IMB_FEATURE_AVX512VL (1ULL << 11) |
#define | IMB_FEATURE_AVX512_SKX |
#define | IMB_FEATURE_VAES (1ULL << 12) |
#define | IMB_FEATURE_VPCLMULQDQ (1ULL << 13) |
#define | IMB_FEATURE_SAFE_DATA (1ULL << 14) |
#define | IMB_FEATURE_SAFE_PARAM (1ULL << 15) |
#define | IMB_FEATURE_GFNI (1ULL << 16) |
#define | IMB_FEATURE_AVX512_IFMA (1ULL << 17) |
#define | IMB_FEATURE_BMI2 (1ULL << 18) |
#define | IMB_FEATURE_AESNI_EMU (1ULL << 19) |
#define | IMB_CPUFLAGS_NO_AESNI (IMB_FEATURE_SSE4_2 | IMB_FEATURE_CMOV) |
#define | IMB_CPUFLAGS_SSE |
#define | IMB_CPUFLAGS_AVX (IMB_CPUFLAGS_SSE | IMB_FEATURE_AVX) |
#define | IMB_CPUFLAGS_AVX2 |
#define | IMB_CPUFLAGS_AVX512 (IMB_CPUFLAGS_AVX2 | IMB_FEATURE_AVX512_SKX) |
#define | IMB_MAX_JOBS 128 |
#define | IMB_GET_NEXT_JOB(_mgr) ((_mgr)->get_next_job((_mgr))) |
Get next available job. More... | |
#define | IMB_SUBMIT_JOB(_mgr) ((_mgr)->submit_job((_mgr))) |
Submit job for processing after validating. More... | |
#define | IMB_SUBMIT_JOB_NOCHECK(_mgr) ((_mgr)->submit_job_nocheck((_mgr))) |
Submit job for processing without validating. More... | |
#define | IMB_GET_COMPLETED_JOB(_mgr) ((_mgr)->get_completed_job((_mgr))) |
Get next completed job. More... | |
#define | IMB_FLUSH_JOB(_mgr) ((_mgr)->flush_job((_mgr))) |
Force processing until next job in queue is completed. More... | |
#define | IMB_QUEUE_SIZE(_mgr) ((_mgr)->queue_size((_mgr))) |
Get number of jobs queued to be processed. More... | |
#define | IMB_SUBMIT_BURST(_mgr, _jobs, _n_jobs) ((_mgr)->submit_burst((_mgr), (_jobs), (_n_jobs))) |
#define | IMB_SUBMIT_BURST_NOCHECK(_mgr, _jobs, _n_jobs) ((_mgr)->submit_burst_nocheck((_mgr), (_jobs), (_n_jobs))) |
#define | IMB_SUBMIT_CIPHER_BURST(_mgr, _jobs, _n_jobs, _cipher, _dir, _key_size) |
#define | IMB_SUBMIT_CIPHER_BURST_NOCHECK(_mgr, _jobs, _n_jobs, _cipher, _dir, _key_size) |
#define | IMB_SUBMIT_HASH_BURST(_mgr, _jobs, _n_jobs, _hash) ((_mgr)->submit_hash_burst((_mgr), (_jobs), (_n_jobs), (_hash))) |
#define | IMB_SUBMIT_HASH_BURST_NOCHECK(_mgr, _jobs, _n_jobs, _hash) ((_mgr)->submit_hash_burst_nocheck((_mgr), (_jobs), (_n_jobs), (_hash))) |
#define | IMB_AES_KEYEXP_128(_mgr, _key, _enc_exp_key, _dec_exp_key) ((_mgr)->keyexp_128((_key), (_enc_exp_key), (_dec_exp_key))) |
#define | IMB_AES_KEYEXP_192(_mgr, _key, _enc_exp_key, _dec_exp_key) ((_mgr)->keyexp_192((_key), (_enc_exp_key), (_dec_exp_key))) |
#define | IMB_AES_KEYEXP_256(_mgr, _key, _enc_exp_key, _dec_exp_key) ((_mgr)->keyexp_256((_key), (_enc_exp_key), (_dec_exp_key))) |
#define | IMB_AES_CMAC_SUBKEY_GEN_128(_mgr, _exp_key, _key1, _key2) ((_mgr)->cmac_subkey_gen_128((_exp_key), (_key1), (_key2))) |
#define | IMB_AES_CMAC_SUBKEY_GEN_256(_mgr, _exp_key, _key1, _key2) ((_mgr)->cmac_subkey_gen_256((_exp_key), (_key1), (_key2))) |
#define | IMB_AES_XCBC_KEYEXP(_mgr, _key, _exp_key, _exp_key2, _exp_key3) ((_mgr)->xcbc_keyexp((_key), (_exp_key), (_exp_key2), (_exp_key3))) |
#define | IMB_DES_KEYSCHED(_mgr, _exp_key, _key) ((_mgr)->des_key_sched((_exp_key), (_key))) |
#define | IMB_SHA1_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->sha1_one_block((_src), (_tag))) |
#define | IMB_SHA1(_mgr, _src, _length, _tag) ((_mgr)->sha1((_src), (_length), (_tag))) |
#define | IMB_SHA224_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->sha224_one_block((_src), (_tag))) |
#define | IMB_SHA224(_mgr, _src, _length, _tag) ((_mgr)->sha224((_src), (_length), (_tag))) |
#define | IMB_SHA256_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->sha256_one_block((_src), (_tag))) |
#define | IMB_SHA256(_mgr, _src, _length, _tag) ((_mgr)->sha256((_src), (_length), (_tag))) |
#define | IMB_SHA384_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->sha384_one_block((_src), (_tag))) |
#define | IMB_SHA384(_mgr, _src, _length, _tag) ((_mgr)->sha384((_src), (_length), (_tag))) |
#define | IMB_SHA512_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->sha512_one_block((_src), (_tag))) |
#define | IMB_SHA512(_mgr, _src, _length, _tag) ((_mgr)->sha512((_src), (_length), (_tag))) |
#define | IMB_MD5_ONE_BLOCK(_mgr, _src, _tag) ((_mgr)->md5_one_block((_src), (_tag))) |
#define | IMB_AES128_CFB_ONE(_mgr, _dst, _src, _iv, _exp_key, _len) ((_mgr)->aes128_cfb_one((_dst), (_src), (_iv), (_exp_key), (_len))) |
AES-CFB-128 Encrypt/Decrypt up to one block. More... | |
#define | IMB_AES128_GCM_ENC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES192_GCM_ENC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES256_GCM_ENC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES128_GCM_DEC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES192_GCM_DEC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES256_GCM_DEC(_mgr, _exp_key, _ctx, _dst, _src, _len, _iv, _aad, _aadl, _tag, _tagl) |
#define | IMB_AES128_GCM_INIT(_mgr, _exp_key, _ctx, _iv, _aad, _aadl) ((_mgr)->gcm128_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define | IMB_AES192_GCM_INIT(_mgr, _exp_key, _ctx, _iv, _aad, _aadl) ((_mgr)->gcm192_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define | IMB_AES256_GCM_INIT(_mgr, _exp_key, _ctx, _iv, _aad, _aadl) ((_mgr)->gcm256_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define | IMB_AES128_GCM_INIT_VAR_IV(_mgr, _exp_key, _ctx, _iv, _ivl, _aad, _aadl) |
#define | IMB_AES192_GCM_INIT_VAR_IV(_mgr, _exp_key, _ctx, _iv, _ivl, _aad, _aadl) |
#define | IMB_AES256_GCM_INIT_VAR_IV(_mgr, _exp_key, _ctx, _iv, _ivl, _aad, _aadl) |
#define | IMB_AES128_GCM_ENC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm128_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES192_GCM_ENC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm192_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES256_GCM_ENC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm256_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES128_GCM_DEC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm128_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES192_GCM_DEC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm192_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES256_GCM_DEC_UPDATE(_mgr, _exp_key, _ctx, _dst, _src, _len) ((_mgr)->gcm256_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define | IMB_AES128_GCM_ENC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm128_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES192_GCM_ENC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm192_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES256_GCM_ENC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm256_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES128_GCM_DEC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm128_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES192_GCM_DEC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm192_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES256_GCM_DEC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gcm256_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES128_GMAC_INIT(_mgr, _exp_key, _ctx, _iv, _ivl) ((_mgr)->gmac128_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define | IMB_AES192_GMAC_INIT(_mgr, _exp_key, _ctx, _iv, _ivl) ((_mgr)->gmac192_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define | IMB_AES256_GMAC_INIT(_mgr, _exp_key, _ctx, _iv, _ivl) ((_mgr)->gmac256_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define | IMB_AES128_GMAC_UPDATE(_mgr, _exp_key, _ctx, _src, _len) ((_mgr)->gmac128_update((_exp_key), (_ctx), (_src), (_len))) |
#define | IMB_AES192_GMAC_UPDATE(_mgr, _exp_key, _ctx, _src, _len) ((_mgr)->gmac192_update((_exp_key), (_ctx), (_src), (_len))) |
#define | IMB_AES256_GMAC_UPDATE(_mgr, _exp_key, _ctx, _src, _len) ((_mgr)->gmac256_update((_exp_key), (_ctx), (_src), (_len))) |
#define | IMB_AES128_GMAC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gmac128_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES192_GMAC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gmac192_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES256_GMAC_FINALIZE(_mgr, _exp_key, _ctx, _tag, _tagl) ((_mgr)->gmac256_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define | IMB_AES128_GCM_PRECOMP(_mgr, _key) ((_mgr)->gcm128_precomp((_key))) |
#define | IMB_AES192_GCM_PRECOMP(_mgr, _key) ((_mgr)->gcm192_precomp((_key))) |
#define | IMB_AES256_GCM_PRECOMP(_mgr, _key) ((_mgr)->gcm256_precomp((_key))) |
#define | IMB_AES128_GCM_PRE(_mgr, _key, _exp_key) ((_mgr)->gcm128_pre((_key), (_exp_key))) |
#define | IMB_AES192_GCM_PRE(_mgr, _key, _exp_key) ((_mgr)->gcm192_pre((_key), (_exp_key))) |
#define | IMB_AES256_GCM_PRE(_mgr, _key, _exp_key) ((_mgr)->gcm256_pre((_key), (_exp_key))) |
#define | IMB_GHASH_PRE(_mgr, _key, _exp_key) ((_mgr)->ghash_pre((_key), (_exp_key))) |
#define | IMB_GHASH(_mgr, _exp_key, _src, _len, _tag, _tagl) ((_mgr)->ghash((_exp_key), (_src), (_len), (_tag), (_tagl))) |
#define | IMB_CHACHA20_POLY1305_INIT(_mgr, _key, _ctx, _iv, _aad, _aadl) |
#define | IMB_CHACHA20_POLY1305_ENC_UPDATE(_mgr, _key, _ctx, _dst, _src, _len) |
#define | IMB_CHACHA20_POLY1305_DEC_UPDATE(_mgr, _key, _ctx, _dst, _src, _len) |
#define | IMB_CHACHA20_POLY1305_ENC_FINALIZE(_mgr, _ctx, _tag, _tagl) ((_mgr)->chacha20_poly1305_finalize((_ctx), (_tag), (_tagl))) |
#define | IMB_CHACHA20_POLY1305_DEC_FINALIZE(_mgr, _ctx, _tag, _tagl) ((_mgr)->chacha20_poly1305_finalize((_ctx), (_tag), (_tagl))) |
#define | IMB_ZUC_EEA3_1_BUFFER(_mgr, _key, _iv, _src, _dst, _len) ((_mgr)->eea3_1_buffer((_key), (_iv), (_src), (_dst), (_len))) |
ZUC EEA3 Confidentiality functions. More... | |
#define | IMB_ZUC_EEA3_4_BUFFER(_mgr, _key, _iv, _src, _dst, _len) ((_mgr)->eea3_4_buffer((_key), (_iv), (_src), (_dst), (_len))) |
#define | IMB_ZUC_EEA3_N_BUFFER(_mgr, _key, _iv, _src, _dst, _len, _count) ((_mgr)->eea3_n_buffer((_key), (_iv), (_src), (_dst), (_len), (_count))) |
#define | IMB_ZUC_EIA3_1_BUFFER(_mgr, _key, _iv, _src, _len, _tag) ((_mgr)->eia3_1_buffer((_key), (_iv), (_src), (_len), (_tag))) |
ZUC EIA3 Integrity function. More... | |
#define | IMB_ZUC_EIA3_N_BUFFER(_mgr, _key, _iv, _src, _len, _tag, _count) ((_mgr)->eia3_n_buffer((_key), (_iv), (_src), (_len), (_tag), (_count))) |
#define | IMB_KASUMI_F8_1_BUFFER(_mgr, _exp_key, _iv, _src, _dst, _len) ((_mgr)->f8_1_buffer((_exp_key), (_iv), (_src), (_dst), (_len))) |
Kasumi byte-level f8 operation on a single buffer. More... | |
#define | IMB_KASUMI_F8_1_BUFFER_BIT(_mgr, _exp_key, _iv, _src, _dst, _len, _offset) |
Kasumi bit-level f8 operation on a single buffer. More... | |
#define | IMB_KASUMI_F8_2_BUFFER(_mgr, _exp_key, _iv1, _iv2, _src1, _dst1, _len1, _src2, _dst2, _len2) |
Kasumi byte-level f8 operation in parallel on two buffers. More... | |
#define | IMB_KASUMI_F8_3_BUFFER(_mgr, _exp_key, _iv1, _iv2, _iv3, _src1, _dst1, _src2, _dst2, _src3, _dst3, _len) |
kasumi byte-level f8 operation in parallel on three buffers More... | |
#define | IMB_KASUMI_F8_4_BUFFER(_mgr, _exp_key, _iv1, _iv2, _iv3, _iv4, _src1, _dst1, _src2, _dst2, _src3, _dst3, _src4, _dst4, _len) |
kasumi byte-level f8 operation in parallel on four buffers More... | |
#define | IMB_KASUMI_F8_N_BUFFER(_mgr, _exp_key, _iv, _src, _dst, _len, _count) |
Kasumi f8 operation on N buffers. More... | |
#define | IMB_KASUMI_F9_1_BUFFER(_mgr, _exp_key, _src, _len, _tag) ((_mgr)->f9_1_buffer((_exp_key), (_src), (_len), (_tag))) |
Kasumi bit-level f9 operation on a single buffer. More... | |
#define | IMB_KASUMI_F9_1_BUFFER_USER(_mgr, _exp_key, _iv, _src, _len, _tag, _dir) |
Kasumi bit-level f9 operation on a single buffer. More... | |
#define | IMB_KASUMI_INIT_F8_KEY_SCHED(_mgr, _key, _exp_key) ((_mgr)->kasumi_init_f8_key_sched((_key), (_exp_key))) |
#define | IMB_KASUMI_INIT_F9_KEY_SCHED(_mgr, _key, _exp_key) ((_mgr)->kasumi_init_f9_key_sched((_key), (_exp_key))) |
#define | IMB_KASUMI_KEY_SCHED_SIZE(_mgr) ((_mgr)->kasumi_key_sched_size()) |
#define | IMB_SNOW3G_F8_1_BUFFER_BIT(_mgr, _exp_key, _iv, _src, _dst, _len, _offset) |
#define | IMB_SNOW3G_F8_1_BUFFER(_mgr, _exp_key, _iv, _src, _dst, _len) ((_mgr)->snow3g_f8_1_buffer((_exp_key), (_iv), (_src), (_dst), (_len))) |
#define | IMB_SNOW3G_F8_2_BUFFER(_mgr, _exp_key, _iv1, _iv2, _src1, _dst1, _len1, _src2, _dst2, _len2) |
#define | IMB_SNOW3G_F8_4_BUFFER(_mgr, _exp_key, _iv1, _iv2, _iv3, _iv4, _src1, _dst1, _len1, _src2, _dst2, _len2, _src3, _dst3, _len3, _src4, _dst4, _len4) |
#define | IMB_SNOW3G_F8_8_BUFFER(_mgr, _exp_key, _iv1, _iv2, _iv3, _iv4, _iv5, _iv6, _iv7, _iv8, _src1, _dst1, _len1, _src2, _dst2, _len2, _src3, _dst3, _len3, _src4, _dst4, _len4, _src5, _dst5, _len5, _src6, _dst6, _len6, _src7, _dst7, _len7, _src8, _dst8, _len8) |
#define | IMB_SNOW3G_F8_8_BUFFER_MULTIKEY(_mgr, _exp_key, _iv, _src, _dst, _len) |
#define | IMB_SNOW3G_F8_N_BUFFER(_mgr, _exp_key, _iv, _src, _dst, _len, _count) |
#define | IMB_SNOW3G_F8_N_BUFFER_MULTIKEY(_mgr, _exp_key, _iv, _src, _dst, _len, _count) |
#define | IMB_SNOW3G_F9_1_BUFFER(_mgr, _exp_key, _iv, _src, _len, _tag) ((_mgr)->snow3g_f9_1_buffer((_exp_key), (_iv), (_src), (_len), (_tag))) |
#define | IMB_SNOW3G_INIT_KEY_SCHED(_mgr, _key, _exp_key) ((_mgr)->snow3g_init_key_sched((_key), (_exp_key))) |
#define | IMB_SNOW3G_KEY_SCHED_SIZE(_mgr) ((_mgr)->snow3g_key_sched_size()) |
#define | IMB_HEC_32(_mgr, _src) ((_mgr)->hec_32(_src)) |
#define | IMB_HEC_64(_mgr, _src) ((_mgr)->hec_64(_src)) |
#define | IMB_CRC32_ETHERNET_FCS(_mgr, _src, _len) (_mgr)->crc32_ethernet_fcs(_src, _len) |
#define | IMB_CRC16_X25(_mgr, _src, _len) (_mgr)->crc16_x25(_src, _len) |
#define | IMB_CRC32_SCTP(_mgr, _src, _len) (_mgr)->crc32_sctp(_src, _len) |
#define | IMB_CRC24_LTE_A(_mgr, _src, _len) (_mgr)->crc24_lte_a(_src, _len) |
#define | IMB_CRC24_LTE_B(_mgr, _src, _len) (_mgr)->crc24_lte_b(_src, _len) |
#define | IMB_CRC16_FP_DATA(_mgr, _src, _len) (_mgr)->crc16_fp_data(_src, _len) |
#define | IMB_CRC11_FP_HEADER(_mgr, _src, _len) (_mgr)->crc11_fp_header(_src, _len) |
#define | IMB_CRC7_FP_HEADER(_mgr, _src, _len) (_mgr)->crc7_fp_header(_src, _len) |
#define | IMB_CRC10_IUUP_DATA(_mgr, _src, _len) (_mgr)->crc10_iuup_data(_src, _len) |
#define | IMB_CRC6_IUUP_HEADER(_mgr, _src, _len) (_mgr)->crc6_iuup_header(_src, _len) |
#define | IMB_CRC32_WIMAX_OFDMA_DATA(_mgr, _src, _len) (_mgr)->crc32_wimax_ofdma_data(_src, _len) |
#define | IMB_CRC8_WIMAX_OFDMA_HCS(_mgr, _src, _len) (_mgr)->crc8_wimax_ofdma_hcs(_src, _len) |
Typedefs | |
typedef struct IMB_JOB | IMB_JOB |
typedef struct kasumi_key_sched_s | kasumi_key_sched_t |
typedef void(* | init_mb_mgr_t) (struct IMB_MGR *) |
typedef IMB_JOB *(* | get_next_job_t) (struct IMB_MGR *) |
typedef IMB_JOB *(* | submit_job_t) (struct IMB_MGR *) |
typedef IMB_JOB *(* | get_completed_job_t) (struct IMB_MGR *) |
typedef IMB_JOB *(* | flush_job_t) (struct IMB_MGR *) |
typedef uint32_t(* | queue_size_t) (struct IMB_MGR *) |
typedef uint32_t(* | submit_burst_t) (struct IMB_MGR *, struct IMB_JOB *, const uint32_t) |
typedef uint32_t(* | submit_cipher_burst_t) (struct IMB_MGR *, struct IMB_JOB *, const uint32_t, const IMB_CIPHER_MODE cipher, const IMB_CIPHER_DIRECTION dir, const IMB_KEY_SIZE_BYTES key_size) |
typedef uint32_t(* | submit_hash_burst_t) (struct IMB_MGR *, struct IMB_JOB *, const uint32_t, const IMB_HASH_ALG hash) |
typedef void(* | keyexp_t) (const void *, void *, void *) |
typedef void(* | cmac_subkey_gen_t) (const void *, void *, void *) |
typedef void(* | hash_one_block_t) (const void *, void *) |
typedef void(* | hash_fn_t) (const void *, const uint64_t, void *) |
typedef void(* | xcbc_keyexp_t) (const void *, void *, void *, void *) |
typedef int(* | des_keysched_t) (uint64_t *, const void *) |
typedef void(* | aes_cfb_t) (void *, const void *, const void *, const void *, uint64_t) |
typedef void(* | aes_gcm_enc_dec_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint8_t const *, uint64_t, const uint8_t *, uint8_t const *, uint64_t, uint8_t *, uint64_t) |
typedef void(* | aes_gcm_enc_dec_iv_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint8_t const *, const uint64_t, const uint8_t *, uint8_t const *, const uint64_t, uint8_t *, const uint64_t, const uint64_t) |
typedef void(* | aes_gcm_init_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, uint8_t const *, uint64_t) |
typedef void(* | aes_gcm_init_var_iv_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t, const uint8_t *, const uint64_t) |
typedef void(* | aes_gcm_enc_dec_update_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, const uint8_t *, uint64_t) |
typedef void(* | aes_gcm_enc_dec_finalize_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint64_t) |
typedef void(* | aes_gcm_precomp_t) (struct gcm_key_data *) |
typedef void(* | aes_gcm_pre_t) (const void *, struct gcm_key_data *) |
typedef void(* | aes_gmac_init_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t) |
typedef void(* | aes_gmac_update_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t) |
typedef void(* | aes_gmac_finalize_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, const uint64_t) |
typedef void(* | chacha_poly_init_t) (const void *, struct chacha20_poly1305_context_data *, const void *, const void *, const uint64_t) |
typedef void(* | chacha_poly_enc_dec_update_t) (const void *, struct chacha20_poly1305_context_data *, void *, const void *, const uint64_t) |
typedef void(* | chacha_poly_finalize_t) (struct chacha20_poly1305_context_data *, void *, const uint64_t) |
typedef void(* | ghash_t) (const struct gcm_key_data *, const void *, const uint64_t, void *, const uint64_t) |
typedef void(* | zuc_eea3_1_buffer_t) (const void *, const void *, const void *, void *, const uint32_t) |
typedef void(* | zuc_eea3_4_buffer_t) (const void *const *, const void *const *, const void *const *, void **, const uint32_t *) |
typedef void(* | zuc_eea3_n_buffer_t) (const void *const *, const void *const *, const void *const *, void **, const uint32_t *, const uint32_t) |
typedef void(* | zuc_eia3_1_buffer_t) (const void *, const void *, const void *, const uint32_t, uint32_t *) |
typedef void(* | zuc_eia3_n_buffer_t) (const void *const *, const void *const *, const void *const *, const uint32_t *, uint32_t **, const uint32_t) |
typedef void(* | kasumi_f8_1_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const void *, void *, const uint32_t) |
typedef void(* | kasumi_f8_1_buffer_bit_t) (const kasumi_key_sched_t *, const uint64_t, const void *, void *, const uint32_t, const uint32_t) |
typedef void(* | kasumi_f8_2_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* | kasumi_f8_3_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const uint64_t, const void *, void *, const void *, void *, const void *, void *, const uint32_t) |
typedef void(* | kasumi_f8_4_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const uint64_t, const uint64_t, const void *, void *, const void *, void *, const void *, void *, const void *, void *, const uint32_t) |
typedef void(* | kasumi_f8_n_buffer_t) (const kasumi_key_sched_t *, const uint64_t *, const void *const *, void **, const uint32_t *, const uint32_t) |
typedef void(* | kasumi_f9_1_buffer_user_t) (const kasumi_key_sched_t *, const uint64_t, const void *, const uint32_t, void *, const uint32_t) |
typedef void(* | kasumi_f9_1_buffer_t) (const kasumi_key_sched_t *, const void *, const uint32_t, void *) |
typedef int(* | kasumi_init_f8_key_sched_t) (const void *, kasumi_key_sched_t *) |
typedef int(* | kasumi_init_f9_key_sched_t) (const void *, kasumi_key_sched_t *) |
typedef size_t(* | kasumi_key_sched_size_t) (void) |
typedef struct snow3g_key_schedule_s | snow3g_key_schedule_t |
typedef void(* | snow3g_f8_1_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, void *, const uint32_t) |
typedef void(* | snow3g_f8_1_buffer_bit_t) (const snow3g_key_schedule_t *, const void *, const void *, void *, const uint32_t, const uint32_t) |
typedef void(* | snow3g_f8_2_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* | snow3g_f8_4_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* | snow3g_f8_8_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* | snow3g_f8_8_buffer_multikey_t) (const snow3g_key_schedule_t *const [], const void *const [], const void *const [], void *[], const uint32_t[]) |
typedef void(* | snow3g_f8_n_buffer_t) (const snow3g_key_schedule_t *, const void *const [], const void *const [], void *[], const uint32_t[], const uint32_t) |
typedef void(* | snow3g_f8_n_buffer_multikey_t) (const snow3g_key_schedule_t *const [], const void *const [], const void *const [], void *[], const uint32_t[], const uint32_t) |
typedef void(* | snow3g_f9_1_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const uint64_t, void *) |
typedef int(* | snow3g_init_key_sched_t) (const void *, snow3g_key_schedule_t *) |
typedef size_t(* | snow3g_key_sched_size_t) (void) |
typedef uint32_t(* | hec_32_t) (const uint8_t *) |
typedef uint64_t(* | hec_64_t) (const uint8_t *) |
typedef uint32_t(* | crc32_fn_t) (const void *, const uint64_t) |
typedef struct IMB_MGR | IMB_MGR |
Functions | |
IMB_DLL_EXPORT const char * | imb_get_version_str (void) |
Get library version in string format. More... | |
IMB_DLL_EXPORT unsigned | imb_get_version (void) |
Get library version in numerical format. More... | |
IMB_DLL_EXPORT int | imb_get_errno (IMB_MGR *mb_mgr) |
API to get error status. More... | |
IMB_DLL_EXPORT const char * | imb_get_strerror (int errnum) |
API to get description for errnum. More... | |
IMB_DLL_EXPORT IMB_MGR * | alloc_mb_mgr (uint64_t flags) |
Allocates memory for multi-buffer manager instance. More... | |
IMB_DLL_EXPORT void | free_mb_mgr (IMB_MGR *ptr) |
Frees memory allocated previously by alloc_mb_mgr() More... | |
IMB_DLL_EXPORT size_t | imb_get_mb_mgr_size (void) |
Calculates necessary memory size for IMB_MGR. More... | |
IMB_DLL_EXPORT IMB_MGR * | imb_set_pointers_mb_mgr (void *ptr, const uint64_t flags, const unsigned reset_mgr) |
Initializes IMB_MGR pointers to out-of-order managers with use of externally allocated memory. More... | |
IMB_DLL_EXPORT uint64_t | imb_get_feature_flags (void) |
Retrieves the bitmask with the features supported by the library, without having to allocate/initialize IMB_MGR;. More... | |
IMB_DLL_EXPORT void | init_mb_mgr_avx (IMB_MGR *state) |
Initialize Multi-Buffer Manager structure. More... | |
IMB_DLL_EXPORT void | init_mb_mgr_avx2 (IMB_MGR *state) |
Initialize Multi-Buffer Manager structure. More... | |
IMB_DLL_EXPORT void | init_mb_mgr_avx512 (IMB_MGR *state) |
Initialize Multi-Buffer Manager structure. More... | |
IMB_DLL_EXPORT void | init_mb_mgr_sse (IMB_MGR *state) |
Initialize Multi-Buffer Manager structure. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_avx (IMB_MGR *state) |
Submit job for processing after validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_avx2 (IMB_MGR *state) |
Submit job for processing after validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_avx512 (IMB_MGR *state) |
Submit job for processing after validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_sse (IMB_MGR *state) |
Submit job for processing after validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_nocheck_avx (IMB_MGR *state) |
Submit job for processing without validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_nocheck_avx2 (IMB_MGR *state) |
Submit job for processing without validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_nocheck_avx512 (IMB_MGR *state) |
Submit job for processing without validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | submit_job_nocheck_sse (IMB_MGR *state) |
Submit job for processing without validating. More... | |
IMB_DLL_EXPORT IMB_JOB * | flush_job_avx (IMB_MGR *state) |
Force processing until next job in queue is completed. More... | |
IMB_DLL_EXPORT IMB_JOB * | flush_job_avx2 (IMB_MGR *state) |
Force processing until next job in queue is completed. More... | |
IMB_DLL_EXPORT IMB_JOB * | flush_job_avx512 (IMB_MGR *state) |
Force processing until next job in queue is completed. More... | |
IMB_DLL_EXPORT IMB_JOB * | flush_job_sse (IMB_MGR *state) |
Force processing until next job in queue is completed. More... | |
IMB_DLL_EXPORT uint32_t | queue_size_avx (IMB_MGR *state) |
Get number of jobs queued to be processed. More... | |
IMB_DLL_EXPORT uint32_t | queue_size_avx2 (IMB_MGR *state) |
Get number of jobs queued to be processed. More... | |
IMB_DLL_EXPORT uint32_t | queue_size_avx512 (IMB_MGR *state) |
Get number of jobs queued to be processed. More... | |
IMB_DLL_EXPORT uint32_t | queue_size_sse (IMB_MGR *state) |
Get number of jobs queued to be processed. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_completed_job_avx (IMB_MGR *state) |
Get next completed job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_completed_job_avx2 (IMB_MGR *state) |
Get next completed job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_completed_job_avx512 (IMB_MGR *state) |
Get next completed job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_completed_job_sse (IMB_MGR *state) |
Get next completed job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_next_job_avx (IMB_MGR *state) |
Get next available job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_next_job_avx2 (IMB_MGR *state) |
Get next available job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_next_job_avx512 (IMB_MGR *state) |
Get next available job. More... | |
IMB_DLL_EXPORT IMB_JOB * | get_next_job_sse (IMB_MGR *state) |
Get next available job. More... | |
IMB_DLL_EXPORT void | init_mb_mgr_auto (IMB_MGR *state, IMB_ARCH *arch) |
Automatically initialize most performant Multi-buffer manager based on CPU features. More... | |
IMB_DLL_EXPORT int | des_key_schedule (uint64_t *ks, const void *key) |
DES key schedule set up. More... | |
IMB_DLL_EXPORT void | sha1_sse (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha1_avx (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha1_avx2 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha1_avx512 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha1_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha1_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha1_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha1_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha224_sse (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha224_avx (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha224_avx2 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha224_avx512 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha224_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha224_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha224_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha224_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha256_sse (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha256_avx (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha256_avx2 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha256_avx512 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha256_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha256_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha256_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha256_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha384_sse (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha384_avx (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha384_avx2 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha384_avx512 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha384_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha384_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha384_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha384_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha512_sse (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha512_avx (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha512_avx2 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha512_avx512 (const void *data, const uint64_t length, void *digest) |
IMB_DLL_EXPORT void | sha512_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha512_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha512_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | sha512_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | md5_one_block_sse (const void *data, void *digest) |
IMB_DLL_EXPORT void | md5_one_block_avx (const void *data, void *digest) |
IMB_DLL_EXPORT void | md5_one_block_avx2 (const void *data, void *digest) |
IMB_DLL_EXPORT void | md5_one_block_avx512 (const void *data, void *digest) |
IMB_DLL_EXPORT void | aes_keyexp_128_sse (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_avx (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_avx2 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_avx512 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_sse (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_avx (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_avx2 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_avx512 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_sse (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_avx (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_avx2 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_avx512 (const void *key, void *enc_exp_keys, void *dec_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_enc_sse (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_enc_avx (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_enc_avx2 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_128_enc_avx512 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_enc_sse (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_enc_avx (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_enc_avx2 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_192_enc_avx512 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_enc_sse (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_enc_avx (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_enc_avx2 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_keyexp_256_enc_avx512 (const void *key, void *enc_exp_keys) |
IMB_DLL_EXPORT void | aes_xcbc_expand_key_sse (const void *key, void *k1_exp, void *k2, void *k3) |
IMB_DLL_EXPORT void | aes_xcbc_expand_key_avx (const void *key, void *k1_exp, void *k2, void *k3) |
IMB_DLL_EXPORT void | aes_xcbc_expand_key_avx2 (const void *key, void *k1_exp, void *k2, void *k3) |
IMB_DLL_EXPORT void | aes_xcbc_expand_key_avx512 (const void *key, void *k1_exp, void *k2, void *k3) |
IMB_DLL_EXPORT void | aes_cmac_subkey_gen_sse (const void *key_exp, void *key1, void *key2) |
IMB_DLL_EXPORT void | aes_cmac_subkey_gen_avx (const void *key_exp, void *key1, void *key2) |
IMB_DLL_EXPORT void | aes_cmac_subkey_gen_avx2 (const void *key_exp, void *key1, void *key2) |
IMB_DLL_EXPORT void | aes_cmac_subkey_gen_avx512 (const void *key_exp, void *key1, void *key2) |
IMB_DLL_EXPORT void | aes_cfb_128_one_sse (void *out, const void *in, const void *iv, const void *keys, uint64_t len) |
AES-CFB-128 Encrypt/Decrypt up to one block. More... | |
IMB_DLL_EXPORT void | aes_cfb_128_one_avx (void *out, const void *in, const void *iv, const void *keys, uint64_t len) |
AES-CFB-128 Encrypt/Decrypt up to one block. More... | |
IMB_DLL_EXPORT void | aes_cfb_128_one_avx2 (void *out, const void *in, const void *iv, const void *keys, uint64_t len) |
AES-CFB-128 Encrypt/Decrypt up to one block. More... | |
IMB_DLL_EXPORT void | aes_cfb_128_one_avx512 (void *out, const void *in, const void *iv, const void *keys, uint64_t len) |
AES-CFB-128 Encrypt/Decrypt up to one block. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-128 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-192 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, uint8_t const *in, uint64_t len, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len, uint8_t *auth_tag, uint64_t auth_tag_len) |
AES-GCM-256 Decryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_128_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_128_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_128_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_192_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_192_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_192_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_256_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_256_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_init_256_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, const uint8_t *iv, uint8_t const *aad, uint64_t aad_len) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Encrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_update_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_update_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_update_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *out, const uint8_t *in, uint64_t len) |
Decrypt a block of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_128_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_192_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_enc_256_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End encryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_128_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-128 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_192_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-192 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_finalize_sse (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_finalize_avx_gen2 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_dec_256_finalize_avx_gen4 (const struct gcm_key_data *key_data, struct gcm_context_data *context_data, uint8_t *auth_tag, uint64_t auth_tag_len) |
End decryption of a AES-GCM-256 encryption message. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_128_sse (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-128 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_128_avx_gen2 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-128 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_128_avx_gen4 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-128 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_192_sse (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-192 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_192_avx_gen2 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-192 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_192_avx_gen4 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-192 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_256_sse (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-256 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_256_avx_gen2 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-256 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_precomp_256_avx_gen4 (struct gcm_key_data *key_data) |
Precomputation of AES-GCM-256 HashKey constants. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_128_sse (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-128 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_128_avx_gen2 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-128 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_128_avx_gen4 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-128 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_192_sse (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-192 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_192_avx_gen2 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-192 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_192_avx_gen4 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-192 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_256_sse (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-256 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_256_avx_gen2 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-256 key data. More... | |
IMB_DLL_EXPORT void | aes_gcm_pre_256_avx_gen4 (const void *key, struct gcm_key_data *key_data) |
Pre-processes AES-GCM-256 key data. More... | |
IMB_DLL_EXPORT int | zuc_eea3_iv_gen (const uint32_t count, const uint8_t bearer, const uint8_t dir, void *iv_ptr) |
Generation of ZUC-EEA3 Initialization Vector. More... | |
IMB_DLL_EXPORT int | zuc_eia3_iv_gen (const uint32_t count, const uint8_t bearer, const uint8_t dir, void *iv_ptr) |
Generation of ZUC-EIA3 Initialization Vector. More... | |
IMB_DLL_EXPORT int | kasumi_f8_iv_gen (const uint32_t count, const uint8_t bearer, const uint8_t dir, void *iv_ptr) |
Generation of KASUMI F8 Initialization Vector. More... | |
IMB_DLL_EXPORT int | kasumi_f9_iv_gen (const uint32_t count, const uint32_t fresh, void *iv_ptr) |
Generation of KASUMI F9 Initialization Vector. More... | |
IMB_DLL_EXPORT int | snow3g_f8_iv_gen (const uint32_t count, const uint8_t bearer, const uint8_t dir, void *iv_ptr) |
Generation of SNOW3G F8 Initialization Vector. More... | |
IMB_DLL_EXPORT int | snow3g_f9_iv_gen (const uint32_t count, const uint32_t fresh, const uint8_t dir, void *iv_ptr) |
Generation of SNOW3G F9 Initialization Vector. More... | |
IMB_DLL_EXPORT void | imb_clear_mem (void *mem, const size_t size) |
Force clearing/zeroing of memory. More... | |
#define __forceinline static __forceinline |
#define DECLARE_ALIGNED | ( | decl, | |
alignval | |||
) | __declspec(align(alignval)) decl |
Macros for aligning data structures and function inlines
#define IMB_AES128_CFB_ONE | ( | _mgr, | |
_dst, | |||
_src, | |||
_iv, | |||
_exp_key, | |||
_len | |||
) | ((_mgr)->aes128_cfb_one((_dst), (_src), (_iv), (_exp_key), (_len))) |
AES-CFB-128 Encrypt/Decrypt up to one block.
Processes only one buffer at a time. Designed to manage partial blocks of DOCSIS 3.1 SEC BPI.
[in] | _mgr | Pointer to multi-buffer structure |
[out] | _dst | Plaintext/Ciphertext output |
[in] | _src | Plaintext/Ciphertext input |
[in] | _iv | Pointer to 16 byte IV |
[in] | _exp_key | Pointer to expanded AES keys |
[in] | _len | Length of data in bytes |
#define IMB_AES128_GCM_DEC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES128_GCM_DEC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm128_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES128_GCM_DEC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm128_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES128_GCM_ENC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES128_GCM_ENC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm128_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES128_GCM_ENC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm128_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES128_GCM_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_aad, | |||
_aadl | |||
) | ((_mgr)->gcm128_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define IMB_AES128_GCM_INIT_VAR_IV | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl, | |||
_aad, | |||
_aadl | |||
) |
#define IMB_AES128_GCM_PRE | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->gcm128_pre((_key), (_exp_key))) |
#define IMB_AES128_GCM_PRECOMP | ( | _mgr, | |
_key | |||
) | ((_mgr)->gcm128_precomp((_key))) |
#define IMB_AES128_GMAC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gmac128_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES128_GMAC_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl | |||
) | ((_mgr)->gmac128_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define IMB_AES128_GMAC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_src, | |||
_len | |||
) | ((_mgr)->gmac128_update((_exp_key), (_ctx), (_src), (_len))) |
#define IMB_AES192_GCM_DEC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES192_GCM_DEC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm192_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES192_GCM_DEC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm192_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES192_GCM_ENC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES192_GCM_ENC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm192_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES192_GCM_ENC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm192_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES192_GCM_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_aad, | |||
_aadl | |||
) | ((_mgr)->gcm192_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define IMB_AES192_GCM_INIT_VAR_IV | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl, | |||
_aad, | |||
_aadl | |||
) |
#define IMB_AES192_GCM_PRE | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->gcm192_pre((_key), (_exp_key))) |
#define IMB_AES192_GCM_PRECOMP | ( | _mgr, | |
_key | |||
) | ((_mgr)->gcm192_precomp((_key))) |
#define IMB_AES192_GMAC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gmac192_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES192_GMAC_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl | |||
) | ((_mgr)->gmac192_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define IMB_AES192_GMAC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_src, | |||
_len | |||
) | ((_mgr)->gmac192_update((_exp_key), (_ctx), (_src), (_len))) |
#define IMB_AES256_GCM_DEC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES256_GCM_DEC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm256_dec_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES256_GCM_DEC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm256_dec_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES256_GCM_ENC | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len, | |||
_iv, | |||
_aad, | |||
_aadl, | |||
_tag, | |||
_tagl | |||
) |
#define IMB_AES256_GCM_ENC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gcm256_enc_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES256_GCM_ENC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) | ((_mgr)->gcm256_enc_update((_exp_key), (_ctx), (_dst), (_src), (_len))) |
#define IMB_AES256_GCM_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_aad, | |||
_aadl | |||
) | ((_mgr)->gcm256_init((_exp_key), (_ctx), (_iv), (_aad), (_aadl))) |
#define IMB_AES256_GCM_INIT_VAR_IV | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl, | |||
_aad, | |||
_aadl | |||
) |
#define IMB_AES256_GCM_PRE | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->gcm256_pre((_key), (_exp_key))) |
#define IMB_AES256_GCM_PRECOMP | ( | _mgr, | |
_key | |||
) | ((_mgr)->gcm256_precomp((_key))) |
#define IMB_AES256_GMAC_FINALIZE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->gmac256_finalize((_exp_key), (_ctx), (_tag), (_tagl))) |
#define IMB_AES256_GMAC_INIT | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_iv, | |||
_ivl | |||
) | ((_mgr)->gmac256_init((_exp_key), (_ctx), (_iv), (_ivl))) |
#define IMB_AES256_GMAC_UPDATE | ( | _mgr, | |
_exp_key, | |||
_ctx, | |||
_src, | |||
_len | |||
) | ((_mgr)->gmac256_update((_exp_key), (_ctx), (_src), (_len))) |
#define IMB_AES_BLOCK_SIZE 16 |
#define IMB_AES_CMAC_SUBKEY_GEN_128 | ( | _mgr, | |
_exp_key, | |||
_key1, | |||
_key2 | |||
) | ((_mgr)->cmac_subkey_gen_128((_exp_key), (_key1), (_key2))) |
Generate AES-128-CMAC subkeys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Input expanded AES-128-CMAC key |
[out] | _key1 | Subkey 1 |
[out] | _key2 | Subkey 2 |
#define IMB_AES_CMAC_SUBKEY_GEN_256 | ( | _mgr, | |
_exp_key, | |||
_key1, | |||
_key2 | |||
) | ((_mgr)->cmac_subkey_gen_256((_exp_key), (_key1), (_key2))) |
Generate AES-256-CMAC subkeys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Input expanded AES-256-CMAC key |
[out] | _key1 | Subkey 1 |
[out] | _key2 | Subkey 2 |
#define IMB_AES_KEYEXP_128 | ( | _mgr, | |
_key, | |||
_enc_exp_key, | |||
_dec_exp_key | |||
) | ((_mgr)->keyexp_128((_key), (_enc_exp_key), (_dec_exp_key))) |
Generate encryption/decryption AES-128 expansion keys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | AES-128 key |
[out] | _enc_exp_key | AES-128 encryption expansion key |
[out] | _dec_exp_key | AES-128 decryption expansion key |
#define IMB_AES_KEYEXP_192 | ( | _mgr, | |
_key, | |||
_enc_exp_key, | |||
_dec_exp_key | |||
) | ((_mgr)->keyexp_192((_key), (_enc_exp_key), (_dec_exp_key))) |
Generate encryption/decryption AES-192 expansion keys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | AES-192 key |
[out] | _enc_exp_key | AES-192 encryption expansion key |
[out] | _dec_exp_key | AES-192 decryption expansion key |
#define IMB_AES_KEYEXP_256 | ( | _mgr, | |
_key, | |||
_enc_exp_key, | |||
_dec_exp_key | |||
) | ((_mgr)->keyexp_256((_key), (_enc_exp_key), (_dec_exp_key))) |
Generate encryption/decryption AES-256 expansion keys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | AES-256 key |
[out] | _enc_exp_key | AES-256 encryption expansion key |
[out] | _dec_exp_key | AES-256 decryption expansion key |
#define IMB_AES_XCBC_KEYEXP | ( | _mgr, | |
_key, | |||
_exp_key, | |||
_exp_key2, | |||
_exp_key3 | |||
) | ((_mgr)->xcbc_keyexp((_key), (_exp_key), (_exp_key2), (_exp_key3))) |
Generate AES-128-XCBC expansion keys.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | AES-128-XCBC key |
[out] | _exp_key | k1 expansion key |
[out] | _exp_key2 | k2 expansion key |
[out] | _exp_key3 | k3 expansion key |
#define IMB_ASSERT | ( | x | ) |
Custom ASSERT and DIM macros
#define IMB_CHACHA20_POLY1305_DEC_FINALIZE | ( | _mgr, | |
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->chacha20_poly1305_finalize((_ctx), (_tag), (_tagl))) |
#define IMB_CHACHA20_POLY1305_DEC_UPDATE | ( | _mgr, | |
_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) |
#define IMB_CHACHA20_POLY1305_ENC_FINALIZE | ( | _mgr, | |
_ctx, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->chacha20_poly1305_finalize((_ctx), (_tag), (_tagl))) |
#define IMB_CHACHA20_POLY1305_ENC_UPDATE | ( | _mgr, | |
_key, | |||
_ctx, | |||
_dst, | |||
_src, | |||
_len | |||
) |
#define IMB_CHACHA20_POLY1305_INIT | ( | _mgr, | |
_key, | |||
_ctx, | |||
_iv, | |||
_aad, | |||
_aadl | |||
) |
#define IMB_CPUFLAGS_AVX (IMB_CPUFLAGS_SSE | IMB_FEATURE_AVX) |
#define IMB_CPUFLAGS_AVX2 |
#define IMB_CPUFLAGS_AVX512 (IMB_CPUFLAGS_AVX2 | IMB_FEATURE_AVX512_SKX) |
#define IMB_CPUFLAGS_NO_AESNI (IMB_FEATURE_SSE4_2 | IMB_FEATURE_CMOV) |
CPU flags needed for each implementation
#define IMB_CPUFLAGS_SSE |
#define IMB_CRC10_IUUP_DATA | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc10_iuup_data(_src, _len) |
IUUP CRC10 function (3GPP TS 25.415)
#define IMB_CRC11_FP_HEADER | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc11_fp_header(_src, _len) |
Framing Protocol CRC11 function (3GPP TS 25.435, 3GPP TS 25.427)
#define IMB_CRC16_FP_DATA | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc16_fp_data(_src, _len) |
Framing Protocol CRC16 function (3GPP TS 25.435, 3GPP TS 25.427)
#define IMB_CRC16_X25 | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc16_x25(_src, _len) |
CRC16 X25 function
#define IMB_CRC24_LTE_A | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc24_lte_a(_src, _len) |
LTE CRC24A function
#define IMB_CRC24_LTE_B | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc24_lte_b(_src, _len) |
LTE CRC24B function
#define IMB_CRC32_ETHERNET_FCS | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc32_ethernet_fcs(_src, _len) |
CRC32 Ethernet FCS function
#define IMB_CRC32_SCTP | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc32_sctp(_src, _len) |
CRC32 SCTP function
#define IMB_CRC32_WIMAX_OFDMA_DATA | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc32_wimax_ofdma_data(_src, _len) |
WIMAX OFDMA DATA CRC32 function (IEEE 802.16)
#define IMB_CRC6_IUUP_HEADER | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc6_iuup_header(_src, _len) |
IUUP CRC6 function (3GPP TS 25.415)
#define IMB_CRC7_FP_HEADER | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc7_fp_header(_src, _len) |
Framing Protocol CRC7 function (3GPP TS 25.435, 3GPP TS 25.427)
#define IMB_CRC8_WIMAX_OFDMA_HCS | ( | _mgr, | |
_src, | |||
_len | |||
) | (_mgr)->crc8_wimax_ofdma_hcs(_src, _len) |
WIMAX OFDMA HCS CRC8 function (IEEE 802.16)
#define IMB_DES_BLOCK_SIZE 8 |
#define IMB_DES_KEY_SCHED_SIZE (16 * 8) |
Algorithm constants 16 rounds x 8 bytes
#define IMB_DES_KEYSCHED | ( | _mgr, | |
_exp_key, | |||
_key | |||
) | ((_mgr)->des_key_sched((_exp_key), (_key))) |
#define IMB_DIM | ( | x | ) | (sizeof(x) / sizeof(x[0])) |
#define IMB_DLL_EXPORT |
Windows DLL export is done via DEF file
#define IMB_DLL_LOCAL |
#define IMB_DOCSIS_CRC32_MIN_ETH_PDU_SIZE 14 |
Minimum Ethernet frame size to calculate CRC32 Source Address (6 bytes) + Destination Address (6 bytes) + Type/Len (2 bytes)
#define IMB_DOCSIS_CRC32_TAG_SIZE 4 |
#define IMB_FEATURE_AESNI (1ULL << 1) |
#define IMB_FEATURE_AESNI_EMU (1ULL << 19) |
#define IMB_FEATURE_AVX (1ULL << 5) |
#define IMB_FEATURE_AVX2 (1ULL << 6) |
#define IMB_FEATURE_AVX512_IFMA (1ULL << 17) |
#define IMB_FEATURE_AVX512_SKX |
#define IMB_FEATURE_AVX512BW (1ULL << 10) |
#define IMB_FEATURE_AVX512CD (1ULL << 9) |
#define IMB_FEATURE_AVX512DQ (1ULL << 8) |
#define IMB_FEATURE_AVX512F (1ULL << 7) |
#define IMB_FEATURE_AVX512VL (1ULL << 11) |
#define IMB_FEATURE_BMI2 (1ULL << 18) |
#define IMB_FEATURE_CMOV (1ULL << 3) |
#define IMB_FEATURE_GFNI (1ULL << 16) |
#define IMB_FEATURE_PCLMULQDQ (1ULL << 2) |
#define IMB_FEATURE_SAFE_DATA (1ULL << 14) |
#define IMB_FEATURE_SAFE_PARAM (1ULL << 15) |
#define IMB_FEATURE_SHANI (1ULL << 0) |
Multi-buffer manager detected features
#define IMB_FEATURE_SSE4_2 (1ULL << 4) |
#define IMB_FEATURE_VAES (1ULL << 12) |
#define IMB_FEATURE_VPCLMULQDQ (1ULL << 13) |
#define IMB_FLAG_AESNI_OFF (1ULL << 1) |
disable use of AESNI extension
#define IMB_FLAG_SHANI_OFF (1ULL << 0) |
disable use of SHANI extension
#define IMB_FLUSH_JOB | ( | _mgr | ) | ((_mgr)->flush_job((_mgr))) |
#define IMB_GCM_128_KEY_LEN (16) |
#define IMB_GCM_192_KEY_LEN (24) |
#define IMB_GCM_256_KEY_LEN (32) |
#define IMB_GCM_BLOCK_LEN 16 |
#define IMB_GCM_ENC_KEY_LEN 16 |
#define IMB_GCM_IV_DATA_LEN (12) |
IV data is limited to 16 bytes as follows: 12 bytes is provided by an application - pre-counter block j0: 4 byte salt (from Security Association) concatenated with 8 byte Initialization Vector (from IPSec ESP Payload). 4 byte value 0x00000001 is padded automatically by the library - there is no need to add these 4 bytes on application side anymore.
#define IMB_GCM_KEY_SETS (15) |
exp key + 14 exp round keys
#define IMB_GET_COMPLETED_JOB | ( | _mgr | ) | ((_mgr)->get_completed_job((_mgr))) |
#define IMB_GET_NEXT_JOB | ( | _mgr | ) | ((_mgr)->get_next_job((_mgr))) |
#define IMB_GHASH | ( | _mgr, | |
_exp_key, | |||
_src, | |||
_len, | |||
_tag, | |||
_tagl | |||
) | ((_mgr)->ghash((_exp_key), (_src), (_len), (_tag), (_tagl))) |
#define IMB_GHASH_PRE | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->ghash_pre((_key), (_exp_key))) |
#define IMB_HEC_32 | ( | _mgr, | |
_src | |||
) | ((_mgr)->hec_32(_src)) |
HEC compute functions
#define IMB_HEC_64 | ( | _mgr, | |
_src | |||
) | ((_mgr)->hec_64(_src)) |
#define IMB_KASUMI_BLOCK_SIZE 8 |
#define IMB_KASUMI_DIGEST_SIZE 4 |
#define IMB_KASUMI_F8_1_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len | |||
) | ((_mgr)->f8_1_buffer((_exp_key), (_iv), (_src), (_dst), (_len))) |
Kasumi byte-level f8 operation on a single buffer.
This function performs kasumi f8 operation on a single buffer. The key has already been scheduled with kasumi_init_f8_key_sched(). No extra bits are modified.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | Initialization vector |
[in] | _src | Input buffer |
[out] | _dst | Output buffer |
[in] | _len | Length in BYTES |
#define IMB_KASUMI_F8_1_BUFFER_BIT | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_offset | |||
) |
Kasumi bit-level f8 operation on a single buffer.
This function performs kasumi f8 operation on a single buffer. The key has already been scheduled with kasumi_init_f8_key_sched(). No extra bits are modified.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | Initialization vector |
[in] | _src | Input buffer |
[out] | _dst | Output buffer |
[in] | _len | Length in BITS |
[in] | _offset | Offset in BITS from begin of input buffer |
#define IMB_KASUMI_F8_2_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_src1, | |||
_dst1, | |||
_len1, | |||
_src2, | |||
_dst2, | |||
_len2 | |||
) |
Kasumi byte-level f8 operation in parallel on two buffers.
This function performs kasumi f8 operation on a two buffers. They will be processed with the same key, which has already been scheduled with kasumi_init_f8_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | Initialization vector for buffer in1 |
[in] | _iv2 | Initialization vector for buffer in2 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _len1 | Length in BYTES of input buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _len2 | Length in BYTES of input buffer 2 |
#define IMB_KASUMI_F8_3_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_iv3, | |||
_src1, | |||
_dst1, | |||
_src2, | |||
_dst2, | |||
_src3, | |||
_dst3, | |||
_len | |||
) |
kasumi byte-level f8 operation in parallel on three buffers
This function performs kasumi f8 operation on a three buffers. They must all have the same length and they will be processed with the same key, which has already been scheduled with kasumi_init_f8_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | Initialization vector for buffer in1 |
[in] | _iv2 | Initialization vector for buffer in2 |
[in] | _iv3 | Initialization vector for buffer in3 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _src3 | Input buffer 3 |
[out] | _dst3 | Output buffer 3 |
[in] | _len | Common length in bytes for all buffers |
#define IMB_KASUMI_F8_4_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_iv3, | |||
_iv4, | |||
_src1, | |||
_dst1, | |||
_src2, | |||
_dst2, | |||
_src3, | |||
_dst3, | |||
_src4, | |||
_dst4, | |||
_len | |||
) |
kasumi byte-level f8 operation in parallel on four buffers
This function performs kasumi f8 operation on four buffers. They must all have the same length and they will be processed with the same key, which has already been scheduled with kasumi_init_f8_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | Initialization vector for buffer in1 |
[in] | _iv2 | Initialization vector for buffer in2 |
[in] | _iv3 | Initialization vector for buffer in3 |
[in] | _iv4 | Initialization vector for buffer in4 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _src3 | Input buffer 3 |
[out] | _dst3 | Output buffer 3 |
[in] | _src4 | Input buffer 4 |
[out] | _dst4 | Output buffer 4 |
[in] | _len | Common length in bytes for all buffers |
#define IMB_KASUMI_F8_N_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_count | |||
) |
Kasumi f8 operation on N buffers.
All input buffers can have different lengths and they will be processed with the same key, which has already been scheduled with kasumi_init_f8_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | Array of IV values |
[in] | _src | Array of input buffers |
[out] | _dst | Array of output buffers |
[in] | _len | Array of corresponding input buffer lengths in BITS |
[in] | _count | Number of input buffers |
#define IMB_KASUMI_F9_1_BUFFER | ( | _mgr, | |
_exp_key, | |||
_src, | |||
_len, | |||
_tag | |||
) | ((_mgr)->f9_1_buffer((_exp_key), (_src), (_len), (_tag))) |
Kasumi bit-level f9 operation on a single buffer.
The first QWORD of in represents the COUNT and FRESH, the last QWORD represents the DIRECTION and PADDING. (See 3GPP TS 35.201 v10.0 section 4)
The key has already been scheduled with kasumi_init_f9_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _src | Input buffer |
[in] | _len | Length in BYTES of the data to be hashed |
[out] | _tag | Computed digest |
#define IMB_KASUMI_F9_1_BUFFER_USER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_len, | |||
_tag, | |||
_dir | |||
) |
Kasumi bit-level f9 operation on a single buffer.
The key has already been scheduled with kasumi_init_f9_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | Initialization vector |
[in] | _src | Input buffer |
[in] | _len | Length in BITS of the data to be hashed |
[out] | _tag | Computed digest |
[in] | _dir | Direction bit |
#define IMB_KASUMI_INIT_F8_KEY_SCHED | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->kasumi_init_f8_key_sched((_key), (_exp_key))) |
KASUMI F8 key schedule init function.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | Confidentiality key (expected in LE format) |
[out] | _exp_key | Key schedule context to be initialised |
#define IMB_KASUMI_INIT_F9_KEY_SCHED | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->kasumi_init_f9_key_sched((_key), (_exp_key))) |
KASUMI F9 key schedule init function.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | Integrity key (expected in LE format) |
[out] | _exp_key | Key schedule context to be initialised |
#define IMB_KASUMI_IV_SIZE 8 |
#define IMB_KASUMI_KEY_SCHED_SIZE | ( | _mgr | ) | ((_mgr)->kasumi_key_sched_size()) |
This function returns the size of the kasumi_key_sched_t, used to store the key schedule.
[in] | _mgr | Pointer to multi-buffer structure |
#define IMB_KASUMI_KEY_SIZE 16 |
#define IMB_MAX_JOBS 128 |
#define IMB_MAX_TAG_LEN (16) |
Authenticated Tag Length in bytes. Valid values are 16 (most likely), 12 or 8.
#define IMB_MD5_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->md5_one_block((_src), (_tag))) |
Authenticate 64-byte data buffer with MD5.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 64-byte data buffer |
[out] | _tag | Digest output (16 bytes) |
#define IMB_QUEUE_SIZE | ( | _mgr | ) | ((_mgr)->queue_size((_mgr))) |
Get number of jobs queued to be processed.
[in,out] | _mgr | Pointer to initialized IMB_MGR structure |
#define IMB_SHA1 | ( | _mgr, | |
_src, | |||
_length, | |||
_tag | |||
) | ((_mgr)->sha1((_src), (_length), (_tag))) |
Authenticate variable sized data with SHA1.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | Data buffer |
[in] | _length | Length of data in bytes for authentication. |
[out] | _tag | Digest output (20 bytes) |
#define IMB_SHA1_BLOCK_SIZE 64 |
512 bits is 64 byte blocks
#define IMB_SHA1_DIGEST_SIZE_IN_BYTES 20 |
#define IMB_SHA1_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->sha1_one_block((_src), (_tag))) |
Authenticate 64-byte data buffer with SHA1.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 64-byte data buffer |
[out] | _tag | Digest output (20 bytes) |
#define IMB_SHA224 | ( | _mgr, | |
_src, | |||
_length, | |||
_tag | |||
) | ((_mgr)->sha224((_src), (_length), (_tag))) |
Authenticate variable sized data with SHA224.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | Data buffer |
[in] | _length | Length of data in bytes for authentication. |
[out] | _tag | Digest output (28 bytes) |
#define IMB_SHA224_DIGEST_SIZE_IN_BYTES 28 |
#define IMB_SHA224_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->sha224_one_block((_src), (_tag))) |
Authenticate 64-byte data buffer with SHA224.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 64-byte data buffer |
[out] | _tag | Digest output (28 bytes) |
#define IMB_SHA256 | ( | _mgr, | |
_src, | |||
_length, | |||
_tag | |||
) | ((_mgr)->sha256((_src), (_length), (_tag))) |
Authenticate variable sized data with SHA256.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | Data buffer |
[in] | _length | Length of data in bytes for authentication. |
[out] | _tag | Digest output (32 bytes) |
#define IMB_SHA256_DIGEST_SIZE_IN_BYTES 32 |
#define IMB_SHA256_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->sha256_one_block((_src), (_tag))) |
Authenticate 64-byte data buffer with SHA256.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 64-byte data buffer |
[out] | _tag | Digest output (32 bytes) |
#define IMB_SHA384 | ( | _mgr, | |
_src, | |||
_length, | |||
_tag | |||
) | ((_mgr)->sha384((_src), (_length), (_tag))) |
Authenticate variable sized data with SHA384.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | Data buffer |
[in] | _length | Length of data in bytes for authentication. |
[out] | _tag | Digest output (48 bytes) |
#define IMB_SHA384_DIGEST_SIZE_IN_BYTES 48 |
#define IMB_SHA384_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->sha384_one_block((_src), (_tag))) |
Authenticate 128-byte data buffer with SHA384.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 128-byte data buffer |
[out] | _tag | Digest output (48 bytes) |
#define IMB_SHA512 | ( | _mgr, | |
_src, | |||
_length, | |||
_tag | |||
) | ((_mgr)->sha512((_src), (_length), (_tag))) |
Authenticate variable sized data with SHA512.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | Data buffer |
[in] | _length | Length of data in bytes for authentication. |
[out] | _tag | Digest output (20 bytes) |
#define IMB_SHA512_DIGEST_SIZE_IN_BYTES 64 |
#define IMB_SHA512_ONE_BLOCK | ( | _mgr, | |
_src, | |||
_tag | |||
) | ((_mgr)->sha512_one_block((_src), (_tag))) |
Authenticate 128-byte data buffer with SHA512.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _src | 128-byte data buffer |
[out] | _tag | Digest output (64 bytes) |
#define IMB_SHA_256_BLOCK_SIZE 64 |
512 bits is 64 byte blocks
#define IMB_SHA_384_BLOCK_SIZE 128 |
#define IMB_SHA_512_BLOCK_SIZE 128 |
#define IMB_SNOW3G_F8_1_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len | |||
) | ((_mgr)->snow3g_f8_1_buffer((_exp_key), (_iv), (_src), (_dst), (_len))) |
This function performs snow3g f8 operation on a single buffer. The key has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | iv[3] = count iv[2] = (bearer << 27) | ((dir & 0x1) << 26) iv[1] = pIV[3] iv[0] = pIV[2] |
[in] | _src | Input buffer |
[out] | _dst | Output buffer |
[in] | _len | Length in bits of input buffer |
#define IMB_SNOW3G_F8_1_BUFFER_BIT | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_offset | |||
) |
This function performs snow3g f8 operation on a single buffer. The key has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | iv[3] = count iv[2] = (bearer << 27) | ((dir & 0x1) << 26) iv[1] = pIV[3] iv[0] = pIV[2] |
[in] | _src | Input buffer |
[out] | _dst | Output buffer |
[in] | _len | Length in bits of input buffer |
[in] | _offset | Offset in input/output buffer (in bits) |
#define IMB_SNOW3G_F8_2_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_src1, | |||
_dst1, | |||
_len1, | |||
_src2, | |||
_dst2, | |||
_len2 | |||
) |
This function performs snow3g f8 operation on two buffers. They will be processed with the same key, which has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | IV to use for buffer pBufferIn1 |
[in] | _iv2 | IV to use for buffer pBufferIn2 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _len1 | Length in bytes of input buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _len2 | Length in bytes of input buffer 2 |
#define IMB_SNOW3G_F8_4_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_iv3, | |||
_iv4, | |||
_src1, | |||
_dst1, | |||
_len1, | |||
_src2, | |||
_dst2, | |||
_len2, | |||
_src3, | |||
_dst3, | |||
_len3, | |||
_src4, | |||
_dst4, | |||
_len4 | |||
) |
This function performs snow3g f8 operation on four buffers. They will be processed with the same key, which has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | IV to use for buffer pBufferIn1 |
[in] | _iv2 | IV to use for buffer pBufferIn2 |
[in] | _iv3 | IV to use for buffer pBufferIn3 |
[in] | _iv4 | IV to use for buffer pBufferIn4 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _len1 | Length in bytes of input buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _len2 | Length in bytes of input buffer 2 |
[in] | _src3 | Input buffer 3 |
[out] | _dst3 | Output buffer 3 |
[in] | _len3 | Length in bytes of input buffer 3 |
[in] | _src4 | Input buffer 4 |
[out] | _dst4 | Output buffer 4 |
[in] | _len4 | Length in bytes of input buffer 4 |
#define IMB_SNOW3G_F8_8_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv1, | |||
_iv2, | |||
_iv3, | |||
_iv4, | |||
_iv5, | |||
_iv6, | |||
_iv7, | |||
_iv8, | |||
_src1, | |||
_dst1, | |||
_len1, | |||
_src2, | |||
_dst2, | |||
_len2, | |||
_src3, | |||
_dst3, | |||
_len3, | |||
_src4, | |||
_dst4, | |||
_len4, | |||
_src5, | |||
_dst5, | |||
_len5, | |||
_src6, | |||
_dst6, | |||
_len6, | |||
_src7, | |||
_dst7, | |||
_len7, | |||
_src8, | |||
_dst8, | |||
_len8 | |||
) |
This function performs snow3g f8 operation on eight buffers. They will be processed with the same key, which has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv1 | IV to use for buffer pBufferIn1 |
[in] | _iv2 | IV to use for buffer pBufferIn2 |
[in] | _iv3 | IV to use for buffer pBufferIn3 |
[in] | _iv4 | IV to use for buffer pBufferIn4 |
[in] | _iv5 | IV to use for buffer pBufferIn5 |
[in] | _iv6 | IV to use for buffer pBufferIn6 |
[in] | _iv7 | IV to use for buffer pBufferIn7 |
[in] | _iv8 | IV to use for buffer pBufferIn8 |
[in] | _src1 | Input buffer 1 |
[out] | _dst1 | Output buffer 1 |
[in] | _len1 | Length in bytes of input buffer 1 |
[in] | _src2 | Input buffer 2 |
[out] | _dst2 | Output buffer 2 |
[in] | _len2 | Length in bytes of input buffer 2 |
[in] | _src3 | Input buffer 3 |
[out] | _dst3 | Output buffer 3 |
[in] | _len3 | Length in bytes of input buffer 3 |
[in] | _src4 | Input buffer 4 |
[out] | _dst4 | Output buffer 4 |
[in] | _len4 | Length in bytes of input buffer 4 |
[in] | _src5 | Input buffer 5 |
[out] | _dst5 | Output buffer 5 |
[in] | _len5 | Length in bytes of input buffer 5 |
[in] | _src6 | Input buffer 6 |
[out] | _dst6 | Output buffer 6 |
[in] | _len6 | Length in bytes of input buffer 6 |
[in] | _src7 | Input buffer 7 |
[out] | _dst7 | Output buffer 7 |
[in] | _len7 | Length in bytes of input buffer 7 |
[in] | _src8 | Input buffer 8 |
[out] | _dst8 | Output buffer 8 |
[in] | _len8 | Length in bytes of input buffer 8 |
#define IMB_SNOW3G_F8_8_BUFFER_MULTIKEY | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len | |||
) |
This function performs snow3g f8 operation on eight buffers. They will be processed with individual keys, which have already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Array of 8 Contexts, where the scheduled keys are stored |
[in] | _iv | Array of 8 IV values |
[in] | _src | Array of 8 input buffers |
[out] | _dst | Array of 8 output buffers |
[in] | _len | Array of 8 corresponding input buffer lengths |
#define IMB_SNOW3G_F8_N_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_count | |||
) |
This function performs snow3g f8 operation in parallel on N buffers. All input buffers can have different lengths and they will be processed with the same key, which has already been scheduled with snow3g_init_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | Array of IV values |
[in] | _src | Array of input buffers |
[out] | _dst | Array of output buffers - out[0] set to NULL on failure |
[in] | _len | Array of corresponding input buffer lengths |
[in] | _count | Number of input buffers |
#define IMB_SNOW3G_F8_N_BUFFER_MULTIKEY | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_count | |||
) |
This function performs snow3g f8 operation in parallel on N buffers. All input buffers can have different lengths. Confidentiallity keys can vary, schedules with snow3g_init_key_sched_multi().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Array of Contexts, where the scheduled keys are stored |
[in] | _iv | Array of IV values |
[in] | _src | Array of input buffers |
[out] | _dst | Array of output buffers
|
[in] | _len | Array of corresponding input buffer lengths |
[in] | _count | Number of input buffers |
#define IMB_SNOW3G_F9_1_BUFFER | ( | _mgr, | |
_exp_key, | |||
_iv, | |||
_src, | |||
_len, | |||
_tag | |||
) | ((_mgr)->snow3g_f9_1_buffer((_exp_key), (_iv), (_src), (_len), (_tag))) |
This function performs a snow3g f9 operation on a single block of data. The key has already been scheduled with snow3g_init_f8_key_sched().
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _exp_key | Context where the scheduled keys are stored |
[in] | _iv | iv[3] = _BSWAP32(fresh^(dir<<15)) iv[2] = _BSWAP32(count^(dir<<31)) iv[1] = _BSWAP32(fresh) iv[0] = _BSWAP32(count) |
[in] | _src | Input buffer |
[in] | _len | Length in bits of the data to be hashed |
[out] | _tag | Computed digest |
#define IMB_SNOW3G_INIT_KEY_SCHED | ( | _mgr, | |
_key, | |||
_exp_key | |||
) | ((_mgr)->snow3g_init_key_sched((_key), (_exp_key))) |
Snow3g key schedule init function.
[in] | _mgr | Pointer to multi-buffer structure |
[in] | _key | Confidentiality/Integrity key (expected in LE format) |
[out] | _exp_key | Key schedule context to be initialised |
#define IMB_SNOW3G_KEY_SCHED_SIZE | ( | _mgr | ) | ((_mgr)->snow3g_key_sched_size()) |
This function returns the size of the snow3g_key_schedule_t, used to store the key schedule.
[in] | _mgr | Pointer to multi-buffer structure |
#define IMB_SUBMIT_BURST | ( | _mgr, | |
_jobs, | |||
_n_jobs | |||
) | ((_mgr)->submit_burst((_mgr), (_jobs), (_n_jobs))) |
#define IMB_SUBMIT_BURST_NOCHECK | ( | _mgr, | |
_jobs, | |||
_n_jobs | |||
) | ((_mgr)->submit_burst_nocheck((_mgr), (_jobs), (_n_jobs))) |
Submit multiple jobs to be processed synchronously without validating.
This is more performant but less secure than IMB_SUBMIT_BURST().
[in] | _mgr | Pointer to initialized IMB_MGR structure |
[in,out] | _jobs | Pointer to array of IMB_JOB structures |
[in] | _n_jobs | Number of jobs to process |
#define IMB_SUBMIT_CIPHER_BURST | ( | _mgr, | |
_jobs, | |||
_n_jobs, | |||
_cipher, | |||
_dir, | |||
_key_size | |||
) |
Submit multiple cipher jobs to be processed synchronously after validating.
[in] | _mgr | Pointer to initialized IMB_MGR structure |
[in,out] | _jobs | Pointer to array of IMB_JOB structures |
[in] | _n_jobs | Number of jobs to process |
[in] | _cipher | Cipher algorithm of type IMB_CIPHER_MODE |
[in] | _dir | Cipher direction of type IMB_CIPHER_DIRECTION |
[in] | _key_size | Key size in bytes of type IMB_KEY_SIZE_BYTES |
#define IMB_SUBMIT_CIPHER_BURST_NOCHECK | ( | _mgr, | |
_jobs, | |||
_n_jobs, | |||
_cipher, | |||
_dir, | |||
_key_size | |||
) |
Submit multiple cipher jobs to be processed synchronously without validating.
This is more performant but less secure than IMB_SUBMIT_CIPHER_BURST().
[in] | _mgr | Pointer to initialized IMB_MGR structure |
[in,out] | _jobs | Pointer to array of IMB_JOB structures |
[in] | _n_jobs | Number of jobs to process |
[in] | _cipher | Cipher algorithm of type IMB_CIPHER_MODE |
[in] | _dir | Cipher direction of type IMB_CIPHER_DIRECTION |
[in] | _key_size | Key size in bytes of type IMB_KEY_SIZE_BYTES |
#define IMB_SUBMIT_HASH_BURST | ( | _mgr, | |
_jobs, | |||
_n_jobs, | |||
_hash | |||
) | ((_mgr)->submit_hash_burst((_mgr), (_jobs), (_n_jobs), (_hash))) |
Submit multiple hash jobs to be processed synchronously after validating.
[in] | _mgr | Pointer to initialized IMB_MGR structure |
[in,out] | _jobs | Pointer to array of IMB_JOB structures |
[in] | _n_jobs | Number of jobs to process |
[in] | _hash | Hash algorithm of type IMB_HASH_ALG |
#define IMB_SUBMIT_HASH_BURST_NOCHECK | ( | _mgr, | |
_jobs, | |||
_n_jobs, | |||
_hash | |||
) | ((_mgr)->submit_hash_burst_nocheck((_mgr), (_jobs), (_n_jobs), (_hash))) |
Submit multiple hash jobs to be processed synchronously without validating.
This is more performant but less secure than IMB_SUBMIT_HASH_BURST().
[in] | _mgr | Pointer to initialized IMB_MGR structure |
[in,out] | _jobs | Pointer to array of IMB_JOB structures |
[in] | _n_jobs | Number of jobs to process |
[in] | _hash | Hash algorithm of type IMB_HASH_ALG |
#define IMB_SUBMIT_JOB | ( | _mgr | ) | ((_mgr)->submit_job((_mgr))) |
Submit job for processing after validating.
[in,out] | _mgr | Pointer to initialized IMB_MGR structure |
#define IMB_SUBMIT_JOB_NOCHECK | ( | _mgr | ) | ((_mgr)->submit_job_nocheck((_mgr))) |
#define IMB_VERSION | ( | a, | |
b, | |||
c | |||
) | (((a) << 16) + ((b) << 8) + (c)) |
Macro to translate version number
#define IMB_VERSION_NUM 0x10200 |
#define IMB_VERSION_STR "1.2.0" |
Library version
#define IMB_ZUC_EEA3_1_BUFFER | ( | _mgr, | |
_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len | |||
) | ((_mgr)->eea3_1_buffer((_key), (_iv), (_src), (_dst), (_len))) |
ZUC EEA3 Confidentiality functions.
_mgr | Pointer to multi-buffer structure |
_key | Pointer to key |
_iv | Pointer to 16-byte IV |
_src | Pointer to Plaintext/Ciphertext input. |
_dst | Pointer to Ciphertext/Plaintext output. |
_len | Length of input data in bytes. |
#define IMB_ZUC_EEA3_4_BUFFER | ( | _mgr, | |
_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len | |||
) | ((_mgr)->eea3_4_buffer((_key), (_iv), (_src), (_dst), (_len))) |
#define IMB_ZUC_EEA3_N_BUFFER | ( | _mgr, | |
_key, | |||
_iv, | |||
_src, | |||
_dst, | |||
_len, | |||
_count | |||
) | ((_mgr)->eea3_n_buffer((_key), (_iv), (_src), (_dst), (_len), (_count))) |
#define IMB_ZUC_EIA3_1_BUFFER | ( | _mgr, | |
_key, | |||
_iv, | |||
_src, | |||
_len, | |||
_tag | |||
) | ((_mgr)->eia3_1_buffer((_key), (_iv), (_src), (_len), (_tag))) |
ZUC EIA3 Integrity function.
_mgr | Pointer to multi-buffer structure |
_key | Pointer to key |
_iv | Pointer to 16-byte IV |
_src | Pointer to Plaintext/Ciphertext input. |
_len | Length of input data in bits. |
_tag | Pointer to Authenticated Tag output (4 bytes) |
#define IMB_ZUC_EIA3_N_BUFFER | ( | _mgr, | |
_key, | |||
_iv, | |||
_src, | |||
_len, | |||
_tag, | |||
_count | |||
) | ((_mgr)->eia3_n_buffer((_key), (_iv), (_src), (_len), (_tag), (_count))) |
#define KASUMI_KEY_SCHEDULE_SIZE 64 |
typedef void(* aes_cfb_t) (void *, const void *, const void *, const void *, uint64_t) |
typedef void(* aes_gcm_enc_dec_finalize_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint64_t) |
typedef void(* aes_gcm_enc_dec_iv_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint8_t const *, const uint64_t, const uint8_t *, uint8_t const *, const uint64_t, uint8_t *, const uint64_t, const uint64_t) |
typedef void(* aes_gcm_enc_dec_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, uint8_t const *, uint64_t, const uint8_t *, uint8_t const *, uint64_t, uint8_t *, uint64_t) |
typedef void(* aes_gcm_enc_dec_update_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, const uint8_t *, uint64_t) |
typedef void(* aes_gcm_init_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, uint8_t const *, uint64_t) |
typedef void(* aes_gcm_init_var_iv_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t, const uint8_t *, const uint64_t) |
typedef void(* aes_gcm_pre_t) (const void *, struct gcm_key_data *) |
typedef void(* aes_gcm_precomp_t) (struct gcm_key_data *) |
typedef void(* aes_gmac_finalize_t) (const struct gcm_key_data *, struct gcm_context_data *, uint8_t *, const uint64_t) |
typedef void(* aes_gmac_init_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t) |
typedef void(* aes_gmac_update_t) (const struct gcm_key_data *, struct gcm_context_data *, const uint8_t *, const uint64_t) |
typedef void(* chacha_poly_enc_dec_update_t) (const void *, struct chacha20_poly1305_context_data *, void *, const void *, const uint64_t) |
typedef void(* chacha_poly_finalize_t) (struct chacha20_poly1305_context_data *, void *, const uint64_t) |
typedef void(* chacha_poly_init_t) (const void *, struct chacha20_poly1305_context_data *, const void *, const void *, const uint64_t) |
typedef void(* cmac_subkey_gen_t) (const void *, void *, void *) |
typedef uint32_t(* crc32_fn_t) (const void *, const uint64_t) |
typedef int(* des_keysched_t) (uint64_t *, const void *) |
typedef void(* ghash_t) (const struct gcm_key_data *, const void *, const uint64_t, void *, const uint64_t) |
typedef void(* hash_fn_t) (const void *, const uint64_t, void *) |
typedef void(* hash_one_block_t) (const void *, void *) |
typedef uint32_t(* hec_32_t) (const uint8_t *) |
typedef uint64_t(* hec_64_t) (const uint8_t *) |
Job structure.
For AES, enc_keys and dec_keys are expected to point to expanded keys structure.
For DES, enc_keys and dec_keys are expected to point to DES key schedule.
For 3DES, enc_keys and dec_keys are expected to point to an array of 3 pointers for the corresponding 3 key schedules.
typedef void(* init_mb_mgr_t) (struct IMB_MGR *) |
typedef void(* kasumi_f8_1_buffer_bit_t) (const kasumi_key_sched_t *, const uint64_t, const void *, void *, const uint32_t, const uint32_t) |
typedef void(* kasumi_f8_1_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const void *, void *, const uint32_t) |
typedef void(* kasumi_f8_2_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* kasumi_f8_3_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const uint64_t, const void *, void *, const void *, void *, const void *, void *, const uint32_t) |
typedef void(* kasumi_f8_4_buffer_t) (const kasumi_key_sched_t *, const uint64_t, const uint64_t, const uint64_t, const uint64_t, const void *, void *, const void *, void *, const void *, void *, const void *, void *, const uint32_t) |
typedef void(* kasumi_f8_n_buffer_t) (const kasumi_key_sched_t *, const uint64_t *, const void *const *, void **, const uint32_t *, const uint32_t) |
typedef void(* kasumi_f9_1_buffer_t) (const kasumi_key_sched_t *, const void *, const uint32_t, void *) |
typedef void(* kasumi_f9_1_buffer_user_t) (const kasumi_key_sched_t *, const uint64_t, const void *, const uint32_t, void *, const uint32_t) |
typedef int(* kasumi_init_f8_key_sched_t) (const void *, kasumi_key_sched_t *) |
typedef int(* kasumi_init_f9_key_sched_t) (const void *, kasumi_key_sched_t *) |
typedef size_t(* kasumi_key_sched_size_t) (void) |
typedef struct kasumi_key_sched_s kasumi_key_sched_t |
Structure to maintain internal key scheduling
typedef void(* keyexp_t) (const void *, void *, void *) |
typedef uint32_t(* queue_size_t) (struct IMB_MGR *) |
typedef void(* snow3g_f8_1_buffer_bit_t) (const snow3g_key_schedule_t *, const void *, const void *, void *, const uint32_t, const uint32_t) |
typedef void(* snow3g_f8_1_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, void *, const uint32_t) |
typedef void(* snow3g_f8_2_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* snow3g_f8_4_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* snow3g_f8_8_buffer_multikey_t) (const snow3g_key_schedule_t *const[], const void *const[], const void *const[], void *[], const uint32_t[]) |
typedef void(* snow3g_f8_8_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t, const void *, void *, const uint32_t) |
typedef void(* snow3g_f8_n_buffer_multikey_t) (const snow3g_key_schedule_t *const[], const void *const[], const void *const[], void *[], const uint32_t[], const uint32_t) |
typedef void(* snow3g_f8_n_buffer_t) (const snow3g_key_schedule_t *, const void *const[], const void *const[], void *[], const uint32_t[], const uint32_t) |
typedef void(* snow3g_f9_1_buffer_t) (const snow3g_key_schedule_t *, const void *, const void *, const uint64_t, void *) |
typedef int(* snow3g_init_key_sched_t) (const void *, snow3g_key_schedule_t *) |
typedef size_t(* snow3g_key_sched_size_t) (void) |
typedef struct snow3g_key_schedule_s snow3g_key_schedule_t |
Snow3G key scheduling structure
typedef uint32_t(* submit_cipher_burst_t) (struct IMB_MGR *, struct IMB_JOB *, const uint32_t, const IMB_CIPHER_MODE cipher, const IMB_CIPHER_DIRECTION dir, const IMB_KEY_SIZE_BYTES key_size) |
typedef uint32_t(* submit_hash_burst_t) (struct IMB_MGR *, struct IMB_JOB *, const uint32_t, const IMB_HASH_ALG hash) |
typedef void(* xcbc_keyexp_t) (const void *, void *, void *, void *) |
typedef void(* zuc_eea3_1_buffer_t) (const void *, const void *, const void *, void *, const uint32_t) |
typedef void(* zuc_eea3_4_buffer_t) (const void *const *, const void *const *, const void *const *, void **, const uint32_t *) |
typedef void(* zuc_eea3_n_buffer_t) (const void *const *, const void *const *, const void *const *, void **, const uint32_t *, const uint32_t) |
typedef void(* zuc_eia3_1_buffer_t) (const void *, const void *, const void *, const uint32_t, uint32_t *) |
typedef void(* zuc_eia3_n_buffer_t) (const void *const *, const void *const *, const void *const *, const uint32_t *, uint32_t **, const uint32_t) |
enum IMB_ARCH |
enum IMB_CHAIN_ORDER |
enum IMB_CIPHER_DIRECTION |
enum IMB_CIPHER_MODE |
IMB_ERR_MIN should be higher than __ELASTERROR to avoid overlap with standard error values Define enums from API v0.53, so applications that were using this version will still be compiled successfully. Note: this list has been extended with new names after version 0.55. This list does not need to be extended for new enums.
enum IMB_ERR |
Library error types
enum IMB_HASH_ALG |
enum IMB_KEY_SIZE_BYTES |
enum IMB_SGL_STATE |
enum IMB_STATUS |
IMB_DLL_EXPORT void aes_cfb_128_one_avx | ( | void * | out, |
const void * | in, | ||
const void * | iv, | ||
const void * | keys, | ||
uint64_t | len | ||
) |
AES-CFB-128 Encrypt/Decrypt up to one block.
Processes only one buffer at a time. Designed to manage partial blocks of DOCSIS 3.1 SEC BPI.
[out] | out | Plaintext/Ciphertext output |
[in] | in | Plaintext/Ciphertext input |
[in] | iv | Pointer to 16 byte IV |
[in] | keys | Pointer to expanded AES keys |
[in] | len | Length of data in bytes |
IMB_DLL_EXPORT void aes_cfb_128_one_avx2 | ( | void * | out, |
const void * | in, | ||
const void * | iv, | ||
const void * | keys, | ||
uint64_t | len | ||
) |
AES-CFB-128 Encrypt/Decrypt up to one block.
Processes only one buffer at a time. Designed to manage partial blocks of DOCSIS 3.1 SEC BPI.
[out] | out | Plaintext/Ciphertext output |
[in] | in | Plaintext/Ciphertext input |
[in] | iv | Pointer to 16 byte IV |
[in] | keys | Pointer to expanded AES keys |
[in] | len | Length of data in bytes |
IMB_DLL_EXPORT void aes_cfb_128_one_avx512 | ( | void * | out, |
const void * | in, | ||
const void * | iv, | ||
const void * | keys, | ||
uint64_t | len | ||
) |
AES-CFB-128 Encrypt/Decrypt up to one block.
Processes only one buffer at a time. Designed to manage partial blocks of DOCSIS 3.1 SEC BPI.
[out] | out | Plaintext/Ciphertext output |
[in] | in | Plaintext/Ciphertext input |
[in] | iv | Pointer to 16 byte IV |
[in] | keys | Pointer to expanded AES keys |
[in] | len | Length of data in bytes |
IMB_DLL_EXPORT void aes_cfb_128_one_sse | ( | void * | out, |
const void * | in, | ||
const void * | iv, | ||
const void * | keys, | ||
uint64_t | len | ||
) |
AES-CFB-128 Encrypt/Decrypt up to one block.
Processes only one buffer at a time. Designed to manage partial blocks of DOCSIS 3.1 SEC BPI.
[out] | out | Plaintext/Ciphertext output |
[in] | in | Plaintext/Ciphertext input |
[in] | iv | Pointer to 16 byte IV |
[in] | keys | Pointer to expanded AES keys |
[in] | len | Length of data in bytes |
IMB_DLL_EXPORT void aes_cmac_subkey_gen_avx | ( | const void * | key_exp, |
void * | key1, | ||
void * | key2 | ||
) |
Generate AES-128-CMAC subkeys.
[in] | key_exp | Input expanded AES-128-CMAC key |
[out] | key1 | Subkey 1 |
[out] | key2 | Subkey 2 |
IMB_DLL_EXPORT void aes_cmac_subkey_gen_avx2 | ( | const void * | key_exp, |
void * | key1, | ||
void * | key2 | ||
) |
Generate AES-128-CMAC subkeys.
[in] | key_exp | Input expanded AES-128-CMAC key |
[out] | key1 | Subkey 1 |
[out] | key2 | Subkey 2 |
IMB_DLL_EXPORT void aes_cmac_subkey_gen_avx512 | ( | const void * | key_exp, |
void * | key1, | ||
void * | key2 | ||
) |
Generate AES-128-CMAC subkeys.
[in] | key_exp | Input expanded AES-128-CMAC key |
[out] | key1 | Subkey 1 |
[out] | key2 | Subkey 2 |
IMB_DLL_EXPORT void aes_cmac_subkey_gen_sse | ( | const void * | key_exp, |
void * | key1, | ||
void * | key2 | ||
) |
Generate AES-128-CMAC subkeys.
[in] | key_exp | Input expanded AES-128-CMAC key |
[out] | key1 | Subkey 1 |
[out] | key2 | Subkey 2 |
IMB_DLL_EXPORT void aes_gcm_dec_128_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_128_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_128_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_128_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_128_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_128_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_128_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_128_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_128_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_192_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_192_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_192_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_192_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_192_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_192_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_192_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_192_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_192_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_256_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_256_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_256_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_256_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_256_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End decryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_dec_256_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Decryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_dec_256_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_256_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_dec_256_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Decrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Plaintext output. Decrypt in-place is allowed |
[in] | in | Ciphertext input |
[in] | len | Length of data in bytes for decryption |
IMB_DLL_EXPORT void aes_gcm_enc_128_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_128_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_128_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_128_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_128_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_128_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_128_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_128_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_128_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-128 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_192_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_192_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_192_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_192_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_192_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_192_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_192_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_192_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_192_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-192 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_256_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_256_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_256_finalize_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_256_finalize_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_256_finalize_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
End encryption of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8. |
IMB_DLL_EXPORT void aes_gcm_enc_256_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
uint8_t const * | in, | ||
uint64_t | len, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len, | ||
uint8_t * | auth_tag, | ||
uint64_t | auth_tag_len | ||
) |
AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authentication Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
[out] | auth_tag | Authenticated Tag output |
[in] | auth_tag_len | Authenticated Tag Length in bytes (must be a multiple of 4 bytes). Valid values are 16 (most likely), 12 or 8 |
IMB_DLL_EXPORT void aes_gcm_enc_256_update_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_256_update_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_enc_256_update_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
uint8_t * | out, | ||
const uint8_t * | in, | ||
uint64_t | len | ||
) |
Encrypt a block of a AES-GCM-256 encryption message.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[out] | out | Ciphertext output. Encrypt in-place is allowed |
[in] | in | Plaintext input |
[in] | len | Length of data in bytes for encryption |
IMB_DLL_EXPORT void aes_gcm_init_128_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_128_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_128_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-128 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_192_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_192_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_192_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-192 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_256_avx_gen2 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_256_avx_gen4 | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_init_256_sse | ( | const struct gcm_key_data * | key_data, |
struct gcm_context_data * | context_data, | ||
const uint8_t * | iv, | ||
uint8_t const * | aad, | ||
uint64_t | aad_len | ||
) |
Initialize a gcm_context_data structure to prepare for AES-GCM-256 Encryption.
[in] | key_data | GCM expanded key data |
[in,out] | context_data | GCM operation context data |
[in] | iv | Pointer to 12 byte IV structure Internally, the library concatenates 0x00000001 to the IV |
[in] | aad | Additional Authenticated Data (AAD) |
[in] | aad_len | Length of AAD in bytes |
IMB_DLL_EXPORT void aes_gcm_pre_128_avx_gen2 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-128 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_128_avx_gen4 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-128 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_128_sse | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-128 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_192_avx_gen2 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-192 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_192_avx_gen4 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-192 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_192_sse | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-192 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_256_avx_gen2 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-256 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_256_avx_gen4 | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-256 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_pre_256_sse | ( | const void * | key, |
struct gcm_key_data * | key_data | ||
) |
Pre-processes AES-GCM-256 key data.
Prefills the gcm key data with key values for each round and the initial sub hash key for tag encoding
[in] | key | Pointer to key data |
[out] | key_data | GCM expanded key data |
IMB_DLL_EXPORT void aes_gcm_precomp_128_avx_gen2 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-128 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_128_avx_gen4 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-128 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_128_sse | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-128 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_192_avx_gen2 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-192 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_192_avx_gen4 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-192 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_192_sse | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-192 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_256_avx_gen2 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-256 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_256_avx_gen4 | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-256 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_gcm_precomp_256_sse | ( | struct gcm_key_data * | key_data | ) |
Precomputation of AES-GCM-256 HashKey constants.
Precomputation of HashKey<<1 mod poly constants (shifted_hkey_X and shifted_hkey_X_k).
[in,out] | key_data | GCM key data |
IMB_DLL_EXPORT void aes_keyexp_128_avx | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
[out] | dec_exp_keys | AES-128 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_avx2 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
[out] | dec_exp_keys | AES-128 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_avx512 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
[out] | dec_exp_keys | AES-128 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_enc_avx | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_enc_avx2 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_enc_avx512 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_enc_sse | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_128_sse | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-128 expansion keys.
[in] | key | AES-128 key |
[out] | enc_exp_keys | AES-128 encryption expansion key |
[out] | dec_exp_keys | AES-128 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_avx | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_avx2 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_avx512 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_enc_avx | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-192 expansion keys.
[in] | key | AES-192 key |
[out] | enc_exp_keys | AES-192 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_enc_avx2 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-192 expansion keys.
[in] | key | AES-192 key |
[out] | enc_exp_keys | AES-192 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_enc_avx512 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-192 expansion keys.
[in] | key | AES-192 key |
[out] | enc_exp_keys | AES-192 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_enc_sse | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-192 expansion keys.
[in] | key | AES-192 key |
[out] | enc_exp_keys | AES-192 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_192_sse | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-192 expansion keys.
[in] | key | AES-192 key |
[out] | enc_exp_keys | AES-192 encryption expansion key |
[out] | dec_exp_keys | AES-192 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_avx | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_avx2 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_avx512 | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_enc_avx | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_enc_avx2 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_enc_avx512 | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_enc_sse | ( | const void * | key, |
void * | enc_exp_keys | ||
) |
Generate encryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
IMB_DLL_EXPORT void aes_keyexp_256_sse | ( | const void * | key, |
void * | enc_exp_keys, | ||
void * | dec_exp_keys | ||
) |
Generate encryption/decryption AES-256 expansion keys.
[in] | key | AES-256 key |
[out] | enc_exp_keys | AES-256 encryption expansion key |
[out] | dec_exp_keys | AES-256 decryption expansion key |
IMB_DLL_EXPORT void aes_xcbc_expand_key_avx | ( | const void * | key, |
void * | k1_exp, | ||
void * | k2, | ||
void * | k3 | ||
) |
Generate AES-128-XCBC expansion keys.
[in] | key | Input AES-128-XCBC key |
[out] | k1_exp | k1 expansion key |
[out] | k2 | k2 key |
[out] | k3 | k3 key |
IMB_DLL_EXPORT void aes_xcbc_expand_key_avx2 | ( | const void * | key, |
void * | k1_exp, | ||
void * | k2, | ||
void * | k3 | ||
) |
Generate AES-128-XCBC expansion keys.
[in] | key | Input AES-128-XCBC key |
[out] | k1_exp | k1 expansion key |
[out] | k2 | k2 key |
[out] | k3 | k3 key |
IMB_DLL_EXPORT void aes_xcbc_expand_key_avx512 | ( | const void * | key, |
void * | k1_exp, | ||
void * | k2, | ||
void * | k3 | ||
) |
Generate AES-128-XCBC expansion keys.
[in] | key | Input AES-128-XCBC key |
[out] | k1_exp | k1 expansion key |
[out] | k2 | k2 key |
[out] | k3 | k3 key |
IMB_DLL_EXPORT void aes_xcbc_expand_key_sse | ( | const void * | key, |
void * | k1_exp, | ||
void * | k2, | ||
void * | k3 | ||
) |
Generate AES-128-XCBC expansion keys.
[in] | key | Input AES-128-XCBC key |
[out] | k1_exp | k1 expansion key |
[out] | k2 | k2 key |
[out] | k3 | k3 key |
IMB_DLL_EXPORT IMB_MGR * alloc_mb_mgr | ( | uint64_t | flags | ) |
Allocates memory for multi-buffer manager instance.
get_next_job returns a job object. This must be filled in and returned via submit_job before get_next_job is called again. After submit_job is called, one should call get_completed_job() at least once (and preferably until it returns NULL). get_completed_job and flush_job returns a job object. This job object ceases to be usable at the next call to get_next_job
For binary compatibility between library versions it is recommended to use this API.
flags | multi-buffer manager flags IMB_FLAG_SHANI_OFF - disable use (and detection) of SHA extensions, currently SHANI is only available for SSE IMB_FLAG_AESNI_OFF - disable use (and detection) of AES extensions. |
NULL | on allocation error |
IMB_DLL_EXPORT int des_key_schedule | ( | uint64_t * | ks, |
const void * | key | ||
) |
DES key schedule set up.
ks buffer needs to accommodate DES_KEY_SCHED_SIZE (128) bytes of data.
[out] | ks | Destination buffer to accommodate DES key schedule |
[in] | key | Pointer to an 8 byte DES key |
0 | success |
!0 | error |
IMB_DLL_EXPORT IMB_JOB * flush_job_avx | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * flush_job_avx2 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * flush_job_avx512 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * flush_job_sse | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT void free_mb_mgr | ( | IMB_MGR * | ptr | ) |
Frees memory allocated previously by alloc_mb_mgr()
[in] | ptr | Pointer to allocated MB_MGR structure |
IMB_DLL_EXPORT IMB_JOB * get_completed_job_avx | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_completed_job_avx2 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_completed_job_avx512 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_completed_job_sse | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_next_job_avx | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_next_job_avx2 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_next_job_avx512 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * get_next_job_sse | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT void imb_clear_mem | ( | void * | mem, |
const size_t | size | ||
) |
Force clearing/zeroing of memory.
[in] | mem | Pointer to memory address to clear |
[in] | size | Size of memory to clear (in bytes) |
IMB_DLL_EXPORT int imb_get_errno | ( | IMB_MGR * | mb_mgr | ) |
API to get error status.
mb_mgr | Pointer to multi-buffer manager |
Integer | error type |
IMB_DLL_EXPORT uint64_t imb_get_feature_flags | ( | void | ) |
Retrieves the bitmask with the features supported by the library, without having to allocate/initialize IMB_MGR;.
IMB_DLL_EXPORT size_t imb_get_mb_mgr_size | ( | void | ) |
IMB_DLL_EXPORT const char * imb_get_strerror | ( | int | errnum | ) |
API to get description for errnum.
errnum | error type |
String | description of errnum |
IMB_DLL_EXPORT unsigned imb_get_version | ( | void | ) |
Get library version in numerical format.
Use IMB_VERSION() macro to compare this numerical version against known library version.
IMB_DLL_EXPORT const char * imb_get_version_str | ( | void | ) |
Get library version in string format.
API definitions
IMB_DLL_EXPORT IMB_MGR * imb_set_pointers_mb_mgr | ( | void * | ptr, |
const uint64_t | flags, | ||
const unsigned | reset_mgr | ||
) |
Initializes IMB_MGR pointers to out-of-order managers with use of externally allocated memory.
imb_get_mb_mgr_size() should be called to know how much memory should be allocated externally.
init_mb_mgr_XXX() must be called after this function call, whereas XXX is the desired architecture.
[in] | ptr | a pointer to allocated memory |
[in] | flags | multi-buffer manager flags IMB_FLAG_SHANI_OFF - disable use (and detection) of SHA extensions, currently SHANI is only available for SSE IMB_FLAG_AESNI_OFF - disable use (and detection) of AES extensions. |
[in] | reset_mgr | if 0, IMB_MGR structure is not cleared, else it is. |
IMB_DLL_EXPORT void init_mb_mgr_auto | ( | IMB_MGR * | state, |
IMB_ARCH * | arch | ||
) |
Automatically initialize most performant Multi-buffer manager based on CPU features.
[in] | state | Pointer to MB_MGR struct |
[out] | arch | Pointer to arch enum to be set (can be NULL) |
IMB_DLL_EXPORT void init_mb_mgr_avx | ( | IMB_MGR * | state | ) |
Initialize Multi-Buffer Manager structure.
Must be called before calling JOB/BURST API.
[in,out] | state | Pointer to IMB_MGR structure For binary compatibility between library versions, it is recommended to allocate the IMB_MGR structure using the alloc_mb_mgr() API |
IMB_DLL_EXPORT void init_mb_mgr_avx2 | ( | IMB_MGR * | state | ) |
Initialize Multi-Buffer Manager structure.
Must be called before calling JOB/BURST API.
[in,out] | state | Pointer to IMB_MGR structure For binary compatibility between library versions, it is recommended to allocate the IMB_MGR structure using the alloc_mb_mgr() API |
IMB_DLL_EXPORT void init_mb_mgr_avx512 | ( | IMB_MGR * | state | ) |
Initialize Multi-Buffer Manager structure.
Must be called before calling JOB/BURST API.
[in,out] | state | Pointer to IMB_MGR structure For binary compatibility between library versions, it is recommended to allocate the IMB_MGR structure using the alloc_mb_mgr() API |
IMB_DLL_EXPORT void init_mb_mgr_sse | ( | IMB_MGR * | state | ) |
Initialize Multi-Buffer Manager structure.
Must be called before calling JOB/BURST API.
[in,out] | state | Pointer to IMB_MGR structure For binary compatibility between library versions, it is recommended to allocate the IMB_MGR structure using the alloc_mb_mgr() API |
IMB_DLL_EXPORT int kasumi_f8_iv_gen | ( | const uint32_t | count, |
const uint8_t | bearer, | ||
const uint8_t | dir, | ||
void * | iv_ptr | ||
) |
Generation of KASUMI F8 Initialization Vector.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | bearer | BEARER (5 bits) |
[in] | dir | DIRECTION (1 bit) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) |
0 | success |
-1 | if one or more parameters are invalid |
IMB_DLL_EXPORT int kasumi_f9_iv_gen | ( | const uint32_t | count, |
const uint32_t | fresh, | ||
void * | iv_ptr | ||
) |
Generation of KASUMI F9 Initialization Vector.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | fresh | FRESH (4 bytes in Little Endian) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) |
0 | success |
-1 | if one or more parameters are invalid |
IMB_DLL_EXPORT void md5_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with MD5.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (16 bytes) |
IMB_DLL_EXPORT void md5_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with MD5.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (16 bytes) |
IMB_DLL_EXPORT void md5_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with MD5.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (16 bytes) |
IMB_DLL_EXPORT void md5_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with MD5.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (16 bytes) |
IMB_DLL_EXPORT uint32_t queue_size_avx | ( | IMB_MGR * | state | ) |
Get number of jobs queued to be processed.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT uint32_t queue_size_avx2 | ( | IMB_MGR * | state | ) |
Get number of jobs queued to be processed.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT uint32_t queue_size_avx512 | ( | IMB_MGR * | state | ) |
Get number of jobs queued to be processed.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT uint32_t queue_size_sse | ( | IMB_MGR * | state | ) |
Get number of jobs queued to be processed.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT void sha1_avx | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA1.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_avx2 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA1.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_avx512 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA1.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA1.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA1.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA1.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA1.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha1_sse | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA1.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (20 bytes) |
IMB_DLL_EXPORT void sha224_avx | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA224.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_avx2 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA224.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_avx512 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA224.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA224.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA224.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA224.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA224.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha224_sse | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA224.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (28 bytes) |
IMB_DLL_EXPORT void sha256_avx | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA256.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_avx2 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA256.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_avx512 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA256.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA256.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA256.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA256.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA256.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha256_sse | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA256.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (32 bytes) |
IMB_DLL_EXPORT void sha384_avx | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA384.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_avx2 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA384.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_avx512 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA384.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 128-byte data buffer with SHA384.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 128-byte data buffer with SHA384.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 128-byte data buffer with SHA384.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 128-byte data buffer with SHA384.
[in] | data | 64-byte data buffer |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha384_sse | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA384.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (48 bytes) |
IMB_DLL_EXPORT void sha512_avx | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA512.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_avx2 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA512.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_avx512 | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA512.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_one_block_avx | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA512.
[in] | data | 128-byte data buffer |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_one_block_avx2 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA512.
[in] | data | 128-byte data buffer |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_one_block_avx512 | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA512.
[in] | data | 128-byte data buffer |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_one_block_sse | ( | const void * | data, |
void * | digest | ||
) |
Authenticate 64-byte data buffer with SHA512.
[in] | data | 128-byte data buffer |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT void sha512_sse | ( | const void * | data, |
const uint64_t | length, | ||
void * | digest | ||
) |
Authenticate variable sized data with SHA512.
[in] | data | Data buffer |
[in] | length | Length of data in bytes for authentication. |
[out] | digest | Digest output (64 bytes) |
IMB_DLL_EXPORT int snow3g_f8_iv_gen | ( | const uint32_t | count, |
const uint8_t | bearer, | ||
const uint8_t | dir, | ||
void * | iv_ptr | ||
) |
Generation of SNOW3G F8 Initialization Vector.
Parameters are passed in Little Endian format and used to generate the IV in Big Endian format.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | bearer | BEARER (5 bits) |
[in] | dir | DIRECTION (1 bit) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) in Big Endian format |
0 | success |
-1 | if one or more parameters are invalid |
IMB_DLL_EXPORT int snow3g_f9_iv_gen | ( | const uint32_t | count, |
const uint32_t | fresh, | ||
const uint8_t | dir, | ||
void * | iv_ptr | ||
) |
Generation of SNOW3G F9 Initialization Vector.
Parameters are passed in Little Endian format and used to generate the IV in Big Endian format.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | fresh | FRESH (4 bytes in Little Endian) |
[in] | dir | DIRECTION (1 bit) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) in Big Endian format |
0 | success |
-1 | if one or more parameters are invalid |
IMB_DLL_EXPORT IMB_JOB * submit_job_avx | ( | IMB_MGR * | state | ) |
Submit job for processing after validating.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT IMB_JOB * submit_job_avx2 | ( | IMB_MGR * | state | ) |
Submit job for processing after validating.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT IMB_JOB * submit_job_avx512 | ( | IMB_MGR * | state | ) |
Submit job for processing after validating.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT IMB_JOB * submit_job_nocheck_avx | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * submit_job_nocheck_avx2 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * submit_job_nocheck_avx512 | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * submit_job_nocheck_sse | ( | IMB_MGR * | state | ) |
IMB_DLL_EXPORT IMB_JOB * submit_job_sse | ( | IMB_MGR * | state | ) |
Submit job for processing after validating.
[in,out] | state | Pointer to initialized IMB_MGR structure |
IMB_DLL_EXPORT int zuc_eea3_iv_gen | ( | const uint32_t | count, |
const uint8_t | bearer, | ||
const uint8_t | dir, | ||
void * | iv_ptr | ||
) |
Generation of ZUC-EEA3 Initialization Vector.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | bearer | BEARER (5 bits) |
[in] | dir | DIRECTION (1 bit) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) |
0 | success |
-1 | if one or more parameters are invalid |
IMB_DLL_EXPORT int zuc_eia3_iv_gen | ( | const uint32_t | count, |
const uint8_t | bearer, | ||
const uint8_t | dir, | ||
void * | iv_ptr | ||
) |
Generation of ZUC-EIA3 Initialization Vector.
[in] | count | COUNT (4 bytes in Little Endian) |
[in] | bearer | BEARER (5 bits) |
[in] | dir | DIRECTION (1 bit) |
[out] | iv_ptr | Pointer to generated IV (16 bytes) |
0 | success |
-1 | if one or more parameters are invalid |