#include "keyword.h" void encode_keyword(char* plaintext, char* keyword) { int i ; int j ; int len = strlen(keyword) ; int plen = strlen(plaintext) ; // reduce the keyword to a number that can be easily // added to the characters. for(i = 0 ; i < len ; i++) { keyword[i] -= 'a' ; } for(i = 0 ; i < plen ; i+= len) { for(j = 0 ; j < len ; j++) { plaintext[i+j] = plaintext[i+j] + keyword[j] ; while(plaintext[i+j] > 'z') { plaintext[i+j] -= 26 ; } if(i+j >= plen) { break ; } } } for(i = 0 ; i < len ; i++) { keyword[i] += 'a' ; } return ; } void decode_keyword(char* ciphertext, char* keyword) { int i ; int j ; int len = strlen(keyword) ; int plen = strlen(ciphertext) ; // reduce the keyword to a number that can be easily // added to the characters. for(i = 0 ; i < len ; i++) { keyword[i] -= 'a' ; } for(i = 0 ; i < plen ; i+= len) { for(j = 0 ; j < len ; j++) { ciphertext[i+j] = ciphertext[i+j] - keyword[j] ; while(ciphertext[i+j] < 'a') { ciphertext[i+j] += 26 ; } if(i+j >= plen) { break ; } } } for(i = 0 ; i < len ; i++) { keyword[i] += 'a' ; } return ; }