162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Cryptographic API.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Compression operations.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci#include <linux/crypto.h>
1062306a36Sopenharmony_ci#include "internal.h"
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciint crypto_comp_compress(struct crypto_comp *comp,
1362306a36Sopenharmony_ci			 const u8 *src, unsigned int slen,
1462306a36Sopenharmony_ci			 u8 *dst, unsigned int *dlen)
1562306a36Sopenharmony_ci{
1662306a36Sopenharmony_ci	struct crypto_tfm *tfm = crypto_comp_tfm(comp);
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	return tfm->__crt_alg->cra_compress.coa_compress(tfm, src, slen, dst,
1962306a36Sopenharmony_ci	                                                 dlen);
2062306a36Sopenharmony_ci}
2162306a36Sopenharmony_ciEXPORT_SYMBOL_GPL(crypto_comp_compress);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciint crypto_comp_decompress(struct crypto_comp *comp,
2462306a36Sopenharmony_ci			   const u8 *src, unsigned int slen,
2562306a36Sopenharmony_ci			   u8 *dst, unsigned int *dlen)
2662306a36Sopenharmony_ci{
2762306a36Sopenharmony_ci	struct crypto_tfm *tfm = crypto_comp_tfm(comp);
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	return tfm->__crt_alg->cra_compress.coa_decompress(tfm, src, slen, dst,
3062306a36Sopenharmony_ci	                                                   dlen);
3162306a36Sopenharmony_ci}
3262306a36Sopenharmony_ciEXPORT_SYMBOL_GPL(crypto_comp_decompress);
33