using SameBeat.Domain.Encje;
namespace SameBeat.Application.Interfejsy;
///
/// Hashowanie sekretu sesji uczestnika poczekalni -- ten sam mechanizm (PBKDF2 przez
/// Microsoft.AspNetCore.Identity.PasswordHasher) co dla hasel
/// hosta, ale dla encji UczestnikOczekujacy: to jedyny sposob, w jaki uczestnik bez konta moze
/// pozniej udowodnic "to ja" (np. przy odpytywaniu o status albo przy wymianie na token sceny).
///
public interface IUslugaHaszowaniaSekretowSesji
{
/// Generuje nowy losowy sekret JAWNY -- min. 32 bajty (256 bitow) z kryptograficznie bezpiecznego generatora, zakodowany Base64Url.
string WygenerujSekret();
string Haszuj(UczestnikOczekujacy uczestnik, string sekretJawny);
WynikWeryfikacjiHasla Weryfikuj(UczestnikOczekujacy uczestnik, string sekretHash, string sekretJawny);
}