Example #1
0
 function MakeChkFake()
 {
     $this->m_Crypto = new INICrypto($this->m_REQUEST);
     //��������Ű �ε�
     if (($rtv = $this->m_Crypto->LoadMPrivKey()) != OK) {
         $err_msg = "��������Ű �ε�����";
         $this->m_Log->WriteLog(ERROR, $err_msg);
         $this->MakeTXErrMsg($rtv, $err_msg);
         $this->m_Log->CloseLog($this->GetResult(NM_RESULTMSG));
         $this->m_Crypto->FreePubKey();
         return;
     }
     $this->m_Log->WriteLog(INFO, "MERCHANT PRIV KEY LOAD OK");
     //���� ����Ű �ε�(SN �� �˱�����!!)
     if (($rtv = $this->m_Crypto->LoadMPubKey($m_cert_SN)) != OK) {
         $err_msg = "��������Ű �ε�����";
         $this->m_Log->WriteLog(ERROR, $err_msg);
         $this->MakeTXErrMsg($rtv, $err_msg);
         $this->m_Log->CloseLog($this->GetResult(NM_RESULTMSG));
         return;
     }
     $this->m_Log->WriteLog(INFO, "MERCHANT PUB KEY LOAD OK [" . $this->m_Data->m_MPubSN . "]");
     foreach ($this->m_REQUEST as $key => $val) {
         if ($key == "inipayhome" || $key == "type" || $key == "debug" || $key == "admin" || $key == "checkopt" || $key == "enctype") {
             continue;
         }
         if ($key == "mid") {
             $temp1 .= $key . "=" . $val . "&";
         } else {
             $temp2 .= $key . "=" . $val . "&";
         }
         //hashmsg
     }
     //Make RN
     $this->m_RESULT["rn"] = $this->m_Data->MakeRN();
     $temp1 .= "rn=" . $this->m_RESULT["rn"] . "&";
     $checkMsg = $temp1;
     $checkHashMsg = $temp2;
     $retHashStr = Base64Encode(sha1($checkHashMsg, TRUE));
     $checkMsg .= "data=" . $retHashStr;
     $HashMid = Base64Encode(sha1($this->m_REQUEST["mid"], TRUE));
     $this->m_Crypto->RSAMPrivEncrypt($checkMsg, $RSATemp);
     $this->m_RESULT["encfield"] = "enc=" . $RSATemp . "&src=" . Base64Encode($checkHashMsg);
     $this->m_RESULT["certid"] = $HashMid . $m_cert_SN;
     $this->m_Log->WriteLog(INFO, "CHKFAKE KEY MAKE OK:" . $this->m_RESULT["rn"]);
     $this->m_Log->CloseLog($this->GetResult(NM_RESULTMSG));
     $this->m_Crypto->FreeAllKey();
     $this->m_RESULT[NM_RESULTCODE] = "00";
     return;
 }
Example #2
0
 function RSAMPrivEncrypt($org_data, &$enc_data)
 {
     if (!openssl_private_encrypt($org_data, $enc_data, $this->mprivkeyid)) {
         return false;
     }
     $enc_data = Base64Encode($enc_data);
     return true;
 }
