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