1<?php 2// +-----------------------------------------------------------------------+ 3// | Copyright (c) 2002-2003 Richard Heyes | 4// | All rights reserved. | 5// | | 6// | Redistribution and use in source and binary forms, with or without | 7// | modification, are permitted provided that the following conditions | 8// | are met: | 9// | | 10// | o Redistributions of source code must retain the above copyright | 11// | notice, this list of conditions and the following disclaimer. | 12// | o Redistributions in binary form must reproduce the above copyright | 13// | notice, this list of conditions and the following disclaimer in the | 14// | documentation and/or other materials provided with the distribution.| 15// | o The names of the authors may not be used to endorse or promote | 16// | products derived from this software without specific prior written | 17// | permission. | 18// | | 19// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 20// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 21// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 22// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 23// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 24// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 25// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 26// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 27// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 28// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 29// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 30// | | 31// +-----------------------------------------------------------------------+ 32// | Author: Richard Heyes <richard@php.net> | 33// +-----------------------------------------------------------------------+ 34// 35// $Id$ 36 37/** 38* Implmentation of CRAM-MD5 SASL mechanism 39* 40* @author Richard Heyes <richard@php.net> 41* @access public 42* @version 1.0 43* @package Auth_SASL 44*/ 45 46require_once('Auth/SASL/Common.php'); 47 48class Auth_SASL_CramMD5 extends Auth_SASL_Common 49{ 50 /** 51 * Implements the CRAM-MD5 SASL mechanism 52 * This DOES NOT base64 encode the return value, 53 * you will need to do that yourself. 54 * 55 * @param string $user Username 56 * @param string $pass Password 57 * @param string $challenge The challenge supplied by the server. 58 * this should be already base64_decoded. 59 * 60 * @return string The string to pass back to the server, of the form 61 * "<user> <digest>". This is NOT base64_encoded. 62 */ 63 function getResponse($user, $pass, $challenge) 64 { 65 return $user . ' ' . $this->_HMAC_MD5($pass, $challenge); 66 } 67} 68?>