Example #3
0
 function MakeEncrypt($INICrypto)
 {
     //generate key/iv
     $key = $this->GenRand(MAX_KEY_LEN, true);
     $iv = $this->GenRand(MAX_IV_LEN, true);
     //make XML
     $xml = new XML();
     if ($this->m_Type == TYPE_FORMPAY) {
     } else {
         if ($this->m_Type == TYPE_RECEIPT) {
             $PI = $xml->add_node("", PAYMENTINFO);
             $PM = $xml->add_node($PI, PAYMENT);
             $CS = $xml->add_node($PM, NM_CSHR);
             $PD = $xml->add_node($CS, TX_CSHR_APPLPRICE, $this->m_REQUEST["cr_price"]);
             $PD = $xml->add_node($CS, TX_CSHR_SUPPLYPRICE, $this->m_REQUEST["sup_price"]);
             $PD = $xml->add_node($CS, TX_CSHR_TAX, $this->m_REQUEST["tax"]);
             $PD = $xml->add_node($CS, TX_CSHR_SERVICEPRICE, $this->m_REQUEST["srvc_price"]);
             $PD = $xml->add_node($CS, TX_CSHR_TYPE, $this->m_REQUEST["useopt"]);
             $PD = $xml->add_node($CS, TX_CSHR_REGNUM, $this->m_REQUEST["reg_num"]);
             $PD = $xml->add_node($CS, TX_CSHR_COMPANYNUM, $this->m_REQUEST["companynumber"]);
             /*
              $PD = $xml->add_node($CS,		TX_CSHR_OPENMARKET, 			$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBCNT, 					$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBCOMPANYNAME1, 	$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBCOMPANYNUM1, 	$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBREGNUM1, 			$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBMID1, 					$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBAPPLPRICE1, 		$this->m_REQUEST[""]		);
              $PD = $xml->add_node($CS,		TX_CSHR_SUBSERVICEPRICE1, $this->m_REQUEST[""]		);
             */
         } else {
             if ($this->m_Type == TYPE_CANCEL) {
                 $CI = $xml->add_node("", CANCELINFO);
                 $CD = $xml->add_node($CI, TX_CANCELTID, $this->m_REQUEST["tid"]);
                 $CD = $xml->add_node($CI, TX_CANCELMSG, $this->m_REQUEST["cancelmsg"], array("urlencode" => "1"));
                 $CD = $xml->add_node($CI, TX_CANCELREASON, $this->m_REQUEST["cancelcode"]);
                 $this->AddUserDefinedEntity(CANCELINFO, "", $xml, $CI);
             } else {
                 if ($this->m_Type == TYPE_REPAY) {
                     //PartCancelInfo(ROOT)
                     $CI = $xml->add_node("", PARTCANCELINFO);
                     $CD = $xml->add_node($CI, TX_PRTC_TID, $this->m_REQUEST["oldtid"]);
                     $CD = $xml->add_node($CI, TX_PRTC_PRICE, $this->m_REQUEST["price"]);
                     $CD = $xml->add_node($CI, TX_PRTC_REMAINS, $this->m_REQUEST["confirm_price"]);
                     $CD = $xml->add_node($CI, TX_PRTC_QUOTA, $this->m_REQUEST["cardquota"]);
                     $CD = $xml->add_node($CI, TX_PRTC_INTEREST, $this->m_REQUEST["quotainterest"]);
                     //I계좌이체 국민은행 부분취소시 계좌번호 계좌주성명을 받음 2011-10-06
                     $CD = $xml->add_node($CI, TX_PRTC_NOACCT, $this->m_REQUEST["no_acct"]);
                     $CD = $xml->add_node($CI, TX_PRTC_NMACCT, $this->m_REQUEST["nm_acct"], array("urlencode" => "1"));
                     //과세,비과세 추가 2014-07-23 by jung.ks
                     //$CD = $xml->add_node($CI,               TX_PRTC_TAX,		$this->m_REQUEST["tax"]		);
                     //$CD = $xml->add_node($CI,               TX_PRTC_TAXFREE,		$this->m_REQUEST["taxfree"]		);
                     $this->AddUserDefinedEntity(PARTCANCELINFO, "", $xml, $CI);
                 } else {
                     if ($this->m_Type == TYPE_VACCTREPAY) {
                         //PartCancelInfo(ROOT)
                         $CI = $xml->add_node("", PARTCANCELINFO);
                         $CD = $xml->add_node($CI, TX_PRTC_TID, $this->m_REQUEST["oldtid"]);
                         $CD = $xml->add_node($CI, TX_PRTC_PRICE, $this->m_REQUEST["price"]);
                         $CD = $xml->add_node($CI, TX_PRTC_REMAINS, $this->m_REQUEST["confirm_price"]);
                         $CD = $xml->add_node($CI, TX_PRTC_QUOTA, $this->m_REQUEST["cardquota"]);
                         $CD = $xml->add_node($CI, TX_PRTC_INTEREST, $this->m_REQUEST["quotainterest"]);
                         $CD = $xml->add_node($CI, TX_PRTC_NOACCT, $this->m_REQUEST["refundacctnum"]);
                         $CD = $xml->add_node($CI, TX_PRTC_NMACCT, $this->m_REQUEST["refundacctname"], array("urlencode" => "1"));
                         $CD = $xml->add_node($CI, TX_PRTC_REFUNDFLGREMIT, $this->m_REQUEST["refundflgremit"]);
                         $CD = $xml->add_node($CI, TX_PRTC_REFUNDBANKCODE, $this->m_REQUEST["refundbankcode"]);
                         $this->AddUserDefinedEntity(PARTCANCELINFO, "", $xml, $CI);
                     } else {
                         if ($this->m_Type == TYPE_CAPTURE) {
                             $CI = $xml->add_node("", CAPTUREINFO);
                             $CD = $xml->add_node($CI, TX_CAPTURETID, $this->m_REQUEST["tid"]);
                             $this->AddUserDefinedEntity(CAPTUREINFO, "", $xml, $CI);
                         } else {
                             if ($this->m_Type == TYPE_ESCROW) {
                                 if ($this->m_EscrowType == TYPE_ESCROW_DLV) {
                                     $EI = $xml->add_node("", ESCROWINFO);
                                     $EC = $xml->add_node($EI, ESCROW_DELIVERY);
                                     $ED = $xml->add_node($EC, "DLV_Oid", $this->m_REQUEST["oid"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SOid", $this->m_REQUEST["soid"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Name", $this->m_REQUEST["dlv_name"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_IP", $this->m_REQUEST["dlv_ip"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_MAC", $this->m_REQUEST["dlv_mac"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Report", $this->m_REQUEST["dlv_report"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SendName", $this->m_REQUEST["dlv_sendname"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SendPost", $this->m_REQUEST["dlv_sendpost"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SendAddr1", $this->m_REQUEST["dlv_sendaddr1"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SendAddr2", $this->m_REQUEST["dlv_sendaddr2"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_SendTel", $this->m_REQUEST["dlv_sendtel"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_RecvName", $this->m_REQUEST["dlv_recvname"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_RecvPost", $this->m_REQUEST["dlv_recvpost"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_RecvAddr", $this->m_REQUEST["dlv_recvaddr"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_RecvTel", $this->m_REQUEST["dlv_recvtel"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_ExCode", $this->m_REQUEST["dlv_excode"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_ExName", $this->m_REQUEST["dlv_exname"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Invoice", $this->m_REQUEST["dlv_invoice"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Charge", $this->m_REQUEST["dlv_charge"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_InvoiceDay", $this->m_REQUEST["dlv_invoiceday"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_GoodsCode", $this->m_REQUEST["dlv_goodscode"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Goods", $this->m_REQUEST["dlv_goods"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_GoodsCnt", $this->m_REQUEST["dlv_goodscnt"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Price", $this->m_REQUEST["price"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Reserved1", $this->m_REQUEST["dlv_reserved1"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Reserved2", $this->m_REQUEST["dlv_reserved2"], array("urlencode" => "1"));
                                     $ED = $xml->add_node($EC, "DLV_Reserved3", $this->m_REQUEST["dlv_reserved3"], array("urlencode" => "1"));
                                 } else {
                                     if ($this->m_EscrowType == TYPE_ESCROW_CNF) {
                                         //PluginIn!!
                                     } else {
                                         if ($this->m_EscrowType == TYPE_ESCROW_DNY) {
                                             //PluginIn!!
                                         } else {
                                             if ($this->m_EscrowType == TYPE_ESCROW_DNY_CNF) {
                                                 $EI = $xml->add_node("", ESCROWINFO);
                                                 $EC = $xml->add_node($EI, ESCROW_DENYCONFIRM);
                                                 $ED = $xml->add_node($EC, "DCNF_Name", $this->m_REQUEST["dcnf_name"], array("urlencode" => "1"));
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if ($this->m_Type == TYPE_REFUND) {
                                     $CI = $xml->add_node("", CANCELINFO);
                                     $CD = $xml->add_node($CI, TX_CANCELTID, $this->m_REQUEST["tid"]);
                                     $CD = $xml->add_node($CI, TX_CANCELMSG, $this->m_REQUEST["cancelmsg"], array("urlencode" => "1"));
                                     $CD = $xml->add_node($CI, TX_REFUNDACCTNUM, $this->m_REQUEST["racctnum"]);
                                     $CD = $xml->add_node($CI, TX_REFUNDBANKCODE, $this->m_REQUEST["rbankcode"]);
                                     $CD = $xml->add_node($CI, TX_REFUNDACCTNAME, $this->m_REQUEST["racctname"], array("urlencode" => "1"));
                                     $this->AddUserDefinedEntity(CANCELINFO, "", $xml, $CI);
                                 } else {
                                     if ($this->m_Type == TYPE_INQUIRY) {
                                         $CI = $xml->add_node("", INQUIRYINFO);
                                         $CD = $xml->add_node($CI, TX_INQR_TID, $this->m_REQUEST["tid"]);
                                         //$this->AddUserDefinedEntity( INQUIRYINFO, "", $xml, $CI );
                                     } else {
                                         if ($this->m_Type == TYPE_OPENSUB) {
                                             $OI = $xml->add_node("", OPENSUBINFO);
                                             $OD = $xml->add_node($OI, TX_OPENREG_TID, $this->m_REQUEST["oldtid"]);
                                             $OD = $xml->add_node($OI, TX_OPENREG_MID, $this->m_REQUEST["mid"]);
                                             //$this->AddUserDefinedEntity( INQUIRYINFO, "", $xml, $CI );
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->m_EncBody = $xml->make_xml();
     //encrypt body by SYMM
     if (($rtv = $INICrypto->SymmEncrypt($this->m_EncBody, $this->m_sEncrypted, $key, $iv)) != OK) {
         return $rtv;
     }
     //encrypt key/iv by ASYMM
     if (!$INICrypto->RSAPGPubEncrypt($key, $this->m_sSessionKey)) {
         return ENC_RSA_ERR;
     }
     $this->m_sSessionKey = Base64Encode($this->m_sSessionKey . $iv);
     return OK;
 }