All Projects → MHumm → DelphiEncryptionCompendium

MHumm / DelphiEncryptionCompendium

Licence: Apache-2.0 license
Cryptographic library for Embarcadero Delphi and potentially for FPC as well

Programming Languages

HTML
75241 projects
pascal
1382 projects

Projects that are alternatives of or similar to DelphiEncryptionCompendium

prvhash
PRVHASH - Pseudo-Random-Value Hash. Hash functions, PRNG with unlimited period, randomness extractor. (Codename Gradilac/Градилак)
Stars: ✭ 194 (+7.18%)
Mutual labels:  hash, random-number-generators
pymerkletools
Python tools for creating Merkle trees, generating Merkle proofs, and verification of Merkle proofs
Stars: ✭ 128 (-29.28%)
Mutual labels:  hash
go-checksum
Simple tool to calc Golang module checksum of go.mod and module dir.
Stars: ✭ 45 (-75.14%)
Mutual labels:  hash
rust-zipf
Rust implementation of a fast, bounded, Zipf-distributed random number generator
Stars: ✭ 24 (-86.74%)
Mutual labels:  random-number-generators
hkdf
A standalone Java 7 implementation of HMAC-based key derivation function (HKDF) defined in RFC 5869 first described by Hugo Krawczyk. HKDF follows the "extract-then-expand" paradigm which is compatible to NIST 800-56C Rev. 1 two step KDF
Stars: ✭ 47 (-74.03%)
Mutual labels:  hash
deno-bcrypt
A port of jBCrypt to TypeScript for use as a Deno module
Stars: ✭ 56 (-69.06%)
Mutual labels:  hash
haiti
🔑 Hash type identifier (CLI & lib)
Stars: ✭ 287 (+58.56%)
Mutual labels:  hash
hash-wasm
Lightning fast hash functions using hand-tuned WebAssembly binaries
Stars: ✭ 382 (+111.05%)
Mutual labels:  hash
pufferfish
An efficient index for the colored, compacted, de Bruijn graph
Stars: ✭ 94 (-48.07%)
Mutual labels:  hash
metrohash-rs
Rust MetroHash
Stars: ✭ 45 (-75.14%)
Mutual labels:  hash
RNG
A simple state-of-the-art C++ random number generator
Stars: ✭ 19 (-89.5%)
Mutual labels:  random-number-generators
rust-sthash
Very fast cryptographic hashing for large messages.
Stars: ✭ 61 (-66.3%)
Mutual labels:  hash
Fog
Pharo Ethereum Driver
Stars: ✭ 19 (-89.5%)
Mutual labels:  hash
CryptoManana
An Advanced PHP Cryptography Framework
Stars: ✭ 15 (-91.71%)
Mutual labels:  random-number-generators
ds
🔗 Common Data Structures and Algorithms
Stars: ✭ 40 (-77.9%)
Mutual labels:  hash
hashseq
A simple proof of work, mainly designed to mitigate DDoS attacks.
Stars: ✭ 20 (-88.95%)
Mutual labels:  hash
HashStablePack
Serialization code generator for QUICK struct content comparison
Stars: ✭ 94 (-48.07%)
Mutual labels:  hash
bytes-java
Bytes is a utility library that makes it easy to create, parse, transform, validate and convert byte arrays in Java. It supports endianness as well as immutability and mutability, so the caller may decide to favor performance.
Stars: ✭ 120 (-33.7%)
Mutual labels:  hash
harsh
Hashids implementation in Rust
Stars: ✭ 48 (-73.48%)
Mutual labels:  hash
simple-sha256
Generate SHA-256 hashes (in Node and the Browser)
Stars: ✭ 42 (-76.8%)
Mutual labels:  hash

DEC - Delphi Encryption Compendium

What is DEC?

DEC is a library for Embarcadero Delphi, containing different cryptographic algorithms. It contains algorithms for these categories:

  • Ciphers: encryption/decryption of data
  • Hashes: "cryptographic checksums"
  • Key derivation algorithms like Kdf1-Kdf3 and pbkdf2
  • HMAC message authentication
  • A cryptographic pseudo random number generator
  • CRCs: non cryptographic checksums based on CRC algorithms

Which Delphi versions are compatible?

The current version 6.4.1 is compatible with Delphi 2009 - Delphi 11.0 Alexandria. When defining the NO_ASM define in DECOptions.inc it is compatible with all platforms supported by Delphi! It might be compatible with FPC, but this has not been focus and is not tested. The development branch contains a more FPC compatible version already.

