Esempio n. 1
0
static int sel_sn(str* res, select_t* s, sip_msg_t* msg)
{
	int local;

	switch(s->params[s->n - 2].v.i) {
	case CERT_PEER:  local = 0; break;
	case CERT_LOCAL: local = 1; break;
	default:
		BUG("Could not determine certificate\n");
		return -1;
	}

	return get_sn(res, NULL, local, msg);
}
//================================================================
// EFUSE area
//================================================================
static int secure_gain_sn(void)  // from EFUSE
{	
	char buf[128];
	char *pTemp=&(psn->factory_id[0]);
	int ret;
	if(!get_sn(buf, FROM_KERNEL)){		
		memcpy(pTemp, buf, CONFIG_EFUSE_SN_DATA_SIZE);
		psn->status = 0;
		ret=0;
	}
	else{
		memset(pTemp, 0, CONFIG_EFUSE_SN_DATA_SIZE);
		psn->status = -1;
		ret = -1;
	}
	return ret;
}
Esempio n. 3
0
static int pv_sn(sip_msg_t* msg, pv_param_t* param, pv_value_t* res)
{
	int local;
	
	if (param->pvn.u.isname.name.n & PV_CERT_PEER) {
		local = 0;
	} else if (param->pvn.u.isname.name.n & PV_CERT_LOCAL) {
		local = 1;
	} else {
		BUG("could not determine certificate\n");
		return pv_get_null(msg, param, res);
	}
	
	if (get_sn(&res->rs, &res->ri, local, msg) < 0) {
		return pv_get_null(msg, param, res);
	}
	
	res->flags = PV_VAL_STR | PV_VAL_INT;
	return 0;
}