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]