Fix strange formatting by indent
[openssl.git] / crypto / rsa / rsa.h
index 41a052a3ee634d5aa89e21a3db651f7391a2f5a9..47bbf9bb4947ebeebbe0b03532619ab34d90afa8 100644 (file)
@@ -66,7 +66,7 @@
 #endif
 #include <openssl/crypto.h>
 #include <openssl/ossl_typ.h>
-#ifndef OPENSSL_NO_DEPRECATED
+#ifdef OPENSSL_USE_DEPRECATED
 #include <openssl/bn.h>
 #endif
 
@@ -97,14 +97,20 @@ struct rsa_meth_st
        int (*rsa_priv_dec)(int flen,const unsigned char *from,
                            unsigned char *to,
                            RSA *rsa,int padding);
-       int (*rsa_mod_exp)(BIGNUM *r0,const BIGNUM *I,RSA *rsa,BN_CTX *ctx); /* Can be null */
+       /* Can be null */
+       int (*rsa_mod_exp)(BIGNUM *r0,const BIGNUM *I,RSA *rsa,BN_CTX *ctx);
+       /* Can be null */
        int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
                          const BIGNUM *m, BN_CTX *ctx,
-                         BN_MONT_CTX *m_ctx); /* Can be null */
-       int (*init)(RSA *rsa);          /* called at new */
-       int (*finish)(RSA *rsa);        /* called at free */
-       int flags;                      /* RSA_METHOD_FLAG_* things */
-       char *app_data;                 /* may be needed! */
+                         BN_MONT_CTX *m_ctx);
+       /* called at new */
+       int (*init)(RSA *rsa);
+       /* called at free */
+       int (*finish)(RSA *rsa);
+       /* RSA_METHOD_FLAG_* things */
+       int flags;
+       /* may be needed! */
+       char *app_data;
 /* New sign and verify functions: some libraries don't allow arbitrary data
  * to be signed/verified: this allows them to be used. Note: for this to work
  * the RSA_public_decrypt() and RSA_private_encrypt() should *NOT* be used
@@ -170,7 +176,9 @@ struct rsa_st
 # define OPENSSL_RSA_SMALL_MODULUS_BITS        3072
 #endif
 #ifndef OPENSSL_RSA_MAX_PUBEXP_BITS
-# define OPENSSL_RSA_MAX_PUBEXP_BITS   64 /* exponent limit enforced for "large" modulus only */
+
+/* exponent limit enforced for "large" modulus only */
+# define OPENSSL_RSA_MAX_PUBEXP_BITS   64
 #endif
 
 #define RSA_3  0x3L
@@ -193,30 +201,36 @@ struct rsa_st
  */
 #define RSA_FLAG_SIGN_VER              0x0040
 
-#define RSA_FLAG_NO_BLINDING           0x0080 /* new with 0.9.6j and 0.9.7b; the built-in
-                                                * RSA implementation now uses blinding by
-                                                * default (ignoring RSA_FLAG_BLINDING),
-                                                * but other engines might not need it
-                                                */
-#define RSA_FLAG_NO_CONSTTIME          0x0100 /* new with 0.9.8f; the built-in RSA
-                                               * implementation now uses constant time
-                                               * operations by default in private key operations,
-                                               * e.g., constant time modular exponentiation, 
-                                                * modular inverse without leaking branches, 
-                                                * division without leaking branches. This 
-                                                * flag disables these constant time 
-                                                * operations and results in faster RSA 
-                                                * private key operations.
-                                                */ 
-#ifndef OPENSSL_NO_DEPRECATED
-#define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME /* deprecated name for the flag*/
-                                                /* new with 0.9.7h; the built-in RSA
-                                                * implementation now uses constant time
-                                                * modular exponentiation for secret exponents
-                                                * by default. This flag causes the
-                                                * faster variable sliding window method to
-                                                * be used for all exponents.
-                                                */
+/*
+ * new with 0.9.6j and 0.9.7b; the built-in
+ * RSA implementation now uses blinding by
+ * default (ignoring RSA_FLAG_BLINDING),
+ * but other engines might not need it
+ */
+#define RSA_FLAG_NO_BLINDING           0x0080
+/*
+ * new with 0.9.8f; the built-in RSA
+ * implementation now uses constant time
+ * operations by default in private key operations,
+ * e.g., constant time modular exponentiation, 
+ * modular inverse without leaking branches, 
+ * division without leaking branches. This 
+ * flag disables these constant time 
+ * operations and results in faster RSA 
+ * private key operations.
+ */ 
+#define RSA_FLAG_NO_CONSTTIME          0x0100
+#ifdef OPENSSL_USE_DEPRECATED
+/* deprecated name for the flag*/
+/*
+ * new with 0.9.7h; the built-in RSA
+ * implementation now uses constant time
+ * modular exponentiation for secret exponents
+ * by default. This flag causes the
+ * faster variable sliding window method to
+ * be used for all exponents.
+ */
+#define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME 
 #endif
 
 
