// Copyright (c) Corporation for National Research Initiatives // This is a JPython module wrapper around Harry Mantakos' md.java class, // which provides the basic MD5 algorithm. See also MD5Object.java which // is the implementation of the md5 object returned by new() and md.java // which provides the md5 implementation. package org.python.modules; import org.python.core.*; class MD5Functions extends PyBuiltinFunctionSet { public MD5Functions(String name, int index, int minargs, int maxargs) { super(name, index, minargs, maxargs, false, null); } public PyObject __call__() { switch (index) { case 0: return new MD5Object(""); default: throw argCountError(0); } } public PyObject __call__(PyObject arg1) { switch (index) { case 0: return new MD5Object(arg1); default: throw argCountError(1); } } } public class MD5Module implements ClassDictInit { public static PyString __doc__ = new PyString( "This module implements the interface to RSA's MD5 message digest\n"+ "algorithm (see also Internet RFC 1321). Its use is quite\n"+ "straightforward: use the new() to create an md5 object. "+ "You can now\n"+ "feed this object with arbitrary strings using the update() method, "+ "and\n"+ "at any point you can ask it for the digest (a strong kind of "+ "128-bit\n"+ "checksum, a.k.a. ``fingerprint'') of the concatenation of the "+ "strings\n"+ "fed to it so far using the digest() method.\n"+ "\n"+ "Functions:\n"+ "\n"+ "new([arg]) -- return a new md5 object, initialized with arg if "+ "provided\n"+ "md5([arg]) -- DEPRECATED, same as new, but for compatibility\n"+ "\n"+ "Special Objects:\n"+ "\n"+ "MD5Type -- type object for md5 objects\n" ); public static void classDictInit(PyObject dict) { dict.__setitem__("new", new MD5Functions("new", 0, 0, 1)); dict.__setitem__("md5", new MD5Functions("md5", 0, 0, 1)); dict.__setitem__("classDictInit", null); } }