1/* 2 * Cryptographic API. 3 * 4 * Compression operations. 5 * 6 * Copyright (c) 2002 James Morris <jmorris@intercode.com.au> 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by the Free 10 * Software Foundation; either version 2 of the License, or (at your option) 11 * any later version. 12 * 13 */ 14#include <linux/types.h> 15//#include <linux/crypto.h> 16#include "rtl_crypto.h" 17#include <linux/errno.h> 18#include <asm/scatterlist.h> 19#include <linux/string.h> 20#include "internal.h" 21 22static int crypto_compress(struct crypto_tfm *tfm, 23 const u8 *src, unsigned int slen, 24 u8 *dst, unsigned int *dlen) 25{ 26 return tfm->__crt_alg->cra_compress.coa_compress(crypto_tfm_ctx(tfm), 27 src, slen, dst, 28 dlen); 29} 30 31static int crypto_decompress(struct crypto_tfm *tfm, 32 const u8 *src, unsigned int slen, 33 u8 *dst, unsigned int *dlen) 34{ 35 return tfm->__crt_alg->cra_compress.coa_decompress(crypto_tfm_ctx(tfm), 36 src, slen, dst, 37 dlen); 38} 39 40int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags) 41{ 42 return flags ? -EINVAL : 0; 43} 44 45int crypto_init_compress_ops(struct crypto_tfm *tfm) 46{ 47 int ret = 0; 48 struct compress_tfm *ops = &tfm->crt_compress; 49 50 ret = tfm->__crt_alg->cra_compress.coa_init(crypto_tfm_ctx(tfm)); 51 if (ret) 52 goto out; 53 54 ops->cot_compress = crypto_compress; 55 ops->cot_decompress = crypto_decompress; 56 57out: 58 return ret; 59} 60 61void crypto_exit_compress_ops(struct crypto_tfm *tfm) 62{ 63 tfm->__crt_alg->cra_compress.coa_exit(crypto_tfm_ctx(tfm)); 64} 65