1 | /*
|
---|
2 | * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved.
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
5 | * this file except in compliance with the License. You can obtain a copy
|
---|
6 | * in the file LICENSE in the source distribution or at
|
---|
7 | * https://www.openssl.org/source/license.html
|
---|
8 | */
|
---|
9 |
|
---|
10 |
|
---|
11 |
|
---|
12 | #ifndef OPENSSL_COMP_H
|
---|
13 | # define OPENSSL_COMP_H
|
---|
14 | # pragma once
|
---|
15 |
|
---|
16 | # include <openssl/macros.h>
|
---|
17 | # ifndef OPENSSL_NO_DEPRECATED_3_0
|
---|
18 | # define HEADER_COMP_H
|
---|
19 | # endif
|
---|
20 |
|
---|
21 | # include <openssl/opensslconf.h>
|
---|
22 |
|
---|
23 | # include <openssl/crypto.h>
|
---|
24 | # include <openssl/comperr.h>
|
---|
25 | # ifdef __cplusplus
|
---|
26 | extern "C" {
|
---|
27 | # endif
|
---|
28 |
|
---|
29 |
|
---|
30 |
|
---|
31 | # ifndef OPENSSL_NO_COMP
|
---|
32 |
|
---|
33 | COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
|
---|
34 | const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx);
|
---|
35 | int COMP_CTX_get_type(const COMP_CTX* comp);
|
---|
36 | int COMP_get_type(const COMP_METHOD *meth);
|
---|
37 | const char *COMP_get_name(const COMP_METHOD *meth);
|
---|
38 | void COMP_CTX_free(COMP_CTX *ctx);
|
---|
39 |
|
---|
40 | int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
|
---|
41 | unsigned char *in, int ilen);
|
---|
42 | int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
|
---|
43 | unsigned char *in, int ilen);
|
---|
44 |
|
---|
45 | COMP_METHOD *COMP_zlib(void);
|
---|
46 | COMP_METHOD *COMP_zlib_oneshot(void);
|
---|
47 | COMP_METHOD *COMP_brotli(void);
|
---|
48 | COMP_METHOD *COMP_brotli_oneshot(void);
|
---|
49 | COMP_METHOD *COMP_zstd(void);
|
---|
50 | COMP_METHOD *COMP_zstd_oneshot(void);
|
---|
51 |
|
---|
52 | # ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
---|
53 | # define COMP_zlib_cleanup() while(0) continue
|
---|
54 | # endif
|
---|
55 |
|
---|
56 | # ifdef OPENSSL_BIO_H
|
---|
57 | const BIO_METHOD *BIO_f_zlib(void);
|
---|
58 | const BIO_METHOD *BIO_f_brotli(void);
|
---|
59 | const BIO_METHOD *BIO_f_zstd(void);
|
---|
60 | # endif
|
---|
61 |
|
---|
62 | # endif
|
---|
63 |
|
---|
64 | typedef struct ssl_comp_st SSL_COMP;
|
---|
65 |
|
---|
66 | SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP)
|
---|
67 | #define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk))
|
---|
68 | #define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx)))
|
---|
69 | #define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp)))
|
---|
70 | #define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null())
|
---|
71 | #define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n)))
|
---|
72 | #define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n))
|
---|
73 | #define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk))
|
---|
74 | #define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk))
|
---|
75 | #define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i)))
|
---|
76 | #define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)))
|
---|
77 | #define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
|
---|
78 | #define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
|
---|
79 | #define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk)))
|
---|
80 | #define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk)))
|
---|
81 | #define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc))
|
---|
82 | #define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx))
|
---|
83 | #define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr)))
|
---|
84 | #define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
|
---|
85 | #define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
|
---|
86 | #define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum)
|
---|
87 | #define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk))
|
---|
88 | #define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk))
|
---|
89 | #define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk)))
|
---|
90 | #define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc)))
|
---|
91 | #define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp)))
|
---|
92 |
|
---|
93 |
|
---|
94 |
|
---|
95 | # ifdef __cplusplus
|
---|
96 | }
|
---|
97 | # endif
|
---|
98 | #endif
|
---|