cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rsa.h (1643B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * RSA internal helpers
      4 *
      5 * Copyright (c) 2015, Intel Corporation
      6 * 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 structure
     14 * @n           : RSA modulus raw byte stream
     15 * @e           : RSA public exponent raw byte stream
     16 * @d           : RSA private exponent raw byte stream
     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
     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
     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
     30 */
     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#endif