Note: This website is archived. For up-to-date information about D projects and development, please visit

For information on contributing to dcrypt or its documentation, check out:

The dcrypt project

dcrypt is an effort to create a standard cryptography toolkit written in the D programming language. The overall structure is somewhat based on BouncyCastle, as it is what I am most familiar with. Due to the lack of a standard BigNum? implementation, the project's current focus is symmetric ciphers as well as hash functions. The name is obviously a word play on decrypt, much thanks to larsivi.

Project status

The project is currently at version 0.1 and I encourage use of the library to aid in weeding out bugs, making the API more user friendly, and discovering which additional features are needed.


2009-05-14 by Thom
Several bug fixes as well as successful compilation with D2 were attained with the help of Glenn Haecker. Thanks mate!
2009-02-14 by Thom
I split dcrypt.misc.Util up into dcrypt.misc.Bitwise? and dcrypt.misc.ByteConverter?, then proceeded to make all relevant changes in dependent files. Minor change, but important for any of you who may use Util in your own code.
2008-11-19 by Thom
My apologies for the gap between updates. I submitted a few bug fixes, added a base PRNG class, PBKDF2, a class which creates a PRNG given a hash function (PRNGFromHash), a base Checksum class (in dcrypt.misc) and both CRC32 as well as Adler32 (by request) and some supporting (error) classes. I'm proud to announce that I've decided to tag the latest update as 0.1 beta.
2008-09-13 by Thom
Fixed two errors with ManagedBlockCipher?. If you're using the library in its previous state, you should update! I might also add a makefile for use with gdc. I just need to find the time.
2008-08-30 by Thom
Changed how ciphers work (again), and added ManagedBlockCipher?. Check examples for its use. Hash functions now return themselves, so you can chain call. After some feedback and the squashing of any bugs, I'd say we're pretty close to beta.
2008-08-21 by Thom
Got a rough draft of the high-level API in the repo. It's not too late to make changes to anything at this point, so please if you have any suggestions, tell me.
2008-08-17 by Thom
I added an implementation of AES with test vectors. Classes start soon for me, so development may slowed but it will continue.

Projects that use dcrypt


Issues and Enhancements

dcrypt uses a ticket-oriented system to track all issues, concerns, and enhancements. If you are a registered user, and logged in, you may create new tickets via the "New Ticket" button in the lower navigation-bar. Or click here