[Crypto] Expose TLSOptions getters
This commit is contained in:
@ -72,31 +72,26 @@ void X509Certificate::_bind_methods() {
|
||||
Ref<TLSOptions> TLSOptions::client(Ref<X509Certificate> p_trusted_chain, const String &p_common_name_override) {
|
||||
Ref<TLSOptions> opts;
|
||||
opts.instantiate();
|
||||
opts->mode = MODE_CLIENT;
|
||||
opts->trusted_ca_chain = p_trusted_chain;
|
||||
opts->common_name = p_common_name_override;
|
||||
opts->verify_mode = TLS_VERIFY_FULL;
|
||||
return opts;
|
||||
}
|
||||
|
||||
Ref<TLSOptions> TLSOptions::client_unsafe(Ref<X509Certificate> p_trusted_chain) {
|
||||
Ref<TLSOptions> opts;
|
||||
opts.instantiate();
|
||||
opts->mode = MODE_CLIENT_UNSAFE;
|
||||
opts->trusted_ca_chain = p_trusted_chain;
|
||||
if (p_trusted_chain.is_null()) {
|
||||
opts->verify_mode = TLS_VERIFY_NONE;
|
||||
} else {
|
||||
opts->verify_mode = TLS_VERIFY_CERT;
|
||||
}
|
||||
return opts;
|
||||
}
|
||||
|
||||
Ref<TLSOptions> TLSOptions::server(Ref<CryptoKey> p_own_key, Ref<X509Certificate> p_own_certificate) {
|
||||
Ref<TLSOptions> opts;
|
||||
opts.instantiate();
|
||||
opts->server_mode = true;
|
||||
opts->mode = MODE_SERVER;
|
||||
opts->own_certificate = p_own_certificate;
|
||||
opts->private_key = p_own_key;
|
||||
opts->verify_mode = TLS_VERIFY_NONE;
|
||||
return opts;
|
||||
}
|
||||
|
||||
@ -104,6 +99,13 @@ void TLSOptions::_bind_methods() {
|
||||
ClassDB::bind_static_method("TLSOptions", D_METHOD("client", "trusted_chain", "common_name_override"), &TLSOptions::client, DEFVAL(Ref<X509Certificate>()), DEFVAL(String()));
|
||||
ClassDB::bind_static_method("TLSOptions", D_METHOD("client_unsafe", "trusted_chain"), &TLSOptions::client_unsafe, DEFVAL(Ref<X509Certificate>()));
|
||||
ClassDB::bind_static_method("TLSOptions", D_METHOD("server", "key", "certificate"), &TLSOptions::server);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_server"), &TLSOptions::is_server);
|
||||
ClassDB::bind_method(D_METHOD("is_unsafe_client"), &TLSOptions::is_unsafe_client);
|
||||
ClassDB::bind_method(D_METHOD("get_common_name_override"), &TLSOptions::get_common_name_override);
|
||||
ClassDB::bind_method(D_METHOD("get_trusted_ca_chain"), &TLSOptions::get_trusted_ca_chain);
|
||||
ClassDB::bind_method(D_METHOD("get_private_key"), &TLSOptions::get_private_key);
|
||||
ClassDB::bind_method(D_METHOD("get_own_certificate"), &TLSOptions::get_own_certificate);
|
||||
}
|
||||
|
||||
/// HMACContext
|
||||
|
||||
@ -72,17 +72,15 @@ public:
|
||||
class TLSOptions : public RefCounted {
|
||||
GDCLASS(TLSOptions, RefCounted);
|
||||
|
||||
public:
|
||||
enum TLSVerifyMode {
|
||||
TLS_VERIFY_NONE = 0,
|
||||
TLS_VERIFY_CERT = 1,
|
||||
TLS_VERIFY_FULL = 2,
|
||||
private:
|
||||
enum Mode {
|
||||
MODE_CLIENT = 0,
|
||||
MODE_CLIENT_UNSAFE = 1,
|
||||
MODE_SERVER = 2,
|
||||
};
|
||||
|
||||
private:
|
||||
bool server_mode = false;
|
||||
Mode mode = MODE_CLIENT;
|
||||
String common_name;
|
||||
TLSVerifyMode verify_mode = TLS_VERIFY_FULL;
|
||||
Ref<X509Certificate> trusted_ca_chain;
|
||||
Ref<X509Certificate> own_certificate;
|
||||
Ref<CryptoKey> private_key;
|
||||
@ -95,12 +93,12 @@ public:
|
||||
static Ref<TLSOptions> client_unsafe(Ref<X509Certificate> p_trusted_chain);
|
||||
static Ref<TLSOptions> server(Ref<CryptoKey> p_own_key, Ref<X509Certificate> p_own_certificate);
|
||||
|
||||
TLSVerifyMode get_verify_mode() const { return verify_mode; }
|
||||
String get_common_name() const { return common_name; }
|
||||
String get_common_name_override() const { return common_name; }
|
||||
Ref<X509Certificate> get_trusted_ca_chain() const { return trusted_ca_chain; }
|
||||
Ref<X509Certificate> get_own_certificate() const { return own_certificate; }
|
||||
Ref<CryptoKey> get_private_key() const { return private_key; }
|
||||
bool is_server() const { return server_mode; }
|
||||
bool is_server() const { return mode == MODE_SERVER; }
|
||||
bool is_unsafe_client() const { return mode == MODE_CLIENT_UNSAFE; }
|
||||
};
|
||||
|
||||
class HMACContext : public RefCounted {
|
||||
|
||||
Reference in New Issue
Block a user