/// <summary>Constructor</summary> /// <param name="algorithm">EnumASymmetricAlgorithm</param> /// <param name="certificateFilePath">X.509証明書(*.pfx, *.cer)へのパス</param> /// <param name="password">パスワード</param> /// <param name="flag">X509KeyStorageFlags</param> public ASymmetricCryptography(EnumASymmetricAlgorithm algorithm, string certificateFilePath = "", string password = "", X509KeyStorageFlags flag = X509KeyStorageFlags.DefaultKeySet) { this._asa = AsymmetricAlgorithmCmnFunc.CreateCryptographySP( algorithm, certificateFilePath, password, flag); }
/// <summary>対称アルゴリズム暗号化サービスプロバイダ生成</summary> /// <param name="easa">EnumASymmetricAlgorithm</param> /// <param name="certificateFilePath">X.509証明書(*.pfx, *.cer)へのパス</param> /// <param name="password">パスワード</param> /// <param name="flag">X509KeyStorageFlags</param> /// <returns>AsymmetricAlgorithm</returns> public static AsymmetricAlgorithm CreateCryptographySP(EnumASymmetricAlgorithm easa, string certificateFilePath = "", string password = "", X509KeyStorageFlags flag = X509KeyStorageFlags.DefaultKeySet) { AsymmetricAlgorithm asa = null; if (easa == EnumASymmetricAlgorithm.X509) { // X.509対応 X509Certificate2 x509Key = new X509Certificate2(certificateFilePath, password, flag); if (string.IsNullOrEmpty(password)) { asa = x509Key.PublicKey.Key; } else { asa = x509Key.PrivateKey; } } else { if (easa == EnumASymmetricAlgorithm.RsaCsp) { // RSACryptoServiceProviderサービスプロバイダ asa = RSACryptoServiceProvider.Create(); // devps(1703) } #if !NET45 else if (easa == EnumASymmetricAlgorithm.RsaCng) { // RSACngサービスプロバイダ asa = RSACng.Create(); // devps(1703) } #endif #if NETSTD else if (easa == EnumASymmetricAlgorithm.RsaOpenSsl) { // RSAOpenSslサービスプロバイダ asa = RSAOpenSsl.Create(); // devps(1703) } #endif } return(asa); }
/// <summary>Constructor</summary> /// <param name="algorithm">EnumASymmetricAlgorithm</param> /// <param name="param">RSAParameters</param> public JWE_RsaOaepAesGcm_Param(EnumASymmetricAlgorithm algorithm, RSAParameters param) { this.ASymmetricCryptography = new ASymmetricCryptography(algorithm); ((RSA)ASymmetricCryptography.AsymmetricAlgorithm).ImportParameters(param); }
/// <summary>Constructor</summary> /// <param name="algorithm">EnumASymmetricAlgorithm</param> public JWE_RsaOaepAesGcm_Param(EnumASymmetricAlgorithm algorithm) { this.ASymmetricCryptography = new ASymmetricCryptography(algorithm); }
/// <summary>Constructor</summary> /// <param name="algorithm">EnumASymmetricAlgorithm</param> public JWE_Rsa15A128CbcHS256_Param(EnumASymmetricAlgorithm algorithm) { this.ASymmetricCryptography = new ASymmetricCryptography(algorithm); }