summaryrefslogtreecommitdiff
path: root/pages/develop/api/efl/net/socket/ssl.txt
blob: 64a0858e585b7cdcb29b764d7baf6f1798b00a8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
~~Title: Efl.Net.Socket.Ssl~~
====== Efl.Net.Socket.Ssl (class) ======

===== Description =====

%%A wrapper socket doing SSL (Secure Sockets Layer).%%

%%Use this wrapper around an existing socket for secure communication. One common use is to apply it to TCP sockets created with %%[[:develop:api:efl:net:dialer:tcp|Efl.Net.Dialer.Tcp]]%% or %%[[:develop:api:efl:net:server:tcp|Efl.Net.Server.Tcp]]%% created with "client,add" event.%%

//Since 1.19//

{{page>:develop:api-include:efl:net:socket:ssl:description&nouser&nolink&nodate}}

===== Inheritance =====

 => [[:develop:api:efl:loop:consumer|Efl.Loop.Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
++++ Full hierarchy |

  * [[:develop:api:efl:loop:consumer|Efl.Loop.Consumer]] //(class)//
    * [[:develop:api:efl:object|Efl.Object]] //(class)//
  * [[:develop:api:efl:net:socket|Efl.Net.Socket]] //(interface)//
    * [[:develop:api:efl:io:reader|Efl.Io.Reader]] //(interface)//
    * [[:develop:api:efl:io:writer|Efl.Io.Writer]] //(interface)//
    * [[:develop:api:efl:io:closer|Efl.Io.Closer]] //(mixin)//


++++
===== Members =====

**[[:develop:api:efl:net:socket:ssl:property:address_local|address_local]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:net:socket|Efl.Net.Socket]]]//\\
> %%The local address, similar to getsockname().%%
<code c>
const char *efl_net_socket_address_local_get(const Eo *obj);
void efl_net_socket_address_local_set(Eo *obj, const char *address);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:address_remote|address_remote]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:net:socket|Efl.Net.Socket]]]//\\
> %%The remote address, similar to getpeername().%%
<code c>
const char *efl_net_socket_address_remote_get(const Eo *obj);
void efl_net_socket_address_remote_set(Eo *obj, const char *address);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:adopt|adopt]]**\\
> %%Adopt an Efl.Net.Dialer or regular Efl.Net.Socket that will be used for the actual communication.%%
<code c>
void efl_net_socket_ssl_adopt(Eo *obj, Efl_Net_Socket *efl_net_socket, Efl_Net_Ssl_Context *ctx);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:can_read|can_read]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:io:reader|Efl.Io.Reader]]]//\\
> %%If %%''true''%% will notify %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% can be called without blocking or failing.%%
<code c>
Eina_Bool efl_io_reader_can_read_get(const Eo *obj);
void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:can_write|can_write]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:io:writer|Efl.Io.Writer]]]//\\
> %%If %%''true''%% will notify %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%% can be called without blocking or failing.%%
<code c>
Eina_Bool efl_io_writer_can_write_get(const Eo *obj);
void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:close|close]]**// [Overridden from [[:develop:api:efl:io:closer|Efl.Io.Closer]]]//\\
> %%Closes the Input/Output object.%%
<code c>
Eina_Error efl_io_closer_close(Eo *obj);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:close_on_destructor|close_on_destructor]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:io:closer|Efl.Io.Closer]]]//\\
> %%If true will automatically close() on object destructor.%%
<code c>
Eina_Bool efl_io_closer_close_on_destructor_get(const Eo *obj);
void efl_io_closer_close_on_destructor_set(Eo *obj, Eina_Bool close_on_destructor);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:close_on_exec|close_on_exec]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:io:closer|Efl.Io.Closer]]]//\\
> %%If true will automatically close resources on exec() calls.%%
<code c>
Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:closed|closed]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:io:closer|Efl.Io.Closer]]]//\\
> %%If true will notify object was closed.%%
<code c>
Eina_Bool efl_io_closer_closed_get(const Eo *obj);
Eina_Bool efl_io_closer_closed_set(Eo *obj, Eina_Bool is_closed);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
> %%Call the object's constructor.%%
<code c>
Efl_Object *efl_constructor(Eo *obj);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
> %%Call the object's destructor.%%
<code c>
void efl_destructor(Eo *obj);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:eos|eos]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:io:reader|Efl.Io.Reader]]]//\\
> %%If %%''true''%% will notify end of stream.%%
<code c>
Eina_Bool efl_io_reader_eos_get(const Eo *obj);
void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
> %%Called at the end of efl_add. Should not be called, just overridden.%%
<code c>
Efl_Object *efl_finalize(Eo *obj);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:hostname_override|hostname_override]]** //**(get, set)**//\\
> %%Overrides the hostname to use for this socket.%%
<code c>
const char *efl_net_socket_ssl_hostname_override_get(const Eo *obj);
void efl_net_socket_ssl_hostname_override_set(Eo *obj, const char *hostname_override);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:hostname_verify|hostname_verify]]** //**(get, set)**//\\
> %%Define if hostname should be verified.%%
<code c>
Eina_Bool efl_net_socket_ssl_hostname_verify_get(const Eo *obj);
void efl_net_socket_ssl_hostname_verify_set(Eo *obj, Eina_Bool hostname_verify);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:read|read]]**// [Overridden from [[:develop:api:efl:io:reader|Efl.Io.Reader]]]//\\
> %%Reads data into a pre-allocated buffer.%%
<code c>
Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:verify_mode|verify_mode]]** //**(get, set)**//\\
> %%How to verify the remote peer.%%
<code c>
Efl_Net_Ssl_Verify_Mode efl_net_socket_ssl_verify_mode_get(const Eo *obj);
void efl_net_socket_ssl_verify_mode_set(Eo *obj, Efl_Net_Ssl_Verify_Mode verify_mode);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:method:write|write]]**// [Overridden from [[:develop:api:efl:io:writer|Efl.Io.Writer]]]//\\
> %%Writes data from a pre-populated buffer.%%
<code c>
Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);
</code>
\\
**[[:develop:api:efl:net:socket:ssl:property:adopted|adopted]]** //**(get)**// ''protected''\\
> %%Return the adopted object, if any. Be careful!%%
<code c>
Eina_Bool efl_net_socket_ssl_adopted_get(const Eo *obj, Efl_Net_Socket **efl_net_socket, Efl_Net_Ssl_Context **ctx);
</code>
\\

