Exemplo n.º 1
0
 /**
  * プライベートキー取得時使用
  * @return array
  * @access	public
  */
 function &getEncryptionKeys()
 {
     // 有効期限が切れてないものを取得
     $int_time = mktime(date("H"), date("i"), date("s"), date("m"), date("d") - $this->expiration_day, date("Y"));
     $time = date("YmdHis", $int_time);
     $where_params = array("expiration_time >= " . $time => null);
     $result = $this->_db->selectExecute("encryption", $where_params, null, 1);
     if ($result === false) {
         return $result;
     }
     if (!isset($result[0])) {
         // 有効期限が切れている or 新規作成
         $key_pair = new Crypt_RSA_KeyPair($this->key_length);
         $public_key = $key_pair->getPublicKey();
         $private_key = $key_pair->getPrivateKey();
         //insert
         $update_time = timezone_date();
         $container =& DIContainerFactory::getContainer();
         $session =& $container->getComponent("Session");
         $user_id = $session->getParameter("_user_id");
         $int_time = mktime(date("H"), date("i"), date("s"), date("m"), date("d") + $this->expiration_day, date("Y"));
         $time = date("YmdHis", $int_time);
         $params = array("public_key" => $public_key->toString(), "private_key" => $private_key->toString(), "key_length" => $this->key_length, "expiration_time" => $time, "update_time" => $update_time, "update_user" => $user_id);
         $result = $this->_db->insertExecute("encryption", $params, false);
         if ($result === false) {
             return $result;
         }
     } else {
         $params = $result[0];
         //$private_key = $result[0]['private_key'];
     }
     return $params;
 }
Exemplo n.º 2
0
$text = '1234567890';
$enc_text = $rsa_obj->encrypt($text, $public_key1);
$private_key = Crypt_RSA_Key::fromString($private_key_str, MATH_LIBRARY, 'check_error');
$text1 = $rsa_obj->decrypt($enc_text, $private_key);
if ($text != $text1) {
    $errors[] = "error in Crypt_RSA_Key class methods";
}
///////////////////////////////////////////////
// test all functionality of Crypt_RSA class
///////////////////////////////////////////////
// create Crypt_RSA object
$rsa_obj = new Crypt_RSA(array(), MATH_LIBRARY, 'check_error');
// 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";
}