1// Package gio was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gio
3
4import (
5 "structs"
6 "unsafe"
7
8 "github.com/ebitengine/purego"
9
10 "github.com/bnema/puregotk/pkg/core"
11 "github.com/bnema/puregotk/v4/glib"
12 "github.com/bnema/puregotk/v4/gobject"
13 "github.com/bnema/puregotk/v4/gobject/types"
14)
15
16// The class for #GTlsDatabase. Derived classes should implement the various
17// virtual methods. _async and _finish methods have a default
18// implementation that runs the corresponding sync method in a thread.
19type TlsDatabaseClass struct {
20 _ structs.HostLayout
21
22 ParentClass gobject.ObjectClass
23
24 xVerifyChain uintptr
25
26 xVerifyChainAsync uintptr
27
28 xVerifyChainFinish uintptr
29
30 xCreateCertificateHandle uintptr
31
32 xLookupCertificateForHandle uintptr
33
34 xLookupCertificateForHandleAsync uintptr
35
36 xLookupCertificateForHandleFinish uintptr
37
38 xLookupCertificateIssuer uintptr
39
40 xLookupCertificateIssuerAsync uintptr
41
42 xLookupCertificateIssuerFinish uintptr
43
44 xLookupCertificatesIssuedBy uintptr
45
46 xLookupCertificatesIssuedByAsync uintptr
47
48 xLookupCertificatesIssuedByFinish uintptr
49
50 Padding [16]uintptr
51}
52
53func (x *TlsDatabaseClass) GoPointer() uintptr {
54 return uintptr(unsafe.Pointer(x))
55}
56
57// OverrideVerifyChain sets the "verify_chain" callback function.
58// Virtual method implementing
59//
60// g_tls_database_verify_chain().
61func (x *TlsDatabaseClass) OverrideVerifyChain(cb func(*TlsDatabase, *TlsCertificate, string, SocketConnectable, *TlsInteraction, TlsDatabaseVerifyFlags, *Cancellable) TlsCertificateFlags) {
62 if cb == nil {
63 x.xVerifyChain = 0
64 } else {
65 x.xVerifyChain = purego.NewCallback(func(SelfVarp uintptr, ChainVarp uintptr, PurposeVarp string, IdentityVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseVerifyFlags, CancellableVarp uintptr) TlsCertificateFlags {
66 return cb(TlsDatabaseNewFromInternalPtr(SelfVarp), TlsCertificateNewFromInternalPtr(ChainVarp), PurposeVarp, &SocketConnectableBase{Ptr: IdentityVarp}, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp))
67 })
68 }
69}
70
71// GetVerifyChain gets the "verify_chain" callback function.
72// Virtual method implementing
73//
74// g_tls_database_verify_chain().
75func (x *TlsDatabaseClass) GetVerifyChain() func(*TlsDatabase, *TlsCertificate, string, SocketConnectable, *TlsInteraction, TlsDatabaseVerifyFlags, *Cancellable) TlsCertificateFlags {
76 if x.xVerifyChain == 0 {
77 return nil
78 }
79 var rawCallback func(SelfVarp uintptr, ChainVarp uintptr, PurposeVarp string, IdentityVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseVerifyFlags, CancellableVarp uintptr) TlsCertificateFlags
80 purego.RegisterFunc(&rawCallback, x.xVerifyChain)
81 return func(SelfVar *TlsDatabase, ChainVar *TlsCertificate, PurposeVar string, IdentityVar SocketConnectable, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseVerifyFlags, CancellableVar *Cancellable) TlsCertificateFlags {
82 return rawCallback(SelfVar.GoPointer(), ChainVar.GoPointer(), PurposeVar, IdentityVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer())
83 }
84}
85
86// OverrideVerifyChainAsync sets the "verify_chain_async" callback function.
87// Virtual method implementing
88//
89// g_tls_database_verify_chain_async().
90func (x *TlsDatabaseClass) OverrideVerifyChainAsync(cb func(*TlsDatabase, *TlsCertificate, string, SocketConnectable, *TlsInteraction, TlsDatabaseVerifyFlags, *Cancellable, *AsyncReadyCallback, uintptr)) {
91 if cb == nil {
92 x.xVerifyChainAsync = 0
93 } else {
94 x.xVerifyChainAsync = purego.NewCallback(func(SelfVarp uintptr, ChainVarp uintptr, PurposeVarp string, IdentityVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseVerifyFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr) {
95 cb(TlsDatabaseNewFromInternalPtr(SelfVarp), TlsCertificateNewFromInternalPtr(ChainVarp), PurposeVarp, &SocketConnectableBase{Ptr: IdentityVarp}, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp), (*AsyncReadyCallback)(unsafe.Pointer(CallbackVarp)), UserDataVarp)
96 })
97 }
98}
99
100// GetVerifyChainAsync gets the "verify_chain_async" callback function.
101// Virtual method implementing
102//
103// g_tls_database_verify_chain_async().
104func (x *TlsDatabaseClass) GetVerifyChainAsync() func(*TlsDatabase, *TlsCertificate, string, SocketConnectable, *TlsInteraction, TlsDatabaseVerifyFlags, *Cancellable, *AsyncReadyCallback, uintptr) {
105 if x.xVerifyChainAsync == 0 {
106 return nil
107 }
108 var rawCallback func(SelfVarp uintptr, ChainVarp uintptr, PurposeVarp string, IdentityVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseVerifyFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr)
109 purego.RegisterFunc(&rawCallback, x.xVerifyChainAsync)
110 return func(SelfVar *TlsDatabase, ChainVar *TlsCertificate, PurposeVar string, IdentityVar SocketConnectable, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseVerifyFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
111 rawCallback(SelfVar.GoPointer(), ChainVar.GoPointer(), PurposeVar, IdentityVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), glib.NewCallbackNullable(CallbackVar), UserDataVar)
112 }
113}
114
115// OverrideVerifyChainFinish sets the "verify_chain_finish" callback function.
116// Virtual method implementing
117//
118// g_tls_database_verify_chain_finish().
119func (x *TlsDatabaseClass) OverrideVerifyChainFinish(cb func(*TlsDatabase, AsyncResult) TlsCertificateFlags) {
120 if cb == nil {
121 x.xVerifyChainFinish = 0
122 } else {
123 x.xVerifyChainFinish = purego.NewCallback(func(SelfVarp uintptr, ResultVarp uintptr) TlsCertificateFlags {
124 return cb(TlsDatabaseNewFromInternalPtr(SelfVarp), &AsyncResultBase{Ptr: ResultVarp})
125 })
126 }
127}
128
129// GetVerifyChainFinish gets the "verify_chain_finish" callback function.
130// Virtual method implementing
131//
132// g_tls_database_verify_chain_finish().
133func (x *TlsDatabaseClass) GetVerifyChainFinish() func(*TlsDatabase, AsyncResult) TlsCertificateFlags {
134 if x.xVerifyChainFinish == 0 {
135 return nil
136 }
137 var rawCallback func(SelfVarp uintptr, ResultVarp uintptr) TlsCertificateFlags
138 purego.RegisterFunc(&rawCallback, x.xVerifyChainFinish)
139 return func(SelfVar *TlsDatabase, ResultVar AsyncResult) TlsCertificateFlags {
140 return rawCallback(SelfVar.GoPointer(), ResultVar.GoPointer())
141 }
142}
143
144// OverrideCreateCertificateHandle sets the "create_certificate_handle" callback function.
145// Virtual method implementing
146//
147// g_tls_database_create_certificate_handle().
148func (x *TlsDatabaseClass) OverrideCreateCertificateHandle(cb func(*TlsDatabase, *TlsCertificate) string) {
149 if cb == nil {
150 x.xCreateCertificateHandle = 0
151 } else {
152 x.xCreateCertificateHandle = purego.NewCallback(func(SelfVarp uintptr, CertificateVarp uintptr) string {
153 return cb(TlsDatabaseNewFromInternalPtr(SelfVarp), TlsCertificateNewFromInternalPtr(CertificateVarp))
154 })
155 }
156}
157
158// GetCreateCertificateHandle gets the "create_certificate_handle" callback function.
159// Virtual method implementing
160//
161// g_tls_database_create_certificate_handle().
162func (x *TlsDatabaseClass) GetCreateCertificateHandle() func(*TlsDatabase, *TlsCertificate) string {
163 if x.xCreateCertificateHandle == 0 {
164 return nil
165 }
166 var rawCallback func(SelfVarp uintptr, CertificateVarp uintptr) string
167 purego.RegisterFunc(&rawCallback, x.xCreateCertificateHandle)
168 return func(SelfVar *TlsDatabase, CertificateVar *TlsCertificate) string {
169 return rawCallback(SelfVar.GoPointer(), CertificateVar.GoPointer())
170 }
171}
172
173// OverrideLookupCertificateForHandle sets the "lookup_certificate_for_handle" callback function.
174// Virtual method implementing
175//
176// g_tls_database_lookup_certificate_for_handle().
177func (x *TlsDatabaseClass) OverrideLookupCertificateForHandle(cb func(*TlsDatabase, string, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *TlsCertificate) {
178 if cb == nil {
179 x.xLookupCertificateForHandle = 0
180 } else {
181 x.xLookupCertificateForHandle = purego.NewCallback(func(SelfVarp uintptr, HandleVarp string, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) uintptr {
182 ret := cb(TlsDatabaseNewFromInternalPtr(SelfVarp), HandleVarp, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp))
183 if ret == nil {
184 return 0
185 }
186 return ret.GoPointer()
187 })
188 }
189}
190
191// GetLookupCertificateForHandle gets the "lookup_certificate_for_handle" callback function.
192// Virtual method implementing
193//
194// g_tls_database_lookup_certificate_for_handle().
195func (x *TlsDatabaseClass) GetLookupCertificateForHandle() func(*TlsDatabase, string, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *TlsCertificate {
196 if x.xLookupCertificateForHandle == 0 {
197 return nil
198 }
199 var rawCallback func(SelfVarp uintptr, HandleVarp string, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) uintptr
200 purego.RegisterFunc(&rawCallback, x.xLookupCertificateForHandle)
201 return func(SelfVar *TlsDatabase, HandleVar string, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) *TlsCertificate {
202 rawRet := rawCallback(SelfVar.GoPointer(), HandleVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer())
203 if rawRet == 0 {
204 return nil
205 }
206 ret := &TlsCertificate{}
207 ret.Ptr = rawRet
208 return ret
209 }
210}
211
212// OverrideLookupCertificateForHandleAsync sets the "lookup_certificate_for_handle_async" callback function.
213// Virtual method implementing
214//
215// g_tls_database_lookup_certificate_for_handle_async().
216func (x *TlsDatabaseClass) OverrideLookupCertificateForHandleAsync(cb func(*TlsDatabase, string, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr)) {
217 if cb == nil {
218 x.xLookupCertificateForHandleAsync = 0
219 } else {
220 x.xLookupCertificateForHandleAsync = purego.NewCallback(func(SelfVarp uintptr, HandleVarp string, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr) {
221 cb(TlsDatabaseNewFromInternalPtr(SelfVarp), HandleVarp, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp), (*AsyncReadyCallback)(unsafe.Pointer(CallbackVarp)), UserDataVarp)
222 })
223 }
224}
225
226// GetLookupCertificateForHandleAsync gets the "lookup_certificate_for_handle_async" callback function.
227// Virtual method implementing
228//
229// g_tls_database_lookup_certificate_for_handle_async().
230func (x *TlsDatabaseClass) GetLookupCertificateForHandleAsync() func(*TlsDatabase, string, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr) {
231 if x.xLookupCertificateForHandleAsync == 0 {
232 return nil
233 }
234 var rawCallback func(SelfVarp uintptr, HandleVarp string, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr)
235 purego.RegisterFunc(&rawCallback, x.xLookupCertificateForHandleAsync)
236 return func(SelfVar *TlsDatabase, HandleVar string, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
237 rawCallback(SelfVar.GoPointer(), HandleVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), glib.NewCallbackNullable(CallbackVar), UserDataVar)
238 }
239}
240
241// OverrideLookupCertificateForHandleFinish sets the "lookup_certificate_for_handle_finish" callback function.
242// Virtual method implementing
243//
244// g_tls_database_lookup_certificate_for_handle_finish().
245func (x *TlsDatabaseClass) OverrideLookupCertificateForHandleFinish(cb func(*TlsDatabase, AsyncResult) *TlsCertificate) {
246 if cb == nil {
247 x.xLookupCertificateForHandleFinish = 0
248 } else {
249 x.xLookupCertificateForHandleFinish = purego.NewCallback(func(SelfVarp uintptr, ResultVarp uintptr) uintptr {
250 ret := cb(TlsDatabaseNewFromInternalPtr(SelfVarp), &AsyncResultBase{Ptr: ResultVarp})
251 if ret == nil {
252 return 0
253 }
254 return ret.GoPointer()
255 })
256 }
257}
258
259// GetLookupCertificateForHandleFinish gets the "lookup_certificate_for_handle_finish" callback function.
260// Virtual method implementing
261//
262// g_tls_database_lookup_certificate_for_handle_finish().
263func (x *TlsDatabaseClass) GetLookupCertificateForHandleFinish() func(*TlsDatabase, AsyncResult) *TlsCertificate {
264 if x.xLookupCertificateForHandleFinish == 0 {
265 return nil
266 }
267 var rawCallback func(SelfVarp uintptr, ResultVarp uintptr) uintptr
268 purego.RegisterFunc(&rawCallback, x.xLookupCertificateForHandleFinish)
269 return func(SelfVar *TlsDatabase, ResultVar AsyncResult) *TlsCertificate {
270 rawRet := rawCallback(SelfVar.GoPointer(), ResultVar.GoPointer())
271 if rawRet == 0 {
272 return nil
273 }
274 ret := &TlsCertificate{}
275 ret.Ptr = rawRet
276 return ret
277 }
278}
279
280// OverrideLookupCertificateIssuer sets the "lookup_certificate_issuer" callback function.
281// Virtual method implementing
282//
283// g_tls_database_lookup_certificate_issuer().
284func (x *TlsDatabaseClass) OverrideLookupCertificateIssuer(cb func(*TlsDatabase, *TlsCertificate, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *TlsCertificate) {
285 if cb == nil {
286 x.xLookupCertificateIssuer = 0
287 } else {
288 x.xLookupCertificateIssuer = purego.NewCallback(func(SelfVarp uintptr, CertificateVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) uintptr {
289 ret := cb(TlsDatabaseNewFromInternalPtr(SelfVarp), TlsCertificateNewFromInternalPtr(CertificateVarp), TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp))
290 if ret == nil {
291 return 0
292 }
293 return ret.GoPointer()
294 })
295 }
296}
297
298// GetLookupCertificateIssuer gets the "lookup_certificate_issuer" callback function.
299// Virtual method implementing
300//
301// g_tls_database_lookup_certificate_issuer().
302func (x *TlsDatabaseClass) GetLookupCertificateIssuer() func(*TlsDatabase, *TlsCertificate, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *TlsCertificate {
303 if x.xLookupCertificateIssuer == 0 {
304 return nil
305 }
306 var rawCallback func(SelfVarp uintptr, CertificateVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) uintptr
307 purego.RegisterFunc(&rawCallback, x.xLookupCertificateIssuer)
308 return func(SelfVar *TlsDatabase, CertificateVar *TlsCertificate, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) *TlsCertificate {
309 rawRet := rawCallback(SelfVar.GoPointer(), CertificateVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer())
310 if rawRet == 0 {
311 return nil
312 }
313 ret := &TlsCertificate{}
314 ret.Ptr = rawRet
315 return ret
316 }
317}
318
319// OverrideLookupCertificateIssuerAsync sets the "lookup_certificate_issuer_async" callback function.
320// Virtual method implementing
321//
322// g_tls_database_lookup_certificate_issuer_async().
323func (x *TlsDatabaseClass) OverrideLookupCertificateIssuerAsync(cb func(*TlsDatabase, *TlsCertificate, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr)) {
324 if cb == nil {
325 x.xLookupCertificateIssuerAsync = 0
326 } else {
327 x.xLookupCertificateIssuerAsync = purego.NewCallback(func(SelfVarp uintptr, CertificateVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr) {
328 cb(TlsDatabaseNewFromInternalPtr(SelfVarp), TlsCertificateNewFromInternalPtr(CertificateVarp), TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp), (*AsyncReadyCallback)(unsafe.Pointer(CallbackVarp)), UserDataVarp)
329 })
330 }
331}
332
333// GetLookupCertificateIssuerAsync gets the "lookup_certificate_issuer_async" callback function.
334// Virtual method implementing
335//
336// g_tls_database_lookup_certificate_issuer_async().
337func (x *TlsDatabaseClass) GetLookupCertificateIssuerAsync() func(*TlsDatabase, *TlsCertificate, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr) {
338 if x.xLookupCertificateIssuerAsync == 0 {
339 return nil
340 }
341 var rawCallback func(SelfVarp uintptr, CertificateVarp uintptr, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr)
342 purego.RegisterFunc(&rawCallback, x.xLookupCertificateIssuerAsync)
343 return func(SelfVar *TlsDatabase, CertificateVar *TlsCertificate, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
344 rawCallback(SelfVar.GoPointer(), CertificateVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), glib.NewCallbackNullable(CallbackVar), UserDataVar)
345 }
346}
347
348// OverrideLookupCertificateIssuerFinish sets the "lookup_certificate_issuer_finish" callback function.
349// Virtual method implementing
350//
351// g_tls_database_lookup_certificate_issuer_finish().
352func (x *TlsDatabaseClass) OverrideLookupCertificateIssuerFinish(cb func(*TlsDatabase, AsyncResult) *TlsCertificate) {
353 if cb == nil {
354 x.xLookupCertificateIssuerFinish = 0
355 } else {
356 x.xLookupCertificateIssuerFinish = purego.NewCallback(func(SelfVarp uintptr, ResultVarp uintptr) uintptr {
357 ret := cb(TlsDatabaseNewFromInternalPtr(SelfVarp), &AsyncResultBase{Ptr: ResultVarp})
358 if ret == nil {
359 return 0
360 }
361 return ret.GoPointer()
362 })
363 }
364}
365
366// GetLookupCertificateIssuerFinish gets the "lookup_certificate_issuer_finish" callback function.
367// Virtual method implementing
368//
369// g_tls_database_lookup_certificate_issuer_finish().
370func (x *TlsDatabaseClass) GetLookupCertificateIssuerFinish() func(*TlsDatabase, AsyncResult) *TlsCertificate {
371 if x.xLookupCertificateIssuerFinish == 0 {
372 return nil
373 }
374 var rawCallback func(SelfVarp uintptr, ResultVarp uintptr) uintptr
375 purego.RegisterFunc(&rawCallback, x.xLookupCertificateIssuerFinish)
376 return func(SelfVar *TlsDatabase, ResultVar AsyncResult) *TlsCertificate {
377 rawRet := rawCallback(SelfVar.GoPointer(), ResultVar.GoPointer())
378 if rawRet == 0 {
379 return nil
380 }
381 ret := &TlsCertificate{}
382 ret.Ptr = rawRet
383 return ret
384 }
385}
386
387// OverrideLookupCertificatesIssuedBy sets the "lookup_certificates_issued_by" callback function.
388// Virtual method implementing
389//
390// g_tls_database_lookup_certificates_issued_by().
391func (x *TlsDatabaseClass) OverrideLookupCertificatesIssuedBy(cb func(*TlsDatabase, []byte, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *glib.List) {
392 if cb == nil {
393 x.xLookupCertificatesIssuedBy = 0
394 } else {
395 x.xLookupCertificatesIssuedBy = purego.NewCallback(func(SelfVarp uintptr, IssuerRawDnVarp []byte, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) *glib.List {
396 return cb(TlsDatabaseNewFromInternalPtr(SelfVarp), IssuerRawDnVarp, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp))
397 })
398 }
399}
400
401// GetLookupCertificatesIssuedBy gets the "lookup_certificates_issued_by" callback function.
402// Virtual method implementing
403//
404// g_tls_database_lookup_certificates_issued_by().
405func (x *TlsDatabaseClass) GetLookupCertificatesIssuedBy() func(*TlsDatabase, []byte, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable) *glib.List {
406 if x.xLookupCertificatesIssuedBy == 0 {
407 return nil
408 }
409 var rawCallback func(SelfVarp uintptr, IssuerRawDnVarp []byte, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr) *glib.List
410 purego.RegisterFunc(&rawCallback, x.xLookupCertificatesIssuedBy)
411 return func(SelfVar *TlsDatabase, IssuerRawDnVar []byte, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) *glib.List {
412 return rawCallback(SelfVar.GoPointer(), IssuerRawDnVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer())
413 }
414}
415
416// OverrideLookupCertificatesIssuedByAsync sets the "lookup_certificates_issued_by_async" callback function.
417// Virtual method implementing
418//
419// g_tls_database_lookup_certificates_issued_by_async().
420func (x *TlsDatabaseClass) OverrideLookupCertificatesIssuedByAsync(cb func(*TlsDatabase, []byte, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr)) {
421 if cb == nil {
422 x.xLookupCertificatesIssuedByAsync = 0
423 } else {
424 x.xLookupCertificatesIssuedByAsync = purego.NewCallback(func(SelfVarp uintptr, IssuerRawDnVarp []byte, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr) {
425 cb(TlsDatabaseNewFromInternalPtr(SelfVarp), IssuerRawDnVarp, TlsInteractionNewFromInternalPtr(InteractionVarp), FlagsVarp, CancellableNewFromInternalPtr(CancellableVarp), (*AsyncReadyCallback)(unsafe.Pointer(CallbackVarp)), UserDataVarp)
426 })
427 }
428}
429
430// GetLookupCertificatesIssuedByAsync gets the "lookup_certificates_issued_by_async" callback function.
431// Virtual method implementing
432//
433// g_tls_database_lookup_certificates_issued_by_async().
434func (x *TlsDatabaseClass) GetLookupCertificatesIssuedByAsync() func(*TlsDatabase, []byte, *TlsInteraction, TlsDatabaseLookupFlags, *Cancellable, *AsyncReadyCallback, uintptr) {
435 if x.xLookupCertificatesIssuedByAsync == 0 {
436 return nil
437 }
438 var rawCallback func(SelfVarp uintptr, IssuerRawDnVarp []byte, InteractionVarp uintptr, FlagsVarp TlsDatabaseLookupFlags, CancellableVarp uintptr, CallbackVarp uintptr, UserDataVarp uintptr)
439 purego.RegisterFunc(&rawCallback, x.xLookupCertificatesIssuedByAsync)
440 return func(SelfVar *TlsDatabase, IssuerRawDnVar []byte, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
441 rawCallback(SelfVar.GoPointer(), IssuerRawDnVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), glib.NewCallbackNullable(CallbackVar), UserDataVar)
442 }
443}
444
445// OverrideLookupCertificatesIssuedByFinish sets the "lookup_certificates_issued_by_finish" callback function.
446// Virtual method implementing
447//
448// g_tls_database_lookup_certificates_issued_by_finish().
449func (x *TlsDatabaseClass) OverrideLookupCertificatesIssuedByFinish(cb func(*TlsDatabase, AsyncResult) *glib.List) {
450 if cb == nil {
451 x.xLookupCertificatesIssuedByFinish = 0
452 } else {
453 x.xLookupCertificatesIssuedByFinish = purego.NewCallback(func(SelfVarp uintptr, ResultVarp uintptr) *glib.List {
454 return cb(TlsDatabaseNewFromInternalPtr(SelfVarp), &AsyncResultBase{Ptr: ResultVarp})
455 })
456 }
457}
458
459// GetLookupCertificatesIssuedByFinish gets the "lookup_certificates_issued_by_finish" callback function.
460// Virtual method implementing
461//
462// g_tls_database_lookup_certificates_issued_by_finish().
463func (x *TlsDatabaseClass) GetLookupCertificatesIssuedByFinish() func(*TlsDatabase, AsyncResult) *glib.List {
464 if x.xLookupCertificatesIssuedByFinish == 0 {
465 return nil
466 }
467 var rawCallback func(SelfVarp uintptr, ResultVarp uintptr) *glib.List
468 purego.RegisterFunc(&rawCallback, x.xLookupCertificatesIssuedByFinish)
469 return func(SelfVar *TlsDatabase, ResultVar AsyncResult) *glib.List {
470 return rawCallback(SelfVar.GoPointer(), ResultVar.GoPointer())
471 }
472}
473
474type TlsDatabasePrivate struct {
475 _ structs.HostLayout
476}
477
478func (x *TlsDatabasePrivate) GoPointer() uintptr {
479 return uintptr(unsafe.Pointer(x))
480}
481
482const (
483 // The purpose used to verify the client certificate in a TLS connection.
484 // Used by TLS servers.
485 TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT string = "1.3.6.1.5.5.7.3.2"
486 // The purpose used to verify the server certificate in a TLS connection. This
487 // is the most common purpose in use. Used by TLS clients.
488 TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER string = "1.3.6.1.5.5.7.3.1"
489)
490
491// `GTlsDatabase` is used to look up certificates and other information
492// from a certificate or key store. It is an abstract base class which
493// TLS library specific subtypes override.
494//
495// A `GTlsDatabase` may be accessed from multiple threads by the TLS backend.
496// All implementations are required to be fully thread-safe.
497//
498// Most common client applications will not directly interact with
499// `GTlsDatabase`. It is used internally by [class@Gio.TlsConnection].
500type TlsDatabase struct {
501 gobject.Object
502}
503
504var xTlsDatabaseGLibType func() types.GType
505
506func TlsDatabaseGLibType() types.GType {
507 return xTlsDatabaseGLibType()
508}
509
510func TlsDatabaseNewFromInternalPtr(ptr uintptr) *TlsDatabase {
511 cls := &TlsDatabase{}
512 cls.Ptr = ptr
513 return cls
514}
515
516var xTlsDatabaseCreateCertificateHandle func(uintptr, uintptr) string
517
518// Create a handle string for the certificate. The database will only be able
519// to create a handle for certificates that originate from the database. In
520// cases where the database cannot create a handle for a certificate, %NULL
521// will be returned.
522//
523// This handle should be stable across various instances of the application,
524// and between applications. If a certificate is modified in the database,
525// then it is not guaranteed that this handle will continue to point to it.
526func (x *TlsDatabase) CreateCertificateHandle(CertificateVar *TlsCertificate) string {
527
528 cret := xTlsDatabaseCreateCertificateHandle(x.GoPointer(), CertificateVar.GoPointer())
529 return cret
530}
531
532var xTlsDatabaseLookupCertificateForHandle func(uintptr, string, uintptr, TlsDatabaseLookupFlags, uintptr, **glib.Error) uintptr
533
534// Look up a certificate by its handle.
535//
536// The handle should have been created by calling
537// g_tls_database_create_certificate_handle() on a #GTlsDatabase object of
538// the same TLS backend. The handle is designed to remain valid across
539// instantiations of the database.
540//
541// If the handle is no longer valid, or does not point to a certificate in
542// this database, then %NULL will be returned.
543//
544// This function can block, use g_tls_database_lookup_certificate_for_handle_async() to perform
545// the lookup operation asynchronously.
546func (x *TlsDatabase) LookupCertificateForHandle(HandleVar string, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) (*TlsCertificate, error) {
547 var cls *TlsCertificate
548 var cerr *glib.Error
549
550 cret := xTlsDatabaseLookupCertificateForHandle(x.GoPointer(), HandleVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), &cerr)
551
552 if cret == 0 {
553 return nil, cerr
554 }
555 cls = &TlsCertificate{}
556 cls.Ptr = cret
557 if cerr == nil {
558 return cls, nil
559 }
560 return cls, cerr
561
562}
563
564var xTlsDatabaseLookupCertificateForHandleAsync func(uintptr, string, uintptr, TlsDatabaseLookupFlags, uintptr, uintptr, uintptr)
565
566// Asynchronously look up a certificate by its handle in the database. See
567// g_tls_database_lookup_certificate_for_handle() for more information.
568func (x *TlsDatabase) LookupCertificateForHandleAsync(HandleVar string, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
569
570 var CallbackVarRef uintptr
571 if CallbackVar != nil {
572 CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
573 if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
574 CallbackVarRef = cbRefPtr
575 } else {
576 fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
577 cbFn := *CallbackVar
578 cbFn(arg0, arg1, arg2)
579 }
580 CallbackVarRef = purego.NewCallback(fcb)
581 glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
582 }
583 }
584
585 xTlsDatabaseLookupCertificateForHandleAsync(x.GoPointer(), HandleVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
586
587}
588
589var xTlsDatabaseLookupCertificateForHandleFinish func(uintptr, uintptr, **glib.Error) uintptr
590
591// Finish an asynchronous lookup of a certificate by its handle. See
592// g_tls_database_lookup_certificate_for_handle() for more information.
593//
594// If the handle is no longer valid, or does not point to a certificate in
595// this database, then %NULL will be returned.
596func (x *TlsDatabase) LookupCertificateForHandleFinish(ResultVar AsyncResult) (*TlsCertificate, error) {
597 var cls *TlsCertificate
598 var cerr *glib.Error
599
600 cret := xTlsDatabaseLookupCertificateForHandleFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
601
602 if cret == 0 {
603 return nil, cerr
604 }
605 cls = &TlsCertificate{}
606 cls.Ptr = cret
607 if cerr == nil {
608 return cls, nil
609 }
610 return cls, cerr
611
612}
613
614var xTlsDatabaseLookupCertificateIssuer func(uintptr, uintptr, uintptr, TlsDatabaseLookupFlags, uintptr, **glib.Error) uintptr
615
616// Look up the issuer of @certificate in the database. The
617// #GTlsCertificate:issuer property of @certificate is not modified, and
618// the two certificates are not hooked into a chain.
619//
620// This function can block. Use g_tls_database_lookup_certificate_issuer_async()
621// to perform the lookup operation asynchronously.
622//
623// Beware this function cannot be used to build certification paths. The
624// issuer certificate returned by this function may not be the same as
625// the certificate that would actually be used to construct a valid
626// certification path during certificate verification.
627// [RFC 4158](https://datatracker.ietf.org/doc/html/rfc4158) explains
628// why an issuer certificate cannot be naively assumed to be part of the
629// the certification path (though GLib's TLS backends may not follow the
630// path building strategies outlined in this RFC). Due to the complexity
631// of certification path building, GLib does not provide any way to know
632// which certification path will actually be used when verifying a TLS
633// certificate. Accordingly, this function cannot be used to make
634// security-related decisions. Only GLib itself should make security
635// decisions about TLS certificates.
636func (x *TlsDatabase) LookupCertificateIssuer(CertificateVar *TlsCertificate, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) (*TlsCertificate, error) {
637 var cls *TlsCertificate
638 var cerr *glib.Error
639
640 cret := xTlsDatabaseLookupCertificateIssuer(x.GoPointer(), CertificateVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), &cerr)
641
642 if cret == 0 {
643 return nil, cerr
644 }
645 cls = &TlsCertificate{}
646 cls.Ptr = cret
647 if cerr == nil {
648 return cls, nil
649 }
650 return cls, cerr
651
652}
653
654var xTlsDatabaseLookupCertificateIssuerAsync func(uintptr, uintptr, uintptr, TlsDatabaseLookupFlags, uintptr, uintptr, uintptr)
655
656// Asynchronously look up the issuer of @certificate in the database. See
657// g_tls_database_lookup_certificate_issuer() for more information.
658func (x *TlsDatabase) LookupCertificateIssuerAsync(CertificateVar *TlsCertificate, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
659
660 var CallbackVarRef uintptr
661 if CallbackVar != nil {
662 CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
663 if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
664 CallbackVarRef = cbRefPtr
665 } else {
666 fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
667 cbFn := *CallbackVar
668 cbFn(arg0, arg1, arg2)
669 }
670 CallbackVarRef = purego.NewCallback(fcb)
671 glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
672 }
673 }
674
675 xTlsDatabaseLookupCertificateIssuerAsync(x.GoPointer(), CertificateVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
676
677}
678
679var xTlsDatabaseLookupCertificateIssuerFinish func(uintptr, uintptr, **glib.Error) uintptr
680
681// Finish an asynchronous lookup issuer operation. See
682// g_tls_database_lookup_certificate_issuer() for more information.
683func (x *TlsDatabase) LookupCertificateIssuerFinish(ResultVar AsyncResult) (*TlsCertificate, error) {
684 var cls *TlsCertificate
685 var cerr *glib.Error
686
687 cret := xTlsDatabaseLookupCertificateIssuerFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
688
689 if cret == 0 {
690 return nil, cerr
691 }
692 cls = &TlsCertificate{}
693 cls.Ptr = cret
694 if cerr == nil {
695 return cls, nil
696 }
697 return cls, cerr
698
699}
700
701var xTlsDatabaseLookupCertificatesIssuedBy func(uintptr, []byte, uintptr, TlsDatabaseLookupFlags, uintptr, **glib.Error) *glib.List
702
703// Look up certificates issued by this issuer in the database.
704//
705// This function can block, use g_tls_database_lookup_certificates_issued_by_async() to perform
706// the lookup operation asynchronously.
707func (x *TlsDatabase) LookupCertificatesIssuedBy(IssuerRawDnVar []byte, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable) (*glib.List, error) {
708 var cerr *glib.Error
709
710 cret := xTlsDatabaseLookupCertificatesIssuedBy(x.GoPointer(), IssuerRawDnVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), &cerr)
711 if cerr == nil {
712 return cret, nil
713 }
714 return cret, cerr
715
716}
717
718var xTlsDatabaseLookupCertificatesIssuedByAsync func(uintptr, []byte, uintptr, TlsDatabaseLookupFlags, uintptr, uintptr, uintptr)
719
720// Asynchronously look up certificates issued by this issuer in the database. See
721// g_tls_database_lookup_certificates_issued_by() for more information.
722//
723// The database may choose to hold a reference to the issuer byte array for the duration
724// of this asynchronous operation. The byte array should not be modified during
725// this time.
726func (x *TlsDatabase) LookupCertificatesIssuedByAsync(IssuerRawDnVar []byte, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseLookupFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
727
728 var CallbackVarRef uintptr
729 if CallbackVar != nil {
730 CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
731 if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
732 CallbackVarRef = cbRefPtr
733 } else {
734 fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
735 cbFn := *CallbackVar
736 cbFn(arg0, arg1, arg2)
737 }
738 CallbackVarRef = purego.NewCallback(fcb)
739 glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
740 }
741 }
742
743 xTlsDatabaseLookupCertificatesIssuedByAsync(x.GoPointer(), IssuerRawDnVar, InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
744
745}
746
747var xTlsDatabaseLookupCertificatesIssuedByFinish func(uintptr, uintptr, **glib.Error) *glib.List
748
749// Finish an asynchronous lookup of certificates. See
750// g_tls_database_lookup_certificates_issued_by() for more information.
751func (x *TlsDatabase) LookupCertificatesIssuedByFinish(ResultVar AsyncResult) (*glib.List, error) {
752 var cerr *glib.Error
753
754 cret := xTlsDatabaseLookupCertificatesIssuedByFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
755 if cerr == nil {
756 return cret, nil
757 }
758 return cret, cerr
759
760}
761
762var xTlsDatabaseVerifyChain func(uintptr, uintptr, string, uintptr, uintptr, TlsDatabaseVerifyFlags, uintptr, **glib.Error) TlsCertificateFlags
763
764// Determines the validity of a certificate chain, outside the context
765// of a TLS session.
766//
767// @chain is a chain of #GTlsCertificate objects each pointing to the next
768// certificate in the chain by its #GTlsCertificate:issuer property.
769//
770// @purpose describes the purpose (or usage) for which the certificate
771// is being used. Typically @purpose will be set to %G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER
772// which means that the certificate is being used to authenticate a server
773// (and we are acting as the client).
774//
775// The @identity is used to ensure the server certificate is valid for
776// the expected peer identity. If the identity does not match the
777// certificate, %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the
778// return value. If @identity is %NULL, that bit will never be set in
779// the return value. The peer identity may also be used to check for
780// pinned certificates (trust exceptions) in the database. These may
781// override the normal verification process on a host-by-host basis.
782//
783// Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
784// used.
785//
786// If @chain is found to be valid, then the return value will be 0. If
787// @chain is found to be invalid, then the return value will indicate at
788// least one problem found. If the function is unable to determine
789// whether @chain is valid (for example, because @cancellable is
790// triggered before it completes) then the return value will be
791// %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set accordingly.
792// @error is not set when @chain is successfully analyzed but found to
793// be invalid.
794//
795// GLib guarantees that if certificate verification fails, at least one
796// error will be set in the return value, but it does not guarantee
797// that all possible errors will be set. Accordingly, you may not safely
798// decide to ignore any particular type of error. For example, it would
799// be incorrect to mask %G_TLS_CERTIFICATE_EXPIRED if you want to allow
800// expired certificates, because this could potentially be the only
801// error flag set even if other problems exist with the certificate.
802//
803// Prior to GLib 2.48, GLib's default TLS backend modified @chain to
804// represent the certification path built by #GTlsDatabase during
805// certificate verification by adjusting the #GTlsCertificate:issuer
806// property of each certificate in @chain. Since GLib 2.48, this no
807// longer occurs, so you cannot rely on #GTlsCertificate:issuer to
808// represent the actual certification path used during certificate
809// verification.
810//
811// Because TLS session context is not used, #GTlsDatabase may not
812// perform as many checks on the certificates as #GTlsConnection would.
813// For example, certificate constraints may not be honored, and
814// revocation checks may not be performed. The best way to verify TLS
815// certificates used by a TLS connection is to let #GTlsConnection
816// handle the verification.
817//
818// The TLS backend may attempt to look up and add missing certificates
819// to the chain. This may involve HTTP requests to download missing
820// certificates.
821//
822// This function can block. Use g_tls_database_verify_chain_async() to
823// perform the verification operation asynchronously.
824func (x *TlsDatabase) VerifyChain(ChainVar *TlsCertificate, PurposeVar string, IdentityVar SocketConnectable, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseVerifyFlags, CancellableVar *Cancellable) (TlsCertificateFlags, error) {
825 var cerr *glib.Error
826
827 cret := xTlsDatabaseVerifyChain(x.GoPointer(), ChainVar.GoPointer(), PurposeVar, IdentityVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), &cerr)
828 if cerr == nil {
829 return cret, nil
830 }
831 return cret, cerr
832
833}
834
835var xTlsDatabaseVerifyChainAsync func(uintptr, uintptr, string, uintptr, uintptr, TlsDatabaseVerifyFlags, uintptr, uintptr, uintptr)
836
837// Asynchronously determines the validity of a certificate chain after
838// looking up and adding any missing certificates to the chain. See
839// g_tls_database_verify_chain() for more information.
840func (x *TlsDatabase) VerifyChainAsync(ChainVar *TlsCertificate, PurposeVar string, IdentityVar SocketConnectable, InteractionVar *TlsInteraction, FlagsVar TlsDatabaseVerifyFlags, CancellableVar *Cancellable, CallbackVar *AsyncReadyCallback, UserDataVar uintptr) {
841
842 var CallbackVarRef uintptr
843 if CallbackVar != nil {
844 CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
845 if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
846 CallbackVarRef = cbRefPtr
847 } else {
848 fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
849 cbFn := *CallbackVar
850 cbFn(arg0, arg1, arg2)
851 }
852 CallbackVarRef = purego.NewCallback(fcb)
853 glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
854 }
855 }
856
857 xTlsDatabaseVerifyChainAsync(x.GoPointer(), ChainVar.GoPointer(), PurposeVar, IdentityVar.GoPointer(), InteractionVar.GoPointer(), FlagsVar, CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
858
859}
860
861var xTlsDatabaseVerifyChainFinish func(uintptr, uintptr, **glib.Error) TlsCertificateFlags
862
863// Finish an asynchronous verify chain operation. See
864// g_tls_database_verify_chain() for more information.
865//
866// If @chain is found to be valid, then the return value will be 0. If
867// @chain is found to be invalid, then the return value will indicate
868// the problems found. If the function is unable to determine whether
869// @chain is valid or not (eg, because @cancellable is triggered
870// before it completes) then the return value will be
871// %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set
872// accordingly. @error is not set when @chain is successfully analyzed
873// but found to be invalid.
874func (x *TlsDatabase) VerifyChainFinish(ResultVar AsyncResult) (TlsCertificateFlags, error) {
875 var cerr *glib.Error
876
877 cret := xTlsDatabaseVerifyChainFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
878 if cerr == nil {
879 return cret, nil
880 }
881 return cret, cerr
882
883}
884
885func (c *TlsDatabase) GoPointer() uintptr {
886 if c == nil {
887 return 0
888 }
889 return c.Ptr
890}
891
892func (c *TlsDatabase) SetGoPointer(ptr uintptr) {
893 c.Ptr = ptr
894}
895
896func init() {
897 core.SetPackageName("GIO", "gio-2.0")
898 core.SetSharedLibraries("GIO", []string{"libgio-2.0.so.0"})
899 var libs []uintptr
900 for _, libPath := range core.GetPaths("GIO") {
901 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
902 if err != nil {
903 panic(err)
904 }
905 libs = append(libs, lib)
906 }
907
908 core.PuregoSafeRegister(&xTlsDatabaseGLibType, libs, "g_tls_database_get_type")
909
910 core.PuregoSafeRegister(&xTlsDatabaseCreateCertificateHandle, libs, "g_tls_database_create_certificate_handle")
911 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateForHandle, libs, "g_tls_database_lookup_certificate_for_handle")
912 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateForHandleAsync, libs, "g_tls_database_lookup_certificate_for_handle_async")
913 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateForHandleFinish, libs, "g_tls_database_lookup_certificate_for_handle_finish")
914 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateIssuer, libs, "g_tls_database_lookup_certificate_issuer")
915 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateIssuerAsync, libs, "g_tls_database_lookup_certificate_issuer_async")
916 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificateIssuerFinish, libs, "g_tls_database_lookup_certificate_issuer_finish")
917 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificatesIssuedBy, libs, "g_tls_database_lookup_certificates_issued_by")
918 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificatesIssuedByAsync, libs, "g_tls_database_lookup_certificates_issued_by_async")
919 core.PuregoSafeRegister(&xTlsDatabaseLookupCertificatesIssuedByFinish, libs, "g_tls_database_lookup_certificates_issued_by_finish")
920 core.PuregoSafeRegister(&xTlsDatabaseVerifyChain, libs, "g_tls_database_verify_chain")
921 core.PuregoSafeRegister(&xTlsDatabaseVerifyChainAsync, libs, "g_tls_database_verify_chain_async")
922 core.PuregoSafeRegister(&xTlsDatabaseVerifyChainFinish, libs, "g_tls_database_verify_chain_finish")
923
924}