==== Inherited ====

^ [[:develop:api:efl:loop:consumer|Efl.Loop.Consumer]] ^^^
|  | **[[:develop:api:efl:loop:consumer:property:loop|loop]]** //**(get)**// | %%The loop to which this object belongs to.%% |
|  | **[[:develop:api:efl:loop:consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
^ [[:develop:api:efl:object|Efl.Object]] ^^^
|  | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
|  | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all childrens%% |
|  | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object%% |
|  | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
|  | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
|  | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
|  | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
|  | **[[:develop:api:efl:object:method:del|del]]** | %%Unrefs the object and reparents it to NULL.%% |
|  | **[[:develop:api:efl:object:method:event_callback_forwarder_add|event_callback_forwarder_add]]** | %%Add an event callback forwarder for an event and an object.%% |
|  | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for an event and an object.%% |
|  | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
|  | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of object.%% |
|  | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | %%Return freeze events of object.%% |
|  ''class'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Freeze events of object.%% |
|  ''class'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | %%Return freeze events of object.%% |
|  ''class'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Thaw events of object.%% |
|  | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
|  | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | %%True if the object is already finalized, otherwise false.%% |
|  | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
|  | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
|  | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |

===== Events =====

**[[:develop:api:efl:net:socket:ssl:event:ssl_error|ssl,error]]**\\
> %%An error such as %%[[:develop:api:efl:net:socket:ssl:error:handshake|Efl.Net.Socket.Ssl.Error.HANDSHAKE]]%%%%
<code c>
EFL_NET_SOCKET_SSL_EVENT_SSL_ERROR(Eina_Error)
</code>
\\ **[[:develop:api:efl:net:socket:ssl:event:ssl_ready|ssl,ready]]**\\
> %%Notifies the SSL handshake has been performed and the socket is now able to communicate%%
<code c>
EFL_NET_SOCKET_SSL_EVENT_SSL_READY(void)
</code>
\\ ==== Inherited ====

^ [[:develop:api:efl:io:closer|Efl.Io.Closer]] ^^^
|  | **[[:develop:api:efl:io:closer:event:closed|closed]]** | %%Notifies closed, when property is marked as true%% |
^ [[:develop:api:efl:io:reader|Efl.Io.Reader]] ^^^
|  | **[[:develop:api:efl:io:reader:event:can_read_changed|can_read,changed]]** | %%Notifies can_read property changed.%% |
|  | **[[:develop:api:efl:io:reader:event:eos|eos]]** | %%Notifies end of stream, when property is marked as true.%% |
^ [[:develop:api:efl:io:writer|Efl.Io.Writer]] ^^^
|  | **[[:develop:api:efl:io:writer:event:can_write_changed|can_write,changed]]** | %%Notifies can_write property changed.%% |
^ [[:develop:api:efl:object|Efl.Object]] ^^^
|  | **[[:develop:api:efl:object:event:callback_add|callback,add]]** | %%A callback was added.%% |
|  | **[[:develop:api:efl:object:event:callback_del|callback,del]]** | %%A callback was deleted.%% |
|  | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted.%% |
|  | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any dangling pointer.%% |