## 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.

None.

To be written.