1 | /* |
2 | * Copyright 2015-2016 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 | struct comp_method_st { |
11 | int type; /* NID for compression library */ |
12 | const char *name; /* A text string to identify the library */ |
13 | int (*init) (COMP_CTX *ctx); |
14 | void (*finish) (COMP_CTX *ctx); |
15 | int (*compress) (COMP_CTX *ctx, |
16 | unsigned char *out, unsigned int olen, |
17 | unsigned char *in, unsigned int ilen); |
18 | int (*expand) (COMP_CTX *ctx, |
19 | unsigned char *out, unsigned int olen, |
20 | unsigned char *in, unsigned int ilen); |
21 | }; |
22 | |
23 | struct comp_ctx_st { |
24 | struct comp_method_st *meth; |
25 | unsigned long compress_in; |
26 | unsigned long compress_out; |
27 | unsigned long expand_in; |
28 | unsigned long expand_out; |
29 | void* data; |
30 | }; |
31 | |