Line data Source code
1 : /* visibility.c - Wrapper for all public functions.
2 : * Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc.
3 : * Copyright (C) 2013 g10 Code GmbH
4 : *
5 : * This file is part of Libgcrypt.
6 : *
7 : * Libgcrypt is free software; you can redistribute it and/or modify
8 : * it under the terms of the GNU Lesser General Public License as
9 : * published by the Free Software Foundation; either version 2.1 of
10 : * the License, or (at your option) any later version.
11 : *
12 : * Libgcrypt is distributed in the hope that it will be useful,
13 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 : * GNU Lesser General Public License for more details.
16 : *
17 : * You should have received a copy of the GNU Lesser General Public
18 : * License along with this program; if not, see <http://www.gnu.org/licenses/>.
19 : */
20 :
21 : #include <config.h>
22 : #include <stdarg.h>
23 :
24 : #define _GCRY_INCLUDED_BY_VISIBILITY_C
25 : #include "g10lib.h"
26 : #include "cipher-proto.h"
27 : #include "context.h"
28 : #include "mpi.h"
29 :
30 : const char *
31 0 : gcry_strerror (gcry_error_t err)
32 : {
33 0 : return _gcry_strerror (err);
34 : }
35 :
36 : const char *
37 0 : gcry_strsource (gcry_error_t err)
38 : {
39 0 : return _gcry_strsource (err);
40 : }
41 :
42 : gcry_err_code_t
43 0 : gcry_err_code_from_errno (int err)
44 : {
45 0 : return _gcry_err_code_from_errno (err);
46 : }
47 :
48 : int
49 0 : gcry_err_code_to_errno (gcry_err_code_t code)
50 : {
51 0 : return _gcry_err_code_to_errno (code);
52 : }
53 :
54 : gcry_error_t
55 0 : gcry_err_make_from_errno (gcry_err_source_t source, int err)
56 : {
57 0 : return _gcry_err_make_from_errno (source, err);
58 : }
59 :
60 : gcry_error_t
61 0 : gcry_error_from_errno (int err)
62 : {
63 0 : return _gcry_error_from_errno (err);
64 : }
65 :
66 : const char *
67 0 : gcry_check_version (const char *req_version)
68 : {
69 0 : return _gcry_check_version (req_version);
70 : }
71 :
72 : gcry_error_t
73 0 : gcry_control (enum gcry_ctl_cmds cmd, ...)
74 : {
75 : gcry_error_t err;
76 : va_list arg_ptr;
77 :
78 0 : va_start (arg_ptr, cmd);
79 0 : err = gpg_error (_gcry_vcontrol (cmd, arg_ptr));
80 0 : va_end(arg_ptr);
81 0 : return err;
82 : }
83 :
84 : gcry_error_t
85 0 : gcry_sexp_new (gcry_sexp_t *retsexp,
86 : const void *buffer, size_t length,
87 : int autodetect)
88 : {
89 0 : return gpg_error (_gcry_sexp_new (retsexp, buffer, length, autodetect));
90 : }
91 :
92 : gcry_error_t
93 0 : gcry_sexp_create (gcry_sexp_t *retsexp,
94 : void *buffer, size_t length,
95 : int autodetect, void (*freefnc) (void *))
96 : {
97 0 : return gpg_error (_gcry_sexp_create (retsexp, buffer, length,
98 : autodetect, freefnc));
99 : }
100 :
101 : gcry_error_t
102 0 : gcry_sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff,
103 : const char *buffer, size_t length)
104 : {
105 0 : return gpg_error (_gcry_sexp_sscan (retsexp, erroff, buffer, length));
106 : }
107 :
108 : gcry_error_t
109 0 : gcry_sexp_build (gcry_sexp_t *retsexp, size_t *erroff,
110 : const char *format, ...)
111 : {
112 : gcry_err_code_t rc;
113 : va_list arg_ptr;
114 :
115 0 : va_start (arg_ptr, format);
116 0 : rc = _gcry_sexp_vbuild (retsexp, erroff, format, arg_ptr);
117 0 : va_end (arg_ptr);
118 0 : return gpg_error (rc);
119 : }
120 :
121 : gcry_error_t
122 0 : gcry_sexp_build_array (gcry_sexp_t *retsexp, size_t *erroff,
123 : const char *format, void **arg_list)
124 : {
125 0 : return gpg_error (_gcry_sexp_build_array (retsexp, erroff, format, arg_list));
126 : }
127 :
128 : void
129 0 : gcry_sexp_release (gcry_sexp_t sexp)
130 : {
131 0 : _gcry_sexp_release (sexp);
132 0 : }
133 :
134 : size_t
135 0 : gcry_sexp_canon_len (const unsigned char *buffer, size_t length,
136 : size_t *erroff, gcry_error_t *errcode)
137 : {
138 : size_t n;
139 : gpg_err_code_t rc;
140 :
141 0 : n = _gcry_sexp_canon_len (buffer, length, erroff, &rc);
142 0 : if (errcode)
143 0 : *errcode = gpg_error (rc);
144 0 : return n;
145 : }
146 :
147 : size_t
148 0 : gcry_sexp_sprint (gcry_sexp_t sexp, int mode, void *buffer, size_t maxlength)
149 : {
150 0 : return _gcry_sexp_sprint (sexp, mode, buffer, maxlength);
151 : }
152 :
153 : void
154 0 : gcry_sexp_dump (const gcry_sexp_t a)
155 : {
156 0 : _gcry_sexp_dump (a);
157 0 : }
158 :
159 : gcry_sexp_t
160 0 : gcry_sexp_cons (const gcry_sexp_t a, const gcry_sexp_t b)
161 : {
162 0 : return _gcry_sexp_cons (a, b);
163 : }
164 :
165 : gcry_sexp_t
166 0 : gcry_sexp_alist (const gcry_sexp_t *array)
167 : {
168 0 : return _gcry_sexp_alist (array);
169 : }
170 :
171 : gcry_sexp_t
172 0 : gcry_sexp_vlist (const gcry_sexp_t a, ...)
173 : {
174 : /* This is not yet implemented in sexp.c. */
175 : (void)a;
176 0 : BUG ();
177 : return NULL;
178 : }
179 :
180 : gcry_sexp_t
181 0 : gcry_sexp_append (const gcry_sexp_t a, const gcry_sexp_t n)
182 : {
183 0 : return _gcry_sexp_append (a, n);
184 : }
185 :
186 : gcry_sexp_t
187 0 : gcry_sexp_prepend (const gcry_sexp_t a, const gcry_sexp_t n)
188 : {
189 0 : return _gcry_sexp_prepend (a, n);
190 : }
191 :
192 :
193 : gcry_sexp_t
194 0 : gcry_sexp_find_token (gcry_sexp_t list, const char *tok, size_t toklen)
195 : {
196 0 : return _gcry_sexp_find_token (list, tok, toklen);
197 : }
198 :
199 : int
200 0 : gcry_sexp_length (const gcry_sexp_t list)
201 : {
202 0 : return _gcry_sexp_length (list);
203 : }
204 :
205 : gcry_sexp_t
206 0 : gcry_sexp_nth (const gcry_sexp_t list, int number)
207 : {
208 0 : return _gcry_sexp_nth (list, number);
209 : }
210 :
211 : gcry_sexp_t
212 0 : gcry_sexp_car (const gcry_sexp_t list)
213 : {
214 0 : return _gcry_sexp_car (list);
215 : }
216 :
217 : gcry_sexp_t
218 0 : gcry_sexp_cdr (const gcry_sexp_t list)
219 : {
220 0 : return _gcry_sexp_cdr (list);
221 : }
222 :
223 : gcry_sexp_t
224 0 : gcry_sexp_cadr (const gcry_sexp_t list)
225 : {
226 0 : return _gcry_sexp_cadr (list);
227 : }
228 :
229 : const char *
230 0 : gcry_sexp_nth_data (const gcry_sexp_t list, int number, size_t *datalen)
231 : {
232 0 : return _gcry_sexp_nth_data (list, number, datalen);
233 : }
234 :
235 : void *
236 0 : gcry_sexp_nth_buffer (const gcry_sexp_t list, int number, size_t *rlength)
237 : {
238 0 : return _gcry_sexp_nth_buffer (list, number, rlength);
239 : }
240 :
241 : char *
242 0 : gcry_sexp_nth_string (gcry_sexp_t list, int number)
243 : {
244 0 : return _gcry_sexp_nth_string (list, number);
245 : }
246 :
247 : gcry_mpi_t
248 0 : gcry_sexp_nth_mpi (gcry_sexp_t list, int number, int mpifmt)
249 : {
250 0 : return _gcry_sexp_nth_mpi (list, number, mpifmt);
251 : }
252 :
253 : gpg_error_t
254 0 : gcry_sexp_extract_param (gcry_sexp_t sexp, const char *path,
255 : const char *list, ...)
256 : {
257 : gcry_err_code_t rc;
258 : va_list arg_ptr;
259 :
260 0 : va_start (arg_ptr, list);
261 0 : rc = _gcry_sexp_vextract_param (sexp, path, list, arg_ptr);
262 0 : va_end (arg_ptr);
263 0 : return gpg_error (rc);
264 : }
265 :
266 :
267 :
268 : gcry_mpi_t
269 0 : gcry_mpi_new (unsigned int nbits)
270 : {
271 0 : return _gcry_mpi_new (nbits);
272 : }
273 :
274 : gcry_mpi_t
275 0 : gcry_mpi_snew (unsigned int nbits)
276 : {
277 0 : return _gcry_mpi_snew (nbits);
278 : }
279 :
280 : void
281 0 : gcry_mpi_release (gcry_mpi_t a)
282 : {
283 0 : _gcry_mpi_release (a);
284 0 : }
285 :
286 : gcry_mpi_t
287 0 : gcry_mpi_copy (const gcry_mpi_t a)
288 : {
289 0 : return _gcry_mpi_copy (a);
290 : }
291 :
292 : void
293 0 : gcry_mpi_snatch (gcry_mpi_t w, const gcry_mpi_t u)
294 : {
295 0 : _gcry_mpi_snatch (w, u);
296 0 : }
297 :
298 : gcry_mpi_t
299 0 : gcry_mpi_set (gcry_mpi_t w, const gcry_mpi_t u)
300 : {
301 0 : return _gcry_mpi_set (w, u);
302 : }
303 :
304 : gcry_mpi_t
305 0 : gcry_mpi_set_ui (gcry_mpi_t w, unsigned long u)
306 : {
307 0 : return _gcry_mpi_set_ui (w, u);
308 : }
309 :
310 : gcry_error_t
311 0 : gcry_mpi_get_ui (gcry_mpi_t w, unsigned long *u)
312 : {
313 0 : return gpg_error (_gcry_mpi_get_ui (w, u));
314 : }
315 :
316 : void
317 0 : gcry_mpi_swap (gcry_mpi_t a, gcry_mpi_t b)
318 : {
319 0 : _gcry_mpi_swap (a, b);
320 0 : }
321 :
322 : int
323 0 : gcry_mpi_is_neg (gcry_mpi_t a)
324 : {
325 0 : return _gcry_mpi_is_neg (a);
326 : }
327 :
328 : void
329 0 : gcry_mpi_neg (gcry_mpi_t w, gcry_mpi_t u)
330 : {
331 0 : _gcry_mpi_neg (w, u);
332 0 : }
333 :
334 : void
335 0 : gcry_mpi_abs (gcry_mpi_t w)
336 : {
337 0 : _gcry_mpi_abs (w);
338 0 : }
339 :
340 : int
341 0 : gcry_mpi_cmp (const gcry_mpi_t u, const gcry_mpi_t v)
342 : {
343 0 : return _gcry_mpi_cmp (u, v);
344 : }
345 :
346 : int
347 0 : gcry_mpi_cmp_ui (const gcry_mpi_t u, unsigned long v)
348 : {
349 0 : return _gcry_mpi_cmp_ui (u, v);
350 : }
351 :
352 : gcry_error_t
353 0 : gcry_mpi_scan (gcry_mpi_t *ret_mpi, enum gcry_mpi_format format,
354 : const void *buffer, size_t buflen,
355 : size_t *nscanned)
356 : {
357 0 : return gpg_error (_gcry_mpi_scan (ret_mpi, format, buffer, buflen, nscanned));
358 : }
359 :
360 : gcry_error_t
361 0 : gcry_mpi_print (enum gcry_mpi_format format,
362 : unsigned char *buffer, size_t buflen,
363 : size_t *nwritten,
364 : const gcry_mpi_t a)
365 : {
366 0 : return gpg_error (_gcry_mpi_print (format, buffer, buflen, nwritten, a));
367 : }
368 :
369 : gcry_error_t
370 0 : gcry_mpi_aprint (enum gcry_mpi_format format,
371 : unsigned char **buffer, size_t *nwritten,
372 : const gcry_mpi_t a)
373 : {
374 0 : return gpg_error (_gcry_mpi_aprint (format, buffer, nwritten, a));
375 : }
376 :
377 : void
378 0 : gcry_mpi_dump (const gcry_mpi_t a)
379 : {
380 0 : _gcry_log_printmpi (NULL, a);
381 0 : }
382 :
383 : void
384 0 : gcry_mpi_add (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
385 : {
386 0 : _gcry_mpi_add (w, u, v);
387 0 : }
388 :
389 : void
390 0 : gcry_mpi_add_ui (gcry_mpi_t w, gcry_mpi_t u, unsigned long v)
391 : {
392 0 : _gcry_mpi_add_ui (w, u, v);
393 0 : }
394 :
395 : void
396 0 : gcry_mpi_addm (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
397 : {
398 0 : _gcry_mpi_addm (w, u, v, m);
399 0 : }
400 :
401 : void
402 0 : gcry_mpi_sub (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
403 : {
404 0 : _gcry_mpi_sub (w, u, v);
405 0 : }
406 :
407 : void
408 0 : gcry_mpi_sub_ui (gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
409 : {
410 0 : _gcry_mpi_sub_ui (w, u, v);
411 0 : }
412 :
413 : void
414 0 : gcry_mpi_subm (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
415 : {
416 0 : _gcry_mpi_subm (w, u, v, m);
417 0 : }
418 :
419 : void
420 0 : gcry_mpi_mul (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
421 : {
422 0 : _gcry_mpi_mul (w, u, v);
423 0 : }
424 :
425 : void
426 0 : gcry_mpi_mul_ui (gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
427 : {
428 0 : _gcry_mpi_mul_ui (w, u, v);
429 0 : }
430 :
431 : void
432 0 : gcry_mpi_mulm (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
433 : {
434 0 : _gcry_mpi_mulm (w, u, v, m);
435 0 : }
436 :
437 : void
438 0 : gcry_mpi_mul_2exp (gcry_mpi_t w, gcry_mpi_t u, unsigned long cnt)
439 : {
440 0 : _gcry_mpi_mul_2exp (w, u, cnt);
441 0 : }
442 :
443 : void
444 0 : gcry_mpi_div (gcry_mpi_t q, gcry_mpi_t r,
445 : gcry_mpi_t dividend, gcry_mpi_t divisor, int round)
446 : {
447 0 : _gcry_mpi_div (q, r, dividend, divisor, round);
448 0 : }
449 :
450 : void
451 0 : gcry_mpi_mod (gcry_mpi_t r, gcry_mpi_t dividend, gcry_mpi_t divisor)
452 : {
453 0 : _gcry_mpi_mod (r, dividend, divisor);
454 0 : }
455 :
456 : void
457 0 : gcry_mpi_powm (gcry_mpi_t w, const gcry_mpi_t b, const gcry_mpi_t e,
458 : const gcry_mpi_t m)
459 : {
460 0 : _gcry_mpi_powm (w, b, e, m);
461 0 : }
462 :
463 : int
464 0 : gcry_mpi_gcd (gcry_mpi_t g, gcry_mpi_t a, gcry_mpi_t b)
465 : {
466 0 : return _gcry_mpi_gcd (g, a, b);
467 : }
468 :
469 : int
470 0 : gcry_mpi_invm (gcry_mpi_t x, gcry_mpi_t a, gcry_mpi_t m)
471 : {
472 0 : return _gcry_mpi_invm (x, a, m);
473 : }
474 :
475 : gcry_mpi_point_t
476 0 : gcry_mpi_point_new (unsigned int nbits)
477 : {
478 0 : return _gcry_mpi_point_new (nbits);
479 : }
480 :
481 : void
482 0 : gcry_mpi_point_release (gcry_mpi_point_t point)
483 : {
484 0 : _gcry_mpi_point_release (point);
485 0 : }
486 :
487 : void
488 0 : gcry_mpi_point_get (gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_t z,
489 : gcry_mpi_point_t point)
490 : {
491 0 : _gcry_mpi_point_get (x, y, z, point);
492 0 : }
493 :
494 : void
495 0 : gcry_mpi_point_snatch_get (gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_t z,
496 : gcry_mpi_point_t point)
497 : {
498 0 : _gcry_mpi_point_snatch_get (x, y, z, point);
499 0 : }
500 :
501 : gcry_mpi_point_t
502 0 : gcry_mpi_point_set (gcry_mpi_point_t point,
503 : gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_t z)
504 : {
505 0 : return _gcry_mpi_point_set (point, x, y, z);
506 : }
507 :
508 : gcry_mpi_point_t
509 0 : gcry_mpi_point_snatch_set (gcry_mpi_point_t point,
510 : gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_t z)
511 : {
512 0 : return _gcry_mpi_point_snatch_set (point, x, y, z);
513 : }
514 :
515 : gpg_error_t
516 0 : gcry_mpi_ec_new (gcry_ctx_t *r_ctx,
517 : gcry_sexp_t keyparam, const char *curvename)
518 : {
519 0 : return gpg_error (_gcry_mpi_ec_new (r_ctx, keyparam, curvename));
520 : }
521 :
522 : gcry_mpi_t
523 0 : gcry_mpi_ec_get_mpi (const char *name, gcry_ctx_t ctx, int copy)
524 : {
525 0 : return _gcry_mpi_ec_get_mpi (name, ctx, copy);
526 : }
527 :
528 : gcry_mpi_point_t
529 0 : gcry_mpi_ec_get_point (const char *name, gcry_ctx_t ctx, int copy)
530 : {
531 0 : return _gcry_mpi_ec_get_point (name, ctx, copy);
532 : }
533 :
534 : gpg_error_t
535 0 : gcry_mpi_ec_set_mpi (const char *name, gcry_mpi_t newvalue, gcry_ctx_t ctx)
536 : {
537 0 : return gpg_error (_gcry_mpi_ec_set_mpi (name, newvalue, ctx));
538 : }
539 :
540 : gpg_error_t
541 0 : gcry_mpi_ec_set_point (const char *name, gcry_mpi_point_t newvalue,
542 : gcry_ctx_t ctx)
543 : {
544 0 : return gpg_error (_gcry_mpi_ec_set_point (name, newvalue, ctx));
545 : }
546 :
547 : gpg_error_t
548 0 : gcry_mpi_ec_decode_point (gcry_mpi_point_t result, gcry_mpi_t value,
549 : gcry_ctx_t ctx)
550 : {
551 0 : return gpg_error (_gcry_mpi_ec_decode_point
552 : (result, value,
553 : ctx? _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC) : NULL));
554 : }
555 :
556 : int
557 0 : gcry_mpi_ec_get_affine (gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_point_t point,
558 : gcry_ctx_t ctx)
559 : {
560 0 : return _gcry_mpi_ec_get_affine (x, y, point,
561 0 : _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
562 : }
563 :
564 : void
565 0 : gcry_mpi_ec_dup (gcry_mpi_point_t w, gcry_mpi_point_t u, gcry_ctx_t ctx)
566 : {
567 0 : _gcry_mpi_ec_dup_point (w, u, _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
568 0 : }
569 :
570 : void
571 0 : gcry_mpi_ec_add (gcry_mpi_point_t w,
572 : gcry_mpi_point_t u, gcry_mpi_point_t v, gcry_ctx_t ctx)
573 : {
574 0 : _gcry_mpi_ec_add_points (w, u, v,
575 0 : _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
576 0 : }
577 :
578 : void
579 0 : gcry_mpi_ec_sub (gcry_mpi_point_t w,
580 : gcry_mpi_point_t u, gcry_mpi_point_t v, gcry_ctx_t ctx)
581 : {
582 0 : _gcry_mpi_ec_sub_points (w, u, v,
583 0 : _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
584 0 : }
585 :
586 : void
587 0 : gcry_mpi_ec_mul (gcry_mpi_point_t w, gcry_mpi_t n, gcry_mpi_point_t u,
588 : gcry_ctx_t ctx)
589 : {
590 0 : _gcry_mpi_ec_mul_point (w, n, u,
591 0 : _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
592 0 : }
593 :
594 : int
595 0 : gcry_mpi_ec_curve_point (gcry_mpi_point_t point, gcry_ctx_t ctx)
596 : {
597 0 : return _gcry_mpi_ec_curve_point
598 0 : (point, _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC));
599 : }
600 :
601 : unsigned int
602 0 : gcry_mpi_get_nbits (gcry_mpi_t a)
603 : {
604 0 : return _gcry_mpi_get_nbits (a);
605 : }
606 :
607 : int
608 0 : gcry_mpi_test_bit (gcry_mpi_t a, unsigned int n)
609 : {
610 0 : return _gcry_mpi_test_bit (a, n);
611 : }
612 :
613 : void
614 0 : gcry_mpi_set_bit (gcry_mpi_t a, unsigned int n)
615 : {
616 0 : _gcry_mpi_set_bit (a, n);
617 0 : }
618 :
619 : void
620 0 : gcry_mpi_clear_bit (gcry_mpi_t a, unsigned int n)
621 : {
622 0 : _gcry_mpi_clear_bit (a, n);
623 0 : }
624 :
625 : void
626 0 : gcry_mpi_set_highbit (gcry_mpi_t a, unsigned int n)
627 : {
628 0 : _gcry_mpi_set_highbit (a, n);
629 0 : }
630 :
631 : void
632 0 : gcry_mpi_clear_highbit (gcry_mpi_t a, unsigned int n)
633 : {
634 0 : _gcry_mpi_clear_highbit (a, n);
635 0 : }
636 :
637 : void
638 0 : gcry_mpi_rshift (gcry_mpi_t x, gcry_mpi_t a, unsigned int n)
639 : {
640 0 : _gcry_mpi_rshift (x, a, n);
641 0 : }
642 :
643 : void
644 0 : gcry_mpi_lshift (gcry_mpi_t x, gcry_mpi_t a, unsigned int n)
645 : {
646 0 : _gcry_mpi_lshift (x, a, n);
647 0 : }
648 :
649 : gcry_mpi_t
650 0 : gcry_mpi_set_opaque (gcry_mpi_t a, void *p, unsigned int nbits)
651 : {
652 0 : return _gcry_mpi_set_opaque (a, p, nbits);
653 : }
654 :
655 : gcry_mpi_t
656 0 : gcry_mpi_set_opaque_copy (gcry_mpi_t a, const void *p, unsigned int nbits)
657 : {
658 0 : return _gcry_mpi_set_opaque_copy (a, p, nbits);
659 : }
660 :
661 : void *
662 0 : gcry_mpi_get_opaque (gcry_mpi_t a, unsigned int *nbits)
663 : {
664 0 : return _gcry_mpi_get_opaque (a, nbits);
665 : }
666 :
667 : void
668 0 : gcry_mpi_set_flag (gcry_mpi_t a, enum gcry_mpi_flag flag)
669 : {
670 0 : _gcry_mpi_set_flag (a, flag);
671 0 : }
672 :
673 : void
674 0 : gcry_mpi_clear_flag (gcry_mpi_t a, enum gcry_mpi_flag flag)
675 : {
676 0 : _gcry_mpi_clear_flag (a, flag);
677 0 : }
678 :
679 : int
680 0 : gcry_mpi_get_flag (gcry_mpi_t a, enum gcry_mpi_flag flag)
681 : {
682 0 : return _gcry_mpi_get_flag (a, flag);
683 : }
684 :
685 : gcry_mpi_t
686 0 : _gcry_mpi_get_const (int no)
687 : {
688 0 : switch (no)
689 : {
690 0 : case 1: return _gcry_mpi_const (MPI_C_ONE);
691 0 : case 2: return _gcry_mpi_const (MPI_C_TWO);
692 0 : case 3: return _gcry_mpi_const (MPI_C_THREE);
693 0 : case 4: return _gcry_mpi_const (MPI_C_FOUR);
694 0 : case 8: return _gcry_mpi_const (MPI_C_EIGHT);
695 0 : default: log_bug("unsupported GCRYMPI_CONST_ macro used\n");
696 : }
697 : }
698 :
699 : gcry_error_t
700 0 : gcry_cipher_open (gcry_cipher_hd_t *handle,
701 : int algo, int mode, unsigned int flags)
702 : {
703 0 : if (!fips_is_operational ())
704 : {
705 0 : *handle = NULL;
706 0 : return gpg_error (fips_not_operational ());
707 : }
708 :
709 0 : return gpg_error (_gcry_cipher_open (handle, algo, mode, flags));
710 : }
711 :
712 : void
713 0 : gcry_cipher_close (gcry_cipher_hd_t h)
714 : {
715 0 : _gcry_cipher_close (h);
716 0 : }
717 :
718 : gcry_error_t
719 0 : gcry_cipher_setkey (gcry_cipher_hd_t hd, const void *key, size_t keylen)
720 : {
721 0 : if (!fips_is_operational ())
722 0 : return gpg_error (fips_not_operational ());
723 :
724 0 : return gcry_error (_gcry_cipher_setkey (hd, key, keylen));
725 : }
726 :
727 : gcry_error_t
728 0 : gcry_cipher_setiv (gcry_cipher_hd_t hd, const void *iv, size_t ivlen)
729 : {
730 0 : if (!fips_is_operational ())
731 0 : return gpg_error (fips_not_operational ());
732 :
733 0 : return gcry_error (_gcry_cipher_setiv (hd, iv, ivlen));
734 : }
735 :
736 : gpg_error_t
737 0 : gcry_cipher_setctr (gcry_cipher_hd_t hd, const void *ctr, size_t ctrlen)
738 : {
739 0 : if (!fips_is_operational ())
740 0 : return gpg_error (fips_not_operational ());
741 :
742 0 : return gcry_error (_gcry_cipher_setctr (hd, ctr, ctrlen));
743 : }
744 :
745 : gcry_error_t
746 0 : gcry_cipher_authenticate (gcry_cipher_hd_t hd, const void *abuf, size_t abuflen)
747 : {
748 0 : if (!fips_is_operational ())
749 0 : return gpg_error (fips_not_operational ());
750 :
751 0 : return gpg_error (_gcry_cipher_authenticate (hd, abuf, abuflen));
752 : }
753 :
754 : gcry_error_t
755 0 : gcry_cipher_gettag (gcry_cipher_hd_t hd, void *outtag, size_t taglen)
756 : {
757 0 : if (!fips_is_operational ())
758 0 : return gpg_error (fips_not_operational ());
759 :
760 0 : return gpg_error (_gcry_cipher_gettag (hd, outtag, taglen));
761 : }
762 :
763 : gcry_error_t
764 0 : gcry_cipher_checktag (gcry_cipher_hd_t hd, const void *intag, size_t taglen)
765 : {
766 0 : if (!fips_is_operational ())
767 0 : return gpg_error (fips_not_operational ());
768 :
769 0 : return gpg_error (_gcry_cipher_checktag (hd, intag, taglen));
770 : }
771 :
772 :
773 : gcry_error_t
774 0 : gcry_cipher_ctl (gcry_cipher_hd_t h, int cmd, void *buffer, size_t buflen)
775 : {
776 0 : if (!fips_is_operational ())
777 0 : return gpg_error (fips_not_operational ());
778 :
779 0 : return gpg_error (_gcry_cipher_ctl (h, cmd, buffer, buflen));
780 : }
781 :
782 : gcry_error_t
783 0 : gcry_cipher_info (gcry_cipher_hd_t h, int what, void *buffer, size_t *nbytes)
784 : {
785 0 : return gpg_error (_gcry_cipher_info (h, what, buffer, nbytes));
786 : }
787 :
788 : gcry_error_t
789 0 : gcry_cipher_algo_info (int algo, int what, void *buffer, size_t *nbytes)
790 : {
791 0 : if (!fips_is_operational ())
792 0 : return gpg_error (fips_not_operational ());
793 :
794 0 : return gpg_error (_gcry_cipher_algo_info (algo, what, buffer, nbytes));
795 : }
796 :
797 : const char *
798 0 : gcry_cipher_algo_name (int algorithm)
799 : {
800 0 : return _gcry_cipher_algo_name (algorithm);
801 : }
802 :
803 : int
804 0 : gcry_cipher_map_name (const char *name)
805 : {
806 0 : return _gcry_cipher_map_name (name);
807 : }
808 :
809 : int
810 0 : gcry_cipher_mode_from_oid (const char *string)
811 : {
812 0 : return _gcry_cipher_mode_from_oid (string);
813 : }
814 :
815 : gcry_error_t
816 0 : gcry_cipher_encrypt (gcry_cipher_hd_t h,
817 : void *out, size_t outsize,
818 : const void *in, size_t inlen)
819 : {
820 0 : if (!fips_is_operational ())
821 : {
822 : /* Make sure that the plaintext will never make it to OUT. */
823 0 : if (out)
824 0 : memset (out, 0x42, outsize);
825 0 : return gpg_error (fips_not_operational ());
826 : }
827 :
828 0 : return gpg_error (_gcry_cipher_encrypt (h, out, outsize, in, inlen));
829 : }
830 :
831 : gcry_error_t
832 0 : gcry_cipher_decrypt (gcry_cipher_hd_t h,
833 : void *out, size_t outsize,
834 : const void *in, size_t inlen)
835 : {
836 0 : if (!fips_is_operational ())
837 0 : return gpg_error (fips_not_operational ());
838 :
839 0 : return gpg_error (_gcry_cipher_decrypt (h, out, outsize, in, inlen));
840 : }
841 :
842 : size_t
843 0 : gcry_cipher_get_algo_keylen (int algo)
844 : {
845 0 : return _gcry_cipher_get_algo_keylen (algo);
846 : }
847 :
848 : size_t
849 0 : gcry_cipher_get_algo_blklen (int algo)
850 : {
851 0 : return _gcry_cipher_get_algo_blklen (algo);
852 : }
853 :
854 : gcry_error_t
855 0 : gcry_mac_algo_info (int algo, int what, void *buffer, size_t *nbytes)
856 : {
857 0 : if (!fips_is_operational ())
858 0 : return gpg_error (fips_not_operational ());
859 :
860 0 : return gpg_error (_gcry_mac_algo_info (algo, what, buffer, nbytes));
861 : }
862 :
863 : const char *
864 0 : gcry_mac_algo_name (int algorithm)
865 : {
866 0 : return _gcry_mac_algo_name (algorithm);
867 : }
868 :
869 : int
870 0 : gcry_mac_map_name (const char *string)
871 : {
872 0 : return _gcry_mac_map_name (string);
873 : }
874 :
875 : int
876 0 : gcry_mac_get_algo (gcry_mac_hd_t hd)
877 : {
878 0 : return _gcry_mac_get_algo (hd);
879 : }
880 :
881 : unsigned int
882 0 : gcry_mac_get_algo_maclen (int algo)
883 : {
884 0 : return _gcry_mac_get_algo_maclen (algo);
885 : }
886 :
887 : unsigned int
888 0 : gcry_mac_get_algo_keylen (int algo)
889 : {
890 0 : return _gcry_mac_get_algo_keylen (algo);
891 : }
892 :
893 : gcry_error_t
894 0 : gcry_mac_open (gcry_mac_hd_t *handle, int algo, unsigned int flags,
895 : gcry_ctx_t ctx)
896 : {
897 0 : if (!fips_is_operational ())
898 : {
899 0 : *handle = NULL;
900 0 : return gpg_error (fips_not_operational ());
901 : }
902 :
903 0 : return gpg_error (_gcry_mac_open (handle, algo, flags, ctx));
904 : }
905 :
906 : void
907 0 : gcry_mac_close (gcry_mac_hd_t hd)
908 : {
909 0 : _gcry_mac_close (hd);
910 0 : }
911 :
912 : gcry_error_t
913 0 : gcry_mac_setkey (gcry_mac_hd_t hd, const void *key, size_t keylen)
914 : {
915 0 : if (!fips_is_operational ())
916 0 : return gpg_error (fips_not_operational ());
917 :
918 0 : return gpg_error (_gcry_mac_setkey (hd, key, keylen));
919 : }
920 :
921 : gcry_error_t
922 0 : gcry_mac_setiv (gcry_mac_hd_t hd, const void *iv, size_t ivlen)
923 : {
924 0 : if (!fips_is_operational ())
925 0 : return gpg_error (fips_not_operational ());
926 :
927 0 : return gpg_error (_gcry_mac_setiv (hd, iv, ivlen));
928 : }
929 :
930 : gcry_error_t
931 0 : gcry_mac_write (gcry_mac_hd_t hd, const void *buf, size_t buflen)
932 : {
933 0 : if (!fips_is_operational ())
934 0 : return gpg_error (fips_not_operational ());
935 :
936 0 : return gpg_error (_gcry_mac_write (hd, buf, buflen));
937 : }
938 :
939 : gcry_error_t
940 0 : gcry_mac_read (gcry_mac_hd_t hd, void *outbuf, size_t *outlen)
941 : {
942 0 : if (!fips_is_operational ())
943 0 : return gpg_error (fips_not_operational ());
944 :
945 0 : return gpg_error (_gcry_mac_read (hd, outbuf, outlen));
946 : }
947 :
948 : gcry_error_t
949 0 : gcry_mac_verify (gcry_mac_hd_t hd, const void *buf, size_t buflen)
950 : {
951 0 : if (!fips_is_operational ())
952 0 : return gpg_error (fips_not_operational ());
953 :
954 0 : return gpg_error (_gcry_mac_verify (hd, buf, buflen));
955 : }
956 :
957 : gcry_error_t
958 0 : gcry_mac_ctl (gcry_mac_hd_t h, int cmd, void *buffer, size_t buflen)
959 : {
960 0 : if (!fips_is_operational ())
961 0 : return gpg_error (fips_not_operational ());
962 :
963 0 : return gpg_error (_gcry_mac_ctl (h, cmd, buffer, buflen));
964 : }
965 :
966 : gcry_error_t
967 0 : gcry_pk_encrypt (gcry_sexp_t *result, gcry_sexp_t data, gcry_sexp_t pkey)
968 : {
969 0 : if (!fips_is_operational ())
970 : {
971 0 : *result = NULL;
972 0 : return gpg_error (fips_not_operational ());
973 : }
974 0 : return gpg_error (_gcry_pk_encrypt (result, data, pkey));
975 : }
976 :
977 : gcry_error_t
978 0 : gcry_pk_decrypt (gcry_sexp_t *result, gcry_sexp_t data, gcry_sexp_t skey)
979 : {
980 0 : if (!fips_is_operational ())
981 : {
982 0 : *result = NULL;
983 0 : return gpg_error (fips_not_operational ());
984 : }
985 0 : return gpg_error (_gcry_pk_decrypt (result, data, skey));
986 : }
987 :
988 : gcry_error_t
989 0 : gcry_pk_sign (gcry_sexp_t *result, gcry_sexp_t data, gcry_sexp_t skey)
990 : {
991 0 : if (!fips_is_operational ())
992 : {
993 0 : *result = NULL;
994 0 : return gpg_error (fips_not_operational ());
995 : }
996 0 : return gpg_error (_gcry_pk_sign (result, data, skey));
997 : }
998 :
999 : gcry_error_t
1000 0 : gcry_pk_verify (gcry_sexp_t sigval, gcry_sexp_t data, gcry_sexp_t pkey)
1001 : {
1002 0 : if (!fips_is_operational ())
1003 0 : return gpg_error (fips_not_operational ());
1004 0 : return gpg_error (_gcry_pk_verify (sigval, data, pkey));
1005 : }
1006 :
1007 : gcry_error_t
1008 0 : gcry_pk_testkey (gcry_sexp_t key)
1009 : {
1010 0 : if (!fips_is_operational ())
1011 0 : return gpg_error (fips_not_operational ());
1012 0 : return gpg_error (_gcry_pk_testkey (key));
1013 : }
1014 :
1015 : gcry_error_t
1016 0 : gcry_pk_genkey (gcry_sexp_t *r_key, gcry_sexp_t s_parms)
1017 : {
1018 0 : if (!fips_is_operational ())
1019 : {
1020 0 : *r_key = NULL;
1021 0 : return gpg_error (fips_not_operational ());
1022 : }
1023 0 : return gpg_error (_gcry_pk_genkey (r_key, s_parms));
1024 : }
1025 :
1026 : gcry_error_t
1027 0 : gcry_pk_ctl (int cmd, void *buffer, size_t buflen)
1028 : {
1029 0 : return gpg_error (_gcry_pk_ctl (cmd, buffer, buflen));
1030 : }
1031 :
1032 : gcry_error_t
1033 0 : gcry_pk_algo_info (int algo, int what, void *buffer, size_t *nbytes)
1034 : {
1035 0 : if (!fips_is_operational ())
1036 0 : return gpg_error (fips_not_operational ());
1037 :
1038 0 : return gpg_error (_gcry_pk_algo_info (algo, what, buffer, nbytes));
1039 : }
1040 :
1041 : const char *
1042 0 : gcry_pk_algo_name (int algorithm)
1043 : {
1044 0 : return _gcry_pk_algo_name (algorithm);
1045 : }
1046 :
1047 : int
1048 0 : gcry_pk_map_name (const char *name)
1049 : {
1050 0 : return _gcry_pk_map_name (name);
1051 : }
1052 :
1053 : unsigned int
1054 0 : gcry_pk_get_nbits (gcry_sexp_t key)
1055 : {
1056 0 : if (!fips_is_operational ())
1057 : {
1058 : (void)fips_not_operational ();
1059 0 : return 0;
1060 : }
1061 :
1062 0 : return _gcry_pk_get_nbits (key);
1063 : }
1064 :
1065 : unsigned char *
1066 0 : gcry_pk_get_keygrip (gcry_sexp_t key, unsigned char *array)
1067 : {
1068 0 : if (!fips_is_operational ())
1069 : {
1070 : (void)fips_not_operational ();
1071 0 : return NULL;
1072 : }
1073 0 : return _gcry_pk_get_keygrip (key, array);
1074 : }
1075 :
1076 : const char *
1077 0 : gcry_pk_get_curve (gcry_sexp_t key, int iterator, unsigned int *r_nbits)
1078 : {
1079 0 : if (!fips_is_operational ())
1080 : {
1081 : (void)fips_not_operational ();
1082 0 : return NULL;
1083 : }
1084 0 : return _gcry_pk_get_curve (key, iterator, r_nbits);
1085 : }
1086 :
1087 : gcry_sexp_t
1088 0 : gcry_pk_get_param (int algo, const char *name)
1089 : {
1090 0 : if (!fips_is_operational ())
1091 : {
1092 : (void)fips_not_operational ();
1093 0 : return NULL;
1094 : }
1095 0 : return _gcry_pk_get_param (algo, name);
1096 : }
1097 :
1098 : gcry_error_t
1099 0 : gcry_pubkey_get_sexp (gcry_sexp_t *r_sexp, int mode, gcry_ctx_t ctx)
1100 : {
1101 0 : if (!fips_is_operational ())
1102 : {
1103 0 : *r_sexp = NULL;
1104 0 : return gpg_error (fips_not_operational ());
1105 : }
1106 0 : return gpg_error (_gcry_pubkey_get_sexp (r_sexp, mode, ctx));
1107 : }
1108 :
1109 : gcry_error_t
1110 0 : gcry_md_open (gcry_md_hd_t *h, int algo, unsigned int flags)
1111 : {
1112 0 : if (!fips_is_operational ())
1113 : {
1114 0 : *h = NULL;
1115 0 : return gpg_error (fips_not_operational ());
1116 : }
1117 :
1118 0 : return gpg_error (_gcry_md_open (h, algo, flags));
1119 : }
1120 :
1121 : void
1122 0 : gcry_md_close (gcry_md_hd_t hd)
1123 : {
1124 0 : _gcry_md_close (hd);
1125 0 : }
1126 :
1127 : gcry_error_t
1128 0 : gcry_md_enable (gcry_md_hd_t hd, int algo)
1129 : {
1130 0 : if (!fips_is_operational ())
1131 0 : return gpg_error (fips_not_operational ());
1132 0 : return gpg_error (_gcry_md_enable (hd, algo));
1133 : }
1134 :
1135 : gcry_error_t
1136 0 : gcry_md_copy (gcry_md_hd_t *bhd, gcry_md_hd_t ahd)
1137 : {
1138 0 : if (!fips_is_operational ())
1139 : {
1140 0 : *bhd = NULL;
1141 0 : return gpg_error (fips_not_operational ());
1142 : }
1143 0 : return gpg_error (_gcry_md_copy (bhd, ahd));
1144 : }
1145 :
1146 : void
1147 0 : gcry_md_reset (gcry_md_hd_t hd)
1148 : {
1149 0 : _gcry_md_reset (hd);
1150 0 : }
1151 :
1152 : gcry_error_t
1153 0 : gcry_md_ctl (gcry_md_hd_t hd, int cmd, void *buffer, size_t buflen)
1154 : {
1155 0 : if (!fips_is_operational ())
1156 0 : return gpg_error (fips_not_operational ());
1157 0 : return gpg_error (_gcry_md_ctl (hd, cmd, buffer, buflen));
1158 : }
1159 :
1160 : void
1161 0 : gcry_md_write (gcry_md_hd_t hd, const void *buffer, size_t length)
1162 : {
1163 0 : if (!fips_is_operational ())
1164 : {
1165 : (void)fips_not_operational ();
1166 0 : return;
1167 : }
1168 0 : _gcry_md_write (hd, buffer, length);
1169 : }
1170 :
1171 : unsigned char *
1172 0 : gcry_md_read (gcry_md_hd_t hd, int algo)
1173 : {
1174 0 : return _gcry_md_read (hd, algo);
1175 : }
1176 :
1177 : gcry_err_code_t
1178 0 : gcry_md_extract (gcry_md_hd_t hd, int algo, void *buffer, size_t length)
1179 : {
1180 0 : return _gcry_md_extract(hd, algo, buffer, length);
1181 : }
1182 :
1183 : void
1184 0 : gcry_md_hash_buffer (int algo, void *digest,
1185 : const void *buffer, size_t length)
1186 : {
1187 0 : if (!fips_is_operational ())
1188 : {
1189 : (void)fips_not_operational ();
1190 0 : fips_signal_error ("called in non-operational state");
1191 : }
1192 0 : _gcry_md_hash_buffer (algo, digest, buffer, length);
1193 0 : }
1194 :
1195 : gpg_error_t
1196 0 : gcry_md_hash_buffers (int algo, unsigned int flags, void *digest,
1197 : const gcry_buffer_t *iov, int iovcnt)
1198 : {
1199 0 : if (!fips_is_operational ())
1200 : {
1201 : (void)fips_not_operational ();
1202 0 : fips_signal_error ("called in non-operational state");
1203 : }
1204 0 : return gpg_error (_gcry_md_hash_buffers (algo, flags, digest, iov, iovcnt));
1205 : }
1206 :
1207 : int
1208 0 : gcry_md_get_algo (gcry_md_hd_t hd)
1209 : {
1210 0 : if (!fips_is_operational ())
1211 : {
1212 : (void)fips_not_operational ();
1213 0 : fips_signal_error ("used in non-operational state");
1214 0 : return 0;
1215 : }
1216 0 : return _gcry_md_get_algo (hd);
1217 : }
1218 :
1219 : unsigned int
1220 0 : gcry_md_get_algo_dlen (int algo)
1221 : {
1222 0 : return _gcry_md_get_algo_dlen (algo);
1223 : }
1224 :
1225 : int
1226 0 : gcry_md_is_enabled (gcry_md_hd_t a, int algo)
1227 : {
1228 0 : if (!fips_is_operational ())
1229 : {
1230 : (void)fips_not_operational ();
1231 0 : return 0;
1232 : }
1233 :
1234 0 : return _gcry_md_is_enabled (a, algo);
1235 : }
1236 :
1237 : int
1238 0 : gcry_md_is_secure (gcry_md_hd_t a)
1239 : {
1240 0 : return _gcry_md_is_secure (a);
1241 : }
1242 :
1243 : gcry_error_t
1244 0 : gcry_md_info (gcry_md_hd_t h, int what, void *buffer, size_t *nbytes)
1245 : {
1246 0 : if (!fips_is_operational ())
1247 0 : return gpg_error (fips_not_operational ());
1248 :
1249 0 : return gpg_error (_gcry_md_info (h, what, buffer, nbytes));
1250 : }
1251 :
1252 : gcry_error_t
1253 0 : gcry_md_algo_info (int algo, int what, void *buffer, size_t *nbytes)
1254 : {
1255 0 : return gpg_error (_gcry_md_algo_info (algo, what, buffer, nbytes));
1256 : }
1257 :
1258 : const char *
1259 0 : gcry_md_algo_name (int algo)
1260 : {
1261 0 : return _gcry_md_algo_name (algo);
1262 : }
1263 :
1264 : int
1265 0 : gcry_md_map_name (const char* name)
1266 : {
1267 0 : return _gcry_md_map_name (name);
1268 : }
1269 :
1270 : gcry_error_t
1271 0 : gcry_md_setkey (gcry_md_hd_t hd, const void *key, size_t keylen)
1272 : {
1273 0 : if (!fips_is_operational ())
1274 0 : return gpg_error (fips_not_operational ());
1275 0 : return gpg_error (_gcry_md_setkey (hd, key, keylen));
1276 : }
1277 :
1278 : void
1279 0 : gcry_md_debug (gcry_md_hd_t hd, const char *suffix)
1280 : {
1281 0 : _gcry_md_debug (hd, suffix);
1282 0 : }
1283 :
1284 : gpg_error_t
1285 0 : gcry_kdf_derive (const void *passphrase, size_t passphraselen,
1286 : int algo, int hashalgo,
1287 : const void *salt, size_t saltlen,
1288 : unsigned long iterations,
1289 : size_t keysize, void *keybuffer)
1290 : {
1291 0 : return gpg_error (_gcry_kdf_derive (passphrase, passphraselen, algo, hashalgo,
1292 : salt, saltlen, iterations,
1293 : keysize, keybuffer));
1294 : }
1295 :
1296 : void
1297 0 : gcry_randomize (void *buffer, size_t length, enum gcry_random_level level)
1298 : {
1299 0 : if (!fips_is_operational ())
1300 : {
1301 : (void)fips_not_operational ();
1302 0 : fips_signal_fatal_error ("called in non-operational state");
1303 0 : fips_noreturn ();
1304 : }
1305 0 : _gcry_randomize (buffer, length, level);
1306 0 : }
1307 :
1308 : gcry_error_t
1309 0 : gcry_random_add_bytes (const void *buffer, size_t length, int quality)
1310 : {
1311 0 : if (!fips_is_operational ())
1312 0 : return gpg_error (fips_not_operational ());
1313 0 : return gpg_error (_gcry_random_add_bytes (buffer, length, quality));
1314 : }
1315 :
1316 : void *
1317 0 : gcry_random_bytes (size_t nbytes, enum gcry_random_level level)
1318 : {
1319 0 : if (!fips_is_operational ())
1320 : {
1321 : (void)fips_not_operational ();
1322 0 : fips_signal_fatal_error ("called in non-operational state");
1323 0 : fips_noreturn ();
1324 : }
1325 :
1326 0 : return _gcry_random_bytes (nbytes,level);
1327 : }
1328 :
1329 : void *
1330 0 : gcry_random_bytes_secure (size_t nbytes, enum gcry_random_level level)
1331 : {
1332 0 : if (!fips_is_operational ())
1333 : {
1334 : (void)fips_not_operational ();
1335 0 : fips_signal_fatal_error ("called in non-operational state");
1336 0 : fips_noreturn ();
1337 : }
1338 :
1339 0 : return _gcry_random_bytes_secure (nbytes, level);
1340 : }
1341 :
1342 : void
1343 0 : gcry_mpi_randomize (gcry_mpi_t w,
1344 : unsigned int nbits, enum gcry_random_level level)
1345 : {
1346 0 : _gcry_mpi_randomize (w, nbits, level);
1347 0 : }
1348 :
1349 : void
1350 0 : gcry_create_nonce (void *buffer, size_t length)
1351 : {
1352 0 : if (!fips_is_operational ())
1353 : {
1354 : (void)fips_not_operational ();
1355 0 : fips_signal_fatal_error ("called in non-operational state");
1356 0 : fips_noreturn ();
1357 : }
1358 0 : _gcry_create_nonce (buffer, length);
1359 0 : }
1360 :
1361 : gcry_error_t
1362 0 : gcry_prime_generate (gcry_mpi_t *prime,
1363 : unsigned int prime_bits,
1364 : unsigned int factor_bits,
1365 : gcry_mpi_t **factors,
1366 : gcry_prime_check_func_t cb_func,
1367 : void *cb_arg,
1368 : gcry_random_level_t random_level,
1369 : unsigned int flags)
1370 : {
1371 0 : return gpg_error (_gcry_prime_generate (prime, prime_bits, factor_bits,
1372 : factors, cb_func, cb_arg,
1373 : random_level, flags));
1374 : }
1375 :
1376 : gcry_error_t
1377 0 : gcry_prime_group_generator (gcry_mpi_t *r_g,
1378 : gcry_mpi_t prime, gcry_mpi_t *factors,
1379 : gcry_mpi_t start_g)
1380 : {
1381 0 : return gpg_error (_gcry_prime_group_generator (r_g, prime, factors, start_g));
1382 : }
1383 :
1384 : void
1385 0 : gcry_prime_release_factors (gcry_mpi_t *factors)
1386 : {
1387 0 : _gcry_prime_release_factors (factors);
1388 0 : }
1389 :
1390 : gcry_error_t
1391 0 : gcry_prime_check (gcry_mpi_t x, unsigned int flags)
1392 : {
1393 0 : return gpg_error (_gcry_prime_check (x, flags));
1394 : }
1395 :
1396 : void
1397 0 : gcry_ctx_release (gcry_ctx_t ctx)
1398 : {
1399 0 : _gcry_ctx_release (ctx);
1400 0 : }
1401 :
1402 : void
1403 0 : gcry_log_debug (const char *fmt, ...)
1404 : {
1405 : va_list arg_ptr ;
1406 :
1407 0 : va_start( arg_ptr, fmt ) ;
1408 0 : _gcry_logv (GCRY_LOG_DEBUG, fmt, arg_ptr);
1409 0 : va_end (arg_ptr);
1410 0 : }
1411 :
1412 : void
1413 0 : gcry_log_debughex (const char *text, const void *buffer, size_t length)
1414 : {
1415 0 : _gcry_log_printhex (text, buffer, length);
1416 0 : }
1417 :
1418 : void
1419 0 : gcry_log_debugmpi (const char *text, gcry_mpi_t mpi)
1420 : {
1421 0 : _gcry_log_printmpi (text, mpi);
1422 0 : }
1423 :
1424 : void
1425 0 : gcry_log_debugpnt (const char *text, mpi_point_t point, gcry_ctx_t ctx)
1426 : {
1427 0 : mpi_ec_t ec = ctx? _gcry_ctx_get_pointer (ctx, CONTEXT_TYPE_EC) : NULL;
1428 :
1429 0 : _gcry_mpi_point_log (text, point, ec);
1430 0 : }
1431 :
1432 : void
1433 0 : gcry_log_debugsxp (const char *text, gcry_sexp_t sexp)
1434 : {
1435 0 : _gcry_log_printsxp (text, sexp);
1436 0 : }
1437 :
1438 : void
1439 0 : gcry_set_progress_handler (gcry_handler_progress_t cb, void *cb_data)
1440 : {
1441 0 : _gcry_set_progress_handler (cb, cb_data);
1442 0 : }
1443 :
1444 : void
1445 0 : gcry_set_allocation_handler (gcry_handler_alloc_t func_alloc,
1446 : gcry_handler_alloc_t func_alloc_secure,
1447 : gcry_handler_secure_check_t func_secure_check,
1448 : gcry_handler_realloc_t func_realloc,
1449 : gcry_handler_free_t func_free)
1450 : {
1451 0 : _gcry_set_allocation_handler (func_alloc, func_alloc_secure,
1452 : func_secure_check, func_realloc, func_free);
1453 0 : }
1454 :
1455 : void
1456 0 : gcry_set_outofcore_handler (gcry_handler_no_mem_t h, void *opaque)
1457 : {
1458 0 : _gcry_set_outofcore_handler (h, opaque);
1459 0 : }
1460 :
1461 : void
1462 0 : gcry_set_fatalerror_handler (gcry_handler_error_t fnc, void *opaque)
1463 : {
1464 0 : _gcry_set_fatalerror_handler (fnc, opaque);
1465 0 : }
1466 :
1467 : void
1468 0 : gcry_set_log_handler (gcry_handler_log_t f, void *opaque)
1469 : {
1470 0 : _gcry_set_log_handler (f, opaque);
1471 0 : }
1472 :
1473 : void
1474 0 : gcry_set_gettext_handler (const char *(*f)(const char*))
1475 : {
1476 0 : _gcry_set_gettext_handler (f);
1477 0 : }
1478 :
1479 : void *
1480 0 : gcry_malloc (size_t n)
1481 : {
1482 0 : return _gcry_malloc (n);
1483 : }
1484 :
1485 : void *
1486 0 : gcry_calloc (size_t n, size_t m)
1487 : {
1488 0 : return _gcry_calloc (n, m);
1489 : }
1490 :
1491 : void *
1492 0 : gcry_malloc_secure (size_t n)
1493 : {
1494 0 : return _gcry_malloc_secure (n);
1495 : }
1496 :
1497 : void *
1498 0 : gcry_calloc_secure (size_t n, size_t m)
1499 : {
1500 0 : return _gcry_calloc_secure (n,m);
1501 : }
1502 :
1503 : void *
1504 0 : gcry_realloc (void *a, size_t n)
1505 : {
1506 0 : return _gcry_realloc (a, n);
1507 : }
1508 :
1509 : char *
1510 0 : gcry_strdup (const char *string)
1511 : {
1512 0 : return _gcry_strdup (string);
1513 : }
1514 :
1515 : void *
1516 0 : gcry_xmalloc (size_t n)
1517 : {
1518 0 : return _gcry_xmalloc (n);
1519 : }
1520 :
1521 : void *
1522 0 : gcry_xcalloc (size_t n, size_t m)
1523 : {
1524 0 : return _gcry_xcalloc (n, m);
1525 : }
1526 :
1527 : void *
1528 0 : gcry_xmalloc_secure (size_t n)
1529 : {
1530 0 : return _gcry_xmalloc_secure (n);
1531 : }
1532 :
1533 : void *
1534 0 : gcry_xcalloc_secure (size_t n, size_t m)
1535 : {
1536 0 : return _gcry_xcalloc_secure (n, m);
1537 : }
1538 :
1539 : void *
1540 0 : gcry_xrealloc (void *a, size_t n)
1541 : {
1542 0 : return _gcry_xrealloc (a, n);
1543 : }
1544 :
1545 : char *
1546 0 : gcry_xstrdup (const char *a)
1547 : {
1548 0 : return _gcry_xstrdup (a);
1549 : }
1550 :
1551 : void
1552 0 : gcry_free (void *a)
1553 : {
1554 0 : _gcry_free (a);
1555 0 : }
1556 :
1557 : int
1558 0 : gcry_is_secure (const void *a)
1559 : {
1560 0 : return _gcry_is_secure (a);
1561 : }
|