/* Esquema de codificacion basado en Vinegere
 * Por: Oscar Medina Duarte
 * www.medina-web.com
 */
#include <stdio.h>
#include <string.h>

void uso(){
	printf("Uso:\n\tvin <clave> [d|D|x|X]\nDonde\n  d|D imprime decimal\ny x|X Imprime hex\n");
}

int main(int argn, char **argv){
int c,in=0,cot;
if (argn>1){
	
	cot = strlen(argv[1]);
	
	while ((c=getchar())!=EOF){
		c=c^argv[1][in];
		if (argn>2){
			if ((argv[2][0]=='x')||(argv[2][0]=='X')){
				printf("0x%x ",c);
			}else if ((argv[2][0]=='d')||(argv[2][0]=='D')){
				printf("%i ",c);
			}else{
				printf("Comando no reconocido\n");
				uso();
				exit(-1);
			}
				
		}else{
			putchar(c);
		}
		
		in++;
		if (in >= cot) in =0;
	}
	
}else{
	printf("Epecificar una clave\n");
	uso();
}
return(0);
}

