wolfSSL SSL/TLS library, support up to TLS1.3

Dependents:   CyaSSL-Twitter-OAuth4Tw Example-client-tls-cert TwitterReader TweetTest ... more

Committer:
wolfSSL
Date:
Tue May 02 08:44:47 2017 +0000
Revision:
7:481bce714567
wolfSSL3.10.2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfSSL 7:481bce714567 1 /* rsa.h for openSSL */
wolfSSL 7:481bce714567 2
wolfSSL 7:481bce714567 3
wolfSSL 7:481bce714567 4 #ifndef WOLFSSL_RSA_H_
wolfSSL 7:481bce714567 5 #define WOLFSSL_RSA_H_
wolfSSL 7:481bce714567 6
wolfSSL 7:481bce714567 7 #include <wolfssl/openssl/ssl.h>
wolfSSL 7:481bce714567 8 #include <wolfssl/openssl/bn.h>
wolfSSL 7:481bce714567 9
wolfSSL 7:481bce714567 10
wolfSSL 7:481bce714567 11 #ifdef __cplusplus
wolfSSL 7:481bce714567 12 extern "C" {
wolfSSL 7:481bce714567 13 #endif
wolfSSL 7:481bce714567 14
wolfSSL 7:481bce714567 15
wolfSSL 7:481bce714567 16 enum {
wolfSSL 7:481bce714567 17 RSA_PKCS1_PADDING = 1
wolfSSL 7:481bce714567 18 };
wolfSSL 7:481bce714567 19
wolfSSL 7:481bce714567 20 /* rsaTypes */
wolfSSL 7:481bce714567 21 enum {
wolfSSL 7:481bce714567 22 NID_sha256 = 672,
wolfSSL 7:481bce714567 23 NID_sha384 = 673,
wolfSSL 7:481bce714567 24 NID_sha512 = 674
wolfSSL 7:481bce714567 25 };
wolfSSL 7:481bce714567 26
wolfSSL 7:481bce714567 27 struct WOLFSSL_RSA {
wolfSSL 7:481bce714567 28 WOLFSSL_BIGNUM* n;
wolfSSL 7:481bce714567 29 WOLFSSL_BIGNUM* e;
wolfSSL 7:481bce714567 30 WOLFSSL_BIGNUM* d;
wolfSSL 7:481bce714567 31 WOLFSSL_BIGNUM* p;
wolfSSL 7:481bce714567 32 WOLFSSL_BIGNUM* q;
wolfSSL 7:481bce714567 33 WOLFSSL_BIGNUM* dmp1; /* dP */
wolfSSL 7:481bce714567 34 WOLFSSL_BIGNUM* dmq1; /* dQ */
wolfSSL 7:481bce714567 35 WOLFSSL_BIGNUM* iqmp; /* u */
wolfSSL 7:481bce714567 36 void* internal; /* our RSA */
wolfSSL 7:481bce714567 37 char inSet; /* internal set from external ? */
wolfSSL 7:481bce714567 38 char exSet; /* external set from internal ? */
wolfSSL 7:481bce714567 39 };
wolfSSL 7:481bce714567 40
wolfSSL 7:481bce714567 41
wolfSSL 7:481bce714567 42 WOLFSSL_API WOLFSSL_RSA* wolfSSL_RSA_new(void);
wolfSSL 7:481bce714567 43 WOLFSSL_API void wolfSSL_RSA_free(WOLFSSL_RSA*);
wolfSSL 7:481bce714567 44
wolfSSL 7:481bce714567 45 WOLFSSL_API int wolfSSL_RSA_generate_key_ex(WOLFSSL_RSA*, int bits, WOLFSSL_BIGNUM*,
wolfSSL 7:481bce714567 46 void* cb);
wolfSSL 7:481bce714567 47
wolfSSL 7:481bce714567 48 WOLFSSL_API int wolfSSL_RSA_blinding_on(WOLFSSL_RSA*, WOLFSSL_BN_CTX*);
wolfSSL 7:481bce714567 49 WOLFSSL_API int wolfSSL_RSA_public_encrypt(int len, unsigned char* fr,
wolfSSL 7:481bce714567 50 unsigned char* to, WOLFSSL_RSA*, int padding);
wolfSSL 7:481bce714567 51 WOLFSSL_API int wolfSSL_RSA_private_decrypt(int len, unsigned char* fr,
wolfSSL 7:481bce714567 52 unsigned char* to, WOLFSSL_RSA*, int padding);
wolfSSL 7:481bce714567 53
wolfSSL 7:481bce714567 54 WOLFSSL_API int wolfSSL_RSA_size(const WOLFSSL_RSA*);
wolfSSL 7:481bce714567 55 WOLFSSL_API int wolfSSL_RSA_sign(int type, const unsigned char* m,
wolfSSL 7:481bce714567 56 unsigned int mLen, unsigned char* sigRet,
wolfSSL 7:481bce714567 57 unsigned int* sigLen, WOLFSSL_RSA*);
wolfSSL 7:481bce714567 58 WOLFSSL_API int wolfSSL_RSA_public_decrypt(int flen, unsigned char* from,
wolfSSL 7:481bce714567 59 unsigned char* to, WOLFSSL_RSA*, int padding);
wolfSSL 7:481bce714567 60 WOLFSSL_API int wolfSSL_RSA_GenAdd(WOLFSSL_RSA*);
wolfSSL 7:481bce714567 61 WOLFSSL_API int wolfSSL_RSA_LoadDer(WOLFSSL_RSA*, const unsigned char*, int sz);
wolfSSL 7:481bce714567 62
wolfSSL 7:481bce714567 63
wolfSSL 7:481bce714567 64 #define RSA_new wolfSSL_RSA_new
wolfSSL 7:481bce714567 65 #define RSA_free wolfSSL_RSA_free
wolfSSL 7:481bce714567 66
wolfSSL 7:481bce714567 67 #define RSA_generate_key_ex wolfSSL_RSA_generate_key_ex
wolfSSL 7:481bce714567 68
wolfSSL 7:481bce714567 69 #define RSA_blinding_on wolfSSL_RSA_blinding_on
wolfSSL 7:481bce714567 70 #define RSA_public_encrypt wolfSSL_RSA_public_encrypt
wolfSSL 7:481bce714567 71 #define RSA_private_decrypt wolfSSL_RSA_private_decrypt
wolfSSL 7:481bce714567 72
wolfSSL 7:481bce714567 73 #define RSA_size wolfSSL_RSA_size
wolfSSL 7:481bce714567 74 #define RSA_sign wolfSSL_RSA_sign
wolfSSL 7:481bce714567 75 #define RSA_public_decrypt wolfSSL_RSA_public_decrypt
wolfSSL 7:481bce714567 76
wolfSSL 7:481bce714567 77
wolfSSL 7:481bce714567 78 #ifdef __cplusplus
wolfSSL 7:481bce714567 79 } /* extern "C" */
wolfSSL 7:481bce714567 80 #endif
wolfSSL 7:481bce714567 81
wolfSSL 7:481bce714567 82 #endif /* header */
wolfSSL 7:481bce714567 83