Skip to content

Consider dropping hand-written cipher modes #1560

Open
@scott-xu

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.

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