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