rfc9219v2.txt   rfc9219.txt 
skipping to change at line 98 skipping to change at line 98
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
Type signatures, examples, and property descriptions in this document Type signatures, examples, and property descriptions in this document
follow the conventions established in Section 1.1 of [RFC8620]. Data follow the conventions established in Section 1.1 of [RFC8620]. Data
types defined in the core specification are also used in this types defined in the core specification are also used in this
document. document.
3. Addition to the Capabilities Object 3. Addition to the Capabilities Object
The capabilities object is returned as part of the standard JMAP The *capabilities* object is returned as part of the standard JMAP
Session object; see Section 2 of [RFC8620]. Servers supporting Session object; see Section 2 of [RFC8620]. Servers supporting this
_this_ specification MUST add a property called specification MUST add a property called
"urn:ietf:params:jmap:smimeverify" to the capabilities object. "urn:ietf:params:jmap:smimeverify" to the capabilities object.
The value of this property is an empty object in both the JMAP The value of this property is an empty object in both the JMAP
Session _capabilities_ property and an account's Session _capabilities_ property and an account's
_accountCapabilities_ property. _accountCapabilities_ property.
4. Extension for S/MIME Signature Verification 4. Extension for S/MIME Signature Verification
4.1. Extension to Email/get 4.1. Extension to Email/get
skipping to change at line 139 skipping to change at line 139
it MUST be interpreted by the server as a request to return the it MUST be interpreted by the server as a request to return the
"smimeErrors" response property. "smimeErrors" response property.
*smimeVerifiedAt*: *smimeVerifiedAt*:
If "smimeVerifiedAt" is included in the list of requested If "smimeVerifiedAt" is included in the list of requested
properties, it MUST be interpreted by the server as a request to properties, it MUST be interpreted by the server as a request to
return the "smimeVerifiedAt" response property. return the "smimeVerifiedAt" response property.
The "smimeStatus" response property is defined as follows: The "smimeStatus" response property is defined as follows:
smimeStatus: *smimeStatus*:
"String|null" (server-set). null signifies that the message "String|null" (server-set). null signifies that the message
doesn't contain any signature. Otherwise, this property contains doesn't contain any signature. Otherwise, this property contains
the S/MIME signature and certificate verification status the S/MIME signature and certificate verification status
calculated according to [RFC8551], [RFC8550], and [RFC5280]. calculated according to [RFC8551], [RFC8550], and [RFC5280].
Possible string values of the property are listed below. Servers Possible string values of the property are listed below. Servers
MAY return other values not defined below, as defined in MAY return other values not defined below, as defined in
extensions to this document. Clients MUST treat unrecognized extensions to this document. Clients MUST treat unrecognized
values as "unknown" or "signed/failed". Note that the value of values as "unknown" or "signed/failed". Note that the value of
this property might change over time. this property might change over time.
unknown: unknown:
An S/MIME message, but it was neither signed nor encrypted. This An S/MIME message, but it was neither signed nor encrypted.
can also be returned for a multipart/signed message that contains This can also be returned for a multipart/signed message that
an unrecognized signing protocol (for example, OpenPGP). contains an unrecognized signing protocol (for example,
OpenPGP).
signed: signed:
An S/MIME signed message, but the signature was not yet verified. An S/MIME signed message, but the signature was not yet
Some servers might not attempt to verify a signature until a verified. Some servers might not attempt to verify a signature
particular message is requested by the client. (This is a useful until a particular message is requested by the client. (This
optimization for a JMAP server to avoid doing work until exact is a useful optimization for a JMAP server to avoid doing work
information is needed. A JMAP client that only needs to display until exact information is needed. A JMAP client that only
an icon that signifies presence of an S/MIME signature can still needs to display an icon that signifies presence of an S/MIME
use this value.) JMAP servers compliant with this document SHOULD signature can still use this value.) JMAP servers compliant
attempt signature verification and return "signed/verified" or with this document SHOULD attempt signature verification and
"signed/failed" instead of this signature status. return "signed/verified" or "signed/failed" instead of this
signature status.
signed/verified: signed/verified:
An S/MIME signed message, and the sender's signature was An S/MIME signed message, and the sender's signature was
successfully verified according to [RFC8551] and [RFC8550]. successfully verified according to [RFC8551] and [RFC8550].
Additionally, the signer email address extracted from the S/MIME Additionally, the signer email address extracted from the S/
certificate matches the From header field value, and the signer MIME certificate matches the From header field value, and the
certificate SHOULD be checked for revocation. signer certificate SHOULD be checked for revocation.
signed/failed: signed/failed:
S/MIME signed message, but the signature failed to verify S/MIME signed message, but the signature failed to verify
according to [RFC8551] and [RFC8550]. This might be because of a according to [RFC8551] and [RFC8550]. This might be because of
policy-related decision (e.g., the message signer email address a policy-related decision (e.g., the message signer email
doesn't match the From header field value), the message was address doesn't match the From header field value), the message
modified, the signer's certificate has expired or was revoked, was modified, the signer's certificate has expired or was
etc. revoked, etc.
encrypted+signed/verified: encrypted+signed/verified:
This value is reserved for future use. It is typically handled in This value is reserved for future use. It is typically handled
the same way as "signed/verified". in the same way as "signed/verified".
encrypted+signed/failed: encrypted+signed/failed:
This value is reserved for future use. It is typically handled in This value is reserved for future use. It is typically handled
the same way as "signed/failed". in the same way as "signed/failed".
The "smimeStatusAtDelivery" response property has the same syntax as The "smimeStatusAtDelivery" response property has the same syntax as
"smimeStatus" but is calculated in relationship to the "receivedAt" "smimeStatus" but is calculated in relationship to the "receivedAt"
date/time. Unlike "smimeStatus", the "smimeStatusAtDelivery" date/time. Unlike "smimeStatus", the "smimeStatusAtDelivery"
response property value doesn't change unless trust anchors are response property value doesn't change unless trust anchors are
added. (For example, addition of a trust anchor can change the value added. (For example, addition of a trust anchor can change the value
of a message "smimeStatusAtDelivery" property from "signed/failed" to of a message "smimeStatusAtDelivery" property from "signed/failed" to
"signed/verified". Note that trust anchor removal doesn't affect "signed/verified". Note that trust anchor removal doesn't affect
this response property.) The "smimeStatusAtDelivery" response this response property.) The "smimeStatusAtDelivery" response
property value allows clients to compare the S/MIME signature property value allows clients to compare the S/MIME signature
skipping to change at line 209 skipping to change at line 211
by "smimeStatus", for example, to help to answer questions like "was by "smimeStatus", for example, to help to answer questions like "was
the signature valid at the time of delivery?". the signature valid at the time of delivery?".
Note that the "smimeStatusAtDelivery" response property value doesn't Note that the "smimeStatusAtDelivery" response property value doesn't
have to be calculated at delivery time. A JMAP server can defer its have to be calculated at delivery time. A JMAP server can defer its
calculation until it is explicitly requested; however, once it is calculation until it is explicitly requested; however, once it is
calculated, its value is remembered for later use. calculated, its value is remembered for later use.
The "smimeErrors" response property is defined as follows: The "smimeErrors" response property is defined as follows:
smimeErrors: *smimeErrors*:
"String[]|null" (server-set). null signifies that the message "String[]|null" (server-set). null signifies that the message
doesn't contain any signature or that there were no errors when doesn't contain any signature or that there were no errors when
verifying the S/MIME signature. (That is, this property is non- verifying the S/MIME signature. (That is, this property is non-
null only when the corresponding "smimeStatus" response property null only when the corresponding "smimeStatus" response property
value is "signed/failed" or "encrypted+signed/failed". Note that value is "signed/failed" or "encrypted+signed/failed". Note that
future extensions to this document can specify other "smimeStatus" future extensions to this document can specify other "smimeStatus"
values that can be used with "smimeErrors".) Each string in the values that can be used with "smimeErrors".) Each string in the
array is a human-readable description (in the language specified array is a human-readable description (in the language specified
in the Content-Language header field, if any) of a problem with in the Content-Language header field, if any) of a problem with
the signature, the signing certificate, or the signing certificate the signature, the signing certificate, or the signing certificate
skipping to change at line 231 skipping to change at line 233
affected by the language selection.) In one example, the signing affected by the language selection.) In one example, the signing
certificate might be expired and the message From email address certificate might be expired and the message From email address
might not correspond to any of the email addresses in the signing might not correspond to any of the email addresses in the signing
certificate. In another example, the certificate might be expired certificate. In another example, the certificate might be expired
and the JMAP server might be unable to retrieve a Certificate and the JMAP server might be unable to retrieve a Certificate
Revocation List (CRL) for the certificate. In both of these Revocation List (CRL) for the certificate. In both of these
cases, there would be 2 elements in the array. cases, there would be 2 elements in the array.
The "smimeVerifiedAt" response property is defined as follows: The "smimeVerifiedAt" response property is defined as follows:
smimeVerifiedAt: *smimeVerifiedAt*:
"UTCDate|null" (server-set). null signifies that the message "UTCDate|null" (server-set). null signifies that the message
doesn't contain any S/MIME signature or that there is a signature, doesn't contain any S/MIME signature or that there is a signature,
but there was no attempt to verify it. (Retrieval of the but there was no attempt to verify it. (Retrieval of the
"smimeStatus" value can be used to distinguish these 2 cases). In "smimeStatus" value can be used to distinguish these 2 cases). In
all other cases, it is set to the date and time of when the S/MIME all other cases, it is set to the date and time of when the S/MIME
signature was most recently verified. Note that a request to signature was most recently verified. Note that a request to
fetch "smimeStatus", "smimeStatusAtDelivery", and/or "smimeErrors" fetch "smimeStatus", "smimeStatusAtDelivery", and/or "smimeErrors"
would force this response property to be set to a non-null value would force this response property to be set to a non-null value
if an S/MIME signature exists. if an S/MIME signature exists.
 End of changes. 10 change blocks. 
39 lines changed or deleted 41 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/