]> git.ipfire.org Git - thirdparty/openssl.git/blob - crypto/rsa/rsa_locl.h
Make the RSA structure opaque
[thirdparty/openssl.git] / crypto / rsa / rsa_locl.h
1 /*
2 * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the OpenSSL licenses, (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 * https://www.openssl.org/source/license.html
8 * or in the file LICENSE in the source distribution.
9 */
10
11 #include <openssl/rsa.h>
12
13 struct rsa_st {
14 /*
15 * The first parameter is used to pickup errors where this is passed
16 * instead of aEVP_PKEY, it is set to 0
17 */
18 int pad;
19 long version;
20 const RSA_METHOD *meth;
21 /* functional reference if 'meth' is ENGINE-provided */
22 ENGINE *engine;
23 BIGNUM *n;
24 BIGNUM *e;
25 BIGNUM *d;
26 BIGNUM *p;
27 BIGNUM *q;
28 BIGNUM *dmp1;
29 BIGNUM *dmq1;
30 BIGNUM *iqmp;
31 /* be careful using this if the RSA structure is shared */
32 CRYPTO_EX_DATA ex_data;
33 int references;
34 int flags;
35 /* Used to cache montgomery values */
36 BN_MONT_CTX *_method_mod_n;
37 BN_MONT_CTX *_method_mod_p;
38 BN_MONT_CTX *_method_mod_q;
39 /*
40 * all BIGNUM values are actually in the following data, if it is not
41 * NULL
42 */
43 char *bignum_data;
44 BN_BLINDING *blinding;
45 BN_BLINDING *mt_blinding;
46 CRYPTO_RWLOCK *lock;
47 };
48
49 extern int int_rsa_verify(int dtype, const unsigned char *m,
50 unsigned int m_len, unsigned char *rm,
51 size_t *prm_len, const unsigned char *sigbuf,
52 size_t siglen, RSA *rsa);