linux-old/crypto/compress.c
<<
>>
Prefs
   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 <linux/errno.h>
  17#include <asm/scatterlist.h>
  18#include <linux/string.h>
  19#include "internal.h"
  20
  21static int crypto_compress(struct crypto_tfm *tfm,
  22                            const u8 *src, unsigned int slen,
  23                            u8 *dst, unsigned int *dlen)
  24{
  25        return tfm->__crt_alg->cra_compress.coa_compress(crypto_tfm_ctx(tfm),
  26                                                         src, slen, dst,
  27                                                         dlen);
  28}
  29
  30static int crypto_decompress(struct crypto_tfm *tfm,
  31                             const u8 *src, unsigned int slen,
  32                             u8 *dst, unsigned int *dlen)
  33{
  34        return tfm->__crt_alg->cra_compress.coa_decompress(crypto_tfm_ctx(tfm),
  35                                                           src, slen, dst,
  36                                                           dlen);
  37}
  38
  39int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags)
  40{
  41        return flags ? -EINVAL : 0;
  42}
  43
  44int crypto_init_compress_ops(struct crypto_tfm *tfm)
  45{
  46        int ret = 0;
  47        struct compress_tfm *ops = &tfm->crt_compress;
  48        
  49        ret = tfm->__crt_alg->cra_compress.coa_init(crypto_tfm_ctx(tfm));
  50        if (ret)
  51                goto out;
  52
  53        ops->cot_compress = crypto_compress;
  54        ops->cot_decompress = crypto_decompress;
  55        
  56out:
  57        return ret;
  58}
  59
  60void crypto_exit_compress_ops(struct crypto_tfm *tfm)
  61{
  62        tfm->__crt_alg->cra_compress.coa_exit(crypto_tfm_ctx(tfm));
  63}
  64
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.