@@ -307,12 +321,13 @@ struct rsa_st
 RSA *  RSA_new(void);
 RSA *  RSA_new_method(ENGINE *engine);
 int    RSA_size(const RSA *rsa);
+int    RSA_security_bits(const RSA *rsa);
 
 /* Deprecated version */
-#ifndef OPENSSL_NO_DEPRECATED
-RSA *  RSA_generate_key(int bits, unsigned long e,void
-               (*callback)(int,int,void *),void *cb_arg);
-#endif /* !defined(OPENSSL_NO_DEPRECATED) */
+#ifdef OPENSSL_USE_DEPRECATED
+DECLARE_DEPRECATED(RSA *       RSA_generate_key(int bits, unsigned long e,void
+               (*callback)(int,int,void *),void *cb_arg));
+#endif /* defined(OPENSSL_USE_DEPRECATED) */
 
 /* New version */
 int    RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
@@ -324,6 +339,7 @@ int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, BIGNUM *q2,
 int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, BN_GENCB *cb);
 
 int    RSA_check_key(const RSA *);
+int    RSA_check_key_ex(const RSA *, BN_GENCB *cb);
        /* next 4 return -1 on error */
 int    RSA_public_encrypt(int flen, const unsigned char *from,
                unsigned char *to, RSA *rsa,int padding);
@@ -374,7 +390,7 @@ typedef struct rsa_oaep_params_st
 
 DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS)
 
-#ifndef OPENSSL_NO_FP_API
+#ifndef OPENSSL_NO_STDIO
 int    RSA_print_fp(FILE *fp, const RSA *r,int offset);
 #endif
 
@@ -521,6 +537,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_F_RSA_ALGOR_TO_MD                           156
 #define RSA_F_RSA_BUILTIN_KEYGEN                        129
 #define RSA_F_RSA_CHECK_KEY                             123
+#define RSA_F_RSA_CHECK_KEY_EX                          160
 #define RSA_F_RSA_CMS_DECRYPT                           159
 #define RSA_F_RSA_EAY_PRIVATE_DECRYPT                   101
 #define RSA_F_RSA_EAY_PRIVATE_ENCRYPT                   102
@@ -613,6 +630,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_R_OAEP_DECODING_ERROR                       121
 #define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE  148
 #define RSA_R_PADDING_CHECK_FAILED                      114
+#define RSA_R_PKCS_DECODING_ERROR                       159
 #define RSA_R_P_NOT_PRIME                               128
 #define RSA_R_Q_NOT_PRIME                               129
 #define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED              130
@@ -621,7 +639,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_R_SSLV3_ROLLBACK_ATTACK                     115
 #define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116
 #define RSA_R_UNKNOWN_ALGORITHM_TYPE                    117
-#define RSA_R_UNKNOWN_DIGEST                            159
+#define RSA_R_UNKNOWN_DIGEST                            166
 #define RSA_R_UNKNOWN_MASK_DIGEST                       151
 #define RSA_R_UNKNOWN_PADDING_TYPE                      118
 #define RSA_R_UNKNOWN_PSS_DIGEST                        152