1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 2 /* 1 /* 3 * RSA internal helpers 2 * RSA internal helpers 4 * 3 * 5 * Copyright (c) 2015, Intel Corporation 4 * Copyright (c) 2015, Intel Corporation 6 * Authors: Tadeusz Struk <tadeusz.struk@intel 5 * Authors: Tadeusz Struk <tadeusz.struk@intel.com> >> 6 * >> 7 * This program is free software; you can redistribute it and/or modify it >> 8 * under the terms of the GNU General Public License as published by the Free >> 9 * Software Foundation; either version 2 of the License, or (at your option) >> 10 * any later version. >> 11 * 7 */ 12 */ 8 #ifndef _RSA_HELPER_ 13 #ifndef _RSA_HELPER_ 9 #define _RSA_HELPER_ 14 #define _RSA_HELPER_ 10 #include <linux/types.h> !! 15 #include <linux/mpi.h> 11 16 12 /** << 13 * rsa_key - RSA key structure << 14 * @n : RSA modulus raw byte stream << 15 * @e : RSA public exponent raw byte << 16 * @d : RSA private exponent raw byt << 17 * @p : RSA prime factor p of n raw << 18 * @q : RSA prime factor q of n raw << 19 * @dp : RSA exponent d mod (p - 1) r << 20 * @dq : RSA exponent d mod (q - 1) r << 21 * @qinv : RSA CRT coefficient q^(-1) m << 22 * @n_sz : length in bytes of RSA modul << 23 * @e_sz : length in bytes of RSA publi << 24 * @d_sz : length in bytes of RSA priva << 25 * @p_sz : length in bytes of p field << 26 * @q_sz : length in bytes of q field << 27 * @dp_sz : length in bytes of dp field << 28 * @dq_sz : length in bytes of dq field << 29 * @qinv_sz : length in bytes of qinv fiel << 30 */ << 31 struct rsa_key { 17 struct rsa_key { 32 const u8 *n; !! 18 MPI n; 33 const u8 *e; !! 19 MPI e; 34 const u8 *d; !! 20 MPI 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 }; 21 }; 49 22 50 int rsa_parse_pub_key(struct rsa_key *rsa_key, 23 int rsa_parse_pub_key(struct rsa_key *rsa_key, const void *key, 51 unsigned int key_len); 24 unsigned int key_len); 52 25 53 int rsa_parse_priv_key(struct rsa_key *rsa_key 26 int rsa_parse_priv_key(struct rsa_key *rsa_key, const void *key, 54 unsigned int key_len); 27 unsigned int key_len); 55 28 56 extern struct crypto_template rsa_pkcs1pad_tmp !! 29 void rsa_free_key(struct rsa_key *rsa_key); 57 #endif 30 #endif 58 31
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.