page 1 [pdf] [jpg] MUA View MUA loop { msg m=getMsg(); m=usmtProcessMsg(m); dostuff(m); }
The above example should be (is) the base implementation. In this scenerio the MUA has no responsiblilty (or knowledge of how) to handle security or encryption. This setup can be attached with minimal MUA (or any mail tranport) code rewrite. Targets include SMTP servers (sendmail, etc), procmail scripts, pine, etc.
page 2 [pdf] [jpg]
page 3 [pdf] [jpg]
page 4 [pdf] [jpg] Communication channels available:

mutt would use 1,2,3 and possibly 4?

page 5 [pdf] [jpg] decrypt text: (msg',resp) = f(msg,cmd) msg -> cmd -> <- msg' <- resp msg=cypertext (app/octetstr...) cmd=| usekey: foo#4 | passphrase: pablosecretword | Content-Type: image/jpeg | otherstuff: I did not think of ... - - - - - - - - - - - - - - - - - - - - - - msg'=cleartext ( if successful ) resp=| status: good | verify: true | user_message: "hi my name is pablo | I am your crypto engine for today"
page 6 [pdf] [jpg] verify sig: resp=f(msg,cmd) msg -> cmd -> <- resp msg=text to verify cmd=| usesig: my big sig data stuff to use ............ | ................................................ | ................................................ | ................................................ | ................................................ | micalg: somevalue - - - - - - - - - - - - - - - - - - - - - - resp=| status: bad | user_message: "warn, sig is invalid, maybe | the KGB is playing with you!"
page 7 [pdf] [jpg] Encrypt Text: msg'=f(msg,cmd) msg -> cmd -> <- msg' msg=clear text to encrypt cmd=| listOFtargetKEYSforDECRYPTION: key1, key2, key3, keyETC.... | blabla: bla | speciallfags: values - - - - - - - - - - - - - - - - - - - - - - msg'=cyphertext
page 8 [pdf] [jpg] Sign Text: (resp,msg')=f(msg,cmd)
page 9 [pdf] [jpg]
page 10 [pdf] [jpg]
page 11 [pdf] [jpg]
page 12 [pdf] [jpg]
page 13 [pdf] [jpg]
page 14 [pdf] [jpg]
page 15 [pdf] [jpg]
page 16 [pdf] [jpg]
page 17 [pdf] [jpg]
page 18 [pdf] [jpg]
page 19 [pdf] [jpg]