<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     ipr="trust200902"
     category="info"
     docName="draft-luna-dicpm-00"
     submissionType="IETF">

  <front>
    <title abbrev="DICPM">Digital Identity Certification for Personal Media (DICPM)</title>

    <author initials="P.C." surname="Luna" fullname="Paulo Cesar Pinto de Luna">
      <organization>Independent Researcher</organization>
      <address>
        <email>anjdric@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="February"/>

    <abstract>
      <t>
        This document specifies the Digital Identity Certification for Personal Media (DICPM),
        a protocol for cryptographic certification of personal media, binding media integrity
        to identity and consent while enabling verifiable licensing terms and revocation.
      </t>
    </abstract>
  </front>

  <middle>

    <section anchor="intro">
      <name>Introduction</name>
      <t>
        DICPM establishes a cryptographically verifiable certification layer binding media objects
        to identity and consent, with support for trust models, licensing constraints, and validation.
      </t>
    </section>

    <section anchor="req-lang">
      <name>Conventions and Requirements Language</name>
      <t>
        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 <xref target="RFC2119"/> and <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.
      </t>
    </section>

    <section anchor="data-model">
      <name>Certificate Data Model</name>

      <section anchor="canonical-serialization">
        <name>Canonical Serialization</name>
        <t>
          All certificate payloads MUST be serialized using the JSON Canonicalization Scheme (RFC 8785)
          prior to signature generation.
        </t>
      </section>

      <section anchor="normative-json">
        <name>Normative JSON Structure</name>
        <sourcecode type="json"><![CDATA[
{
  "cert_version": "1.0",
  "cert_id": "UUIDv4",
  "trust_model": "self | delegated | chained",
  "owner": {
    "global_id": "DID or UUIDv4",
    "public_key": "PEM-encoded SubjectPublicKeyInfo",
    "biometric_hash": "base64url salted irreversible hash"
  },
  "media": {
    "media_hash": "base64url SHA-256 or SHA-3 digest",
    "media_type": "registered media type",
    "created_at": "ISO8601 UTC timestamp"
  },
  "license": {
    "permitted_uses": ["commercial", "journalism", "educational", "artistic"],
    "project_reference": "string",
    "exclusive": true,
    "territory": "global or ISO country code",
    "expiration": "ISO8601 UTC timestamp",
    "revocation_policy": "URL or blockchain reference"
  },
  "extensions": {},
  "signature": {
    "algorithm": "Ed25519 | ECDSA-P256 | RSA-2048",
    "signed_at": "ISO8601 UTC timestamp",
    "value": "base64url signature"
  }
}
        ]]></sourcecode>
      </section>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>
        Implementations SHOULD protect private keys using secure enclaves or HSMs where available.
        Biometric hashes MUST be salted and irreversible, and raw biometric templates MUST NOT be stored.
      </t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>
        This document requests registration of the media type "application/dicpm+json".
      </t>
    </section>

  </middle>

  <back>
    <references>
      <name>Normative References</name>

      <reference anchor="RFC2119" target="https://www.rfc-editor.org/rfc/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
          <date month="March" year="1997"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </reference>

      <reference anchor="RFC8174" target="https://www.rfc-editor.org/rfc/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author><organization>IETF</organization></author>
          <date month="May" year="2017"/>
        </front>
        <seriesInfo name="RFC" value="8174"/>
      </reference>

      <reference anchor="RFC8785" target="https://www.rfc-editor.org/rfc/rfc8785">
        <front>
          <title>JSON Canonicalization Scheme (JCS)</title>
          <author><organization>IETF</organization></author>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8785"/>
      </reference>

    </references>
  </back>

</rfc>
