nwaku/vendor/nim-bearssl/bearssl/abi/bearssl_block.nim

909 lines
38 KiB
Nim

import
"."/[csources, intx]
{.pragma: importcFunc, cdecl, gcsafe, noSideEffect, raises: [].}
{.used.}
const
bearSymcPath = bearSrcPath & "symcipher/"
{.compile: bearSymcPath & "aes_big_cbcdec.c".}
{.compile: bearSymcPath & "aes_big_cbcenc.c".}
{.compile: bearSymcPath & "aes_big_ctr.c".}
{.compile: bearSymcPath & "aes_big_ctrcbc.c".}
{.compile: bearSymcPath & "aes_big_dec.c".}
{.compile: bearSymcPath & "aes_big_enc.c".}
{.compile: bearSymcPath & "aes_common.c".}
{.compile: bearSymcPath & "aes_ct.c".}
{.compile: bearSymcPath & "aes_ct64.c".}
{.compile: bearSymcPath & "aes_ct64_cbcdec.c".}
{.compile: bearSymcPath & "aes_ct64_cbcenc.c".}
{.compile: bearSymcPath & "aes_ct64_ctr.c".}
{.compile: bearSymcPath & "aes_ct64_ctrcbc.c".}
{.compile: bearSymcPath & "aes_ct64_dec.c".}
{.compile: bearSymcPath & "aes_ct64_enc.c".}
{.compile: bearSymcPath & "aes_ct_cbcdec.c".}
{.compile: bearSymcPath & "aes_ct_cbcenc.c".}
{.compile: bearSymcPath & "aes_ct_ctr.c".}
{.compile: bearSymcPath & "aes_ct_ctrcbc.c".}
{.compile: bearSymcPath & "aes_ct_dec.c".}
{.compile: bearSymcPath & "aes_ct_enc.c".}
{.compile: bearSymcPath & "aes_pwr8.c".}
{.compile: bearSymcPath & "aes_pwr8_cbcdec.c".}
{.compile: bearSymcPath & "aes_pwr8_cbcenc.c".}
{.compile: bearSymcPath & "aes_pwr8_ctr.c".}
{.compile: bearSymcPath & "aes_pwr8_ctrcbc.c".}
{.compile: bearSymcPath & "aes_small_cbcdec.c".}
{.compile: bearSymcPath & "aes_small_cbcenc.c".}
{.compile: bearSymcPath & "aes_small_ctr.c".}
{.compile: bearSymcPath & "aes_small_ctrcbc.c".}
{.compile: bearSymcPath & "aes_small_dec.c".}
{.compile: bearSymcPath & "aes_small_enc.c".}
{.compile: bearSymcPath & "aes_x86ni.c".}
{.compile: bearSymcPath & "aes_x86ni_cbcdec.c".}
{.compile: bearSymcPath & "aes_x86ni_cbcenc.c".}
{.compile: bearSymcPath & "aes_x86ni_ctr.c".}
{.compile: bearSymcPath & "aes_x86ni_ctrcbc.c".}
{.compile: bearSymcPath & "chacha20_ct.c".}
{.compile: bearSymcPath & "chacha20_sse2.c".}
{.compile: bearSymcPath & "des_ct.c".}
{.compile: bearSymcPath & "des_ct_cbcdec.c".}
{.compile: bearSymcPath & "des_ct_cbcenc.c".}
{.compile: bearSymcPath & "des_support.c".}
{.compile: bearSymcPath & "des_tab.c".}
{.compile: bearSymcPath & "des_tab_cbcdec.c".}
{.compile: bearSymcPath & "des_tab_cbcenc.c".}
{.compile: bearSymcPath & "poly1305_ctmul.c".}
{.compile: bearSymcPath & "poly1305_ctmul32.c".}
{.compile: bearSymcPath & "poly1305_ctmulq.c".}
{.compile: bearSymcPath & "poly1305_i15.c".}
type
BlockCbcencClass* {.importc: "br_block_cbcenc_class", header: "bearssl_block.h",
bycopy.} = object
contextSize* {.importc: "context_size".}: uint
blockSize* {.importc: "block_size".}: cuint
logBlockSize* {.importc: "log_block_size".}: cuint
init* {.importc: "init".}: proc (ctx: ptr ptr BlockCbcencClass; key: pointer;
keyLen: uint) {.importcFunc.}
run* {.importc: "run".}: proc (ctx: ptr ptr BlockCbcencClass; iv: pointer;
data: pointer; len: uint) {.importcFunc.}
type
BlockCbcdecClass* {.importc: "br_block_cbcdec_class", header: "bearssl_block.h",
bycopy.} = object
contextSize* {.importc: "context_size".}: uint
blockSize* {.importc: "block_size".}: cuint
logBlockSize* {.importc: "log_block_size".}: cuint
init* {.importc: "init".}: proc (ctx: ptr ptr BlockCbcdecClass; key: pointer;
keyLen: uint) {.importcFunc.}
run* {.importc: "run".}: proc (ctx: ptr ptr BlockCbcdecClass; iv: pointer;
data: pointer; len: uint) {.importcFunc.}
type
BlockCtrClass* {.importc: "br_block_ctr_class", header: "bearssl_block.h", bycopy.} = object
contextSize* {.importc: "context_size".}: uint
blockSize* {.importc: "block_size".}: cuint
logBlockSize* {.importc: "log_block_size".}: cuint
init* {.importc: "init".}: proc (ctx: ptr ptr BlockCtrClass; key: pointer;
keyLen: uint) {.importcFunc.}
run* {.importc: "run".}: proc (ctx: ptr ptr BlockCtrClass; iv: pointer; cc: uint32;
data: pointer; len: uint): uint32 {.importcFunc.}
type
BlockCtrcbcClass* {.importc: "br_block_ctrcbc_class", header: "bearssl_block.h",
bycopy.} = object
contextSize* {.importc: "context_size".}: uint
blockSize* {.importc: "block_size".}: cuint
logBlockSize* {.importc: "log_block_size".}: cuint
init* {.importc: "init".}: proc (ctx: ptr ptr BlockCtrcbcClass; key: pointer;
keyLen: uint) {.importcFunc.}
encrypt* {.importc: "encrypt".}: proc (ctx: ptr ptr BlockCtrcbcClass; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.
importcFunc.}
decrypt* {.importc: "decrypt".}: proc (ctx: ptr ptr BlockCtrcbcClass; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.
importcFunc.}
ctr* {.importc: "ctr".}: proc (ctx: ptr ptr BlockCtrcbcClass; ctr: pointer;
data: pointer; len: uint) {.importcFunc.}
mac* {.importc: "mac".}: proc (ctx: ptr ptr BlockCtrcbcClass; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc.}
const
aesBigBLOCK_SIZE* = 16
type
AesBigCbcencKeys* {.importc: "br_aes_big_cbcenc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesBigCbcdecKeys* {.importc: "br_aes_big_cbcdec_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesBigCtrKeys* {.importc: "br_aes_big_ctr_keys", header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesBigCtrcbcKeys* {.importc: "br_aes_big_ctrcbc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
var aesBigCbcencVtable* {.importc: "br_aes_big_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesBigCbcdecVtable* {.importc: "br_aes_big_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesBigCtrVtable* {.importc: "br_aes_big_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesBigCtrcbcVtable* {.importc: "br_aes_big_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesBigCbcencInit*(ctx: var AesBigCbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_cbcenc_init", header: "bearssl_block.h".}
proc aesBigCbcdecInit*(ctx: var AesBigCbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_cbcdec_init", header: "bearssl_block.h".}
proc aesBigCtrInit*(ctx: var AesBigCtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_ctr_init", header: "bearssl_block.h".}
proc aesBigCtrcbcInit*(ctx: var AesBigCtrcbcKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_ctrcbc_init", header: "bearssl_block.h".}
proc aesBigCbcencRun*(ctx: var AesBigCbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_big_cbcenc_run",
header: "bearssl_block.h".}
proc aesBigCbcdecRun*(ctx: var AesBigCbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_big_cbcdec_run",
header: "bearssl_block.h".}
proc aesBigCtrRun*(ctx: var AesBigCtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_big_ctr_run",
header: "bearssl_block.h".}
proc aesBigCtrcbcEncrypt*(ctx: var AesBigCtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesBigCtrcbcDecrypt*(ctx: var AesBigCtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_big_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesBigCtrcbcCtr*(ctx: var AesBigCtrcbcKeys; ctr: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_big_ctrcbc_ctr",
header: "bearssl_block.h".}
proc aesBigCtrcbcMac*(ctx: var AesBigCtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_big_ctrcbc_mac",
header: "bearssl_block.h".}
const
aesSmallBLOCK_SIZE* = 16
type
AesSmallCbcencKeys* {.importc: "br_aes_small_cbcenc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesSmallCbcdecKeys* {.importc: "br_aes_small_cbcdec_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesSmallCtrKeys* {.importc: "br_aes_small_ctr_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesSmallCtrcbcKeys* {.importc: "br_aes_small_ctrcbc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
var aesSmallCbcencVtable* {.importc: "br_aes_small_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesSmallCbcdecVtable* {.importc: "br_aes_small_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesSmallCtrVtable* {.importc: "br_aes_small_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesSmallCtrcbcVtable* {.importc: "br_aes_small_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesSmallCbcencInit*(ctx: var AesSmallCbcencKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_small_cbcenc_init", header: "bearssl_block.h".}
proc aesSmallCbcdecInit*(ctx: var AesSmallCbcdecKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_small_cbcdec_init", header: "bearssl_block.h".}
proc aesSmallCtrInit*(ctx: var AesSmallCtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_small_ctr_init", header: "bearssl_block.h".}
proc aesSmallCtrcbcInit*(ctx: var AesSmallCtrcbcKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_small_ctrcbc_init", header: "bearssl_block.h".}
proc aesSmallCbcencRun*(ctx: var AesSmallCbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_small_cbcenc_run",
header: "bearssl_block.h".}
proc aesSmallCbcdecRun*(ctx: var AesSmallCbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_small_cbcdec_run",
header: "bearssl_block.h".}
proc aesSmallCtrRun*(ctx: var AesSmallCtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_small_ctr_run",
header: "bearssl_block.h".}
proc aesSmallCtrcbcEncrypt*(ctx: var AesSmallCtrcbcKeys; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.importcFunc,
importc: "br_aes_small_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesSmallCtrcbcDecrypt*(ctx: var AesSmallCtrcbcKeys; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.importcFunc,
importc: "br_aes_small_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesSmallCtrcbcCtr*(ctx: var AesSmallCtrcbcKeys; ctr: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_small_ctrcbc_ctr",
header: "bearssl_block.h".}
proc aesSmallCtrcbcMac*(ctx: var AesSmallCtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_small_ctrcbc_mac",
header: "bearssl_block.h".}
const
aesCtBLOCK_SIZE* = 16
type
AesCtCbcencKeys* {.importc: "br_aes_ct_cbcenc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCtCbcdecKeys* {.importc: "br_aes_ct_cbcdec_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCtCtrKeys* {.importc: "br_aes_ct_ctr_keys", header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCtCtrcbcKeys* {.importc: "br_aes_ct_ctrcbc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: array[60, uint32]
numRounds* {.importc: "num_rounds".}: cuint
var aesCtCbcencVtable* {.importc: "br_aes_ct_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesCtCbcdecVtable* {.importc: "br_aes_ct_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesCtCtrVtable* {.importc: "br_aes_ct_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesCtCtrcbcVtable* {.importc: "br_aes_ct_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesCtCbcencInit*(ctx: var AesCtCbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_cbcenc_init", header: "bearssl_block.h".}
proc aesCtCbcdecInit*(ctx: var AesCtCbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_cbcdec_init", header: "bearssl_block.h".}
proc aesCtCtrInit*(ctx: var AesCtCtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_ctr_init", header: "bearssl_block.h".}
proc aesCtCtrcbcInit*(ctx: var AesCtCtrcbcKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_ctrcbc_init", header: "bearssl_block.h".}
proc aesCtCbcencRun*(ctx: var AesCtCbcencKeys; iv: pointer; data: pointer; len: uint) {.
importcFunc, importc: "br_aes_ct_cbcenc_run", header: "bearssl_block.h".}
proc aesCtCbcdecRun*(ctx: var AesCtCbcdecKeys; iv: pointer; data: pointer; len: uint) {.
importcFunc, importc: "br_aes_ct_cbcdec_run", header: "bearssl_block.h".}
proc aesCtCtrRun*(ctx: var AesCtCtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_ct_ctr_run",
header: "bearssl_block.h".}
proc aesCtCtrcbcEncrypt*(ctx: var AesCtCtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesCtCtrcbcDecrypt*(ctx: var AesCtCtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesCtCtrcbcCtr*(ctx: var AesCtCtrcbcKeys; ctr: pointer; data: pointer; len: uint) {.
importcFunc, importc: "br_aes_ct_ctrcbc_ctr", header: "bearssl_block.h".}
proc aesCtCtrcbcMac*(ctx: var AesCtCtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_ct_ctrcbc_mac",
header: "bearssl_block.h".}
const
aesCt64BLOCK_SIZE* = 16
type
AesCt64CbcencKeys* {.importc: "br_aes_ct64_cbcenc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[30, uint64]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCt64CbcdecKeys* {.importc: "br_aes_ct64_cbcdec_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[30, uint64]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCt64CtrKeys* {.importc: "br_aes_ct64_ctr_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: array[30, uint64]
numRounds* {.importc: "num_rounds".}: cuint
type
AesCt64CtrcbcKeys* {.importc: "br_aes_ct64_ctrcbc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: array[30, uint64]
numRounds* {.importc: "num_rounds".}: cuint
var aesCt64CbcencVtable* {.importc: "br_aes_ct64_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesCt64CbcdecVtable* {.importc: "br_aes_ct64_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesCt64CtrVtable* {.importc: "br_aes_ct64_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesCt64CtrcbcVtable* {.importc: "br_aes_ct64_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesCt64CbcencInit*(ctx: var AesCt64CbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_cbcenc_init", header: "bearssl_block.h".}
proc aesCt64CbcdecInit*(ctx: var AesCt64CbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_cbcdec_init", header: "bearssl_block.h".}
proc aesCt64CtrInit*(ctx: var AesCt64CtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_ctr_init", header: "bearssl_block.h".}
proc aesCt64CtrcbcInit*(ctx: var AesCt64CtrcbcKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_ctrcbc_init", header: "bearssl_block.h".}
proc aesCt64CbcencRun*(ctx: var AesCt64CbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_ct64_cbcenc_run",
header: "bearssl_block.h".}
proc aesCt64CbcdecRun*(ctx: var AesCt64CbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_ct64_cbcdec_run",
header: "bearssl_block.h".}
proc aesCt64CtrRun*(ctx: var AesCt64CtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_ct64_ctr_run",
header: "bearssl_block.h".}
proc aesCt64CtrcbcEncrypt*(ctx: var AesCt64CtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesCt64CtrcbcDecrypt*(ctx: var AesCt64CtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_ct64_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesCt64CtrcbcCtr*(ctx: var AesCt64CtrcbcKeys; ctr: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_ct64_ctrcbc_ctr",
header: "bearssl_block.h".}
proc aesCt64CtrcbcMac*(ctx: var AesCt64CtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_ct64_ctrcbc_mac",
header: "bearssl_block.h".}
const
aesX86niBLOCK_SIZE* = 16
type
INNER_C_UNION_bearssl_block_1* {.importc: "br_aes_x86ni_cbcenc_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesX86niCbcencKeys* {.importc: "br_aes_x86ni_cbcenc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_1
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_3* {.importc: "br_aes_x86ni_cbcdec_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesX86niCbcdecKeys* {.importc: "br_aes_x86ni_cbcdec_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_3
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_5* {.importc: "br_aes_x86ni_ctr_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesX86niCtrKeys* {.importc: "br_aes_x86ni_ctr_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_5
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_7* {.importc: "br_aes_x86ni_ctrcbc_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesX86niCtrcbcKeys* {.importc: "br_aes_x86ni_ctrcbc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_7
numRounds* {.importc: "num_rounds".}: cuint
var aesX86niCbcencVtable* {.importc: "br_aes_x86ni_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesX86niCbcdecVtable* {.importc: "br_aes_x86ni_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesX86niCtrVtable* {.importc: "br_aes_x86ni_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesX86niCtrcbcVtable* {.importc: "br_aes_x86ni_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesX86niCbcencInit*(ctx: var AesX86niCbcencKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_x86ni_cbcenc_init", header: "bearssl_block.h".}
proc aesX86niCbcdecInit*(ctx: var AesX86niCbcdecKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_x86ni_cbcdec_init", header: "bearssl_block.h".}
proc aesX86niCtrInit*(ctx: var AesX86niCtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_x86ni_ctr_init", header: "bearssl_block.h".}
proc aesX86niCtrcbcInit*(ctx: var AesX86niCtrcbcKeys; key: pointer; len: uint) {.
importcFunc, importc: "br_aes_x86ni_ctrcbc_init", header: "bearssl_block.h".}
proc aesX86niCbcencRun*(ctx: var AesX86niCbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_x86ni_cbcenc_run",
header: "bearssl_block.h".}
proc aesX86niCbcdecRun*(ctx: var AesX86niCbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_x86ni_cbcdec_run",
header: "bearssl_block.h".}
proc aesX86niCtrRun*(ctx: var AesX86niCtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_x86ni_ctr_run",
header: "bearssl_block.h".}
proc aesX86niCtrcbcEncrypt*(ctx: var AesX86niCtrcbcKeys; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.importcFunc,
importc: "br_aes_x86ni_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesX86niCtrcbcDecrypt*(ctx: var AesX86niCtrcbcKeys; ctr: pointer;
cbcmac: pointer; data: pointer; len: uint) {.importcFunc,
importc: "br_aes_x86ni_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesX86niCtrcbcCtr*(ctx: var AesX86niCtrcbcKeys; ctr: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_x86ni_ctrcbc_ctr",
header: "bearssl_block.h".}
proc aesX86niCtrcbcMac*(ctx: var AesX86niCtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_x86ni_ctrcbc_mac",
header: "bearssl_block.h".}
proc aesX86niCbcencGetVtable*(): ptr BlockCbcencClass {.importcFunc,
importc: "br_aes_x86ni_cbcenc_get_vtable", header: "bearssl_block.h".}
proc aesX86niCbcdecGetVtable*(): ptr BlockCbcdecClass {.importcFunc,
importc: "br_aes_x86ni_cbcdec_get_vtable", header: "bearssl_block.h".}
proc aesX86niCtrGetVtable*(): ptr BlockCtrClass {.importcFunc,
importc: "br_aes_x86ni_ctr_get_vtable", header: "bearssl_block.h".}
proc aesX86niCtrcbcGetVtable*(): ptr BlockCtrcbcClass {.importcFunc,
importc: "br_aes_x86ni_ctrcbc_get_vtable", header: "bearssl_block.h".}
const
aesPwr8BLOCK_SIZE* = 16
type
INNER_C_UNION_bearssl_block_9* {.importc: "br_aes_pwr8_cbcenc_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesPwr8CbcencKeys* {.importc: "br_aes_pwr8_cbcenc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_9
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_11* {.importc: "br_aes_pwr8_cbcdec_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesPwr8CbcdecKeys* {.importc: "br_aes_pwr8_cbcdec_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_11
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_13* {.importc: "br_aes_pwr8_ctr_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesPwr8CtrKeys* {.importc: "br_aes_pwr8_ctr_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_13
numRounds* {.importc: "num_rounds".}: cuint
type
INNER_C_UNION_bearssl_block_15* {.importc: "br_aes_pwr8_ctrcbc_keys::no_name",
header: "bearssl_block.h", bycopy, union.} = object
skni* {.importc: "skni".}: array[16 * 15, byte]
AesPwr8CtrcbcKeys* {.importc: "br_aes_pwr8_ctrcbc_keys",
header: "bearssl_block.h", bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
skey* {.importc: "skey".}: INNER_C_UNION_bearssl_block_15
numRounds* {.importc: "num_rounds".}: cuint
var aesPwr8CbcencVtable* {.importc: "br_aes_pwr8_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var aesPwr8CbcdecVtable* {.importc: "br_aes_pwr8_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
var aesPwr8CtrVtable* {.importc: "br_aes_pwr8_ctr_vtable", header: "bearssl_block.h".}: BlockCtrClass
var aesPwr8CtrcbcVtable* {.importc: "br_aes_pwr8_ctrcbc_vtable", header: "bearssl_block.h".}: BlockCtrcbcClass
proc aesPwr8CbcencInit*(ctx: var AesPwr8CbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_cbcenc_init", header: "bearssl_block.h".}
proc aesPwr8CbcdecInit*(ctx: var AesPwr8CbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_cbcdec_init", header: "bearssl_block.h".}
proc aesPwr8CtrInit*(ctx: var AesPwr8CtrKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_ctr_init", header: "bearssl_block.h".}
proc aesPwr8CtrcbcInit*(ctx: var AesPwr8CtrcbcKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_ctrcbc_init", header: "bearssl_block.h".}
proc aesPwr8CbcencRun*(ctx: var AesPwr8CbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_pwr8_cbcenc_run",
header: "bearssl_block.h".}
proc aesPwr8CbcdecRun*(ctx: var AesPwr8CbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_pwr8_cbcdec_run",
header: "bearssl_block.h".}
proc aesPwr8CtrRun*(ctx: var AesPwr8CtrKeys; iv: pointer; cc: uint32; data: pointer;
len: uint): uint32 {.importcFunc, importc: "br_aes_pwr8_ctr_run",
header: "bearssl_block.h".}
proc aesPwr8CtrcbcEncrypt*(ctx: var AesPwr8CtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_ctrcbc_encrypt", header: "bearssl_block.h".}
proc aesPwr8CtrcbcDecrypt*(ctx: var AesPwr8CtrcbcKeys; ctr: pointer; cbcmac: pointer;
data: pointer; len: uint) {.importcFunc,
importc: "br_aes_pwr8_ctrcbc_decrypt", header: "bearssl_block.h".}
proc aesPwr8CtrcbcCtr*(ctx: var AesPwr8CtrcbcKeys; ctr: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_pwr8_ctrcbc_ctr",
header: "bearssl_block.h".}
proc aesPwr8CtrcbcMac*(ctx: var AesPwr8CtrcbcKeys; cbcmac: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_aes_pwr8_ctrcbc_mac",
header: "bearssl_block.h".}
proc aesPwr8CbcencGetVtable*(): ptr BlockCbcencClass {.importcFunc,
importc: "br_aes_pwr8_cbcenc_get_vtable", header: "bearssl_block.h".}
proc aesPwr8CbcdecGetVtable*(): ptr BlockCbcdecClass {.importcFunc,
importc: "br_aes_pwr8_cbcdec_get_vtable", header: "bearssl_block.h".}
proc aesPwr8CtrGetVtable*(): ptr BlockCtrClass {.importcFunc,
importc: "br_aes_pwr8_ctr_get_vtable", header: "bearssl_block.h".}
proc aesPwr8CtrcbcGetVtable*(): ptr BlockCtrcbcClass {.importcFunc,
importc: "br_aes_pwr8_ctrcbc_get_vtable", header: "bearssl_block.h".}
type
AesGenCbcencKeys* {.importc: "br_aes_gen_cbcenc_keys", header: "bearssl_block.h",
bycopy, union.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
cBig* {.importc: "c_big".}: AesBigCbcencKeys
cSmall* {.importc: "c_small".}: AesSmallCbcencKeys
cCt* {.importc: "c_ct".}: AesCtCbcencKeys
cCt64* {.importc: "c_ct64".}: AesCt64CbcencKeys
cX86ni* {.importc: "c_x86ni".}: AesX86niCbcencKeys
cPwr8* {.importc: "c_pwr8".}: AesPwr8CbcencKeys
type
AesGenCbcdecKeys* {.importc: "br_aes_gen_cbcdec_keys", header: "bearssl_block.h",
bycopy, union.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
cBig* {.importc: "c_big".}: AesBigCbcdecKeys
cSmall* {.importc: "c_small".}: AesSmallCbcdecKeys
cCt* {.importc: "c_ct".}: AesCtCbcdecKeys
cCt64* {.importc: "c_ct64".}: AesCt64CbcdecKeys
cX86ni* {.importc: "c_x86ni".}: AesX86niCbcdecKeys
cPwr8* {.importc: "c_pwr8".}: AesPwr8CbcdecKeys
type
AesGenCtrKeys* {.importc: "br_aes_gen_ctr_keys", header: "bearssl_block.h", bycopy,
union.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrClass
cBig* {.importc: "c_big".}: AesBigCtrKeys
cSmall* {.importc: "c_small".}: AesSmallCtrKeys
cCt* {.importc: "c_ct".}: AesCtCtrKeys
cCt64* {.importc: "c_ct64".}: AesCt64CtrKeys
cX86ni* {.importc: "c_x86ni".}: AesX86niCtrKeys
cPwr8* {.importc: "c_pwr8".}: AesPwr8CtrKeys
type
AesGenCtrcbcKeys* {.importc: "br_aes_gen_ctrcbc_keys", header: "bearssl_block.h",
bycopy, union.} = object
vtable* {.importc: "vtable".}: ptr BlockCtrcbcClass
cBig* {.importc: "c_big".}: AesBigCtrcbcKeys
cSmall* {.importc: "c_small".}: AesSmallCtrcbcKeys
cCt* {.importc: "c_ct".}: AesCtCtrcbcKeys
cCt64* {.importc: "c_ct64".}: AesCt64CtrcbcKeys
cX86ni* {.importc: "c_x86ni".}: AesX86niCtrcbcKeys
cPwr8* {.importc: "c_pwr8".}: AesPwr8CtrcbcKeys
const
desTabBLOCK_SIZE* = 8
type
DesTabCbcencKeys* {.importc: "br_des_tab_cbcenc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[96, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
DesTabCbcdecKeys* {.importc: "br_des_tab_cbcdec_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[96, uint32]
numRounds* {.importc: "num_rounds".}: cuint
var desTabCbcencVtable* {.importc: "br_des_tab_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var desTabCbcdecVtable* {.importc: "br_des_tab_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
proc desTabCbcencInit*(ctx: var DesTabCbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_des_tab_cbcenc_init", header: "bearssl_block.h".}
proc desTabCbcdecInit*(ctx: var DesTabCbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_des_tab_cbcdec_init", header: "bearssl_block.h".}
proc desTabCbcencRun*(ctx: var DesTabCbcencKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_des_tab_cbcenc_run",
header: "bearssl_block.h".}
proc desTabCbcdecRun*(ctx: var DesTabCbcdecKeys; iv: pointer; data: pointer;
len: uint) {.importcFunc, importc: "br_des_tab_cbcdec_run",
header: "bearssl_block.h".}
const
desCtBLOCK_SIZE* = 8
type
DesCtCbcencKeys* {.importc: "br_des_ct_cbcenc_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
skey* {.importc: "skey".}: array[96, uint32]
numRounds* {.importc: "num_rounds".}: cuint
type
DesCtCbcdecKeys* {.importc: "br_des_ct_cbcdec_keys", header: "bearssl_block.h",
bycopy.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
skey* {.importc: "skey".}: array[96, uint32]
numRounds* {.importc: "num_rounds".}: cuint
var desCtCbcencVtable* {.importc: "br_des_ct_cbcenc_vtable", header: "bearssl_block.h".}: BlockCbcencClass
var desCtCbcdecVtable* {.importc: "br_des_ct_cbcdec_vtable", header: "bearssl_block.h".}: BlockCbcdecClass
proc desCtCbcencInit*(ctx: var DesCtCbcencKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_des_ct_cbcenc_init", header: "bearssl_block.h".}
proc desCtCbcdecInit*(ctx: var DesCtCbcdecKeys; key: pointer; len: uint) {.importcFunc,
importc: "br_des_ct_cbcdec_init", header: "bearssl_block.h".}
proc desCtCbcencRun*(ctx: var DesCtCbcencKeys; iv: pointer; data: pointer; len: uint) {.
importcFunc, importc: "br_des_ct_cbcenc_run", header: "bearssl_block.h".}
proc desCtCbcdecRun*(ctx: var DesCtCbcdecKeys; iv: pointer; data: pointer; len: uint) {.
importcFunc, importc: "br_des_ct_cbcdec_run", header: "bearssl_block.h".}
type
DesGenCbcencKeys* {.importc: "br_des_gen_cbcenc_keys", header: "bearssl_block.h",
bycopy, union.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcencClass
tab* {.importc: "tab".}: DesTabCbcencKeys
ct* {.importc: "ct".}: DesCtCbcencKeys
type
DesGenCbcdecKeys* {.importc: "br_des_gen_cbcdec_keys", header: "bearssl_block.h",
bycopy, union.} = object
vtable* {.importc: "vtable".}: ptr BlockCbcdecClass
cTab* {.importc: "c_tab".}: DesTabCbcdecKeys
cCt* {.importc: "c_ct".}: DesCtCbcdecKeys
type
Chacha20Run* {.importc: "br_chacha20_run".} = proc (key: pointer; iv: pointer; cc: uint32; data: pointer; len: uint): uint32 {.
importcFunc.}
proc chacha20CtRun*(key: pointer; iv: pointer; cc: uint32; data: pointer; len: uint): uint32 {.
importcFunc, importc: "br_chacha20_ct_run", header: "bearssl_block.h".}
proc chacha20Sse2Run*(key: pointer; iv: pointer; cc: uint32; data: pointer; len: uint): uint32 {.
importcFunc, importc: "br_chacha20_sse2_run", header: "bearssl_block.h".}
proc chacha20Sse2Get*(): Chacha20Run {.importcFunc, importc: "br_chacha20_sse2_get",
header: "bearssl_block.h".}
type
Poly1305Run* {.importc: "br_poly1305_run".} = proc (key: pointer; iv: pointer; data: pointer; len: uint;
aad: pointer; aadLen: uint; tag: pointer; ichacha: Chacha20Run;
encrypt: cint) {.importcFunc.}
proc poly1305CtmulRun*(key: pointer; iv: pointer; data: pointer; len: uint;
aad: pointer; aadLen: uint; tag: pointer;
ichacha: Chacha20Run; encrypt: cint) {.importcFunc,
importc: "br_poly1305_ctmul_run", header: "bearssl_block.h".}
proc poly1305Ctmul32Run*(key: pointer; iv: pointer; data: pointer; len: uint;
aad: pointer; aadLen: uint; tag: pointer;
ichacha: Chacha20Run; encrypt: cint) {.importcFunc,
importc: "br_poly1305_ctmul32_run", header: "bearssl_block.h".}
proc poly1305I15Run*(key: pointer; iv: pointer; data: pointer; len: uint;
aad: pointer; aadLen: uint; tag: pointer; ichacha: Chacha20Run;
encrypt: cint) {.importcFunc, importc: "br_poly1305_i15_run",
header: "bearssl_block.h".}
proc poly1305CtmulqRun*(key: pointer; iv: pointer; data: pointer; len: uint;
aad: pointer; aadLen: uint; tag: pointer;
ichacha: Chacha20Run; encrypt: cint) {.importcFunc,
importc: "br_poly1305_ctmulq_run", header: "bearssl_block.h".}
proc poly1305CtmulqGet*(): Poly1305Run {.importcFunc, importc: "br_poly1305_ctmulq_get",
header: "bearssl_block.h".}