mirror of
https://github.com/waku-org/nwaku.git
synced 2025-02-22 03:48:35 +00:00
909 lines
38 KiB
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".}
|