Coverage report: /home/ellis/comp/core/ffi/rustls/rustls.lisp

KindCoveredAll%
expression0116 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; rustls/rustls.lisp --- Rustls Alien Routines
2
 
3
 ;;
4
 
5
 ;;; Code:
6
 (in-package :rustls)
7
 
8
 (defar rustls-version c-string)
9
 
10
 ;;; Provider
11
 (defar rustls-crypto-provider-builder-new-from-default rustls-result 
12
   (builder-out (* (* rustls-crypto-provider-builder))))
13
 
14
 (defar rustls-crypto-provider-builder-new-with-base (* rustls-crypto-provider-builder)
15
   (base (* rustls-crypto-provider)))
16
 
17
 (defar rustls-crypto-provider-builder-set-cipher-suites rustls-result
18
   (builder (* rustls-crypto-provider-builder))
19
   (cipher-suites (* (* rustls-supported-ciphersuite)))
20
   (cipher-suites-len size-t))
21
 
22
 (defar rustls-crypto-provider-builder-build rustls-result
23
   (builder (* rustls-crypto-provider-builder))
24
   (provider-out (* rustls-crypto-provider)))
25
 
26
 (defar rustls-crypto-provider-builder-build-as-default rustls-result
27
   (builder (* rustls-crypto-provider-builder)))
28
 
29
 (defar rustls-crypto-provider-builder-free void
30
   (builder (* rustls-crypto-provider-builder)))
31
 
32
 ;; NOTE: These are dependent on Rustls compile-time features
33
 (defar rustls-ring-crypto-provider (* rustls-crypto-provider))
34
 (defar rustls-default-fips-provider (* rustls-crypto-provider))
35
 
36
 ;; available with default config
37
 (defar rustls-aws-lc-rs-crypto-provider (* rustls-crypto-provider))
38
 (defar rustls-crypto-provider-default (* rustls-crypto-provider))
39
 (defar rustls-crypto-provider-ciphersuites-len size-t
40
   (provider (* rustls-crypto-provider)))
41
 (defar rustls-crypto-provider-ciphersuites-get (* rustls-supported-ciphersuite)
42
   (provider (* rustls-crypto-provider))
43
   (index size-t))
44
 (defar rustls-crypto-provider-load-key rustls-result
45
   (provider (* rustls-crypto-provider))
46
   (private-key (* unsigned-char))
47
   (private-key-len size-t)
48
   (signing-key-out (* (* rustls-signing-key))))
49
 
50
 ;;; Acceptor
51
 (defar rustls-acceptor-new (* rustls-acceptor))
52
 
53
 (defar rustls-acceptor-free void (acceptor (* rustls-acceptor)))
54
 
55
 (defar rustls-acceptor-read-tls rustls-io-result
56
   (acceptor (* rustls-acceptor))
57
   (callback (* rustls-read-callback))
58
   (userdata (* t))
59
   (out-n (* size-t)))
60
 
61
 (defar rustls-acceptor-accept rustls-result
62
   (acceptor (* rustls-acceptor))
63
   (out-accepted (* (* rustls-accepted)))
64
   (out-alert (* (* rustls-accepted-alert))))
65
 
66
 (defar rustls-accepted-server-name c-string
67
   (accepted (* rustls-accepted)))
68
 
69
 (defar rustls-accepted-signature-scheme (unsigned 16)
70
   (accepted (* rustls-accepted))
71
   (i size-t))
72
 
73
 (defar rustls-accepted-cipher-scheme (unsigned 16)
74
   (accepted (* rustls-accepted))
75
   (i size-t))
76
 
77
 ;; (defar rustls-accepted-alpn rustls-slice-bytes
78
 ;;   (accepted (* rustls-accepted))
79
 ;;   (i size-t))
80
 
81
 (defar rustls-accepted-into-connection rustls-result
82
   (accepted (* rustls-accepted))
83
   (config (* rustls-server-config))
84
   (out-conn (* (* rustls-connection)))
85
   (out-alert (* (* rustls-accepted-alert))))
86
 
87
 (defar rustls-accepted-free void (accepted (* rustls-accepted)))
