private static string ConvertToAsymmetricKeyAlgorithmName(AsymmetricAlgorithmType algorithmType)
        {
            switch (algorithmType)
            {
                case AsymmetricAlgorithmType.DsaSha1:
                    return AsymmetricAlgorithmNames.DsaSha1;
                case AsymmetricAlgorithmType.DsaSha256:
                    return AsymmetricAlgorithmNames.DsaSha256;
                case AsymmetricAlgorithmType.EcdsaP256Sha256:
                    return AsymmetricAlgorithmNames.EcdsaP256Sha256;
                case AsymmetricAlgorithmType.EcdsaP384Sha384:
                    return AsymmetricAlgorithmNames.EcdsaP384Sha384;
                case AsymmetricAlgorithmType.EcdsaP521Sha512:
                    return AsymmetricAlgorithmNames.EcdsaP521Sha512;
                case AsymmetricAlgorithmType.EcdsaSha256:
                    return AsymmetricAlgorithmNames.EcdsaSha256;
                case AsymmetricAlgorithmType.EcdsaSha384:
                    return AsymmetricAlgorithmNames.EcdsaSha384;
                case AsymmetricAlgorithmType.EcdsaSha512:
                    return AsymmetricAlgorithmNames.EcdsaSha512;
                case AsymmetricAlgorithmType.RsaOaepSha1:
                    return AsymmetricAlgorithmNames.RsaOaepSha1;
                case AsymmetricAlgorithmType.RsaOaepSha256:
                    return AsymmetricAlgorithmNames.RsaOaepSha256;
                case AsymmetricAlgorithmType.RsaOaepSha384:
                    return AsymmetricAlgorithmNames.RsaOaepSha384;
                case AsymmetricAlgorithmType.RsaOaepSha512:
                    return AsymmetricAlgorithmNames.RsaOaepSha512;
                case AsymmetricAlgorithmType.RsaPkcs1:
                    return AsymmetricAlgorithmNames.RsaPkcs1;
                case AsymmetricAlgorithmType.RsaSignPkcs1Sha1:
                    return AsymmetricAlgorithmNames.RsaSignPkcs1Sha1;
                case AsymmetricAlgorithmType.RsaSignPkcs1Sha256:
                    return AsymmetricAlgorithmNames.RsaSignPkcs1Sha256;
                case AsymmetricAlgorithmType.RsaSignPkcs1Sha384:
                    return AsymmetricAlgorithmNames.RsaSignPkcs1Sha384;
                case AsymmetricAlgorithmType.RsaSignPkcs1Sha512:
                    return AsymmetricAlgorithmNames.RsaSignPkcs1Sha512;
                case AsymmetricAlgorithmType.RsaSignPssSha1:
                    return AsymmetricAlgorithmNames.RsaSignPssSha1;
                case AsymmetricAlgorithmType.RsaSignPssSha256:
                    return AsymmetricAlgorithmNames.RsaSignPssSha256;
                case AsymmetricAlgorithmType.RsaSignPssSha384:
                    return AsymmetricAlgorithmNames.RsaSignPssSha384;
                case AsymmetricAlgorithmType.RsaSignPssSha512:
                    return AsymmetricAlgorithmNames.RsaSignPssSha512;

                default:
                    throw new NotSupportedException();
            }
        }
 public static IJasilyAsymmetricKeyAlgorithmProvider CreateAsymmetric(AsymmetricAlgorithmType algorithmType)
     => new UAPAsymmetricKeyAlgorithmProvider(
             AsymmetricKeyAlgorithmProvider.OpenAlgorithm(
                 ConvertToAsymmetricKeyAlgorithmName(algorithmType)));
 public static IJasilyAsymmetricKeyAlgorithmProvider CreateAsymmetric(AsymmetricAlgorithmType algorithmType)
 {
     throw new NotSupportedException();
 }
 /// <summary>
 /// Constructs a new EncryptionMaterials object, storing an asymmetric key.
 /// </summary>
 /// <param name="algorithm">Generic asymmetric algorithm</param>
 /// <param name="algorithmType">Type of of the asymmetric algorithm</param>
 public EncryptionMaterialsV2(AsymmetricAlgorithm algorithm, AsymmetricAlgorithmType algorithmType) : base(algorithm)
 {
     AsymmetricProviderType = algorithmType;
 }
        private static string ConvertToAsymmetricKeyAlgorithmName(AsymmetricAlgorithmType algorithmType)
        {
            switch (algorithmType)
            {
            case AsymmetricAlgorithmType.DsaSha1:
                return(AsymmetricAlgorithmNames.DsaSha1);

            case AsymmetricAlgorithmType.DsaSha256:
                return(AsymmetricAlgorithmNames.DsaSha256);

            case AsymmetricAlgorithmType.EcdsaP256Sha256:
                return(AsymmetricAlgorithmNames.EcdsaP256Sha256);

            case AsymmetricAlgorithmType.EcdsaP384Sha384:
                return(AsymmetricAlgorithmNames.EcdsaP384Sha384);

            case AsymmetricAlgorithmType.EcdsaP521Sha512:
                return(AsymmetricAlgorithmNames.EcdsaP521Sha512);

            case AsymmetricAlgorithmType.EcdsaSha256:
                return(AsymmetricAlgorithmNames.EcdsaSha256);

            case AsymmetricAlgorithmType.EcdsaSha384:
                return(AsymmetricAlgorithmNames.EcdsaSha384);

            case AsymmetricAlgorithmType.EcdsaSha512:
                return(AsymmetricAlgorithmNames.EcdsaSha512);

            case AsymmetricAlgorithmType.RsaOaepSha1:
                return(AsymmetricAlgorithmNames.RsaOaepSha1);

            case AsymmetricAlgorithmType.RsaOaepSha256:
                return(AsymmetricAlgorithmNames.RsaOaepSha256);

            case AsymmetricAlgorithmType.RsaOaepSha384:
                return(AsymmetricAlgorithmNames.RsaOaepSha384);

            case AsymmetricAlgorithmType.RsaOaepSha512:
                return(AsymmetricAlgorithmNames.RsaOaepSha512);

            case AsymmetricAlgorithmType.RsaPkcs1:
                return(AsymmetricAlgorithmNames.RsaPkcs1);

            case AsymmetricAlgorithmType.RsaSignPkcs1Sha1:
                return(AsymmetricAlgorithmNames.RsaSignPkcs1Sha1);

            case AsymmetricAlgorithmType.RsaSignPkcs1Sha256:
                return(AsymmetricAlgorithmNames.RsaSignPkcs1Sha256);

            case AsymmetricAlgorithmType.RsaSignPkcs1Sha384:
                return(AsymmetricAlgorithmNames.RsaSignPkcs1Sha384);

            case AsymmetricAlgorithmType.RsaSignPkcs1Sha512:
                return(AsymmetricAlgorithmNames.RsaSignPkcs1Sha512);

            case AsymmetricAlgorithmType.RsaSignPssSha1:
                return(AsymmetricAlgorithmNames.RsaSignPssSha1);

            case AsymmetricAlgorithmType.RsaSignPssSha256:
                return(AsymmetricAlgorithmNames.RsaSignPssSha256);

            case AsymmetricAlgorithmType.RsaSignPssSha384:
                return(AsymmetricAlgorithmNames.RsaSignPssSha384);

            case AsymmetricAlgorithmType.RsaSignPssSha512:
                return(AsymmetricAlgorithmNames.RsaSignPssSha512);

            default:
                throw new NotSupportedException();
            }
        }
 public static IJasilyAsymmetricKeyAlgorithmProvider CreateAsymmetric(AsymmetricAlgorithmType algorithmType)
 {
     throw new NotSupportedException();
 }
 public static IJasilyAsymmetricKeyAlgorithmProvider CreateAsymmetric(AsymmetricAlgorithmType algorithmType)
 => new UAPAsymmetricKeyAlgorithmProvider(
     AsymmetricKeyAlgorithmProvider.OpenAlgorithm(
         ConvertToAsymmetricKeyAlgorithmName(algorithmType)));
        public IAsymmetricAlgorithmBuilder WithAlgorithm(AsymmetricAlgorithmType algorithmType)
        {
            Algorithm = Activator.CreateInstance(AsymmetricAlgorithmDictionary[algorithmType], true) as IAlgorithm;

            return(this);
        }