diff options
Diffstat (limited to 'src/authorization/libanastasiseufin/lae_common.c')
-rw-r--r-- | src/authorization/libanastasiseufin/lae_common.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/authorization/libanastasiseufin/lae_common.c b/src/authorization/libanastasiseufin/lae_common.c new file mode 100644 index 0000000..172c826 --- /dev/null +++ b/src/authorization/libanastasiseufin/lae_common.c | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | This file is part of Anastasis | ||
3 | Copyright (C) 2015-2020 Anastasis SARL | ||
4 | |||
5 | Anastasis is free software; you can redistribute it and/or modify it under the | ||
6 | terms of the GNU General Public License as published by the Free Software | ||
7 | Foundation; either version 3, or (at your option) any later version. | ||
8 | |||
9 | Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY | ||
10 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | ||
11 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. | ||
12 | |||
13 | You should have received a copy of the GNU General Public License along with | ||
14 | Anastasis; see the file COPYING. If not, see | ||
15 | <http://www.gnu.org/licenses/> | ||
16 | */ | ||
17 | /** | ||
18 | * @file libanastasiseufin/lae_common.c | ||
19 | * @brief Common functions for the bank API | ||
20 | * @author Christian Grothoff | ||
21 | */ | ||
22 | #include "platform.h" | ||
23 | #include "lae_common.h" | ||
24 | |||
25 | |||
26 | /** | ||
27 | * Set authentication data in @a easy from @a auth. | ||
28 | * The API currently specifies the use of HTTP basic | ||
29 | * authentication. | ||
30 | * | ||
31 | * @param easy curl handle to setup for authentication | ||
32 | * @param auth authentication data to use | ||
33 | * @return #GNUNET_OK in success | ||
34 | */ | ||
35 | int | ||
36 | ANASTASIS_EUFIN_setup_auth_ ( | ||
37 | CURL *easy, | ||
38 | const struct ANASTASIS_EUFIN_AuthenticationData *auth) | ||
39 | { | ||
40 | int ret; | ||
41 | |||
42 | ret = GNUNET_OK; | ||
43 | switch (auth->method) | ||
44 | { | ||
45 | case ANASTASIS_EUFIN_AUTH_NONE: | ||
46 | return GNUNET_OK; | ||
47 | case ANASTASIS_EUFIN_AUTH_BASIC: | ||
48 | { | ||
49 | char *up; | ||
50 | |||
51 | GNUNET_asprintf (&up, | ||
52 | "%s:%s", | ||
53 | auth->details.basic.username, | ||
54 | auth->details.basic.password); | ||
55 | if ( (CURLE_OK != | ||
56 | curl_easy_setopt (easy, | ||
57 | CURLOPT_HTTPAUTH, | ||
58 | CURLAUTH_BASIC)) || | ||
59 | (CURLE_OK != | ||
60 | curl_easy_setopt (easy, | ||
61 | CURLOPT_USERPWD, | ||
62 | up)) ) | ||
63 | ret = GNUNET_SYSERR; | ||
64 | GNUNET_free (up); | ||
65 | break; | ||
66 | } | ||
67 | } | ||
68 | return ret; | ||
69 | } | ||
70 | |||
71 | |||
72 | /* end of lae_common.c */ | ||