private ICryptoTransform CreatePersistedCryptoTransformCore(Func <CngKey> cngKeyFactory, byte[] iv, bool encrypting)
        {
            int blockSizeInBytes        = _outer.BlockSize.BitSizeToByteSize();
            BasicSymmetricCipher cipher = new BasicSymmetricCipherNCrypt(cngKeyFactory, _outer.Mode, blockSizeInBytes, iv, encrypting);

            return(UniversalCryptoTransform.Create(_outer.Padding, cipher, encrypting));
        }
        private ICryptoTransform CreatePersistedCryptoTransformCore(Func <CngKey> cngKeyFactory, byte[] iv, bool encrypting)
        {
            // note: iv is guaranteed to be cloned before this method, so no need to clone it again

            int blockSizeInBytes        = _outer.BlockSize.BitSizeToByteSize();
            BasicSymmetricCipher cipher = new BasicSymmetricCipherNCrypt(cngKeyFactory, _outer.Mode, blockSizeInBytes, iv, encrypting);

            return(UniversalCryptoTransform.Create(_outer.Padding, cipher, encrypting));
        }
        private UniversalCryptoTransform CreatePersistedCryptoTransformCore(Func <CngKey> cngKeyFactory, byte[]?iv, bool encrypting, PaddingMode padding, CipherMode mode)
        {
            // note: iv is guaranteed to be cloned before this method, so no need to clone it again

            int blockSizeInBytes        = _outer.BlockSize.BitSizeToByteSize();
            int feedbackSizeInBytes     = _outer.FeedbackSize;
            BasicSymmetricCipher cipher = new BasicSymmetricCipherNCrypt(
                cngKeyFactory,
                mode,
                blockSizeInBytes,
                iv,
                encrypting,
                feedbackSizeInBytes,
                _outer.GetPaddingSize(mode, _outer.FeedbackSize));

            return(UniversalCryptoTransform.Create(padding, cipher, encrypting));
        }
        private ICryptoTransform CreatePersistedCryptoTransformCore(Func<CngKey> cngKeyFactory, byte[] iv, bool encrypting)
        {
            // note: iv is guaranteed to be cloned before this method, so no need to clone it again

            int blockSizeInBytes = _outer.BlockSize.BitSizeToByteSize();
            BasicSymmetricCipher cipher = new BasicSymmetricCipherNCrypt(cngKeyFactory, _outer.Mode, blockSizeInBytes, iv, encrypting);
            return UniversalCryptoTransform.Create(_outer.Padding, cipher, encrypting);
        }