function NtPasswordHash($plain)
{
    return mhash(MHASH_MD4, str2unicode($plain));
}
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This code cannot simply be copied and put under the GNU Public License or 
any other GPL-like (LGPL, GPL2) License.

    $Id: mschaptest.php,v 1.2 2003/01/26 20:31:11 mbretter Exp $
*/
include_once 'mschap.php';
echo "MS-CHAPv1 TEST\n";
$pass = '******';
$challenge = pack('H*', '102DB5DF085D3041');
printf("Test Challenge: %s\n", bin2hex($challenge));
$unipw = str2unicode($pass);
printf("Unicode PW: %s\nexpected  : 4d00790050007700\n", bin2hex($unipw));
$nthash = NtPasswordHash($pass);
printf("NT HASH   : %s\nexpected  : fc156af7edcd6c0edde3337d427f4eac\n", bin2hex($nthash));
$challresp = ChallengeResponse($challenge, $nthash);
printf("ChallResp : %s\nexpected  : 4e9d3c8f9cfd385d5bf4d3246791956ca4c351ab409a3d61\n", bin2hex($challresp));
echo "\n";
echo "MS-CHAPv2 TEST\n";
$user = '******';
$pass = '******';
printf("Username  : %s\nexpected  : 55736572\n", bin2hex($user));
$challenge = pack('H*', 'd02e4386bce91226');
printf("Challenge     : %s\n", bin2hex($challenge));
$authchallenge = pack('H*', '5b5d7c7d7b3f2f3e3c2c602132262628');
printf("Auth Challenge: %s\n", bin2hex($authchallenge));
$peerChallenge = pack('H*', '21402324255E262A28295F2B3A337C7E');