gsasl
2.2.1
lib
scram
tools.c
Go to the documentation of this file.
1
/* tools.c --- Shared client/server SCRAM code
2
* Copyright (C) 2009-2024 Simon Josefsson
3
*
4
* This file is part of GNU SASL Library.
5
*
6
* GNU SASL Library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public License
8
* as published by the Free Software Foundation; either version 2.1 of
9
* the License, or (at your option) any later version.
10
*
11
* GNU SASL Library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with GNU SASL Library; if not, write to the Free
18
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19
* Boston, MA 02110-1301, USA.
20
*
21
*/
22
23
#include <config.h>
24
25
#include "
tools.h
"
26
#include "
mechtools.h
"
27
28
/* Hex encode HASHBUF which is HASH digest output and set salted
29
password property to the hex encoded value. */
30
int
31
set_saltedpassword
(
Gsasl_session
*sctx,
Gsasl_hash
hash,
const
char
*hashbuf)
32
{
33
char
hexstr[
GSASL_HASH_MAX_SIZE
* 2 + 1];
34
35
_gsasl_hex_encode
(hashbuf,
gsasl_hash_length
(hash), hexstr);
36
return
gsasl_property_set
(sctx,
GSASL_SCRAM_SALTED_PASSWORD
, hexstr);
37
}
gsasl_hash_length
size_t gsasl_hash_length(Gsasl_hash hash)
Definition:
crypto.c:73
Gsasl_hash
Gsasl_hash
Definition:
gsasl.h:428
gsasl_property_set
_GSASL_API int gsasl_property_set(Gsasl_session *sctx, Gsasl_property prop, const char *data)
Definition:
property.c:189
GSASL_HASH_MAX_SIZE
@ GSASL_HASH_MAX_SIZE
Definition:
gsasl.h:452
GSASL_SCRAM_SALTED_PASSWORD
@ GSASL_SCRAM_SALTED_PASSWORD
Definition:
gsasl.h:240
_gsasl_hex_encode
void _gsasl_hex_encode(const char *in, size_t inlen, char *out)
Definition:
mechtools.c:221
mechtools.h
Gsasl_session
Definition:
internal.h:49
set_saltedpassword
int set_saltedpassword(Gsasl_session *sctx, Gsasl_hash hash, const char *hashbuf)
Definition:
tools.c:31
tools.h
Generated by
1.9.1