Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/*
 2 * RSA internal helpers
 3 *
 4 * Copyright (c) 2015, Intel Corporation
 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 *
12 */
13#ifndef _RSA_HELPER_
14#define _RSA_HELPER_
15#include <linux/types.h>
16
17/**
18 * rsa_key - RSA key structure
19 * @n           : RSA modulus raw byte stream
20 * @e           : RSA public exponent raw byte stream
21 * @d           : RSA private exponent raw byte stream
22 * @p           : RSA prime factor p of n raw byte stream
23 * @q           : RSA prime factor q of n raw byte stream
24 * @dp          : RSA exponent d mod (p - 1) raw byte stream
25 * @dq          : RSA exponent d mod (q - 1) raw byte stream
26 * @qinv        : RSA CRT coefficient q^(-1) mod p raw byte stream
27 * @n_sz        : length in bytes of RSA modulus n
28 * @e_sz        : length in bytes of RSA public exponent
29 * @d_sz        : length in bytes of RSA private exponent
30 * @p_sz        : length in bytes of p field
31 * @q_sz        : length in bytes of q field
32 * @dp_sz       : length in bytes of dp field
33 * @dq_sz       : length in bytes of dq field
34 * @qinv_sz     : length in bytes of qinv field
35 */
36struct rsa_key {
37	const u8 *n;
38	const u8 *e;
39	const u8 *d;
40	const u8 *p;
41	const u8 *q;
42	const u8 *dp;
43	const u8 *dq;
44	const u8 *qinv;
45	size_t n_sz;
46	size_t e_sz;
47	size_t d_sz;
48	size_t p_sz;
49	size_t q_sz;
50	size_t dp_sz;
51	size_t dq_sz;
52	size_t qinv_sz;
53};
54
55int rsa_parse_pub_key(struct rsa_key *rsa_key, const void *key,
56		      unsigned int key_len);
57
58int rsa_parse_priv_key(struct rsa_key *rsa_key, const void *key,
59		       unsigned int key_len);
60
61extern struct crypto_template rsa_pkcs1pad_tmpl;
62#endif