// create Crypt_RSA_KeyPair object $key_pair = new Crypt_RSA_KeyPair(256, MATH_LIBRARY, 'check_error'); // check encrypting/decrypting function's behaviour $params = array('enc_key' => $key_pair->getPublicKey(), 'dec_key' => $key_pair->getPrivateKey()); $rsa_obj->setParams($params); $text = '1234567890'; $enc_text = $rsa_obj->encrypt($text); $text1 = $rsa_obj->decrypt($enc_text); if ($text != $text1) { $errors[] = "error in encrypting/decrypting functions"; } // check signing/sign validating $params = array('public_key' => $key_pair->getPublicKey(), 'private_key' => $key_pair->getPrivateKey()); $rsa_obj->setParams($params); $text = '1234567890'; $sign = $rsa_obj->createSign($text); if (!$rsa_obj->validateSign($text, $sign)) { $errors[] = "error in signing/sign validating functions with default hash function"; } // check signing/sign validating with specific hash function $params = array('hash_func' => create_function('$text', 'return 0x1234;')); $rsa_obj->setParams($params); $text = '1234567890'; $sign = $rsa_obj->createSign($text); if (!$rsa_obj->validateSign($text, $sign)) { $errors[] = "error in signing/sign validating functions with user specific hash function"; } /////////////////////////////////////////////// // generate key with user-defined random generator. /////////////////////////////////////////////// // use mt_rand function ( http://php.net/mt_rand ) as random generator