forked from Minki/linux
3d5b1ecdea
This patch adds PKCS#1 v1.5 standard RSA padding as a separate template. This way an RSA cipher with padding can be obtained by instantiating "pkcs1pad(rsa)". The reason for adding this is that RSA is almost never used without this padding (or OAEP) so it will be needed for either certificate work in the kernel or the userspace, and I also hear that it is likely implemented by hardware RSA in which case hardware implementations of the whole of pkcs1pad(rsa) can be provided. Signed-off-by: Andrew Zaborowski <andrew.zaborowski@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
33 lines
791 B
C
33 lines
791 B
C
/*
|
|
* RSA internal helpers
|
|
*
|
|
* Copyright (c) 2015, Intel Corporation
|
|
* Authors: Tadeusz Struk <tadeusz.struk@intel.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
* Software Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
*/
|
|
#ifndef _RSA_HELPER_
|
|
#define _RSA_HELPER_
|
|
#include <linux/mpi.h>
|
|
|
|
struct rsa_key {
|
|
MPI n;
|
|
MPI e;
|
|
MPI d;
|
|
};
|
|
|
|
int rsa_parse_pub_key(struct rsa_key *rsa_key, const void *key,
|
|
unsigned int key_len);
|
|
|
|
int rsa_parse_priv_key(struct rsa_key *rsa_key, const void *key,
|
|
unsigned int key_len);
|
|
|
|
void rsa_free_key(struct rsa_key *rsa_key);
|
|
|
|
extern struct crypto_template rsa_pkcs1pad_tmpl;
|
|
#endif
|