Example #1
0
        private ICryptoTransform CreateEncryptor(byte[] key, byte[] IV, EncryptModeEnum encryptMode, AesKeySize keySize = AesKeySize.Aes128, PaddingMode paddingMode = PaddingMode.PKCS7)
        {
            if (EncryptModeEnum.CBC.Equals(encryptMode))
            {
                return(AesCBCEncryptor.CreateEncryptor(key, IV, keySize, paddingMode));
            }
            if (EncryptModeEnum.CTR.Equals(encryptMode))
            {
                return(AesCTREncryptor.CreateEncryptor(key, IV, keySize));
            }

            throw new Exception($"Encryption Mode {encryptMode} not valid");
        }
Example #2
0
        private static AesSettings Create(IConfigurationSection section)
        {
            EncryptModeEnum mode = section["Mode"].ToEnum <EncryptModeEnum>();

            switch (mode)
            {
            case EncryptModeEnum.ECB:
                return(CreateEcb(section));

            case EncryptModeEnum.CBC:
            case EncryptModeEnum.CTR:
            case EncryptModeEnum.GCM:
                return(CreateDefault(section));

            default:
                throw new ArgumentOutOfRangeException($"Argumendt {mode}");
            }
        }
Example #3
0
        public IEncryptorFactory CreateFactory(EncryptModeEnum mode, byte[] aad = null)
        {
            var settings = AesSettings.GetEnumerator();

            switch (mode)
            {
            case EncryptModeEnum.ECB:
                return(new EcbEncryptorFactory(settings.FirstOrDefault(s => EncryptModeEnum.ECB.Equals(s.Mode))));

            case EncryptModeEnum.CBC:
                return(new CbcEncryptorFactory(settings.FirstOrDefault(s => EncryptModeEnum.CBC.Equals(s.Mode))));

            case EncryptModeEnum.CTR:
                return(new CtrEncryptorFactory(settings.FirstOrDefault(s => EncryptModeEnum.CTR.Equals(s.Mode))));

            case EncryptModeEnum.GCM:
                return(new GcmEncryptorFactory(settings.FirstOrDefault(s => EncryptModeEnum.GCM.Equals(s.Mode)), aad));

            default:
                throw new ArgumentOutOfRangeException($"Invalid Mode {mode}");
            }
        }