code: function calculateMD5(details, type) {
  
    /* get the text for one part of the type definition to compute the
       md5sum over */
    function getMD5text(part) {
      var message = '';
      var constants = part.constants.map(function(field) {
        return field.type + ' ' + field.name + '=' + field.raw;
      }).join('\n');
  
      var fields = part.fields.map(function(field) {
        if (field.messageType) {
          return field.messageType.md5 + ' ' + field.name;
        }
        else {
          return field.type + ' ' + field.name;
        }
      }).join('\n');
  
      message += constants;
      if (message.length > 0 && fields.length > 0) {
        message += "\n";
      }
      message += fields;
      return message;
    }
  
    // depending on type, compose the right md5text to compute md5sum
    // over: Services just concatenate the individual message text (with
    // *no* new line in between)
    var text;
    if (type == "msg") {
      text = getMD5text(details);
    } else if (type == "srv") {
      text = getMD5text(details.request);
      text += getMD5text(details.response);
    } else {
      console.log("calculateMD5: Unknown type", type);
      return null;
    }
  
    return md5(text);
  }
docs: ------------------------------- functions relating to handler class