enigma / doc / context / third / enigma / examples / enigma-example-latex.tex

\documentclass[a5paper]{scrartcl}
\parindent0pt
%······································································%
\usepackage   {enigma}
%%·····································································%
%% The first machine will be used for encryption of our plain text.
\defineenigma {encryption}
\setupenigma  {encryption} {
  other_chars = yes,
  day_key = B V III II 12 03 01 GI JV KZ WM PU QY AD CN ET FL,
  rotor_setting = ben,
  spacing = yes,
  verbose = 3,
}
%%·····································································%
%% This second machine below will be used to decrypt the string. It is
%% initialized with exactly the same settings as the first one. The
%% reason for this is that we can’t reuse the “encryption” machine as it
%% will already have progressed to some later state after the
%% encryption. Applying it on the ciphertext would yield a totally
%% different string. Hence the need for another machine.
\defineenigma{decryption}
\setupenigma{decryption}{
  other_chars = yes,
  day_key = B V III II 12 03 01 GI JV KZ WM PU QY AD CN ET FL,
  rotor_setting = ben,
}
%%·····································································%
\begin{document}

%%·····································································%
%% Ciphertext in the PDF. Rely on the addressee to decrypt the document
%% externally.
\startencryption
  Never underestimate the amount of money, time, and effort someone will expend to thwart a security system.
\stopencryption

%%·····································································%
%% Input string generated with:
%% mtxrun --script t-enigma  \
%%        --setup="day_key=B V III II 12 03 01 GI JV KZ WM PU QY AD CN ET FL,\
%%           rotor_setting=ben,\
%%             other_chars=yes"\
%%        --text="Never underestimate the amount of money,\
%%                time, and effort someone will expend to\
%%                thwart a security system."
\startdecryption
  aqsnwyxgqarpuzrdktscbslaqmdhyonywxkwhcdgphvuqsspfjwhlszahygjbzmfpcpbniahvfcuradntepxsfchnn
\stopdecryption
%%·····································································%
\end{document}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.