Skip to content

Consider dropping hand-written cipher modes #1560

Description

@scott-xu

We could consider dropping hand-written cipher modes in the library.

  1. CbcCipherMode will not be used anymore once PR Use System.Security.Cryptography for TripleDesCipher #1546 is merged.
  2. CfbCipherMode is only used for PKCS1 private key encrypted byDES-EDE3-CFB. Suggest user switching to newer encryption method.
  3. OfbCipherMode is not used anywhere inside the library.
  4. CtrCipherMode is used for AesCipher. We can create a dedicated class AesCtrCipher, just like AesGcmCipher.

With all above concrete classes removed, we can remove the abstract class CipherMode. We can also remove AesCipherMode enum (renamed as BlockCipherMode in PR #1546) and use BCL's CipherMode enum.

Then AesCipher.BlockImpl can be removed, AesCipher.CtrImpl can be removed (moved to a dedicated class per above suggestion).
AesCipher.BclImpl can be removed so that AesCipher can have a pure BCL implementation (without nested Impl classes)

So does the TripleDesCipher.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions