Example #1
0
bool GetMac(std::vector<unsigned char>& mac)
{
	if (GetMacType(mac, MIB_IF_TYPE_ETHERNET))
		return true;
	if (GetMacType(mac, IF_TYPE_IEEE80211))
		return true;
	return (GetMacType(mac, 0));
}
Example #2
0
/*****************************************************************************
 ** Descriptions:	获取系统参数,如果没有获取到直接跑错
 ** Parameters:    	struct _TradeData *pstTradeData
 ** Returned value:
 ** Created By:		huacong  2016.03.04
 ** Remarks:
 *****************************************************************************/
s32 InitSysParam()     //Fix me 参数判断
{
	u8 temp[512] = { 0 };
	u8 src[12] = { 0 };
	s32 ret = SDK_ERR, len;

	//TMS 参数初始化 fixme (暂时写死,以后看交易是否跑通)
	memcpy(gstAppSetting.stTmsParam.TermParamVer, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.TMSParamVer, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.CapkParamVer, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.AidParamVer, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.TermParamVerBak, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.TMSParamVerBak, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.CapkParamVerBak, "00000000", 8);
	memcpy(gstAppSetting.stTmsParam.AidParamVerBak, "00000000", 8);

	//脚本标志
	if (ReadReverScriptFlag(&gstTradeData.bisHaveReverScriptBag) != SDK_OK) {
		return SDK_ERR;
	}
	//冲正标志
	if (ReadReversalFlag(&gstTradeData.bisHaveReversalBag) != SDK_OK) {
		return SDK_ERR;
	}
	Log("wangb", "pstTradeData->bisHaveReversalBag is %d ",
			gstTradeData.bisHaveReversalBag);
	//这个地方先顺序执行,后续看是否可以优化为建立一个常用表,依次自动配置
	//流水号
	memset(temp, 0, sizeof(temp));
	if ((len = ProviderGetTagValue(TAG_8583_VoucherNo, temp)) > 0) {
		u32 numb = atol(temp) + 1;
		memset(temp, 0, sizeof(temp));
		itoa(numb, temp);
		sprintf(src, "%06s", temp);
		memcpy(gstSys.asVoucherNo, src, len);
	} else {
		return SYS_VOUNO;
	}

	//DES
	gstAppSetting.stKeySystemParam.bIsMk3Des = 1;
	Log("zbq", "bIsMk3Des = %d", gstAppSetting.stKeySystemParam.bIsMk3Des);

	//批次号
	memset(temp, 0, sizeof(temp));
	if ((len = ProviderGetTagValue(TAG_8583_AsBatchNo, temp)) > 0) //Fix me len 更改
			{
		Log("wangb", "TAG_8583_Field6002Type is %s", temp);
		memcpy(gstSys.asBatchNo, temp, len);
	} else {
		return SYS_FILEd6002Type;
	}

	//参考号
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_8583_SysRefNo, temp) > 0)   // Fix me
			{
		memcpy(gstTradeData.asSysRefNo, temp, 12);
	} else {
		return SDK_ERR;
	}

	//操作员代码
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_8583_UsManNo, temp))   // Fix me
			{
		gstTradeData.usManNo = atol(temp);
		Log("zbq", "usManNo = %d", gstTradeData.usManNo);
	} else {
		return SDK_ERR;
	}
	//商户号
	memset(temp, 0, sizeof(temp));
	if ((len = ProviderGetTagValue(TAG_8583_MerchantNo, temp)) > 0)  //Fix me
			{
		Log("wangb", "TAG_8583_MerchantNo is %s", temp);
		memcpy(gstAppSetting.stTerminalParam.asMerchantNo, temp, len);
	} else {
		return SYS_MerchantNo;
	}

	//终端号
	memset(temp, 0, sizeof(temp));
	if ((len = ProviderGetTagValue(TAG_8583_TerminalNo, temp)) > 0) {
		Log("wangb", "TAG_8583_TerminalNo is %s", temp);
		memcpy(gstAppSetting.stTerminalParam.asTerminalNo, temp, len);
	} else {
		return SYS_TerminalNo;
	}

	//TPDU
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_TPDU, temp)) {
		Log("wangb", "TAG_TPDU is %s", temp);
		memcpy(gstTradeData.asTpdu, temp, 11);
	} else {
		return SYS_TPDU;
	}

	//货币代码
	memset(temp, 0, sizeof(temp));
	if ((len = ProviderGetTagValue(TAG_8583_CurrencyCode, temp)) > 0) {
		Log("wangb", "TAG_8583_CurrencyCode is %s", temp);
		//  memcpy(pstTradeData->stTerminalParam.asCurrencyCode, temp, len);
		memcpy(gstAppSetting.stTerminalParam.asCurrencyCode, "156", 3);
	} else {
		return SYS_CurrencyCode;
	}

	//主密钥索引
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_TRADE_TMKINDEX, temp)) {
		Log("wangb", "TAG_TRADE_TMKINDEX is %s", temp);
		gstAppSetting.stKeySystemParam.uiTMkIndex = temp[0];
	} else {
		return SYS_TMKINDEX;
	}

	//  主密钥类型
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_TRADE_DESTYPE, temp))   //Fix me
			{
		if (strcmp(temp, TAG_NUBSIX) == 0) {
			gstAppSetting.stKeySystemParam.bIsMk3Des = true;
		} else if (strcmp(temp, TAG_NUBZER) == 0) {
			gstAppSetting.stKeySystemParam.bIsMk3Des = false;
		}

	} else {
		return SYS_KeySystemParam;
	}

	//是否支持磁道加密
	memset(temp, 0, sizeof(temp));
	if (ProviderGetTagValue(TAG_TRADE_SUPPORTTDK, temp))  //Fix me
			{
		Log("wangb", "TAG_TRADE_SUPPORTTDK is %s ", temp);
		if (strcmp(temp, TAG_NUBONE) == 0)   //Fix me
				{
			gstAppSetting.stKeySystemParam.bIsSupportTdk = true;
		} else if (strcmp(temp, TAG_NUBZER) == 0) {
			gstAppSetting.stKeySystemParam.bIsSupportTdk = false;
		}

	} else {
		return SYS_SUPPORTTDK;
	}

	//mac加密方式
	if ((ret = GetMacType(&gstAppSetting.stKeySystemParam.uiMacType)) != SDK_OK) {
		Log("zbq", "GetMacType Error,code = %d", ret);
		return SYS_MacType;
	}

	Log("wangb", "Out InitSysParam");

	//TPK索引暂保留
	/*    ret = GetWorkKeyIndexByTmk(WORK_KEY_TPK, pstTradeData->stKeySystemParam.uiTMkIndex);
	 if(ret != SDK_ERR)
	 {
	 pstTradeData->stKeySystemParam.uiTpkIndex = ret;
	 }
	 else
	 {
	 return SYS_KEY_TPK;
	 }

	 //TaK索引 暂保留
	 ret = GetWorkKeyIndexByTmk(WORK_KEY_TAK, pstTradeData->stKeySystemParam.uiTMkIndex);
	 if(ret != SDK_ERR)
	 {
	 pstTradeData->stKeySystemParam.uiTakIndex = ret;
	 }
	 else
	 {
	 return SYSKEY_TAK;
	 }

	 //TdK索引 暂保留
	 if(pstTradeData->stKeySystemParam.bIsMk3Des &&  pstTradeData->stKeySystemParam.bIsSupportTdk)
	 {
	 ret = GetWorkKeyIndexByTmk(WORK_KEY_TDK, pstTradeData->stKeySystemParam.uiTMkIndex);
	 if(ret != SDK_ERR)
	 {
	 pstTradeData->stKeySystemParam.uiTakIndex = ret;
	 }
	 else
	 {
	 return SYS_KEY_TDK;
	 }
	 } */

	return SDK_OK;

}