From c1f46680f77d077bfc7abebea8b289e9b8bac043 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Wed, 22 Apr 2020 22:11:30 -0500 Subject: Add cImport for multiple headers --- tests/rsa.nim | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/rsa.nim (limited to 'tests') diff --git a/tests/rsa.nim b/tests/rsa.nim new file mode 100644 index 0000000..638c490 --- /dev/null +++ b/tests/rsa.nim @@ -0,0 +1,42 @@ +import os +import strutils + +import nimterop/[build, cimport] + +setDefines(@["cryptoStd"]) +getHeader("openssl/crypto.h") + +const + basePath = cryptoPath.parentDir + FLAGS {.strdefine.} = "" + +cPlugin: + import strutils + + proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = + sym.name = sym.name.strip(chars = {'_'}).replace("__", "_") + + if sym.name in [ + "AES_ENCRYPT", "AES_DECRYPT", + "BIO_CTRL_PENDING", "BIO_CTRL_WPENDING", + "BN_F_BNRAND", "BN_F_BNRAND_RANGE", + "CRYPTO_THREADID", + "EVP_CIPHER", + "OPENSSL_VERSION", + "PKCS7_ENCRYPT", "PKCS7_STREAM", + "SSL_TXT_ADH", "SSL_TXT_AECDH", "SSL_TXT_kECDHE" + ]: + sym.name = "C_" & sym.name + +cOverride: + proc OPENSSL_die*(assertion: cstring; file: cstring; line: cint) {.importc.} + +cImport(@[ + basePath / "rsa.h", + basePath / "err.h", +], recurse = true, flags = "-f:ast2 -s " & FLAGS) + +{.passL: cryptoLPath.} + +OpensslInit() +echo $OPENSSL_VERSION_TEXT \ No newline at end of file -- cgit v1.2.3