Cryptographic Message Syntax Services
Cryptographically sign and encrypt S/MIME messages.
Overview
When you want to exchange data securely using the Multipurpose Internet Mail Extensions (MIME) protocol, you use the version of the protocol known as S/MIME defined in RFC 3851. This allows you to, among other things, ensure data integrity through digital signatures and data confidentiality through encryption. S/MIME in turn relies on the Cryptographic Message Syntax (CMS) protocol defined in RFC 3852 to carry out these operations.
Cryptographic message syntax services provides encoder objects that perform encryption using the CMS protocol’s enveloped-data content type and sign using the signed-data content type. When a message is both signed and encrypted, the enveloped data content contains the signed data content. That is, the message is first signed and then the signed content is encrypted.
Topics
The Encoder
Message Creation
CMSEncoderAddSigners(_:_:)CMSEncoderAddRecipients(_:_:)CMSEncoderSetHasDetachedContent(_:_:)CMSEncoderSetEncapsulatedContentTypeOID(_:_:)CMSEncoderAddSupportingCerts(_:_:)CMSEncoderAddSignedAttributes(_:_:)CMSSignedAttributesCMSEncoderSetCertificateChainMode(_:_:)CMSCertificateChainModeCMSEncoderSetSignerAlgorithm(_:_:)
Message Characteristics
CMSEncoderCopySigners(_:_:)CMSEncoderCopyRecipients(_:_:)CMSEncoderGetHasDetachedContent(_:_:)CMSEncoderCopyEncapsulatedContentType(_:_:)CMSEncoderCopySupportingCerts(_:_:)CMSEncoderGetCertificateChainMode(_:_:)
Encoding
The Decoder
Decoding
CMSDecoderUpdateMessage(_:_:_:)CMSDecoderFinalizeMessage(_:)CMSDecoderSetDetachedContent(_:_:)CMSDecoderCopyDetachedContent(_:_:)
Signature Verification
CMSDecoderSetSearchKeychain(_:_:)CMSDecoderGetNumSigners(_:_:)CMSDecoderCopySignerEmailAddress(_:_:_:)CMSDecoderCopySignerCert(_:_:_:)CMSDecoderCopySignerStatus(_:_:_:_:_:_:_:)CMSSignerStatus
Message Content
CMSDecoderIsContentEncrypted(_:_:)CMSDecoderCopyEncapsulatedContentType(_:_:)CMSDecoderCopyAllCerts(_:_:)CMSDecoderCopyContent(_:_:)