Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 77b2555b52a894a2e39a42e43d993df875c46a6a 63 lines 1.4 kB view raw
1/* 2 * Cryptographic API. 3 * 4 * Support for VIA PadLock hardware crypto engine. 5 * 6 * Copyright (c) 2004 Michal Ludvig <michal@logix.cz> 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; either version 2 of the License, or 11 * (at your option) any later version. 12 */ 13 14#include <linux/module.h> 15#include <linux/init.h> 16#include <linux/types.h> 17#include <linux/errno.h> 18#include <linux/crypto.h> 19#include <asm/byteorder.h> 20#include "padlock.h" 21 22static int __init 23padlock_init(void) 24{ 25 int ret = -ENOSYS; 26 27 if (!cpu_has_xcrypt) { 28 printk(KERN_ERR PFX "VIA PadLock not detected.\n"); 29 return -ENODEV; 30 } 31 32 if (!cpu_has_xcrypt_enabled) { 33 printk(KERN_ERR PFX "VIA PadLock detected, but not enabled. Hmm, strange...\n"); 34 return -ENODEV; 35 } 36 37#ifdef CONFIG_CRYPTO_DEV_PADLOCK_AES 38 if ((ret = padlock_init_aes())) { 39 printk(KERN_ERR PFX "VIA PadLock AES initialization failed.\n"); 40 return ret; 41 } 42#endif 43 44 if (ret == -ENOSYS) 45 printk(KERN_ERR PFX "Hmm, VIA PadLock was compiled without any algorithm.\n"); 46 47 return ret; 48} 49 50static void __exit 51padlock_fini(void) 52{ 53#ifdef CONFIG_CRYPTO_DEV_PADLOCK_AES 54 padlock_fini_aes(); 55#endif 56} 57 58module_init(padlock_init); 59module_exit(padlock_fini); 60 61MODULE_DESCRIPTION("VIA PadLock crypto engine support."); 62MODULE_LICENSE("Dual BSD/GPL"); 63MODULE_AUTHOR("Michal Ludvig");