88
 
89
 (defar rustls-accepted-alert-write-tls rustls-io-result
90
   (accepted-alert (* rustls-accepted-alert))
91
   (callback rustls-write-callback)
92
   (userdata (* t))
93
   (out-n (* size-t)))
94
 
95
 (defar rustls-accepted-alert-free void
96
   (accepted-alert (* rustls-accepted-alert)))
97
 
98
 ;;; Ciphersuite
99
 (defar rustls-supported-ciphersuite-get-suite (unsigned 16)
100
   (supported-ciphersuite (* rustls-supported-ciphersuite)))
101
 
102
 (defar rustls-supported-ciphersuite-get-name c-string
103
   (supported-ciphersuite (* rustls-supported-ciphersuite)))
104
 
105
 (defar rustls-all-ciphersuites-len size-t)
106
 
107
 (defar rustls-all-ciphersuites-get-entry (* rustls-supported-ciphersuite)
108
   (i size-t))
109
 
110
 (defar rustls-default-ciphersuites-len size-t)
111
 
112
 (defar rustls-default-ciphersuites-get-entry (* rustls-supported-ciphersuite)
113
   (i size-t))
114
 
115
 (defar rustls-certificate-get-der rustls-result
116
   (cert (* rustls-certificate))
117
   (out-der-data (* (* (unsigned 8))))
118
   (out-der-len (* size-t)))
119
 
120
 ;;; Certified Key
121
 (defar rustls-certified-key-build rustls-result
122
   (cert-chain (* (unsigned 8)))
123
   (cert-chain-len size-t)
124
   (private-key (* (unsigned 8)))
125
   (private-key-len size-t)
126
   (certified-key-out (* (* rustls-certified-key))))
127
 
128
 (defar rustls-certified-key-get-certificate (* rustls-certificate)
129
   (certified-key (* rustls-certified-key))
130
   (i size-t))
131
 
132
 (defar rustls-certified-key-clone-with-ocsp rustls-result
133
   (certified-key (* rustls-certified-key))
134
   (ocsp-response (* rustls-slice-bytes))
135
   (clone-key-out (* (* rustls-certified-key))))
136
 
137
 (defar rustls-certified-key-keys-match rustls-result
138
   (key (* rustls-certified-key)))
139
 
140
 (defar rustls-certified-key-free void (key (* rustls-certified-key)))
141
 
142
 ;;; Root Cert Store
143
 (defar rustls-root-cert-store-builder-new (* rustls-root-cert-store-builder))
144
 
145
 (defar rustls-root-cert-store-builder-add-pem rustls-result
146
   (builder (* rustls-root-cert-store-builder))
147
   (pem (array (unsigned 8)))
148
   (pem-len size-t)
149
   (strict boolean))
150
 
151
 (defar rustls-root-cert-store-builder-load-roots-from-file rustls-result
152
   (builder (* rustls-root-cert-store-builder))
153
   (filename c-string)
154
   (strict boolean))
155
 
156
 (defar rustls-root-cert-store-builder-build rustls-result
157
   (builder (* rustls-root-cert-store-builder))
158
   (config-out (* (* rustls-root-cert-store))))
159
 
160
 (defar rustls-root-cert-store-builder-free void
161
   (builder (* rustls-root-cert-store-builder)))
162
 
163
 (defar rustls-root-cert-store-free void
164
   (storer (* rustls-root-cert-store)))
165
 
166
 ;;; Client Cert Verifier
167
 (defar rustls-client-cert-verifier-free void
168
   (verifier (* rustls-client-cert-verifier)))
169
 
170
 (defar rustls-web-pki-client-cert-verifier-builder-new (* rustls-web-pki-client-cert-verifier-builder)
171
   (store (* rustls-root-cert-store)))
172
 
173
 (defar rustls-web-pki-client-cert-verifier-builder-add-crl rustls-result
174
   (builder (* rustls-web-pki-client-cert-verifier-builder))
175
   (crl-pem (array (unsigned 8)))
176
   (crl-pem-len size-t))
177
 
