mirror of
https://github.com/logos-storage/nim-bearssl.git
synced 2026-01-05 06:53:12 +00:00
* split `decls.nim` into smaller modules - allows using parts of the ABI without compiling all of `bearssl` * deprecate functions with `Br` prefix - there are duplicate exports both with and without `Br` for the same function and we use both in consumers like `chronos` and `libp2p` * fix several cases of incorrectly mapped types * use `var` for certain arguments that can't be `nil` * add script to regenerate ABI with `c2nim` * consistently use `uint` for length (`int` was sometimes used) The Split likely needs more cleanup work - this is a first cut to get the idea in place. In the new layout, `bearssl/abi/` contains "raw" nim mappings while hand-written helpers are in `bearssl/`.
25 lines
733 B
Nim
25 lines
733 B
Nim
import
|
|
"."/[csources, bearssl_x509]
|
|
|
|
{.pragma: importcFunc, cdecl, gcsafe, noSideEffect, raises: [].}
|
|
{.pragma: headerFunc, importcFunc, header: "brssl.h".}
|
|
{.used.}
|
|
|
|
const
|
|
bearToolsPath = bearPath / "tools"
|
|
|
|
|
|
{.compile: bearToolsPath / "vector.c".}
|
|
{.compile: bearToolsPath / "xmem.c".}
|
|
{.compile: bearToolsPath / "names.c".}
|
|
{.compile: bearToolsPath / "certs.c".}
|
|
{.compile: bearToolsPath / "files.c".}
|
|
|
|
type
|
|
X509NoAnchorContext* {.importc: "x509_noanchor_context",
|
|
header: "brssl.h", bycopy.} = object
|
|
vtable* {.importc: "vtable".}: ptr X509Class
|
|
|
|
proc initNoAnchor*(xwc: var X509NoAnchorContext, inner: ptr ptr X509Class) {.
|
|
importcFunc, importc: "x509_noanchor_init", header: "brssl.h".}
|