brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · e870133 Raw
58 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * RSA internal helpers4 *5 * Copyright (c) 2015, Intel Corporation6 * Authors: Tadeusz Struk <tadeusz.struk@intel.com>7 */8#ifndef _RSA_HELPER_9#define _RSA_HELPER_10#include <linux/types.h>11 12/**13 * rsa_key - RSA key structure14 * @n           : RSA modulus raw byte stream15 * @e           : RSA public exponent raw byte stream16 * @d           : RSA private exponent raw byte stream17 * @p           : RSA prime factor p of n raw byte stream18 * @q           : RSA prime factor q of n raw byte stream19 * @dp          : RSA exponent d mod (p - 1) raw byte stream20 * @dq          : RSA exponent d mod (q - 1) raw byte stream21 * @qinv        : RSA CRT coefficient q^(-1) mod p raw byte stream22 * @n_sz        : length in bytes of RSA modulus n23 * @e_sz        : length in bytes of RSA public exponent24 * @d_sz        : length in bytes of RSA private exponent25 * @p_sz        : length in bytes of p field26 * @q_sz        : length in bytes of q field27 * @dp_sz       : length in bytes of dp field28 * @dq_sz       : length in bytes of dq field29 * @qinv_sz     : length in bytes of qinv field30 */31struct rsa_key {32	const u8 *n;33	const u8 *e;34	const u8 *d;35	const u8 *p;36	const u8 *q;37	const u8 *dp;38	const u8 *dq;39	const u8 *qinv;40	size_t n_sz;41	size_t e_sz;42	size_t d_sz;43	size_t p_sz;44	size_t q_sz;45	size_t dp_sz;46	size_t dq_sz;47	size_t qinv_sz;48};49 50int rsa_parse_pub_key(struct rsa_key *rsa_key, const void *key,51		      unsigned int key_len);52 53int rsa_parse_priv_key(struct rsa_key *rsa_key, const void *key,54		       unsigned int key_len);55 56extern struct crypto_template rsa_pkcs1pad_tmpl;57#endif58