Add functions returning security bits.
[openssl.git] / crypto / rsa / rsa.h
index 38771fbafb69940dd5991d3095e5f2656e07ec53..543deaf572d2e381b740d8eddacc06d9f636637d 100644 (file)
@@ -307,6 +307,7 @@ 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
@@ -365,6 +366,15 @@ typedef struct rsa_pss_params_st
 
 DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS)
 
+typedef struct rsa_oaep_params_st
+       {
+       X509_ALGOR *hashFunc;
+       X509_ALGOR *maskGenFunc;
+       X509_ALGOR *pSourceFunc;
+       } RSA_OAEP_PARAMS;
+
+DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS)
+
 #ifndef OPENSSL_NO_FP_API
 int    RSA_print_fp(FILE *fp, const RSA *r,int offset);
 #endif
@@ -509,8 +519,10 @@ void ERR_load_RSA_strings(void);
 #define RSA_F_PKEY_RSA_CTRL_STR                                 144
 #define RSA_F_PKEY_RSA_SIGN                             142
 #define RSA_F_PKEY_RSA_VERIFYRECOVER                    141
+#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_CMS_DECRYPT                           159
 #define RSA_F_RSA_EAY_PRIVATE_DECRYPT                   101
 #define RSA_F_RSA_EAY_PRIVATE_ENCRYPT                   102
 #define RSA_F_RSA_EAY_PUBLIC_DECRYPT                    103
@@ -518,6 +530,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_F_RSA_GENERATE_KEY                          105
 #define RSA_F_RSA_ITEM_VERIFY                           148
 #define RSA_F_RSA_MEMORY_LOCK                           130
+#define RSA_F_RSA_MGF1_TO_MD                            157
 #define RSA_F_RSA_NEW_METHOD                            106
 #define RSA_F_RSA_NULL                                  124
 #define RSA_F_RSA_NULL_MOD_EXP                          131
@@ -525,6 +538,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_F_RSA_NULL_PRIVATE_ENCRYPT                  133
 #define RSA_F_RSA_NULL_PUBLIC_DECRYPT                   134
 #define RSA_F_RSA_NULL_PUBLIC_ENCRYPT                   135
+#define RSA_F_RSA_OAEP_TO_CTX                           158
 #define RSA_F_RSA_PADDING_ADD_NONE                      107
 #define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP                121
 #define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1           154
@@ -545,6 +559,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_F_RSA_PRINT_FP                              116
 #define RSA_F_RSA_PRIV_DECODE                           137
 #define RSA_F_RSA_PRIV_ENCODE                           138
+#define RSA_F_RSA_PSS_TO_CTX                            155
 #define RSA_F_RSA_PUB_DECODE                            139
 #define RSA_F_RSA_SETUP_BLINDING                        136
 #define RSA_F_RSA_SIGN                                  117
@@ -567,6 +582,7 @@ void ERR_load_RSA_strings(void);
 #define RSA_R_DATA_TOO_LARGE_FOR_MODULUS                132
 #define RSA_R_DATA_TOO_SMALL                            111
 #define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE               122
+#define RSA_R_DIGEST_DOES_NOT_MATCH                     158
 #define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY                112
 #define RSA_R_DMP1_NOT_CONGRUENT_TO_D                   124
 #define RSA_R_DMQ1_NOT_CONGRUENT_TO_D                   125
@@ -577,8 +593,10 @@ void ERR_load_RSA_strings(void);
 #define RSA_R_INVALID_DIGEST_LENGTH                     143
 #define RSA_R_INVALID_HEADER                            137
 #define RSA_R_INVALID_KEYBITS                           145
+#define RSA_R_INVALID_LABEL                             160
 #define RSA_R_INVALID_MESSAGE_LENGTH                    131
 #define RSA_R_INVALID_MGF1_MD                           156
+#define RSA_R_INVALID_OAEP_PARAMETERS                   161
 #define RSA_R_INVALID_PADDING                           138
 #define RSA_R_INVALID_PADDING_MODE                      141
 #define RSA_R_INVALID_PSS_PARAMETERS                    149
@@ -604,9 +622,12 @@ 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_MASK_DIGEST                       151
 #define RSA_R_UNKNOWN_PADDING_TYPE                      118
 #define RSA_R_UNKNOWN_PSS_DIGEST                        152
+#define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE               162
+#define RSA_R_UNSUPPORTED_LABEL_SOURCE                  163
 #define RSA_R_UNSUPPORTED_MASK_ALGORITHM                153
 #define RSA_R_UNSUPPORTED_MASK_PARAMETER                154
 #define RSA_R_UNSUPPORTED_SIGNATURE_TYPE                155