]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - include/crypto/internal/rsa.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
[mirror_ubuntu-eoan-kernel.git] / include / crypto / internal / rsa.h
CommitLineData
2874c5fd 1/* SPDX-License-Identifier: GPL-2.0-or-later */
cfc2bb32
TS
2/*
3 * RSA internal helpers
4 *
5 * Copyright (c) 2015, Intel Corporation
6 * Authors: Tadeusz Struk <tadeusz.struk@intel.com>
cfc2bb32
TS
7 */
8#ifndef _RSA_HELPER_
9#define _RSA_HELPER_
5a7de973 10#include <linux/types.h>
cfc2bb32 11
5a7de973
TA
12/**
13 * rsa_key - RSA key structure
14 * @n : RSA modulus raw byte stream
15 * @e : RSA public exponent raw byte stream
16 * @d : RSA private exponent raw byte stream
8be0b84e
SB
17 * @p : RSA prime factor p of n raw byte stream
18 * @q : RSA prime factor q of n raw byte stream
19 * @dp : RSA exponent d mod (p - 1) raw byte stream
20 * @dq : RSA exponent d mod (q - 1) raw byte stream
21 * @qinv : RSA CRT coefficient q^(-1) mod p raw byte stream
5a7de973
TA
22 * @n_sz : length in bytes of RSA modulus n
23 * @e_sz : length in bytes of RSA public exponent
24 * @d_sz : length in bytes of RSA private exponent
8be0b84e
SB
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 field
5a7de973 30 */
cfc2bb32 31struct rsa_key {
5a7de973
TA
32 const u8 *n;
33 const u8 *e;
34 const u8 *d;
8be0b84e
SB
35 const u8 *p;
36 const u8 *q;
37 const u8 *dp;
38 const u8 *dq;
39 const u8 *qinv;
5a7de973
TA
40 size_t n_sz;
41 size_t e_sz;
42 size_t d_sz;
8be0b84e
SB
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;
cfc2bb32
TS
48};
49
22287b0b
TS
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);
cfc2bb32 55
3d5b1ecd 56extern struct crypto_template rsa_pkcs1pad_tmpl;
cfc2bb32 57#endif