2 * Generated by util/mkerr.pl DO NOT EDIT
3 * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
5 * Licensed under the Apache License 2.0 (the "License"). You may not use
6 * this file except in compliance with the License. You can obtain a copy
7 * in the file LICENSE in the source distribution or at
8 * https://www.openssl.org/source/license.html
11 #include <openssl/err.h>
12 #include <openssl/rsaerr.h>
14 #ifndef OPENSSL_NO_ERR
16 static const ERR_STRING_DATA RSA_str_functs
[] = {
17 {ERR_PACK(ERR_LIB_RSA
, RSA_F_CHECK_PADDING_MD
, 0), "check_padding_md"},
18 {ERR_PACK(ERR_LIB_RSA
, RSA_F_ENCODE_PKCS1
, 0), "encode_pkcs1"},
19 {ERR_PACK(ERR_LIB_RSA
, RSA_F_INT_RSA_VERIFY
, 0), "int_rsa_verify"},
20 {ERR_PACK(ERR_LIB_RSA
, RSA_F_OLD_RSA_PRIV_DECODE
, 0),
21 "old_rsa_priv_decode"},
22 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_PSS_INIT
, 0), "pkey_pss_init"},
23 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_RSA_CTRL
, 0), "pkey_rsa_ctrl"},
24 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_RSA_CTRL_STR
, 0), "pkey_rsa_ctrl_str"},
25 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_RSA_SIGN
, 0), "pkey_rsa_sign"},
26 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_RSA_VERIFY
, 0), "pkey_rsa_verify"},
27 {ERR_PACK(ERR_LIB_RSA
, RSA_F_PKEY_RSA_VERIFYRECOVER
, 0),
28 "pkey_rsa_verifyrecover"},
29 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_ALGOR_TO_MD
, 0), "rsa_algor_to_md"},
30 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_BUILTIN_KEYGEN
, 0), "rsa_builtin_keygen"},
31 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_CHECK_KEY
, 0), "RSA_check_key"},
32 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_CHECK_KEY_EX
, 0), "RSA_check_key_ex"},
33 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_CMS_DECRYPT
, 0), "rsa_cms_decrypt"},
34 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_CMS_VERIFY
, 0), "rsa_cms_verify"},
35 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_FIPS186_4_GEN_PROB_PRIMES
, 0),
36 "rsa_fips186_4_gen_prob_primes"},
37 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_ITEM_VERIFY
, 0), "rsa_item_verify"},
38 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_METH_DUP
, 0), "RSA_meth_dup"},
39 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_METH_NEW
, 0), "RSA_meth_new"},
40 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_METH_SET1_NAME
, 0), "RSA_meth_set1_name"},
41 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_MGF1_TO_MD
, 0), ""},
42 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_MULTIP_INFO_NEW
, 0),
43 "rsa_multip_info_new"},
44 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NEW_METHOD
, 0), "RSA_new_method"},
45 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NULL
, 0), ""},
46 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NULL_PRIVATE_DECRYPT
, 0), ""},
47 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NULL_PRIVATE_ENCRYPT
, 0), ""},
48 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NULL_PUBLIC_DECRYPT
, 0), ""},
49 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_NULL_PUBLIC_ENCRYPT
, 0), ""},
50 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_OSSL_PRIVATE_DECRYPT
, 0),
51 "rsa_ossl_private_decrypt"},
52 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_OSSL_PRIVATE_ENCRYPT
, 0),
53 "rsa_ossl_private_encrypt"},
54 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_OSSL_PUBLIC_DECRYPT
, 0),
55 "rsa_ossl_public_decrypt"},
56 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_OSSL_PUBLIC_ENCRYPT
, 0),
57 "rsa_ossl_public_encrypt"},
58 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_NONE
, 0),
59 "RSA_padding_add_none"},
60 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_OAEP
, 0),
61 "RSA_padding_add_PKCS1_OAEP"},
62 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1
, 0),
63 "RSA_padding_add_PKCS1_OAEP_mgf1"},
64 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_PSS
, 0),
65 "RSA_padding_add_PKCS1_PSS"},
66 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1
, 0),
67 "RSA_padding_add_PKCS1_PSS_mgf1"},
68 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1
, 0),
69 "RSA_padding_add_PKCS1_type_1"},
70 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2
, 0),
71 "RSA_padding_add_PKCS1_type_2"},
72 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_SSLV23
, 0),
73 "RSA_padding_add_SSLv23"},
74 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_ADD_X931
, 0),
75 "RSA_padding_add_X931"},
76 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_NONE
, 0),
77 "RSA_padding_check_none"},
78 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP
, 0),
79 "RSA_padding_check_PKCS1_OAEP"},
80 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1
, 0),
81 "RSA_padding_check_PKCS1_OAEP_mgf1"},
82 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1
, 0),
83 "RSA_padding_check_PKCS1_type_1"},
84 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2
, 0),
85 "RSA_padding_check_PKCS1_type_2"},
86 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_SSLV23
, 0),
87 "RSA_padding_check_SSLv23"},
88 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PADDING_CHECK_X931
, 0),
89 "RSA_padding_check_X931"},
90 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PARAM_DECODE
, 0), "rsa_param_decode"},
91 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PRINT
, 0), "RSA_print"},
92 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PRINT_FP
, 0), "RSA_print_fp"},
93 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PRIV_DECODE
, 0), "rsa_priv_decode"},
94 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PRIV_ENCODE
, 0), "rsa_priv_encode"},
95 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PSS_GET_PARAM
, 0), "rsa_pss_get_param"},
96 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PSS_TO_CTX
, 0), "rsa_pss_to_ctx"},
97 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_PUB_DECODE
, 0), "rsa_pub_decode"},
98 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SETUP_BLINDING
, 0), "RSA_setup_blinding"},
99 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SIGN
, 0), "RSA_sign"},
100 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SIGN_ASN1_OCTET_STRING
, 0),
101 "RSA_sign_ASN1_OCTET_STRING"},
102 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SP800_56B_CHECK_KEYPAIR
, 0),
103 "rsa_sp800_56b_check_keypair"},
104 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SP800_56B_CHECK_PUBLIC
, 0),
105 "rsa_sp800_56b_check_public"},
106 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SP800_56B_PAIRWISE_TEST
, 0),
107 "rsa_sp800_56b_pairwise_test"},
108 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_SP800_56B_VALIDATE_STRENGTH
, 0),
109 "rsa_sp800_56b_validate_strength"},
110 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_VERIFY
, 0), "RSA_verify"},
111 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_VERIFY_ASN1_OCTET_STRING
, 0),
112 "RSA_verify_ASN1_OCTET_STRING"},
113 {ERR_PACK(ERR_LIB_RSA
, RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1
, 0),
114 "RSA_verify_PKCS1_PSS_mgf1"},
115 {ERR_PACK(ERR_LIB_RSA
, RSA_F_SETUP_TBUF
, 0), "setup_tbuf"},
119 static const ERR_STRING_DATA RSA_str_reasons
[] = {
120 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_ALGORITHM_MISMATCH
), "algorithm mismatch"},
121 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BAD_E_VALUE
), "bad e value"},
122 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BAD_FIXED_HEADER_DECRYPT
),
123 "bad fixed header decrypt"},
124 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BAD_PAD_BYTE_COUNT
), "bad pad byte count"},
125 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BAD_SIGNATURE
), "bad signature"},
126 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BLOCK_TYPE_IS_NOT_01
),
127 "block type is not 01"},
128 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_BLOCK_TYPE_IS_NOT_02
),
129 "block type is not 02"},
130 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_GREATER_THAN_MOD_LEN
),
131 "data greater than mod len"},
132 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_TOO_LARGE
), "data too large"},
133 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
),
134 "data too large for key size"},
135 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_TOO_LARGE_FOR_MODULUS
),
136 "data too large for modulus"},
137 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_TOO_SMALL
), "data too small"},
138 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
),
139 "data too small for key size"},
140 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DIGEST_DOES_NOT_MATCH
),
141 "digest does not match"},
142 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DIGEST_NOT_ALLOWED
), "digest not allowed"},
143 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
),
144 "digest too big for rsa key"},
145 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DMP1_NOT_CONGRUENT_TO_D
),
146 "dmp1 not congruent to d"},
147 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_DMQ1_NOT_CONGRUENT_TO_D
),
148 "dmq1 not congruent to d"},
149 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_D_E_NOT_CONGRUENT_TO_1
),
150 "d e not congruent to 1"},
151 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_FIRST_OCTET_INVALID
),
152 "first octet invalid"},
153 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
),
154 "illegal or unsupported padding mode"},
155 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_DIGEST
), "invalid digest"},
156 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_DIGEST_LENGTH
),
157 "invalid digest length"},
158 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_HEADER
), "invalid header"},
159 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_KEYPAIR
), "invalid keypair"},
160 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_KEY_LENGTH
), "invalid key length"},
161 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_LABEL
), "invalid label"},
162 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_MESSAGE_LENGTH
),
163 "invalid message length"},
164 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_MGF1_MD
), "invalid mgf1 md"},
165 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_MODULUS
), "invalid modulus"},
166 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_MULTI_PRIME_KEY
),
167 "invalid multi prime key"},
168 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_OAEP_PARAMETERS
),
169 "invalid oaep parameters"},
170 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_PADDING
), "invalid padding"},
171 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_PADDING_MODE
),
172 "invalid padding mode"},
173 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_PSS_PARAMETERS
),
174 "invalid pss parameters"},
175 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_PSS_SALTLEN
),
176 "invalid pss saltlen"},
177 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_REQUEST
), "invalid request"},
178 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_SALT_LENGTH
),
179 "invalid salt length"},
180 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_STRENGTH
), "invalid strength"},
181 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_TRAILER
), "invalid trailer"},
182 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_INVALID_X931_DIGEST
),
183 "invalid x931 digest"},
184 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_IQMP_NOT_INVERSE_OF_Q
),
185 "iqmp not inverse of q"},
186 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_KEY_PRIME_NUM_INVALID
),
187 "key prime num invalid"},
188 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_KEY_SIZE_TOO_SMALL
), "key size too small"},
189 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_LAST_OCTET_INVALID
), "last octet invalid"},
190 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_MGF1_DIGEST_NOT_ALLOWED
),
191 "mgf1 digest not allowed"},
192 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_MODULUS_TOO_LARGE
), "modulus too large"},
193 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
),
194 "mp coefficient not inverse of r"},
195 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
),
196 "mp exponent not congruent to d"},
197 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_MP_R_NOT_PRIME
), "mp r not prime"},
198 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_NO_PUBLIC_EXPONENT
), "no public exponent"},
199 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_NULL_BEFORE_BLOCK_MISSING
),
200 "null before block missing"},
201 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
),
202 "n does not equal product of primes"},
203 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_N_DOES_NOT_EQUAL_P_Q
),
204 "n does not equal p q"},
205 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_OAEP_DECODING_ERROR
),
206 "oaep decoding error"},
207 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
),
208 "operation not supported for this keytype"},
209 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_PADDING_CHECK_FAILED
),
210 "padding check failed"},
211 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_PAIRWISE_TEST_FAILURE
),
212 "pairwise test failure"},
213 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_PKCS_DECODING_ERROR
),
214 "pkcs decoding error"},
215 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_PSS_SALTLEN_TOO_SMALL
),
216 "pss saltlen too small"},
217 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_PUB_EXPONENT_OUT_OF_RANGE
),
218 "pub exponent out of range"},
219 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_P_NOT_PRIME
), "p not prime"},
220 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_Q_NOT_PRIME
), "q not prime"},
221 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
),
222 "rsa operations not supported"},
223 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_SLEN_CHECK_FAILED
),
224 "salt length check failed"},
225 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_SLEN_RECOVERY_FAILED
),
226 "salt length recovery failed"},
227 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_SSLV3_ROLLBACK_ATTACK
),
228 "sslv3 rollback attack"},
229 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
),
230 "the asn1 object identifier is not known for this md"},
231 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNKNOWN_ALGORITHM_TYPE
),
232 "unknown algorithm type"},
233 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNKNOWN_DIGEST
), "unknown digest"},
234 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNKNOWN_MASK_DIGEST
),
235 "unknown mask digest"},
236 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNKNOWN_PADDING_TYPE
),
237 "unknown padding type"},
238 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
),
239 "unsupported encryption type"},
240 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNSUPPORTED_LABEL_SOURCE
),
241 "unsupported label source"},
242 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNSUPPORTED_MASK_ALGORITHM
),
243 "unsupported mask algorithm"},
244 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNSUPPORTED_MASK_PARAMETER
),
245 "unsupported mask parameter"},
246 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_UNSUPPORTED_SIGNATURE_TYPE
),
247 "unsupported signature type"},
248 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_VALUE_MISSING
), "value missing"},
249 {ERR_PACK(ERR_LIB_RSA
, 0, RSA_R_WRONG_SIGNATURE_LENGTH
),
250 "wrong signature length"},
256 int ERR_load_RSA_strings(void)
258 #ifndef OPENSSL_NO_ERR
259 if (ERR_func_error_string(RSA_str_functs
[0].error
) == NULL
) {
260 ERR_load_strings_const(RSA_str_functs
);
261 ERR_load_strings_const(RSA_str_reasons
);