#include "buffer.h"
#include "hmac.h"
#include "sha1.h"
+#include "sha2.h"
#include "randgen.h"
#include "safe-memset.h"
#include "str.h"
return mech_scram_auth_new(&hash_method_sha1, "SCRAM-SHA-1");
}
+static struct auth_request *mech_scram_sha256_auth_new(void)
+{
+ return mech_scram_auth_new(&hash_method_sha256, "SCRAM-SHA-256");
+}
+
const struct mech_module mech_scram_sha1 = {
"SCRAM-SHA-1",
mech_scram_auth_continue,
mech_generic_auth_free
};
+
+const struct mech_module mech_scram_sha256 = {
+ "SCRAM-SHA-256",
+
+ .flags = MECH_SEC_MUTUAL_AUTH,
+ .passdb_need = MECH_PASSDB_NEED_LOOKUP_CREDENTIALS,
+
+ mech_scram_sha256_auth_new,
+ mech_generic_auth_initial,
+ mech_scram_auth_continue,
+ mech_generic_auth_free
+};
extern const struct mech_module mech_ntlm;
extern const struct mech_module mech_otp;
extern const struct mech_module mech_scram_sha1;
+extern const struct mech_module mech_scram_sha256;
extern const struct mech_module mech_skey;
extern const struct mech_module mech_rpa;
extern const struct mech_module mech_anonymous;
}
mech_register_module(&mech_otp);
mech_register_module(&mech_scram_sha1);
+ mech_register_module(&mech_scram_sha256);
mech_register_module(&mech_skey);
mech_register_module(&mech_rpa);
mech_register_module(&mech_anonymous);
}
mech_unregister_module(&mech_otp);
mech_unregister_module(&mech_scram_sha1);
+ mech_unregister_module(&mech_scram_sha256);
mech_unregister_module(&mech_skey);
mech_unregister_module(&mech_rpa);
mech_unregister_module(&mech_anonymous);