44#define n_mathmod(__a, __b) ((__a % __b + __b) % __b)
N_STR * n_vigenere_encode_qa(N_STR *input_data, N_STR *question, N_STR *answer)
encode a N_STR using vigenere cipher with a question and answer pair
int n_vigenere_decode_file_qa(N_STR *in, N_STR *out, N_STR *question, N_STR *answer)
decode a file using vigenere cipher with a question and answer pair
N_STR * n_vigenere_quick_encode(N_STR *decoded_question)
quick encode a N_STR using an auto-generated key
N_STR * n_vigenere_decode(N_STR *string, N_STR *key)
decode a N_STR using vigenere cipher with the given key
N_STR * n_vigenere_get_answer(N_STR *root_key, N_STR *question)
compute the answer from a root key and a question
int n_vigenere_encode_file_qa(N_STR *in, N_STR *out, N_STR *question, N_STR *answer)
encode a file using vigenere cipher with a question and answer pair
N_STR * n_vigenere_decode_qa(N_STR *input_data, N_STR *question, N_STR *answer)
decode a N_STR using vigenere cipher with a question and answer pair
N_STR * n_vigenere_encode(N_STR *string, N_STR *key)
encode a N_STR using vigenere cipher with the given key
int n_vigenere_encode_file(N_STR *in, N_STR *out, N_STR *rootkey)
encode a file using vigenere cipher with a root key
int n_vigenere_decode_file(N_STR *in, N_STR *out, N_STR *rootkey)
decode a file using vigenere cipher with a root key
N_STR * n_vigenere_get_rootkey(size_t rootkey_size)
generate a random root key of given size
N_STR * n_vigenere_get_question(size_t question_size)
generate a random question of given size
N_STR * n_vigenere_quick_decode(N_STR *encoded_question)
quick decode a N_STR using an auto-generated key
A box including a string and his lenght.
N_STR and string function declaration.