1*31d2b4fdSRuchika Gupta /*
2*31d2b4fdSRuchika Gupta * (C) Copyright 2014 Freescale Semiconductor, Inc
3*31d2b4fdSRuchika Gupta * Author: Ruchika Gupta <ruchika.gupta@freescale.com>
4*31d2b4fdSRuchika Gupta *
5*31d2b4fdSRuchika Gupta * SPDX-License-Identifier: GPL-2.0+
6*31d2b4fdSRuchika Gupta */
7*31d2b4fdSRuchika Gupta
8*31d2b4fdSRuchika Gupta #include <common.h>
9*31d2b4fdSRuchika Gupta #include <dm.h>
10*31d2b4fdSRuchika Gupta #include <u-boot/rsa-mod-exp.h>
11*31d2b4fdSRuchika Gupta #include <errno.h>
12*31d2b4fdSRuchika Gupta #include <fdtdec.h>
13*31d2b4fdSRuchika Gupta #include <malloc.h>
14*31d2b4fdSRuchika Gupta #include <asm/io.h>
15*31d2b4fdSRuchika Gupta #include <linux/list.h>
16*31d2b4fdSRuchika Gupta
rsa_mod_exp(struct udevice * dev,const uint8_t * sig,uint32_t sig_len,struct key_prop * node,uint8_t * out)17*31d2b4fdSRuchika Gupta int rsa_mod_exp(struct udevice *dev, const uint8_t *sig, uint32_t sig_len,
18*31d2b4fdSRuchika Gupta struct key_prop *node, uint8_t *out)
19*31d2b4fdSRuchika Gupta {
20*31d2b4fdSRuchika Gupta const struct mod_exp_ops *ops = device_get_ops(dev);
21*31d2b4fdSRuchika Gupta
22*31d2b4fdSRuchika Gupta if (!ops->mod_exp)
23*31d2b4fdSRuchika Gupta return -ENOSYS;
24*31d2b4fdSRuchika Gupta
25*31d2b4fdSRuchika Gupta return ops->mod_exp(dev, sig, sig_len, node, out);
26*31d2b4fdSRuchika Gupta }
27*31d2b4fdSRuchika Gupta
28*31d2b4fdSRuchika Gupta UCLASS_DRIVER(mod_exp) = {
29*31d2b4fdSRuchika Gupta .id = UCLASS_MOD_EXP,
30*31d2b4fdSRuchika Gupta .name = "rsa_mod_exp",
31*31d2b4fdSRuchika Gupta };
32