1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Cryptographic API. 4 * 5 * Compression operations. 6 * 7 * Copyright (c) 2002 James Morris <jmorris@intercode.com.au> 8 */ 9 #include <linux/types.h> 10 #include <linux/crypto.h> 11 #include <linux/errno.h> 12 #include <linux/string.h> 13 #include "internal.h" 14 15 static int crypto_compress(struct crypto_tfm *tfm, 16 const u8 *src, unsigned int slen, 17 u8 *dst, unsigned int *dlen) 18 { 19 return tfm->__crt_alg->cra_compress.coa_compress(tfm, src, slen, dst, 20 dlen); 21 } 22 23 static int crypto_decompress(struct crypto_tfm *tfm, 24 const u8 *src, unsigned int slen, 25 u8 *dst, unsigned int *dlen) 26 { 27 return tfm->__crt_alg->cra_compress.coa_decompress(tfm, src, slen, dst, 28 dlen); 29 } 30 31 int crypto_init_compress_ops(struct crypto_tfm *tfm) 32 { 33 struct compress_tfm *ops = &tfm->crt_compress; 34 35 ops->cot_compress = crypto_compress; 36 ops->cot_decompress = crypto_decompress; 37 38 return 0; 39 } 40