// #decrypt() int AffineCipher::decrypt ( const vector<byte>& cipher_text, const vector<byte>& key, vector<byte>& plain_text) { int plain_len = 0; vector<byte>::const_iterator ct_it; vector<byte>::const_iterator key_it; key_it = key.begin(); byte key1 = *key_it; key_it++; byte key2 = *key_it; ct_it = cipher_text.begin(); while (ct_it!=cipher_text.end()) { int result = multInverse(key1) * (*ct_it - key2)%26; while(result < 0) { result += 26; } plain_text.push_back(result); ct_it++; plain_len++; } return plain_len; } // decrypt()
void multInverseEq(W& a) { a = multInverse(a); }