# Copyright (c) 2023 Yuki Kimoto
# MIT License
class Net::SSLeay::SSL_CTX {
use Net::SSLeay::SSL_METHOD;
use Net::SSLeay::X509_STORE;
use Net::SSLeay::X509_VERIFY_PARAM;
# Class Methods
native static method new : Net::SSLeay::SSL_CTX ($method : Net::SSLeay::SSL_METHOD);
# Instance Methods
native method DESTROY : void ();
native method set_mode : long ($mode : long);
native method set_verify : int ($mode : int);
native method get0_param : Net::SSLeay::X509_VERIFY_PARAM ();
native method load_verify_locations : int ($path : string);
native method set_default_verify_paths : int ();
native method use_certificate_file : int ($file : string, $type : int);
native method use_certificate_chain_file : int ($file : string);
native method use_PrivateKey_file : int ($file : string, $type : int);
native method set_cipher_list : int ($str : string);
native method set_ciphersuites : int ($str : string);
native method get_cert_store : Net::SSLeay::X509_STORE ();
native method set_options : long ($options : long);
native method get_options : long ();
native method clear_options : long ($options : long);
}