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