xref: /rk3399_rockchip-uboot/drivers/crypto/rsa_mod_exp/mod_exp_uclass.c (revision e1cc4d31f889428a4ca73120951389c756404184)
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