protocol7 home

MD5 support in FtpServer

This weekend I checked in support for the draft-twine-ftpmd5-00 proposal for MD5 support in Apache Incubator FtpServer. In short, the draft adds two new FTP commands, MD5 and MMD5. Both adds the possibility of requesting the MD5 for one (MD5 command) or multiple (MMD5 command) files. This is an important piece of functionality if you want to do automated transfers over FTP. Using the commands, a client can upload a file and then request the MD5 hash and compare it to the hash of the local file. Similary, it can request the hash of a file to be downloaded to ensure that the file is downloaded without any corruption. All in all a very useful addition to FTP. To bad the draft never seemed to have gotten anywhere in the standards process.

Tags: , . 4 Comments »

4 Responses

  1. elhoim Says:
    Specific technologies come and go. Why not allowing to be more generic and allow/support a command like HASH xxx and MHASH xxx.
    xxx being a hashing technique like MD5 SHA1 CRC32 CRC64 or others…

    And discovering of the params allowed at the connection of the client with the standard FEAT comand….

  2. niklas Says:
    Agreed, only problem being that there is no such draft available today. Which in turn means that clients don’t support it nativly. Of course, clients can normally issue any command so it might still be useful.

    But still, feel free to write up a draft ;-)

  3. vic Says:
    So this is supported in MINA? Are there any plans to get it supported client side in commons-net? Are you involved in that project as well?
  4. Niklas Says:
    Well, no it is not supported in MINA, but in the FtpServer subproject. No idea if someone is looking at doing it in commons-net. I am a commiter on both projects so I could do it, but no plans so far. That said, you could surely use commons-net to send a plain command and handle the response yourself.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Creative Commons Attribution 3.0 licensed unless otherwise specified.