openssl_rsa_pss_verify 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/ext/openssl_rsa_pss_verify/extconf.rb +0 -8
  2. data/lib/openssl_rsa_pss_verify/version.rb +1 -1
  3. metadata +1 -97
  4. data/vendor/openssl/include/openssl/aes.h +0 -147
  5. data/vendor/openssl/include/openssl/asn1.h +0 -1404
  6. data/vendor/openssl/include/openssl/asn1_mac.h +0 -578
  7. data/vendor/openssl/include/openssl/asn1t.h +0 -960
  8. data/vendor/openssl/include/openssl/bio.h +0 -847
  9. data/vendor/openssl/include/openssl/blowfish.h +0 -129
  10. data/vendor/openssl/include/openssl/bn.h +0 -891
  11. data/vendor/openssl/include/openssl/buffer.h +0 -119
  12. data/vendor/openssl/include/openssl/camellia.h +0 -130
  13. data/vendor/openssl/include/openssl/cast.h +0 -107
  14. data/vendor/openssl/include/openssl/cmac.h +0 -82
  15. data/vendor/openssl/include/openssl/cms.h +0 -501
  16. data/vendor/openssl/include/openssl/comp.h +0 -80
  17. data/vendor/openssl/include/openssl/conf.h +0 -263
  18. data/vendor/openssl/include/openssl/conf_api.h +0 -89
  19. data/vendor/openssl/include/openssl/crypto.h +0 -611
  20. data/vendor/openssl/include/openssl/des.h +0 -248
  21. data/vendor/openssl/include/openssl/des_old.h +0 -446
  22. data/vendor/openssl/include/openssl/dh.h +0 -280
  23. data/vendor/openssl/include/openssl/dsa.h +0 -327
  24. data/vendor/openssl/include/openssl/dso.h +0 -409
  25. data/vendor/openssl/include/openssl/dtls1.h +0 -287
  26. data/vendor/openssl/include/openssl/e_os2.h +0 -315
  27. data/vendor/openssl/include/openssl/ebcdic.h +0 -19
  28. data/vendor/openssl/include/openssl/ec.h +0 -1167
  29. data/vendor/openssl/include/openssl/ecdh.h +0 -125
  30. data/vendor/openssl/include/openssl/ecdsa.h +0 -260
  31. data/vendor/openssl/include/openssl/engine.h +0 -842
  32. data/vendor/openssl/include/openssl/err.h +0 -386
  33. data/vendor/openssl/include/openssl/evp.h +0 -1409
  34. data/vendor/openssl/include/openssl/hmac.h +0 -110
  35. data/vendor/openssl/include/openssl/idea.h +0 -103
  36. data/vendor/openssl/include/openssl/krb5_asn.h +0 -256
  37. data/vendor/openssl/include/openssl/kssl.h +0 -183
  38. data/vendor/openssl/include/openssl/lhash.h +0 -241
  39. data/vendor/openssl/include/openssl/md4.h +0 -120
  40. data/vendor/openssl/include/openssl/md5.h +0 -120
  41. data/vendor/openssl/include/openssl/mdc2.h +0 -98
  42. data/vendor/openssl/include/openssl/modes.h +0 -135
  43. data/vendor/openssl/include/openssl/obj_mac.h +0 -4032
  44. data/vendor/openssl/include/openssl/objects.h +0 -1138
  45. data/vendor/openssl/include/openssl/ocsp.h +0 -623
  46. data/vendor/openssl/include/openssl/opensslconf.h +0 -234
  47. data/vendor/openssl/include/openssl/opensslv.h +0 -89
  48. data/vendor/openssl/include/openssl/ossl_typ.h +0 -202
  49. data/vendor/openssl/include/openssl/pem.h +0 -641
  50. data/vendor/openssl/include/openssl/pem2.h +0 -70
  51. data/vendor/openssl/include/openssl/pkcs12.h +0 -331
  52. data/vendor/openssl/include/openssl/pkcs7.h +0 -499
  53. data/vendor/openssl/include/openssl/pqueue.h +0 -94
  54. data/vendor/openssl/include/openssl/rand.h +0 -149
  55. data/vendor/openssl/include/openssl/rc2.h +0 -103
  56. data/vendor/openssl/include/openssl/rc4.h +0 -90
  57. data/vendor/openssl/include/openssl/ripemd.h +0 -107
  58. data/vendor/openssl/include/openssl/rsa.h +0 -582
  59. data/vendor/openssl/include/openssl/safestack.h +0 -2663
  60. data/vendor/openssl/include/openssl/seed.h +0 -139
  61. data/vendor/openssl/include/openssl/sha.h +0 -214
  62. data/vendor/openssl/include/openssl/srp.h +0 -172
  63. data/vendor/openssl/include/openssl/srtp.h +0 -145
  64. data/vendor/openssl/include/openssl/ssl.h +0 -2579
  65. data/vendor/openssl/include/openssl/ssl2.h +0 -272
  66. data/vendor/openssl/include/openssl/ssl23.h +0 -83
  67. data/vendor/openssl/include/openssl/ssl3.h +0 -684
  68. data/vendor/openssl/include/openssl/stack.h +0 -108
  69. data/vendor/openssl/include/openssl/symhacks.h +0 -475
  70. data/vendor/openssl/include/openssl/tls1.h +0 -735
  71. data/vendor/openssl/include/openssl/ts.h +0 -858
  72. data/vendor/openssl/include/openssl/txt_db.h +0 -112
  73. data/vendor/openssl/include/openssl/ui.h +0 -383
  74. data/vendor/openssl/include/openssl/ui_compat.h +0 -83
  75. data/vendor/openssl/include/openssl/whrlpool.h +0 -41
  76. data/vendor/openssl/include/openssl/x509.h +0 -1297
  77. data/vendor/openssl/include/openssl/x509_vfy.h +0 -567
  78. data/vendor/openssl/include/openssl/x509v3.h +0 -1007
  79. data/vendor/openssl/lib/engines/lib4758cca.so +0 -0
  80. data/vendor/openssl/lib/engines/libaep.so +0 -0
  81. data/vendor/openssl/lib/engines/libatalla.so +0 -0
  82. data/vendor/openssl/lib/engines/libcapi.so +0 -0
  83. data/vendor/openssl/lib/engines/libchil.so +0 -0
  84. data/vendor/openssl/lib/engines/libcswift.so +0 -0
  85. data/vendor/openssl/lib/engines/libgmp.so +0 -0
  86. data/vendor/openssl/lib/engines/libgost.so +0 -0
  87. data/vendor/openssl/lib/engines/libnuron.so +0 -0
  88. data/vendor/openssl/lib/engines/libpadlock.so +0 -0
  89. data/vendor/openssl/lib/engines/libsureware.so +0 -0
  90. data/vendor/openssl/lib/engines/libubsec.so +0 -0
  91. data/vendor/openssl/lib/libcrypto.a +0 -0
  92. data/vendor/openssl/lib/libcrypto.so +0 -0
  93. data/vendor/openssl/lib/libcrypto.so.1.0.0 +0 -0
  94. data/vendor/openssl/lib/libssl.a +0 -0
  95. data/vendor/openssl/lib/libssl.so +0 -0
  96. data/vendor/openssl/lib/libssl.so.1.0.0 +0 -0
  97. data/vendor/openssl/lib/pkgconfig/libcrypto.pc +0 -12
  98. data/vendor/openssl/lib/pkgconfig/libssl.pc +0 -12
  99. data/vendor/openssl/lib/pkgconfig/openssl.pc +0 -12