178
 (defar rustls-web-pki-client-cert-verifier-only-check-end-entity-revocation rustls-result
179
   (builder (* rustls-web-pki-client-cert-verifier-builder)))
180
 
181
 (defar rustls-web-pki-client-cert-verifier-allow-unknown-revocation-status rustls-result
182
   (builder (* rustls-web-pki-client-cert-verifier-builder)))
183
 
184
 (defar rustls-web-pki-client-cert-verifier-allow-unauthenticated rustls-result
185
   (builder (* rustls-web-pki-client-cert-verifier-builder)))
186
 
187
 (defar rustls-web-pki-client-cert-verifier-clear-root-hint-subjects rustls-result
188
   (builder (* rustls-web-pki-client-cert-verifier-builder)))
189
 
190
 (defar rustls-web-pki-client-cert-verifier-add-root-hint-subjects rustls-result
191
   (builder (* rustls-web-pki-client-cert-verifier-builder))
192
   (store (* rustls-root-cert-store)))
193
 
194
 (defar rustls-web-pki-client-cert-verifier-builder-build rustls-result
195
   (builder (* rustls-web-pki-client-cert-verifier-builder))
196
   (verifier-out (* (* rustls-web-pki-client-cert-verifier))))
197
 
198
 (defar rustls-web-pki-client-cert-verifier-builder-free void
199
   (builder (* rustls-web-pki-client-cert-verifier-builder)))
200
 
201
 (defar rustls-web-pki-server-cert-verifier-builder-new (* rustls-web-pki-server-cert-verifier-builder)
202
   (store (* rustls-root-cert-store)))
203
 (defar rustls-web-pki-server-cert-verifier-builder-new-with-provider (* rustls-web-pki-server-cert-verifier-builder)
204
   (provider (* rustls-crypto-provider))
205
   (store (* rustls-root-cert-store)))
206
 (defar rustls-web-pki-server-cert-verifier-builder-add-crl rustls-result
207
   (builder (* rustls-web-pki-server-cert-verifier-builder))
208
   (crl-pem (* unsigned-char))
209
   (crl-pem-len size-t))
210
 (defar rustls-web-pki-server-cert-verifier-only-check-end-entity-revocation rustls-result
211
   (builder (* rustls-web-pki-server-cert-verifier-builder)))
212
 (defar rustls-web-pki-server-cert-verifier-enforce-revocation-expir rustls-result
213
   (builder (* rustls-web-pki-server-cert-verifier-builder)))
214
 (defar rustls-web-pki-server-cert-verifier-builder-build rustls-result
215
   (builder (* rustls-web-pki-server-cert-verifier-builder))
216
   (verifier-out (* rustls-server-cert-verifier)))
217
 (defar rustls-web-pki-server-cert-verifier-builder-free void
218
   (builder (* rustls-web-pki-server-cert-verifier-builder)))
219
 (defar rustls-platform-server-cert-verifier rustls-result
220
   (verifier-out (* (* rustls-server-cert-verifier))))
221
 (defar rustls-platform-server-cert-verifier-with-provider (* rustls-server-cert-verifier)
222
   (provider (* rustls-crypto-provider)))
223
 (defar rustls-server-cert-verifier-free void
224
   (verifier (* rustls-server-cert-verifier)))
225
 
226
 ;;; Client Config
227
 (defar rustls-client-config-builder-new (* rustls-client-config-builder))
228
 
229
 (defar rustls-client-config-builder-new-custom rustls-result
230
   (provider (* rustls-crypto-provider))
231
    (tls-versions (* unsigned-short))
232
    (tls-versions-len size-t)
233
    (builder-out (* (* rustls-client-config-builder))))
234
 
235
 (defar rustls-client-config-builder-build rustls-result
236
   (builder (* rustls-client-config-builder))
237
   (config-out (* (* rustls-client-config))))
238
 
239
 (defar rustls-client-config-builder-set-certified-key rustls-result
240
   (builder (* rustls-client-config-builder))
241
   (certified-keys (* (* rustls-certified-key)))
242
   (certified-keys-len size-t))
243
 
