~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/crypto/pcompress.c

Version: ~ [ linux-5.15-rc5 ] ~ [ linux-5.14.11 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.72 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.152 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.210 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.250 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.286 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.288 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Cryptographic API.
  3  *
  4  * Partial (de)compression operations.
  5  *
  6  * Copyright 2008 Sony Corporation
  7  *
  8  * This program is free software; you can redistribute it and/or modify
  9  * it under the terms of the GNU General Public License as published by
 10  * the Free Software Foundation; version 2 of the License.
 11  *
 12  * This program is distributed in the hope that it will be useful,
 13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15  * GNU General Public License for more details.
 16  *
 17  * You should have received a copy of the GNU General Public License
 18  * along with this program.
 19  * If not, see <http://www.gnu.org/licenses/>.
 20  */
 21 
 22 #include <linux/crypto.h>
 23 #include <linux/errno.h>
 24 #include <linux/module.h>
 25 #include <linux/seq_file.h>
 26 #include <linux/string.h>
 27 #include <linux/cryptouser.h>
 28 #include <net/netlink.h>
 29 
 30 #include <crypto/compress.h>
 31 #include <crypto/internal/compress.h>
 32 
 33 #include "internal.h"
 34 
 35 
 36 static int crypto_pcomp_init(struct crypto_tfm *tfm, u32 type, u32 mask)
 37 {
 38         return 0;
 39 }
 40 
 41 static int crypto_pcomp_init_tfm(struct crypto_tfm *tfm)
 42 {
 43         return 0;
 44 }
 45 
 46 #ifdef CONFIG_NET
 47 static int crypto_pcomp_report(struct sk_buff *skb, struct crypto_alg *alg)
 48 {
 49         struct crypto_report_comp rpcomp;
 50 
 51         strncpy(rpcomp.type, "pcomp", sizeof(rpcomp.type));
 52         if (nla_put(skb, CRYPTOCFGA_REPORT_COMPRESS,
 53                     sizeof(struct crypto_report_comp), &rpcomp))
 54                 goto nla_put_failure;
 55         return 0;
 56 
 57 nla_put_failure:
 58         return -EMSGSIZE;
 59 }
 60 #else
 61 static int crypto_pcomp_report(struct sk_buff *skb, struct crypto_alg *alg)
 62 {
 63         return -ENOSYS;
 64 }
 65 #endif
 66 
 67 static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
 68         __attribute__ ((unused));
 69 static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
 70 {
 71         seq_printf(m, "type         : pcomp\n");
 72 }
 73 
 74 static const struct crypto_type crypto_pcomp_type = {
 75         .extsize        = crypto_alg_extsize,
 76         .init           = crypto_pcomp_init,
 77         .init_tfm       = crypto_pcomp_init_tfm,
 78 #ifdef CONFIG_PROC_FS
 79         .show           = crypto_pcomp_show,
 80 #endif
 81         .report         = crypto_pcomp_report,
 82         .maskclear      = ~CRYPTO_ALG_TYPE_MASK,
 83         .maskset        = CRYPTO_ALG_TYPE_MASK,
 84         .type           = CRYPTO_ALG_TYPE_PCOMPRESS,
 85         .tfmsize        = offsetof(struct crypto_pcomp, base),
 86 };
 87 
 88 struct crypto_pcomp *crypto_alloc_pcomp(const char *alg_name, u32 type,
 89                                         u32 mask)
 90 {
 91         return crypto_alloc_tfm(alg_name, &crypto_pcomp_type, type, mask);
 92 }
 93 EXPORT_SYMBOL_GPL(crypto_alloc_pcomp);
 94 
 95 int crypto_register_pcomp(struct pcomp_alg *alg)
 96 {
 97         struct crypto_alg *base = &alg->base;
 98 
 99         base->cra_type = &crypto_pcomp_type;
100         base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
101         base->cra_flags |= CRYPTO_ALG_TYPE_PCOMPRESS;
102 
103         return crypto_register_alg(base);
104 }
105 EXPORT_SYMBOL_GPL(crypto_register_pcomp);
106 
107 int crypto_unregister_pcomp(struct pcomp_alg *alg)
108 {
109         return crypto_unregister_alg(&alg->base);
110 }
111 EXPORT_SYMBOL_GPL(crypto_unregister_pcomp);
112 
113 MODULE_LICENSE("GPL");
114 MODULE_DESCRIPTION("Partial (de)compression type");
115 MODULE_AUTHOR("Sony Corporation");
116 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp