quicp2p/picotls/openssl.nim

42 lines
1.7 KiB
Nim

from std/openssl import
EVP_PKEY,
PEVP_MD,
PX509_STORE
from picotls import
ptls_cipher_suite_t,
ptls_key_exchange_algorithm_t,
ptls_sign_certificate_t,
ptls_verify_certificate_t
type
ptls_openssl_signature_scheme_t* {.importc: "struct st_ptls_openssl_signature_scheme_t", header: "picotls/openssl.h", bycopy.} = object
scheme_id*: uint16
scheme_md*: PEVP_MD
ptls_openssl_sign_certificate_t* {.importc, header: "picotls/openssl.h", bycopy.} = object
super*: ptls_sign_certificate_t
key*: EVP_PKEY
schemes*: array[4, ptls_openssl_signature_scheme_t]
ptls_openssl_verify_certificate_t* {.importc, header: "picotls/openssl.h", bycopy.} = object
super*: ptls_verify_certificate_t
cert_store*: PX509_STORE
proc ptls_openssl_random_bytes*(buf: pointer, len: csize_t) {.importc, header: "picotls/openssl.h", cdecl.}
proc ptls_openssl_init_verify_certificate*(self: ptr ptls_openssl_verify_certificate_t,
store: PX509_STORE): cint
{.importc, header: "picotls/openssl.h", cdecl.}
proc ptls_openssl_dispose_verify_certificate*(self: ptr ptls_openssl_verify_certificate_t)
{.importc, header: "picotls/openssl.h", cdecl.}
proc ptls_openssl_init_sign_certificate*(self: ptr ptls_openssl_sign_certificate_t,
key: EVP_PKEY): cint
{.importc, header: "picotls/openssl.h", cdecl.}
var ptls_openssl_cipher_suites* {.importc, header: "picotls/openssl.h".}: ptr ptr ptls_cipher_suite_t
var ptls_openssl_key_exchanges* {.importc, header: "picotls/openssl.h".}: ptr ptr ptls_key_exchange_algorithm_t