Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5644bda5 authored by Michal Ludvig's avatar Michal Ludvig Committed by Herbert Xu
Browse files

[CRYPTO] padlock: Helper module padlock.ko



Compile a helper module padlock.ko that will try
to autoload all configured padlock algorithms.

This also provides backward compatibility with 
the ancient times before padlock.ko was renamed 
to padlock-aes.ko

Signed-off-by: default avatarMichal Ludvig <michal@logix.cz>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent cb17530b
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
menu "Hardware crypto devices"

config CRYPTO_DEV_PADLOCK
	bool "Support for VIA PadLock ACE"
	tristate "Support for VIA PadLock ACE"
	depends on X86_32
	select CRYPTO_ALGAPI
	default y
	default m
	help
	  Some VIA processors come with an integrated crypto engine
	  (so called VIA PadLock ACE, Advanced Cryptography Engine)
@@ -12,8 +12,17 @@ config CRYPTO_DEV_PADLOCK
	  operations with supported algorithms.
	  
	  The instructions are used only when the CPU supports them.
	  Otherwise software encryption is used. If you are unsure,
	  say Y.
	  Otherwise software encryption is used.

	  Selecting M for this option will compile a helper module
	  padlock.ko that should autoload all below configured
	  algorithms. Don't worry if your hardware does not support
	  some or all of them. In such case padlock.ko will
	  simply write a single line into the kernel log informing
	  about its failure but everything will keep working fine.

	  If you are unsure, say M. The compiled module will be
	  called padlock.ko

config CRYPTO_DEV_PADLOCK_AES
	tristate "PadLock driver for AES algorithm"
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_CRYPTO_DEV_PADLOCK) += padlock.o
obj-$(CONFIG_CRYPTO_DEV_PADLOCK_AES) += padlock-aes.o
obj-$(CONFIG_CRYPTO_DEV_PADLOCK_SHA) += padlock-sha.o
+0 −3
Original line number Diff line number Diff line
@@ -544,6 +544,3 @@ MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michal Ludvig");

MODULE_ALIAS("aes-padlock");

/* This module used to be called padlock. */
MODULE_ALIAS("padlock");
+58 −0
Original line number Diff line number Diff line
/*
 * Cryptographic API.
 *
 * Support for VIA PadLock hardware crypto engine.
 *
 * Copyright (c) 2006  Michal Ludvig <michal@logix.cz>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 */

#include <linux/module.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/crypto.h>
#include <linux/cryptohash.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/scatterlist.h>
#include "padlock.h"

static int __init padlock_init(void)
{
	int success = 0;

	if (crypto_alg_available("aes-padlock", 0))
		success++;

	if (crypto_alg_available("sha1-padlock", 0))
		success++;

	if (crypto_alg_available("sha256-padlock", 0))
		success++;

	if (!success) {
		printk(KERN_WARNING PFX "No VIA PadLock drivers have been loaded.\n");
		return -ENODEV;
	}

	printk(KERN_NOTICE PFX "%d drivers are available.\n", success);

	return 0;
}

static void __exit padlock_fini(void)
{
}

module_init(padlock_init);
module_exit(padlock_fini);

MODULE_DESCRIPTION("Load all configured PadLock algorithms.");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michal Ludvig");