diff options
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa.h')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/lib/libcrypto/rsa/rsa.h b/src/lib/libcrypto/rsa/rsa.h index 9230b2fcc9..f9f9b5cfe9 100644 --- a/src/lib/libcrypto/rsa/rsa.h +++ b/src/lib/libcrypto/rsa/rsa.h | |||
@@ -91,6 +91,18 @@ typedef struct rsa_meth_st | |||
91 | int (*finish)(RSA *rsa); /* called at free */ | 91 | int (*finish)(RSA *rsa); /* called at free */ |
92 | int flags; /* RSA_METHOD_FLAG_* things */ | 92 | int flags; /* RSA_METHOD_FLAG_* things */ |
93 | char *app_data; /* may be needed! */ | 93 | char *app_data; /* may be needed! */ |
94 | /* New sign and verify functions: some libraries don't allow arbitrary data | ||
95 | * to be signed/verified: this allows them to be used. Note: for this to work | ||
96 | * the RSA_public_decrypt() and RSA_private_encrypt() should *NOT* be used | ||
97 | * RSA_sign(), RSA_verify() should be used instead. Note: for backwards | ||
98 | * compatibility this functionality is only enabled if the RSA_FLAG_SIGN_VER | ||
99 | * option is set in 'flags'. | ||
100 | */ | ||
101 | int (*rsa_sign)(int type, unsigned char *m, unsigned int m_len, | ||
102 | unsigned char *sigret, unsigned int *siglen, RSA *rsa); | ||
103 | int (*rsa_verify)(int dtype, unsigned char *m, unsigned int m_len, | ||
104 | unsigned char *sigbuf, unsigned int siglen, RSA *rsa); | ||
105 | |||
94 | } RSA_METHOD; | 106 | } RSA_METHOD; |
95 | 107 | ||
96 | struct rsa_st | 108 | struct rsa_st |
@@ -140,12 +152,16 @@ struct rsa_st | |||
140 | */ | 152 | */ |
141 | #define RSA_FLAG_EXT_PKEY 0x20 | 153 | #define RSA_FLAG_EXT_PKEY 0x20 |
142 | 154 | ||
155 | /* This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify functions. | ||
156 | */ | ||
157 | #define RSA_FLAG_SIGN_VER 0x40 | ||
158 | |||
143 | #define RSA_PKCS1_PADDING 1 | 159 | #define RSA_PKCS1_PADDING 1 |
144 | #define RSA_SSLV23_PADDING 2 | 160 | #define RSA_SSLV23_PADDING 2 |
145 | #define RSA_NO_PADDING 3 | 161 | #define RSA_NO_PADDING 3 |
146 | #define RSA_PKCS1_OAEP_PADDING 4 | 162 | #define RSA_PKCS1_OAEP_PADDING 4 |
147 | 163 | ||
148 | #define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,(char *)arg) | 164 | #define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) |
149 | #define RSA_get_app_data(s) RSA_get_ex_data(s,0) | 165 | #define RSA_get_app_data(s) RSA_get_ex_data(s,0) |
150 | 166 | ||
151 | RSA * RSA_new(void); | 167 | RSA * RSA_new(void); |
@@ -181,6 +197,8 @@ RSA_METHOD *RSA_PKCS1_RSAref(void); | |||
181 | /* these are the actual SSLeay RSA functions */ | 197 | /* these are the actual SSLeay RSA functions */ |
182 | RSA_METHOD *RSA_PKCS1_SSLeay(void); | 198 | RSA_METHOD *RSA_PKCS1_SSLeay(void); |
183 | 199 | ||
200 | RSA_METHOD *RSA_null_method(void); | ||
201 | |||
184 | void ERR_load_RSA_strings(void ); | 202 | void ERR_load_RSA_strings(void ); |
185 | 203 | ||
186 | RSA * d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length); | 204 | RSA * d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length); |
@@ -241,10 +259,10 @@ int RSA_padding_add_none(unsigned char *to,int tlen, | |||
241 | int RSA_padding_check_none(unsigned char *to,int tlen, | 259 | int RSA_padding_check_none(unsigned char *to,int tlen, |
242 | unsigned char *f,int fl,int rsa_len); | 260 | unsigned char *f,int fl,int rsa_len); |
243 | 261 | ||
244 | int RSA_get_ex_new_index(long argl, char *argp, int (*new_func)(), | 262 | int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, |
245 | int (*dup_func)(), void (*free_func)()); | 263 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); |
246 | int RSA_set_ex_data(RSA *r,int idx,char *arg); | 264 | int RSA_set_ex_data(RSA *r,int idx,void *arg); |
247 | char *RSA_get_ex_data(RSA *r, int idx); | 265 | void *RSA_get_ex_data(RSA *r, int idx); |
248 | 266 | ||
249 | /* BEGIN ERROR CODES */ | 267 | /* BEGIN ERROR CODES */ |
250 | /* The following lines are auto generated by the script mkerr.pl. Any changes | 268 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
@@ -262,6 +280,7 @@ char *RSA_get_ex_data(RSA *r, int idx); | |||
262 | #define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 | 280 | #define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 |
263 | #define RSA_F_RSA_GENERATE_KEY 105 | 281 | #define RSA_F_RSA_GENERATE_KEY 105 |
264 | #define RSA_F_RSA_NEW_METHOD 106 | 282 | #define RSA_F_RSA_NEW_METHOD 106 |
283 | #define RSA_F_RSA_NULL 124 | ||
265 | #define RSA_F_RSA_PADDING_ADD_NONE 107 | 284 | #define RSA_F_RSA_PADDING_ADD_NONE 107 |
266 | #define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 | 285 | #define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 |
267 | #define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 | 286 | #define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 |
@@ -292,10 +311,11 @@ char *RSA_get_ex_data(RSA *r, int idx); | |||
292 | #define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 | 311 | #define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 |
293 | #define RSA_R_DATA_TOO_SMALL 111 | 312 | #define RSA_R_DATA_TOO_SMALL 111 |
294 | #define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 | 313 | #define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 |
295 | #define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 | ||
296 | #define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 | 314 | #define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 |
297 | #define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 | 315 | #define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 |
298 | #define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 | 316 | #define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 |
317 | #define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 | ||
318 | #define RSA_R_INVALID_MESSAGE_LENGTH 131 | ||
299 | #define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 | 319 | #define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 |
300 | #define RSA_R_KEY_SIZE_TOO_SMALL 120 | 320 | #define RSA_R_KEY_SIZE_TOO_SMALL 120 |
301 | #define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 | 321 | #define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 |
@@ -304,6 +324,7 @@ char *RSA_get_ex_data(RSA *r, int idx); | |||
304 | #define RSA_R_PADDING_CHECK_FAILED 114 | 324 | #define RSA_R_PADDING_CHECK_FAILED 114 |
305 | #define RSA_R_P_NOT_PRIME 128 | 325 | #define RSA_R_P_NOT_PRIME 128 |
306 | #define RSA_R_Q_NOT_PRIME 129 | 326 | #define RSA_R_Q_NOT_PRIME 129 |
327 | #define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 | ||
307 | #define RSA_R_SSLV3_ROLLBACK_ATTACK 115 | 328 | #define RSA_R_SSLV3_ROLLBACK_ATTACK 115 |
308 | #define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 | 329 | #define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 |
309 | #define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 | 330 | #define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 |