/*
Algoritmo de cifrado vigenere:
Oscar Medina Duarte
http://www.udlap.mx/~is111936/oto02/programas/
*/

#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);
}