@@ -1,578 +0,0 @@
1
- /* crypto/asn1/asn1_mac.h */
2
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3
- * All rights reserved.
4
- *
5
- * This package is an SSL implementation written
6
- * by Eric Young (eay@cryptsoft.com).
7
- * The implementation was written so as to conform with Netscapes SSL.
8
- *
9
- * This library is free for commercial and non-commercial use as long as
10
- * the following conditions are aheared to. The following conditions
11
- * apply to all code found in this distribution, be it the RC4, RSA,
12
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13
- * included with this distribution is covered by the same copyright terms
14
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15
- *
16
- * Copyright remains Eric Young's, and as such any Copyright notices in
17
- * the code are not to be removed.
18
- * If this package is used in a product, Eric Young should be given attribution
19
- * as the author of the parts of the library used.
20
- * This can be in the form of a textual message at program startup or
21
- * in documentation (online or textual) provided with the package.
22
- *
23
- * Redistribution and use in source and binary forms, with or without
24
- * modification, are permitted provided that the following conditions
25
- * are met:
26
- * 1. Redistributions of source code must retain the copyright
27
- * notice, this list of conditions and the following disclaimer.
28
- * 2. Redistributions in binary form must reproduce the above copyright
29
- * notice, this list of conditions and the following disclaimer in the
30
- * documentation and/or other materials provided with the distribution.
31
- * 3. All advertising materials mentioning features or use of this software
32
- * must display the following acknowledgement:
33
- * "This product includes cryptographic software written by
34
- * Eric Young (eay@cryptsoft.com)"
35
- * The word 'cryptographic' can be left out if the rouines from the library
36
- * being used are not cryptographic related :-).
37
- * 4. If you include any Windows specific code (or a derivative thereof) from
38
- * the apps directory (application code) you must include an acknowledgement:
39
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40
- *
41
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51
- * SUCH DAMAGE.
52
- *
53
- * The licence and distribution terms for any publically available version or
54
- * derivative of this code cannot be changed. i.e. this code cannot simply be
55
- * copied and put under another distribution licence
56
- * [including the GNU Public Licence.]
57
- */
58
-
59
- #ifndef HEADER_ASN1_MAC_H
60
- #define HEADER_ASN1_MAC_H
61
-
62
- #include <openssl/asn1.h>
63
-
64
- #ifdef __cplusplus
65
- extern "C" {
66
- #endif
67
-
68
- #ifndef ASN1_MAC_ERR_LIB
69
- #define ASN1_MAC_ERR_LIB ERR_LIB_ASN1
70
- #endif
71
-
72
- #define ASN1_MAC_H_err(f,r,line) \
73
- ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line))
74
-
75
- #define M_ASN1_D2I_vars(a,type,func) \
76
- ASN1_const_CTX c; \
77
- type ret=NULL; \
78
- \
79
- c.pp=(const unsigned char **)pp; \
80
- c.q= *(const unsigned char **)pp; \
81
- c.error=ERR_R_NESTED_ASN1_ERROR; \
82
- if ((a == NULL) || ((*a) == NULL)) \
83
- { if ((ret=(type)func()) == NULL) \
84
- { c.line=__LINE__; goto err; } } \
85
- else ret=(*a);
86
-
87
- #define M_ASN1_D2I_Init() \
88
- c.p= *(const unsigned char **)pp; \
89
- c.max=(length == 0)?0:(c.p+length);
90
-
91
- #define M_ASN1_D2I_Finish_2(a) \
92
- if (!asn1_const_Finish(&c)) \
93
- { c.line=__LINE__; goto err; } \
94
- *(const unsigned char **)pp=c.p; \
95
- if (a != NULL) (*a)=ret; \
96
- return(ret);
97
-
98
- #define M_ASN1_D2I_Finish(a,func,e) \
99
- M_ASN1_D2I_Finish_2(a); \
100
- err:\
101
- ASN1_MAC_H_err((e),c.error,c.line); \
102
- asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \
103
- if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \
104
- return(NULL)
105
-
106
- #define M_ASN1_D2I_start_sequence() \
107
- if (!asn1_GetSequence(&c,&length)) \
108
- { c.line=__LINE__; goto err; }
109
- /* Begin reading ASN1 without a surrounding sequence */
110
- #define M_ASN1_D2I_begin() \
111
- c.slen = length;
112
-
113
- /* End reading ASN1 with no check on length */
114
- #define M_ASN1_D2I_Finish_nolen(a, func, e) \
115
- *pp=c.p; \
116
- if (a != NULL) (*a)=ret; \
117
- return(ret); \
118
- err:\
119
- ASN1_MAC_H_err((e),c.error,c.line); \
120
- asn1_add_error(*pp,(int)(c.q- *pp)); \
121
- if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \
122
- return(NULL)
123
-
124
- #define M_ASN1_D2I_end_sequence() \
125
- (((c.inf&1) == 0)?(c.slen <= 0): \
126
- (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen)))
127
-
128
- /* Don't use this with d2i_ASN1_BOOLEAN() */
129
- #define M_ASN1_D2I_get(b, func) \
130
- c.q=c.p; \
131
- if (func(&(b),&c.p,c.slen) == NULL) \
132
- {c.line=__LINE__; goto err; } \
133
- c.slen-=(c.p-c.q);
134
-
135
- /* Don't use this with d2i_ASN1_BOOLEAN() */
136
- #define M_ASN1_D2I_get_x(type,b,func) \
137
- c.q=c.p; \
138
- if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \
139
- {c.line=__LINE__; goto err; } \
140
- c.slen-=(c.p-c.q);
141
-
142
- /* use this instead () */
143
- #define M_ASN1_D2I_get_int(b,func) \
144
- c.q=c.p; \
145
- if (func(&(b),&c.p,c.slen) < 0) \
146
- {c.line=__LINE__; goto err; } \
147
- c.slen-=(c.p-c.q);
148
-
149
- #define M_ASN1_D2I_get_opt(b,func,type) \
150
- if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \
151
- == (V_ASN1_UNIVERSAL|(type)))) \
152
- { \
153
- M_ASN1_D2I_get(b,func); \
154
- }
155
-
156
- #define M_ASN1_D2I_get_int_opt(b,func,type) \
157
- if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \
158
- == (V_ASN1_UNIVERSAL|(type)))) \
159
- { \
160
- M_ASN1_D2I_get_int(b,func); \
161
- }
162
-
163
- #define M_ASN1_D2I_get_imp(b,func, type) \
164
- M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \
165
- c.q=c.p; \
166
- if (func(&(b),&c.p,c.slen) == NULL) \
167
- {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \
168
- c.slen-=(c.p-c.q);\
169
- M_ASN1_next_prev=_tmp;
170
-
171
- #define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \
172
- if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \
173
- (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \
174
- { \
175
- unsigned char _tmp = M_ASN1_next; \
176
- M_ASN1_D2I_get_imp(b,func, type);\
177
- }
178
-
179
- #define M_ASN1_D2I_get_set(r,func,free_func) \
180
- M_ASN1_D2I_get_imp_set(r,func,free_func, \
181
- V_ASN1_SET,V_ASN1_UNIVERSAL);
182
-
183
- #define M_ASN1_D2I_get_set_type(type,r,func,free_func) \
184
- M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \
185
- V_ASN1_SET,V_ASN1_UNIVERSAL);
186
-
187
- #define M_ASN1_D2I_get_set_opt(r,func,free_func) \
188
- if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
189
- V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
190
- { M_ASN1_D2I_get_set(r,func,free_func); }
191
-
192
- #define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \
193
- if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
194
- V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
195
- { M_ASN1_D2I_get_set_type(type,r,func,free_func); }
196
-
197
- #define M_ASN1_I2D_len_SET_opt(a,f) \
198
- if ((a != NULL) && (sk_num(a) != 0)) \
199
- M_ASN1_I2D_len_SET(a,f);
200
-
201
- #define M_ASN1_I2D_put_SET_opt(a,f) \
202
- if ((a != NULL) && (sk_num(a) != 0)) \
203
- M_ASN1_I2D_put_SET(a,f);
204
-
205
- #define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \
206
- if ((a != NULL) && (sk_num(a) != 0)) \
207
- M_ASN1_I2D_put_SEQUENCE(a,f);
208
-
209
- #define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \
210
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
211
- M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
212
-
213
- #define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
214
- if ((c.slen != 0) && \
215
- (M_ASN1_next == \
216
- (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\
217
- { \
218
- M_ASN1_D2I_get_imp_set(b,func,free_func,\
219
- tag,V_ASN1_CONTEXT_SPECIFIC); \
220
- }
221
-
222
- #define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \
223
- if ((c.slen != 0) && \
224
- (M_ASN1_next == \
225
- (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\
226
- { \
227
- M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\
228
- tag,V_ASN1_CONTEXT_SPECIFIC); \
229
- }
230
-
231
- #define M_ASN1_D2I_get_seq(r,func,free_func) \
232
- M_ASN1_D2I_get_imp_set(r,func,free_func,\
233
- V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
234
-
235
- #define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \
236
- M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
237
- V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
238
-
239
- #define M_ASN1_D2I_get_seq_opt(r,func,free_func) \
240
- if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
241
- V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
242
- { M_ASN1_D2I_get_seq(r,func,free_func); }
243
-
244
- #define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \
245
- if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
246
- V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
247
- { M_ASN1_D2I_get_seq_type(type,r,func,free_func); }
248
-
249
- #define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \
250
- M_ASN1_D2I_get_imp_set(r,func,free_func,\
251
- x,V_ASN1_CONTEXT_SPECIFIC);
252
-
253
- #define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \
254
- M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
255
- x,V_ASN1_CONTEXT_SPECIFIC);
256
-
257
- #define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \
258
- c.q=c.p; \
259
- if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\
260
- (void (*)())free_func,a,b) == NULL) \
261
- { c.line=__LINE__; goto err; } \
262
- c.slen-=(c.p-c.q);
263
-
264
- #define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \
265
- c.q=c.p; \
266
- if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\
267
- free_func,a,b) == NULL) \
268
- { c.line=__LINE__; goto err; } \
269
- c.slen-=(c.p-c.q);
270
-
271
- #define M_ASN1_D2I_get_set_strings(r,func,a,b) \
272
- c.q=c.p; \
273
- if (d2i_ASN1_STRING_SET(&(r),&c.p,c.slen,a,b) == NULL) \
274
- { c.line=__LINE__; goto err; } \
275
- c.slen-=(c.p-c.q);
276
-
277
- #define M_ASN1_D2I_get_EXP_opt(r,func,tag) \
278
- if ((c.slen != 0L) && (M_ASN1_next == \
279
- (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
280
- { \
281
- int Tinf,Ttag,Tclass; \
282
- long Tlen; \
283
- \
284
- c.q=c.p; \
285
- Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \
286
- if (Tinf & 0x80) \
287
- { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
288
- c.line=__LINE__; goto err; } \
289
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
290
- Tlen = c.slen - (c.p - c.q) - 2; \
291
- if (func(&(r),&c.p,Tlen) == NULL) \
292
- { c.line=__LINE__; goto err; } \
293
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
294
- Tlen = c.slen - (c.p - c.q); \
295
- if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \
296
- { c.error=ERR_R_MISSING_ASN1_EOS; \
297
- c.line=__LINE__; goto err; } \
298
- }\
299
- c.slen-=(c.p-c.q); \
300
- }
301
-
302
- #define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \
303
- if ((c.slen != 0) && (M_ASN1_next == \
304
- (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
305
- { \
306
- int Tinf,Ttag,Tclass; \
307
- long Tlen; \
308
- \
309
- c.q=c.p; \
310
- Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \
311
- if (Tinf & 0x80) \
312
- { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
313
- c.line=__LINE__; goto err; } \
314
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
315
- Tlen = c.slen - (c.p - c.q) - 2; \
316
- if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \
317
- (void (*)())free_func, \
318
- b,V_ASN1_UNIVERSAL) == NULL) \
319
- { c.line=__LINE__; goto err; } \
320
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
321
- Tlen = c.slen - (c.p - c.q); \
322
- if(!ASN1_check_infinite_end(&c.p, Tlen)) \
323
- { c.error=ERR_R_MISSING_ASN1_EOS; \
324
- c.line=__LINE__; goto err; } \
325
- }\
326
- c.slen-=(c.p-c.q); \
327
- }
328
-
329
- #define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \
330
- if ((c.slen != 0) && (M_ASN1_next == \
331
- (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
332
- { \
333
- int Tinf,Ttag,Tclass; \
334
- long Tlen; \
335
- \
336
- c.q=c.p; \
337
- Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \
338
- if (Tinf & 0x80) \
339
- { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
340
- c.line=__LINE__; goto err; } \
341
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
342
- Tlen = c.slen - (c.p - c.q) - 2; \
343
- if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \
344
- free_func,b,V_ASN1_UNIVERSAL) == NULL) \
345
- { c.line=__LINE__; goto err; } \
346
- if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
347
- Tlen = c.slen - (c.p - c.q); \
348
- if(!ASN1_check_infinite_end(&c.p, Tlen)) \
349
- { c.error=ERR_R_MISSING_ASN1_EOS; \
350
- c.line=__LINE__; goto err; } \
351
- }\
352
- c.slen-=(c.p-c.q); \
353
- }
354
-
355
- /* New macros */
356
- #define M_ASN1_New_Malloc(ret,type) \
357
- if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \
358
- { c.line=__LINE__; goto err2; }
359
-
360
- #define M_ASN1_New(arg,func) \
361
- if (((arg)=func()) == NULL) return(NULL)
362
-
363
- #define M_ASN1_New_Error(a) \
364
- /* err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \
365
- return(NULL);*/ \
366
- err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \
367
- return(NULL)
368
-
369
-
370
- /* BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately,
371
- some macros that use ASN1_const_CTX still insist on writing in the input
372
- stream. ARGH! ARGH! ARGH! Let's get rid of this macro package.
373
- Please? -- Richard Levitte */
374
- #define M_ASN1_next (*((unsigned char *)(c.p)))
375
- #define M_ASN1_next_prev (*((unsigned char *)(c.q)))
376
-
377
- /*************************************************/
378
-
379
- #define M_ASN1_I2D_vars(a) int r=0,ret=0; \
380
- unsigned char *p; \
381
- if (a == NULL) return(0)
382
-
383
- /* Length Macros */
384
- #define M_ASN1_I2D_len(a,f) ret+=f(a,NULL)
385
- #define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f)
386
-
387
- #define M_ASN1_I2D_len_SET(a,f) \
388
- ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET);
389
-
390
- #define M_ASN1_I2D_len_SET_type(type,a,f) \
391
- ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \
392
- V_ASN1_UNIVERSAL,IS_SET);
393
-
394
- #define M_ASN1_I2D_len_SEQUENCE(a,f) \
395
- ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
396
- IS_SEQUENCE);
397
-
398
- #define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \
399
- ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \
400
- V_ASN1_UNIVERSAL,IS_SEQUENCE)
401
-
402
- #define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \
403
- if ((a != NULL) && (sk_num(a) != 0)) \
404
- M_ASN1_I2D_len_SEQUENCE(a,f);
405
-
406
- #define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \
407
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
408
- M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
409
-
410
- #define M_ASN1_I2D_len_IMP_SET(a,f,x) \
411
- ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
412
-
413
- #define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \
414
- ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
415
- V_ASN1_CONTEXT_SPECIFIC,IS_SET);
416
-
417
- #define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \
418
- if ((a != NULL) && (sk_num(a) != 0)) \
419
- ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
420
- IS_SET);
421
-
422
- #define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \
423
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
424
- ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
425
- V_ASN1_CONTEXT_SPECIFIC,IS_SET);
426
-
427
- #define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \
428
- ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
429
- IS_SEQUENCE);
430
-
431
- #define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \
432
- if ((a != NULL) && (sk_num(a) != 0)) \
433
- ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
434
- IS_SEQUENCE);
435
-
436
- #define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \
437
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
438
- ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
439
- V_ASN1_CONTEXT_SPECIFIC, \
440
- IS_SEQUENCE);
441
-
442
- #define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \
443
- if (a != NULL)\
444
- { \
445
- v=f(a,NULL); \
446
- ret+=ASN1_object_size(1,v,mtag); \
447
- }
448
-
449
- #define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \
450
- if ((a != NULL) && (sk_num(a) != 0))\
451
- { \
452
- v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
453
- ret+=ASN1_object_size(1,v,mtag); \
454
- }
455
-
456
- #define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
457
- if ((a != NULL) && (sk_num(a) != 0))\
458
- { \
459
- v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \
460
- IS_SEQUENCE); \
461
- ret+=ASN1_object_size(1,v,mtag); \
462
- }
463
-
464
- #define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
465
- if ((a != NULL) && (sk_##type##_num(a) != 0))\
466
- { \
467
- v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \
468
- V_ASN1_UNIVERSAL, \
469
- IS_SEQUENCE); \
470
- ret+=ASN1_object_size(1,v,mtag); \
471
- }
472
-
473
- /* Put Macros */
474
- #define M_ASN1_I2D_put(a,f) f(a,&p)
475
-
476
- #define M_ASN1_I2D_put_IMP_opt(a,f,t) \
477
- if (a != NULL) \
478
- { \
479
- unsigned char *q=p; \
480
- f(a,&p); \
481
- *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\
482
- }
483
-
484
- #define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\
485
- V_ASN1_UNIVERSAL,IS_SET)
486
- #define M_ASN1_I2D_put_SET_type(type,a,f) \
487
- i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET)
488
- #define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
489
- V_ASN1_CONTEXT_SPECIFIC,IS_SET)
490
- #define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \
491
- i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET)
492
- #define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
493
- V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)
494
-
495
- #define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\
496
- V_ASN1_UNIVERSAL,IS_SEQUENCE)
497
-
498
- #define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \
499
- i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
500
- IS_SEQUENCE)
501
-
502
- #define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \
503
- if ((a != NULL) && (sk_num(a) != 0)) \
504
- M_ASN1_I2D_put_SEQUENCE(a,f);
505
-
506
- #define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \
507
- if ((a != NULL) && (sk_num(a) != 0)) \
508
- { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
509
- IS_SET); }
510
-
511
- #define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \
512
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
513
- { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
514
- V_ASN1_CONTEXT_SPECIFIC, \
515
- IS_SET); }
516
-
517
- #define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \
518
- if ((a != NULL) && (sk_num(a) != 0)) \
519
- { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
520
- IS_SEQUENCE); }
521
-
522
- #define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \
523
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
524
- { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
525
- V_ASN1_CONTEXT_SPECIFIC, \
526
- IS_SEQUENCE); }
527
-
528
- #define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \
529
- if (a != NULL) \
530
- { \
531
- ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \
532
- f(a,&p); \
533
- }
534
-
535
- #define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \
536
- if ((a != NULL) && (sk_num(a) != 0)) \
537
- { \
538
- ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
539
- i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
540
- }
541
-
542
- #define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
543
- if ((a != NULL) && (sk_num(a) != 0)) \
544
- { \
545
- ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
546
- i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \
547
- }
548
-
549
- #define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
550
- if ((a != NULL) && (sk_##type##_num(a) != 0)) \
551
- { \
552
- ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
553
- i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \
554
- IS_SEQUENCE); \
555
- }
556
-
557
- #define M_ASN1_I2D_seq_total() \
558
- r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \
559
- if (pp == NULL) return(r); \
560
- p= *pp; \
561
- ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
562
-
563
- #define M_ASN1_I2D_INF_seq_start(tag,ctx) \
564
- *(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \
565
- *(p++)=0x80
566
-
567
- #define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00
568
-
569
- #define M_ASN1_I2D_finish() *pp=p; \
570
- return(r);
571
-
572
- int asn1_GetSequence(ASN1_const_CTX *c, long *length);
573
- void asn1_add_error(const unsigned char *address,int offset);
574
- #ifdef __cplusplus
575
- }
576
- #endif
577
-
578
- #endif