244
 (defar rustls-client-config-builder-set-enable-sni void
245
   (builder (* rustls-client-config-builder))
246
   (enable boolean))
247
 
248
 (defar rustls-client-config-builder-set-alpn-protocols rustls-result
249
   (builder (* rustls-client-config-builder))
250
   (protocols (* rustls-slice-bytes))
251
   (len size-t))
252
 
253
 (defar rustls-client-config-builder-set-server-verifier void
254
   (builder (* rustls-client-config-builder))
255
   (verifier (* rustls-server-cert-verifier)))
256
 
257
 (defar rustls-client-config-builder-free void
258
   (c (* rustls-client-config-builder)))
259
 
260
 (defar rustls-client-config-builder-set-key-log-file rustls-result 
261
   (builder (* rustls-client-config-builder)))
262
 
263
 (defar rustls-client-config-builder-set-key-log rustls-result 
264
   (builder (* rustls-client-config-builder))
265
   (log-cb (* rustls-keylog-log-callback))
266
   (will-log-cb (* rustls-keylog-will-log-callback)))
267
 
268
 (defar rustls-client-config-builder-enable-ech rustls-result
269
   (builder (* rustls-client-config-builder))
270
   (ech-config-list-bytes (* unsigned-char))
271
   (ech-config-list-bytes-size size-t)
272
   (hpke (* rustls-hpke)))
273
 
274
 (defar rustls-client-config-builder-enable-ech-grease rustls-result
275
   (builder (* rustls-client-config-builder))
276
   (hpke (* rustls-hpke)))
277
 
278
 (defar rustls-client-config-free void
279
   (c (* rustls-client-config)))
280
 
281
 (defar rustls-client-config-fips boolean
282
   (config (* rustls-client-config)))
283
 
284
 ;; (defar rustls-client-config-builder-dangerous-set-server-verifier rustls-result
285
 ;;   (builder (* rustls-client-config-builder))
286
 ;;   (callback rustls-verifiy-cert-callback))
287
 
288
 ;;; Client Connection
289
 (defar rustls-client-connection-new rustls-result
290
   (config (* rustls-client-config))
291
   (server-name c-string)
292
   (conn-out (* (* rustls-connection))))
293
 
294
 (defar rustls-connection-set-userdata void
295
   (conn (* rustls-connection))
296
   (userdata (* t)))
297
 
298
 (defar rustls-connection-set-log-callback void
299
   (conn (* rustls-connection))
300
   (cb rustls-log-callback))
301
 
302
 (defar rustls-connection-read-tls rustls-io-result
303
   (conn (* rustls-connection))
304
   (callback rustls-read-callback)
305
   (userdata (* t))
306
   (out-n (* size-t)))
307
 
308
 (defar rustls-connection-write-tls rustls-io-result
309
   (conn (* rustls-connection))
310
   (callback rustls-write-callback)
311
   (userdata (* t))
312
   (out-n (* size-t)))
313
 
314
 (defar rustls-connection-write-tls-vectored rustls-io-result
315
   (conn (* rustls-connection))
316
   (callback rustls-write-vectored-callback)
317
   (userdata (* t))
318
   (out-n (* size-t)))
319
 
320
 (defar rustls-connection-process-new-packets rustls-result
321
   (conn (* rustls-connection)))
322
 
323
 (defar rustls-connection-wants-read boolean
324
   (conn (* rustls-connection)))
325
 
326
 (defar rustls-connection-wants-write boolean
327
   (conn (* rustls-connection)))
328
 
329
 (defar rustls-connection-is-handshaking boolean
330
   (conn (* rustls-connection)))
331
 
332
 (defar rustls-connection-set-buffer-limit void
333
   (conn (* rustls-connection))
334
   (n size-t))
335
 
336
 (defar rustls-connection-send-close-notify void
337
   (conn (* rustls-connection)))
338
 
339
 (defar rustls-connection-get-peer-certificate (* rustls-certificate)
340
   (conn (* rustls-connection))
341
   (i size-t))
342
 
343
 (defar rustls-connection-get-alpn-protocol void
344
   (conn (* rustls-connection))
345
   (protocol-out (* (array (unsigned 8))))
346
   (protocol-out-len (* size-t)))
