Add support for SCRAM-SHA-512-PLUS
Patch written by @matthias-hmb This fixes #241 Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
@@ -175,9 +175,11 @@ struct _xmpp_send_queue_t {
|
||||
#define SASL_MASK_EXTERNAL (1 << 6)
|
||||
#define SASL_MASK_SCRAMSHA1_PLUS (1 << 7)
|
||||
#define SASL_MASK_SCRAMSHA256_PLUS (1 << 8)
|
||||
#define SASL_MASK_SCRAMSHA512_PLUS (1 << 9)
|
||||
|
||||
#define SASL_MASK_SCRAM_PLUS \
|
||||
(SASL_MASK_SCRAMSHA1_PLUS | SASL_MASK_SCRAMSHA256_PLUS)
|
||||
#define SASL_MASK_SCRAM_PLUS \
|
||||
(SASL_MASK_SCRAMSHA1_PLUS | SASL_MASK_SCRAMSHA256_PLUS | \
|
||||
SASL_MASK_SCRAMSHA512_PLUS)
|
||||
#define SASL_MASK_SCRAM_WEAK \
|
||||
(SASL_MASK_SCRAMSHA1 | SASL_MASK_SCRAMSHA256 | SASL_MASK_SCRAMSHA512)
|
||||
#define SASL_MASK_SCRAM (SASL_MASK_SCRAM_PLUS | SASL_MASK_SCRAM_WEAK)
|
||||
|
||||
11
src/scram.c
11
src/scram.c
@@ -78,12 +78,23 @@ const struct hash_alg scram_sha512 = {
|
||||
(void (*)(void *, const uint8_t *, size_t))sha512_process,
|
||||
(void (*)(void *, uint8_t *))sha512_done};
|
||||
|
||||
const struct hash_alg scram_sha512_plus = {
|
||||
"SCRAM-SHA-512-PLUS",
|
||||
SASL_MASK_SCRAMSHA512_PLUS,
|
||||
SHA512_DIGEST_SIZE,
|
||||
(void (*)(const uint8_t *, size_t, uint8_t *))sha512_hash,
|
||||
(void (*)(void *))sha512_init,
|
||||
(void (*)(void *, const uint8_t *, size_t))sha512_process,
|
||||
(void (*)(void *, uint8_t *))sha512_done};
|
||||
|
||||
/* The order of this list defines the order in which the SCRAM algorithms are
|
||||
* tried if the server supports them.
|
||||
* Their order is derived from
|
||||
* https://datatracker.ietf.org/doc/html/draft-ietf-kitten-password-storage
|
||||
*/
|
||||
const struct hash_alg *scram_algs[] = {
|
||||
/* *1 */
|
||||
&scram_sha512_plus,
|
||||
/* *1 */
|
||||
&scram_sha256_plus,
|
||||
/* *1 */
|
||||
|
||||
Reference in New Issue
Block a user