private static ILiteSymmetricCipher CreateLiteCipher( CipherMode cipherMode, PaddingMode paddingMode, ReadOnlySpan <byte> key, int effectiveKeyLength, ReadOnlySpan <byte> iv, int blockSize, int feedbackSizeInBytes, int paddingSize, bool encrypting) { using (SafeAlgorithmHandle algorithm = RC2BCryptModes.GetHandle(cipherMode, effectiveKeyLength)) { // The BasicSymmetricCipherBCrypt ctor will increase algorithm reference count and take ownership. return(new BasicSymmetricCipherLiteBCrypt( algorithm, cipherMode, blockSize, paddingSize, key, ownsParentHandle: true, iv, encrypting)); } }
private static ICryptoTransform CreateTransformCore( CipherMode cipherMode, PaddingMode paddingMode, byte[] key, int effectiveKeyLength, byte[]?iv, int blockSize, bool encrypting) { using (SafeAlgorithmHandle algorithm = RC2BCryptModes.GetHandle(cipherMode, effectiveKeyLength)) { // The BasicSymmetricCipherBCrypt ctor will increase algorithm reference count and take ownership. BasicSymmetricCipher cipher = new BasicSymmetricCipherBCrypt(algorithm, cipherMode, blockSize, key, true, iv, encrypting); return(UniversalCryptoTransform.Create(paddingMode, cipher, encrypting)); } }