public static bool IsSupported(TlsHashAlgorithm algo)
 {
     return HashAlgorithms.Contains(algo);
 }
        internal static void RegisterHash(TlsHashAlgorithm algo, Func<IDigest> factory)
        {
            if (!HashAlgorithms.Add(algo))
            {
                throw new InvalidOperationException("Algorithm already registered");
            }

            DigestFactories.Add(algo, factory);
        }
 public static IDigest CreateDigestAlgorithm(TlsHashAlgorithm algo)
 {
     return DigestFactories[algo]();
 }
        internal static void RegisterSuite(CipherSuite suite, TlsCipherAlgorithm cipher, TlsHashAlgorithm digest, TlsSignatureAlgorithm signature, TlsKeyExchange exchange)
        {
            Suites.Add(suite);

            CipherMapping.Add(suite, cipher);
            DigestMapping.Add(suite, digest);
            SignatureMapping.Add(suite, signature);
            KeyExchangeMapping.Add(suite, exchange);
        }