Digest md5 integrity and confidentiality support

Should go to _private. Let me rebase and fix it.