// funcion auxiliar de validate, tambien implementada en assembly
void write_error(int tipo_de_error, char* tag1, char* tag2, int nro_linea, char** errmsg) {
	size_t size = ERRMSG + calcular_largo(tag1) + calcular_largo(tag2);
	(*errmsg) = (char*)malloc(sizeof(char)*size);
	(*errmsg)[size-1]='\0';

	switch (tipo_de_error) {
	case 1:
		sprintf(*errmsg, "es tag sin abrir - nro de linea: %d - tag: ", nro_linea);
		print_tag(tag2, errmsg);
		break;
	case 2:
		sprintf(*errmsg, "es tag mal anidado - nro de linea: %d - tags: ", nro_linea);
		print_tag(tag1, errmsg);
		int tam = strlen(*errmsg);
		(*errmsg)[tam] = ' ';
		(*errmsg)[tam+1] = 'y';
		(*errmsg)[tam+2] = ' ';
		(*errmsg)[tam+3] = '\0';
		print_tag(tag2, errmsg);
		break;
	case 3:
		sprintf(*errmsg, "hay tags sin cerrar - nro de linea: %d - tag: ", nro_linea);
		print_tag(tag1, errmsg);
		break;
	default:
		break;
	}
}
Ejemplo n.º 2
0
void desencriptar(long int mensajeEncriptado[], char salida[], long int d, long int n) {
	for (int i = 0; i <= calcular_largo(mensajeEncriptado); ++i)
	{
		long int numero = mensajeEncriptado[i];
		char caracter = potencia_modular(numero, d, n);
		salida[i] = caracter;
	}
}