Last update June 27, 2012

Crypto Devel



Development progress of crypto package.

Repo: https://github.com/pszturmaj/phobos/tree/master/std/crypto

Proposed package hierarchy (may change)

  • std
    • crypto
      • cipher (block and stream ciphers)
        • aes.d
        • blowfish.d
        • rc4.d
        • ...
      • hash (hash functions)
        • base.d (base classes and API) [done]
        • sha.d (all sha functions) [done]
        • md5.d [done]
        • tiger.d [done]
        • ...
      • kdf (key derivation functions)
        • hkdf.d (hmac based kdf)
        • pbkdf.d (password based kdf)
      • mac (message authentication codes)
        • hmac.d [currently deferred]
        • cmac.d
        • cbcmac.d
        • umac.d
        • ...
      • mode (cipher modes of operation)
        • cbc.d
        • ctr.d
        • gcm.d
        • ...
      • padding
        • (various padding schemes for block ciphers)
      • pkc (public key cryptography)
        • dh.d (diffie-hellman key exchange)
        • dsa.d (Digital Signature Algorithm)
        • ecdh.d (Elliptic Curve DH)
        • ecdsa.d (Elliptic Curve DSA)
        • rsa.d
        • x509.d (x509 certificates and crls) [in progress]
        • ...

In progress

  • X.509 Certificates
    • ASN.1 parser for DER encoding [in progress]
    • ASN.1 writer for DER encoding
    • X.509 API

To do

  • refactor hash state saving (ForwardOutputRange??)

Implementation switch

Crypto package will include wrappers for external implementations, such as Windows CryptoAPI? and OpenSSL? library.

For example SHA1 may support additional implementations (wrapper classes):

  • SHA1CryptoAPI?
  • SHA1OpenSSL?
User may choose any available implementation.

Wishlist


FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: June 27, 2012 2:39 (diff))