summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/rsa_mod_exp/mod_exp_uclass.c
diff options
context:
space:
mode:
authorRuchika Gupta <ruchika.gupta@freescale.com>2015-01-23 16:01:52 +0530
committerSimon Glass <sjg@chromium.org>2015-01-29 17:09:58 -0700
commit31d2b4fd90f9305aad2e79872067e6c0243267de (patch)
tree823edbcb72a6f271688a3c22edc223fa89587525 /drivers/crypto/rsa_mod_exp/mod_exp_uclass.c
parentc4beb22fcd8cf57569a8045c8e04cea0dbbfd763 (diff)
downloadtalos-obmc-uboot-31d2b4fd90f9305aad2e79872067e6c0243267de.tar.gz
talos-obmc-uboot-31d2b4fd90f9305aad2e79872067e6c0243267de.zip
DM: crypto/rsa_mod_exp: Add rsa Modular Exponentiation DM driver
Add a new rsa uclass for performing modular exponentiation and implement the software driver basing on this uclass. Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> CC: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/crypto/rsa_mod_exp/mod_exp_uclass.c')
-rw-r--r--drivers/crypto/rsa_mod_exp/mod_exp_uclass.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/crypto/rsa_mod_exp/mod_exp_uclass.c b/drivers/crypto/rsa_mod_exp/mod_exp_uclass.c
new file mode 100644
index 0000000000..266f09484f
--- /dev/null
+++ b/drivers/crypto/rsa_mod_exp/mod_exp_uclass.c
@@ -0,0 +1,31 @@
+/*
+ * (C) Copyright 2014 Freescale Semiconductor, Inc
+ * Author: Ruchika Gupta <ruchika.gupta@freescale.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <u-boot/rsa-mod-exp.h>
+#include <errno.h>
+#include <fdtdec.h>
+#include <malloc.h>
+#include <asm/io.h>
+#include <linux/list.h>
+
+int rsa_mod_exp(struct udevice *dev, const uint8_t *sig, uint32_t sig_len,
+ struct key_prop *node, uint8_t *out)
+{
+ const struct mod_exp_ops *ops = device_get_ops(dev);
+
+ if (!ops->mod_exp)
+ return -ENOSYS;
+
+ return ops->mod_exp(dev, sig, sig_len, node, out);
+}
+
+UCLASS_DRIVER(mod_exp) = {
+ .id = UCLASS_MOD_EXP,
+ .name = "rsa_mod_exp",
+};
OpenPOWER on IntegriCloud