If you need support for older Delphi versions use version 5.2, which is compatible with Delphi 7-2007 at least but lacks some hash implementations, HMAC and KDF improvements. While V5.2 can be made compatible with newer Delphi versions with small modifications we strongly recommend to better adapt your code to use the current version of DEC, given all these improvements made since then. A list of changes is available in the docs folder.

What is the current status of this project?

V6.0 was released shortly before Christmas 2020. Since then work continued by some users supplying code, reporting bugs (regressions) along with fixes and by adding SHA2-224 which was still missing. Details about the changes and additions in V6.4.1 can be found in the VersionHistory.pdf file in the docs subfolder of the development branch.

In comparison to 5.2 we added some console, VCL and FMX based demo applications. The FMX based demos are even available via Google play as "DEC cipher demo" and "DEC hash demo".

Where can I get further information? For example if I'd like to contribute?

In the root folder of DEC V6.4.1 you will find further files with information about this project like NOTICE.txt, CONTRIBUTING.md, SECURITY.md. Also take the time to read DEC64.pdf in the Docs folder and look at the demos provided in the Demos subfolder.

Has it been tested?

DEC 5.2 came with some "arcane" test program testing the algoithms implemented using test data supplied via some text file. For many algorithms this test data stems from official documentation of the algorithms itsself. DEC 5.2 passes these tests.

DEC 6.0 reworked these tests into DUnit and DUnitX tests. We also added some more tests and with this replaced the "arcane" test program which used hard to understand code. A few of the implemented unit tests may still fail, but this is simply because they are empty sceletons at this point in time waiting to be filled in. We first need to work out how to implement these tests and maybe look for test data. Why don't you help out by researching useful test data for those few tests? We're talking at block chaining mode tests for the ciphers specifically.

In DEC 6.2 the unit tests for the hash classes were looked at and where not already used original test data vectors (as far as we could find them - for most we could) have been added to improve test coverage. V6.3 added further synthesized tests for some hash classes. For SHA3 and for the GCM block chaining method the original test vectors provided by NIST are used for the unit tests.

Contained hash algorithms

  • MD2
  • MD4
  • MD5
  • RipeMD128
  • RipeMD160
  • RipeMD256
  • RipeMD320
  • SHA0
  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • SHA3_224
  • SHA3_256
  • SHA3_384
  • SHA3_512
  • Shake128
  • Shake256
  • Haval128
  • Haval160
  • Haval192
  • Haval224
  • Haval256
  • Tiger
  • Panama
  • Whirlpool0
  • Whirlpool1
  • WhirlpoolT
  • Square
  • Snefru128
  • Snefru256
  • Sapphire

Contained cipher algorithms

  • Null
  • Blowfish
  • Twofish
  • IDEA
  • Cast256
  • Mars
  • RC4
  • RC6
  • AES
  • Square
  • SCOP
  • Sapphire
  • 1DES
  • 2DES
  • 3DES
  • 2DDES
  • 3DDES
  • 3TDES
  • 3Way
  • Cast128
  • Gost
  • Magma
  • Misty
  • NewDES
  • Q128
  • RC2
  • RC5
  • SAFER
  • Shark
  • Skipjack
  • TEA
  • XTEA
  • TEAN

Contained block concatenating modes

Modes ending on x have been invented by the original developer of DEC

  • ECBx
  • CBCx
  • CTSx
  • CTS3
  • CFB8
  • CFBx
  • OFB8
  • OFBx
  • CFS8
  • CFSx
  • GCM

Contained key derivation algorithms:

  • KDF1
  • KDF2
  • KDF3
  • MGF1
  • PBKDF2

Contained message authentication algorithms

  • HMAC

Contained formattings

  • Copy
  • HEX
  • HEXL
  • Base16
  • Base16L
  • DECMIME32
  • Base64
  • MIME64
  • Radix64
  • PGP
  • UU
  • XX
  • ESCAPE
  • BigEndian16
  • BigEndian32
  • BigEndian64

Contained CRCs

  • 8
  • 10
  • 12
  • 16
  • 16CCITT
  • 16XModem
  • 24
  • 32
  • 32CCITT
  • 32ZModem
  • 8ATMHEC
  • 8SMBus
  • 15CAN
  • 16ZMODEM
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].