# 2021-05-21 | A small update about rizin
{}

  So many changes has been done by my friends and me in the past months,
  but here i will focus on the changes i did:

  - All the java plugins (assembler, disassembler, class parser and core plugin) has
    been rewritten, including tests to validate decoders and encoders.
  - The AVR assembler and disassembler has also been rewritten (with tests).
  - The MD4 and SHA1 code has been rewritten, because they were GPL.
  - rz-hash and all the digest methods and code has been rewritten or heavily refactored
    to clean and remove quirks and hacks; moreover all the algorithms now are stateful,
    which allows to be used with big files and therefore doesn't require to allocate the
    whole file in memory.

$ rz-hash -L flags algorithm license author ____hm md4 LGPL3 deroad ____hm md5 RSA-MD RSA Data Security, Inc. ____hm sha1 LGPL3 deroad ____hm sha256 BSD-3 Aaron D. Gifford ____hm sha384 BSD-3 Aaron D. Gifford ____hm sha512 BSD-3 Aaron D. Gifford ____h_ fletcher8 LGPL3 deroad ____h_ fletcher16 LGPL3 deroad ____h_ fletcher32 LGPL3 deroad ____h_ fletcher64 LGPL3 deroad ____h_ adler32 LGPL3 deroad ____h_ crc8smbus LGPL3 deroad ____h_ crc8cdma2000 LGPL3 deroad ____h_ crc8darc LGPL3 deroad ____h_ crc8dvbs2 LGPL3 deroad ____h_ crc8ebu LGPL3 deroad ____h_ crc8icode LGPL3 deroad ____h_ crc8itu LGPL3 deroad [ ... more crc algos ... ] ____h_ crc64we LGPL3 deroad ____h_ crc64xz LGPL3 deroad ____h_ crc64iso LGPL3 deroad ____h_ xor8 LGPL3 deroad ____h_ xor16 LGPL3 deroad ____h_ xxhash32 LGPL3 deroad ____h_ parity LGPL3 deroad ____h_ entropy LGPL3 deroad ____h_ entropy_fract LGPL3 deroad ED____ aes-ecb MS-PL Karl Malbrain ED____ aes-cbc LGPL-3 rakholiyajenish.07 __ed__ base64 LGPL-3 rakholiyajenish.07 __ed__ base91 LGPL-3 rakholiyajenish.07 ED____ blowfish LGPL3 kishorbhat ED____ cps2 LGPL-3 pancake,esanfelix,pof ED____ des-ecb LGPL-3 deroad __ed__ punycode LGPL-3 pancake ED____ rc2 LGPL-3 lionaneesh ED____ rc4 LGPL-3 pancake ED____ rc6 LGPL-3 rakholiyajenish.07 E_____ rol LGPL-3 pancake _D____ ror LGPL-3 pancake ED____ rot LGPL-3 pancake ED____ serpent-ecb LGPL-3 NicsTr ED____ xor LGPL-3 pancake flags legenda: E = encryption, D = decryption e = encoding, d = encoding h = hash, m = hmac
- Recently i have introduced the Ratcliff Obershelp Pattern Recognition algorithm in rizin, to remove the dependency of the diff utility and allow diffing any type of data; also rz-diff has been rewritten. - Currently there is an open push request that allows diffing 2 files interactively at byte level. All the rewritten code has been released within rizin under LGPL-3 What is next? more refactoring; there are huge piece of code that really need to be rewritten to make all the utilities stable and working correctly. {} # References: Rizin https://github.com/rizinorg/rizin