В описании протокола используется понятие Синтаксис криптографического сообщения (Cryptographic Message Syntax— CMS)— [RFC-2630], в котором описываются форматы работы с сообщениями, в которых используются криптографические механизмы. Для S/MIME-сообщений могут быть использованы следующие типы содержимого: Data (Данные), SignedData (Подписанные данные — обеспечивается целостность элемента), EnvelopedDaia (Запечатанные данные — обеспечивается конфиденциальность элемента).
В качестве наиболее интересного решения, используемого в данном протоколе, можно привести правила принятия решения о необходимости использования отправителем того или иного алгоритма шифрования. Таких правил три.
1. Известны возможности.
Если отправитель имеет список используемых возможностей (алгоритмов) принимающей стороны, тогда он должен использовать первую возможность из указанного получателем списка как наиболее предпочтительную.
2. Неизвестны возможности. — Известен использованный алгоритм.
В случае, если отправитель не имеет данных об используемых принимающей стороной возможностях, но имеет хотя бы одно принятое адресата послание, и последнее из имеющихся таких сообщении имеет подтвержденную электронно-цифровую подпись, то исходящее сообщение должно использовать тот же алгоритм, что и в последнем поступившем письме.
3. Неизвестны возможности — неизвестна версия S/MIME.
Если отправитель не имеет данных ни об имеющихся возможностях, ни о версии S/MIME на принимающей стороне, он должен использовать 3DES, как наиболее сильный. В случае невозможности использования 3DES следует использовать RC2 с 40 битным ключом.