Introduction

This document defines a representation of a resource descriptor [RDG-FRAMEWORK] as a MIME entity. [RFC2045]

Key words

The key words ‘MUST,’ ‘MUST NOT,’ ‘REQUIRED,’ ‘SHALL,’ ‘SHALL NOT,’ ‘SHOULD,’ ‘SHOULD NOT,’ ‘RECOMMENDED,’ ‘NOT RECOMMENDED,’ ‘MAY,’ and ‘OPTIONAL’ in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

Representation

Resource descriptors in MIME are represented as entities of type multipart/prs.inumi.rdg-mime.

Multipart media types are discussed in [RFC2046].

The Content-Transfer-Encoding field SHOULD have the value binary.

The entity MUST contain the header field Content-Base, with the identifier of the descriptor as its value. This value is used as the default base URI for all of its body parts.

Body parts

Every body part MUST be a multipart/signed entity. [RFC1847]

The signature protocol is application/prs.inumi.rdg-mime-sig.

Since there are more than one signature and their schemes vary, the signed body part must be cached prior to verifying the signatures. The micalg parameter MUST have the value unknown.

Signed body part

The signed body part is a serialization of an RDF graph. Implementations MUST support at least the application/prs.inumi.rdg-graph [RDG-GRAPH] and text/turtle serialization formats. [Turtle]

The following header fields are REQUIRED on the signed body part:

  • the Content-ID field, which contains the piece identifier, and
  • the Content-Type field, which gives the media type of the data.

The Content-ID and Content-Type fields are discussed in [RFC2045].

Piece references SHOULD be expressed with a signed body part of type message/external-body.

Control information

The control information is a textual file composed of lines. The character encoding is US-ASCII. [RFC20] The document syntax is expressed by the sig-mime rule.

sig-mime = 1*(sig-line CRLF)
sig-line = URI WS sig-expire WS sig-scheme WS sig-data "."
sig-data = 2*( sig-b64c [WS] ) 0*2( "=" [WS] )
sig-b64c = ALPHA / DIGIT / "+" / "/"

The sig-expire and sig-scheme rules are imported from [RDG-FRAMEWORK]. The URI rules is imported from [RFC3986].

The URI portion is the signer URI. There MUST NOT be more than one instance of the same URI.

The sig-data portion is the result of applying the base64 [RFC4648] encoding upon the signature data generated by the named scheme.

Security considerations

None.

IANA considerations

To be written.