using System;
namespace StellaOps.Cryptography;
/// 
/// Well-known identifiers for password hashing algorithms supported by StellaOps.
/// 
public static class PasswordHashAlgorithms
{
    public const string Argon2id = "argon2id";
    public const string Pbkdf2Sha256 = "pbkdf2-sha256";
    /// 
    /// Converts the enum value into the canonical algorithm identifier string.
    /// 
    public static string ToAlgorithmId(this PasswordHashAlgorithm algorithm) =>
        algorithm switch
        {
            PasswordHashAlgorithm.Argon2id => Argon2id,
            PasswordHashAlgorithm.Pbkdf2 => Pbkdf2Sha256,
            _ => throw new ArgumentOutOfRangeException(nameof(algorithm), algorithm, "Unsupported password hash algorithm.")
        };
}