o Finish the TLS code. * report server certificate details (esp fingerprint) to application * report cipher in use to application. * API to specify minimum acceptable security levels. o SASL * New plugin strategy. If the server lists acceptable mechanisms load them all. If not load all plugins. Eliminate those which cannot negotiate a sufficient security level. If encryption is already in use, eliminate those which *must* encrypt. Rank remaining mechanisms according to the protection afforded to the username and password. Attempt to authenticate using highest rank mechanism to lowest. Special case: if the server offers EXTERNAL and the external token has been set, use that as the highest ranking mechanism. If the server refuses a mechanism, back off to the next mechanism. If the server accepts the mechanism but fails authentication, end the sequence. Special exception: if EXTERNAL was used and authentication fails, back off to the next mechanism. o Make header code do line folding at white spaces. o Make header code handle Resent-* headers. o Make header code handle list notation in appropriate recipient headers. o Review API. o Review error reporting. o Loadsa documentation.