code: static public TSIG
  fromString(String str) {
  	String [] parts = str.split("[:/]");
  	if (parts.length < 2 || parts.length > 3)
  		throw new IllegalArgumentException("Invalid TSIG key " +
  						   "specification");
  	if (parts.length == 3)
  		return new TSIG(parts[0], parts[1], parts[2]);
  	else
  		return new TSIG(HMAC_MD5, parts[0], parts[1]);
  }
docs: Creates a new TSIG object with the hmac-md5 algorithm, which can be used to
  sign or verify a message.
  @param str The TSIG key, in the form name:secret, name/secret,
  alg:name:secret, or alg/name/secret.  If an algorithm is specified, it must
  be "hmac-md5", "hmac-sha1", or "hmac-sha256".
  @throws IllegalArgumentException The string does not contain both a name
  and secret.
  @throws IllegalArgumentException The key name is an invalid name
  @throws IllegalArgumentException The key data is improperly encoded