1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/* See LICENSE file for copyright and license details. */
#include "common.h"
union function {
int (*func)(char *out, size_t n);
};
static int
function_wrapper(char *out, size_t n, void *function)
{
union function *func = function;
return func->func(out, n);
}
struct libar2_argon2_parameters *
libar2simplified_decode(const char *str, char **tagp, char **endp, int (*random_byte_generator)(char *out, size_t n))
{
union function func;
if (random_byte_generator) {
func.func = random_byte_generator;
return libar2simplified_decode_r(str, tagp, endp, function_wrapper, &func);
} else {
return libar2simplified_decode_r(str, tagp, endp, NULL, NULL);
}
}
|