347
 
348
 (defar rustls-connection-get-protocol-version (unsigned 16)
349
   (conn (* rustls-connection)))
350
 
351
 (defar rustls-connection-get-negotiated-ciphersuite (* rustls-supported-ciphersuite)
352
   (conn (* rustls-connection)))
353
 
354
 (defar rustls-connection-write rustls-result
355
   (conn (* rustls-connection))
356
   (buf (array (unsigned 8)))
357
   (count size-t)
358
   (out-n (* size-t)))
359
 
360
 (defar rustls-connection-read rustls-result
361
   (conn (* rustls-connection))
362
   (buf (array (unsigned 8)))
363
   (count size-t)
364
   (out-n (* size-t)))
365
 
366
 (defar rustl-connection-free void (conn (* rustls-connection)))
367
 
368
 (defar rustls-error void (result rustls-result) (buf (* unsigned-char)) (len size-t) (out-n (* size-t)))
369
 
370
 (defar rustls-result-is-cert-error boolean (result rustls-result))
371
 
372
 (defar rustls-log-level-str c-string (level rustls-log-level))
373
 
374
 (defar rustls-slice-slice-bytes-len size-t
375
   (input (* rustls-slice-slice-bytes)))
376
 
377
 ;; (defar rustls-slice-slice-bytes-get rustls-slice-bytes
378
 ;;   (input (* rustls-slice-slice-bytes))
379
 ;;   (n size-t))
380
 
381
 (defar rustls-slice-str-len size-t
382
   (input (* rustls-slice-str)))
383
 
384
 (defar rustls-slice-str-get c-string
385
   (input (* rustls-slice-str))
386
   (n size-t))
387
 
388
 ;;; Server Config
389
 (defar rustls-server-config-builder-new (* rustls-server-config-builder))
390
 
391
 (defar rustls-server-config-builder-free void (config (* rustls-server-config-builder)))
392
 
393
 (defar rustls-server-config-builder-build rustls-result
394
   (builder (* rustls-server-config-builder))
395
   (config-out (* (* rustls-server-config))))
396
 
397
 (defar rustls-server-config-builder-set-key-log-file rustls-result (builder (* rustls-server-config-builder)))
398
 
399
 (defar rustls-server-config-builder-set-key-log rustls-result 
400
   (builder (* rustls-server-config-builder))
401
   (log-cb (* rustls-keylog-log-callback))
402
   (will-log-cb (* rustls-keylog-will-log-callback)))
403
 
404
 (defar rustls-server-config-free void (config (* rustls-server-config)))
405
 
406
 ;;; Server Connection
407
 (defar rustls-server-connection-new rustls-result
408
   (config (* rustls-server-config))
409
   (conn-out (* (* rustls-connection))))
410
 
411
 (defar rustls-server-connection-get-server-name rustls-result
412
   (conn (* rustls-connection))
413
   (buf (* unsigned-char))
414
   (count size-t)
415
   (out-n (* size-t)))
416
 
417
 (defar rustls-server-config-builder-set-hello-callback rustls-result
418
   (builder (* rustls-server-config-builder))
419
   (callback (* rustls-client-hello-callback)))
420
 
421
 (defar rustls-client-hello-select-certified-key rustls-result
422
   (hello (* rustls-client-hello))
423
   (certified-keys (* (* rustls-certified-key)))
424
   (certified-keys-len size-t)
425
   (out-key (* (* rustls-certified-key))))
426
 
427
 (defar rustls-server-config-builder-set-persistence rustls-result
428
   (builder (* rustls-server-config-builder))
429
   (get-cb rustls-session-store-get-callback)
430
   (put-cb rustls-session-store-put-callback))
431
 
432
 (defar rustls-server-config-builder-set-ignore-client-order rustls-result
433
   (builder (* rustls-server-config-builder))
434
   (ignore boolean))
435
 
436
 (defar rustls-server-config-builder-set-client-verifier void
437
   (builder (* rustls-server-config-builder))
438
   (verifier (* rustls-client-cert-verifier)))