Inheritance: CryptographyProvider
コード例 #1
0
        public static CryptographyProvider Create(
            [CanBeNull] XElement configuration,
            [NotNull] string name)
        {
            using (IDisposable provider = (IDisposable)CryptoConfig.CreateFromName(name))
            {
                AsymmetricAlgorithm asymm = provider as AsymmetricAlgorithm;
                if (asymm != null)
                {
                    return(AsymmetricCryptographyProvider.Create(asymm, configuration));
                }

                SymmetricAlgorithm sym = provider as SymmetricAlgorithm;
                if (sym != null)
                {
                    return(SymmetricCryptographyProvider.Create(name, sym, configuration));
                }

                System.Security.Cryptography.HashAlgorithm hash = provider as System.Security.Cryptography.HashAlgorithm;
                if (hash != null)
                {
                    return(HashingCryptographyProvider.Create(name, hash, configuration));
                }

                RandomNumberGenerator rnd = provider as RandomNumberGenerator;
                if (rnd != null)
                {
                    return(RandomCryptographyProvider.Create(name, rnd, configuration));
                }

                throw new CryptographicException(
                          string.Format(Resources.CryptographyProvider_Create_Unknown_Provider, name));
            }
        }
コード例 #2
0
 public static void GetNonZeroRandomBytes([NotNull] this byte[] data)
 => RandomCryptographyProvider.GetNonZeroRandomBytes(data);