<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wendt-stir-vesper-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="vesper">VESPER PASSporT and Identity Tokens - VErifiable STI Personas</title>
    <seriesInfo name="Internet-Draft" value="draft-wendt-stir-vesper-02"/>
    <author fullname="Chris Wendt">
      <organization>Somos, Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>chris@appliedbits.com</email>
      </address>
    </author>
    <author fullname="Rob Sliwa">
      <organization>Somos, Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>robjsliwa@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>Applications and Real-Time</area>
    <workgroup>Secure Telephone Identity Revisited</workgroup>
    <keyword>telephone number</keyword>
    <keyword>vetting</keyword>
    <keyword>KYC</keyword>
    <abstract>
      <?line 52?>

<t>This document extends the STIR architecture by defining a Personal Assertion Token (PASSporT) with a type of "vesper" (VErifiable Sti PERsona) and specifies the use of PASSporTs as a JSON Web Tokens (JWT) and Selective Disclosure JWT (SD-JWT) for representing verifiable claims related to a persona (a person or business entity) associated with a Secure Telephone Identity (STI). This set of extensible claims can include verifiable information such as the assignment of a telephone number, the output of a Know Your Customer (KYC) or Know Your Business (KYB) type of vetting process, Rich Call Data (RCD) or claims of consent provided to the telephone number holder. The architecture, dependencies, and process flow of Vesper includes logical roles that represent certain responsibilities for establishing a secure telephone identity. These roles represent the basis for trusted relationships to information that is being claimed and who is validating and taking responsibility for the accuracy of that information. These roles begin with a Subject Entity (SE) that is the end entity that intended to be represented by the STI telephone number identifier. A Vetting Claim Agent (VCA) establishes the Subject Entity as a vetted entity after performing the initial vetting and existence as a entity that fulfills the criteria and policies of the ecosystem to be associated with an STI. A Notary Agent (NA) is a neutral role that maintains a graph of relationships among all roles, claims, and identities, but importantly, for protecting privacy, doesn't hold any claim information other than the recording of claim events to the STI telephone number. The NA records these claim event transactions with a corresponding transparency log that generates verifiable receipts to "notarize" the recording of these relationships and claims being established. Privacy is enabled in this Notary role because the submitters have the option of submitting hashes of claims to protect information, or may usefully want to publicly declare their association to a claim to allow the public monitoring to avoid duplicate, mistaken or negligent claims which can be identified before illegitimate usage in the eco-system can occur. Other Claim Agents are defined producing claims in the form of SD-JWT + receipts from the NA. There are multiple claim agent types with corresponding extensible claim definitions with key value pairs that can be required or optionally included. These SD-JWT + receipt claim objects are then collected by the SE into a digital wallet that it can then use for selective disclosure presentation and incorporate into a "vesper" PASSporT signed by the a delegate certificate associated with STI telephone number to validate the SE is indeed the authorized holder of the telephone number and vesper token at the time the presentation is required and ties the SE to the STIR eco-system a STIR certificates policy for use in communications.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://appliedbits.github.io/draft-wendt-stir-vesper/draft-wendt-stir-vesper.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wendt-stir-vesper/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Telephone Identity Revisited Working Group mailing list (<eref target="mailto:stir@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/stir/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/stir/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/appliedbits/draft-wendt-stir-vesper"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Secure Telephone Identity (STI) architecture fundamentally defined by STI certificates in <xref target="RFC8226"/>, PASSporTs in <xref target="RFC8225"/>, and the SIP Identity header field <xref target="RFC8224"/> describe a set of constructs and protocols for the use of tokens and digital signatures to protect the integrity and provide non-repudiation of information as part of a communications session most notably the associated telephone numbers. This document extends that architecture to address the association of a telephone number to a persona (e.g. a person or business entity) given responsibility for the right to use that telephone number. Recently, the illegitimate use of telephone numbers by unauthorized parties and the associated fraudulent activity associated with those communications has generally eroded trust in communications systems. Further, basic reliance on the trustworthiness of the signer alone at the time of the communications has proven to require people to perform time-consuming work in the form of after-the-fact investigation and enforcement activities, but to date has proven mostly ineffective because the true initiator of the communications is generally not directly associated to that communications. Other industries like the financial industry, have adopted well-known successful practices of Know Your Customer (KYC) or Know Your Business (KYB) that apply different vetting practices of an end entity. This document focuses on a set of roles and the protocol interactions between those roles that can properly establish mechanisms for trusted transactions, an explicit set of processes and verifiable actions that should be followed to establish the representation of claims about the persona that are vetted before any communications can be initiated. These claim information establishment transactions are recorded or notarized with authorized or responsible parties while also importantly enabling privacy controls around the disclosure of the persona information. Transparency logging of relationships and transaction events for claim information is also required to further establish trust with optional public disclosure to guarantee uniqueness when desired. The explicit connection between a persona with a telephone number and the responsibilities associated with its use is a critical step towards building the use of telephone numbers and ability to enforce usage policies that allow privacy but discourage taking advantage of those properties with the intent to impersonate for illegitimate reasons. Ultimately, the establishment of secure telephone identity with reasonable policies for establishing those identities will result in greater trusted relationships between parties involved in a set of communications.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This document describes the establishment of a "vesper" (VErifiable Sti PERsona) PASSporT type with corresponding "vesper" claims which are signed claims using a three party trust model represented by SD-JWTs <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> and enabled with transparency logs and corresponding receipts that enable either a privacy protecting hash disclosure or a public disclosure that allows for verifiable trust to ensure that those entities that validate claim information are legitimate actors in the ecosystem. Additionally, the vesper token in conjunction with the claims architecture provides mechanisms that enable a persona to selectively disclose any personally identifying information to other parties, while at the same time making this information available in special limited cases, for example, based on enforcement actions, required for legitimately authorized legal or regulatory activity.</t>
      <t>In the current state of digital identities, the unique identifier used to identify a persona is obviously a critical component of digital protocols that need to identify the persona. However, just as important, is the ability to verify the existence of a real-world persona to that identifier as the responsible party behind that identifier. The telephone number as an identifier and as part of a set of traditional communications services offered around the world has been facing a challenge of illegitimate fraud based on the lack of a formal framework for the explicit association of a set of communications to a directly responsible party. The use of "spoofing" of telephone numbers, a practice of the use of telephone numbers by not directly authorized parties, while having very legitimate use-cases, has been exploited by actors of fraudulent intent to either impersonate the legitimate party, or simply obfuscate the actual party behind the call. Fraud and illegitimate activity has proliferated based on the loose connection of telephone numbers to responsible parties.</t>
      <t>The vetting process for entities involves verifying their identity and legitimacy, typically through KYC and KYB vetting procedures. This document proposes a standardized method for representing the results of these vetting procedures using Selective Disclosure JWT (SD-JWT). This document does not address how the KYC/KYB should be performed or policies around what documents or processes should be used. Rather the goal of this document is to create a standardized identifier for the Subject Entities (SE) to present that they are who they claim to be and associated verified claims.</t>
    </section>
    <section anchor="vesper-architectural-overview">
      <name>Vesper Architectural Overview</name>
      <section anchor="introduction-to-vesper-tokens-and-trust-model">
        <name>Introduction to Vesper Tokens and Trust Model</name>
        <t>The use of Vesper Tokens in communications will allow for a trust model enabled by a three-party trust system based on an agreed set of vetting policies with a set of privacy enabled features to allow for selective disclosure for communications. This trust framework requires establishment of policies for participation of end entities and those that vet and validate information about those end entities.  This information includes validated information about the entities themselves, the authorized right to use of a telephone number with the ability to support use-cases that validate all claims about the end entity or might only require anonymity and simply only validate the telephone number but the entity behind that telephone number exists and is real. The representation of roles that facilitate the trust of the association of a telephone number and other entity information is in the form of claims.  This document defines the role of those that validate and create claims against an entity are called Claim Agents that create specific claim types that have specified associated standard mandatory and optional key values.</t>
        <section anchor="key-features-of-vesper-tokens">
          <name>Key Features of Vesper Tokens</name>
          <ul spacing="normal">
            <li>
              <t>Selective Disclosure: In order to protect privacy or in the mode of exposing only the required level of detail of information in a zero knowledge proof type of disclosure, entities can choose to convey a transaction specific presentation of information to different relying parties.</t>
            </li>
            <li>
              <t>Right to Use (RTU) of Telephone Numbers: Vesper tokens can ensure that only those entities that are assigned telephone numbers can use or delegate the use of those telephone numbers with the control of an explicit token.</t>
            </li>
            <li>
              <t>Flexible Use Cases: Vesper tokens can be used for KYC/KYB vetting, Rich Call Data (RCD), and consent claims.  New use-cases can be and are anticipated to be defined in the future.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="roles-and-responsibilities-in-the-vesper-ecosystem">
        <name>Roles and Responsibilities in the Vesper Ecosystem</name>
        <t>The trust framework defines several roles that facilitate claims about telephone numbers and other entity information. The first two primary roles are defined as Claim Agents and Subject Entities (SE).  The Claim Agents are responsible for making either authoritative or validated claims about a Subject Entity (SE). The Claim Agent in turn collects these validated claims to present to other entities that they want to trust that information.</t>
        <section anchor="claim-agent-roles">
          <name>Claim Agent Roles</name>
          <t>The following are the claim agent roles defined in this document.</t>
          <ul spacing="normal">
            <li>
              <t>Vetting Claim Agent (VCA): Handles KYC/KYB vetting and establishes the SE as an identifiable entity in the ecosystem.</t>
            </li>
            <li>
              <t>Right To Use Claim Agent (RTUCA): Handles the vetting of telephone numbers assigned to the SE.</t>
            </li>
            <li>
              <t>Rich Call Data Claim Agent (RCDCA): Provides vetting and validation of Rich Call Data claims for the SE.</t>
            </li>
            <li>
              <t>Consent Claim Agent (CCA): Handles consent claims for allowing SE's to call or message specific telephone numbers.</t>
            </li>
          </ul>
          <t>Further details about these roles and the specific claims and key value attributes of the claims validated by the Claim Agents are defined later in the document. Future Claim Agent roles are anticipated to be defined by future documents.</t>
        </section>
        <section anchor="claim-agent-responsibilities">
          <name>Claim Agent Responsibilities</name>
          <t>Claim Agents validate and register claims about Subject Entities. Claim Agents are registered and uniquely identified in the Vesper Framework via the Notary Agent (NA). The NA maintains a common append-only Claim Graph for claim events each Claim Agent makes regarding Subject Entities and issues transparency receipts for the recording and notarizing each claim event. The details of this are described later in the document. Claim Agents ultimately issue SD-JWT tokens containing the validated claim key values to the Subject Entities (SE) vetted by the Claim Agent. The Claim Agent asserts the validated claims in a signed SD-JWT which, combined with a transparency receipt from the NA, are delivered to the SE which holds these SD-JWT tokens + receipts (vesper claims) in a Vesper Wallet (VW). The Vesper Wallet can then be used for specific selective disclosure of information presented to relying party.</t>
        </section>
      </section>
      <section anchor="notary-agent-claim-graph-and-transparency-log">
        <name>Notary Agent - Claim Graph and Transparency Log</name>
        <t>In the Vesper ecosystem, Claim Agents issue claims about the Subject Entity. To ensure trust and accountability, all interactions between Claim Agents and Subject Entities are registered and notarized by the Notary Agent. The NE internally operates two key dependent services: the Claim Graph and the Transparency Log. Importantly, these notarizations can be privacy protected by storing hashes of the claim JSON objects or can be used for public transparency of the claim object contents so they can be monitored for mis-claims made by other non-authorized Subject Entities and handled through a resolution process that is eco-system specific. This resolution process is not in-scope for this document, but is likely coordinated via the Notary Agent through establishment of contacts and communications to the Claim Agents.</t>
        <section anchor="claim-graph">
          <name>Claim Graph</name>
          <t>The Claim Graph is an append-only registry of the recording of claim validation events made by a Claim Agent responsible vetting the claims related to an SE. Each claim validation event issued by a Claim Agent is added to this graph as a node, with relationships represented as edges between entities.</t>
          <t>Every time a new claim is added or updated in the Claim Graph, the service creates a graph snapshot hash of the graph, thereby uniquely representing a current snapshot of the graph. This hash serves as a unique cryptographic representation of the claim graph state at that moment in time. The hashed snapshot is then recorded in the Transparency Log, ensuring that the claims history is transparent, immutable, and auditable. By using cryptographic hashing, the Claim Graph remains secure, and any changes to the claims can be traced and verified.</t>
        </section>
        <section anchor="transparency-log">
          <name>Transparency Log</name>
          <t>The Transparency Log is part of the NA's services and plays a crucial role in ensuring that all claims made by Claim Agents are trustworthy. It allows claims to be verifiable across different agents using cryptographic methods. Once a claim is hashed by the Claim Graph, it is added to the log, making it accessible for verification.</t>
          <t>Receipt Issuance:
After each claim is recorded, the NA issues a Receipt to submitting Claim Agent, ultimately sent to the SE to pair with the claim token. This receipt includes proof that the claim has been added to the Transparency Log. The SE can then present this receipt alongside claims in SD-JWT as proof that the claims have been transparently logged.</t>
          <t>Interaction with Claim Agents:
Claim Agents do not directly modify the Claim Graph. Instead, they interact with NA via its APIs, which serve as a wrapper around both the Claim Graph and Transparency Log. This ensures that claims are properly registered, hashed, and logged without direct manipulation of the underlying data structures.</t>
        </section>
        <section anchor="claim-agents-and-claim-information-privacy">
          <name>Claim Agents and Claim Information Privacy</name>
          <t>An important feature of this system is its ability to protect the privacy of the SE. Claim Agents are not required to store any private data in the Claim Graph. Instead, they store only the hash of the data, which acts as a representation of the claim without exposing sensitive information.</t>
          <t>Public vs. Private Data:
If the SE has public data (e.g., a business name or logo that is inherently public or the SE has incentive to publicly declare that information with no privacy implications), it can be added to the Claim Graph for greater visibility, perhaps with more trust implied because of the public scrutiny over the uniqueness of that information. This public declaration allows other Claim Agents or other interested ecosystem actors to detect fraud or suspicious activity. However, private data should always remain hashed and protected unless specifically required for disclosure by the SE.</t>
        </section>
      </section>
      <section anchor="transport-and-presentation-vesper-passport">
        <name>Transport and Presentation - Vesper PASSporT</name>
        <t>The SE can use claims stored in their Vesper Wallet to generate a Vesper PASSporT, which includes SD-JWTs and associated NA Transparency Receipts. This Vesper PASSporT is signed by a delegate certificate and attached to communications, such as in the case of STIR.</t>
        <t>Vesper PASSporT Flow:
1. Using Vesper Wallet, SE determines through selective disclosure the presentation required for a particular set of communications (e.g. a call or message to particular destination verifier) which creates a 'vesper' PASSporT containing 'vesper' claims including corresponding SD-JWT + receipts of claims the SE desires to be presented.
2. Vesper PASSporT is signed by a delegate certificate associated with the telephone number the SE has the right to use, representing its legitimate participation in the STIR ecosystem set of communications delegated by the TNSP or RespOrg that assigned the telephone number resource.
3. The signed PASSporT is attached to a SIP identity header for verification by the destination party.</t>
      </section>
      <section anchor="vesper-passport-and-vesper-claim-verification-and-proof-of-authenticity">
        <name>Vesper PASSporT and Vesper Claim Verification and Proof of Authenticity</name>
        <t>The Vesper framework generally allows the relying party and verification service to validate both the PASSporT specific communication association (i.e. the "orig", "dest", and "iat" PASSporT claims specific to that communications) as well as the claims and the identity of who issued each of the 'vesper' claims with the appropriate amount of disclosure or presentation required for the verifier.  This framework ties both trust of the claims to those Claim Agents that validate claims. Via STIR and the use of STIR certificates and PASSporTs the Vesper PASSporT ties the valid use of a STIR certificates within an eco-system governed by STIR certificate policies to a certificate with a TNAuthList containing the relevant telephone number associated with the STI and use of certificate delegation to the end entity associated with that telephone number.</t>
        <section anchor="as-verification">
          <name>AS Verification</name>
          <t>As the Vesper PASSporT is constructed and signed for a specific destination party, the AS will be provided with a set of 'vesper' claims which <bcp14>MAY</bcp14> be verified by the AS. This is optionally supported by Authentication Services that want to validate the Vesper Token for its verifiability or perhaps its conformance to policies. More generally, whether the AS chooses to verify the vesper claims, any issues with the verifiability of the Vesper PASSporT should be discovered by the relying party doing verification.</t>
          <t>Signature Verification:
The AS ensures that the Vesper Token's signature is valid based on the public key provided.</t>
          <t>Action on Failure:
If the Vesper Presentation (the wrapped SD-JWTs and Receipts) is invalid, the AS will stop processing the request, ensuring that the call will not proceed and <bcp14>MAY</bcp14> notify caller of the validation failure via STIR error codes (i.e. 4xx) defined in <xref target="RFC8224"/>.</t>
          <t>The Vesper Token contains SD-JWTs (with claims) and associated NA Receipts, and its signature is signed by a delegate certificate delegated by the authorized entity in the STIR ecosystem.</t>
          <t>NOTE: The relationship between Vesper Wallet that creates Vesper Token and the AS in practice will be likely a trusted relationship and therefore AS may chose to trust the Vesper Token without further verification.</t>
        </section>
        <section anchor="vs-verification">
          <name>VS Verification</name>
          <t>Once the Vesper Token reaches the Verification Service (VS), the token undergoes further checks to confirm its authenticity and integrity.</t>
          <t>Payload Verification:
The first step for VS is to verify the Vesper Token's signature. This ensures that the token has not been tampered with during transit. Any modification to the payload will invalidate the signature, and the VS will fail the verification and <bcp14>MAY</bcp14> fail the communication.</t>
          <t>SD-JWT Claim Verification:
After validating the Vesper Token, the VS looks up each of the SD-JWTs associated with the claim types included in the Vesper Token. Each SD-JWT contains claims made by the Claim Agents and the signature of the SD-JWT must be verified individually by the VS, using the Public Key Verification described below. If the Vesper Presentation (the wrapped SD-JWTs and Receipts) are invalid, the VS will stop processing the request, ensuring that the call will not proceed and <bcp14>MUST</bcp14> notify the caller via STIR error codes (i.e. 4xx) defined in <xref target="RFC8224"/>.</t>
          <t>Public Key Verification:
The VS uses the public key provided as a JSON Web Key (JWK) to verify the signatures of the SD-JWTs. Each SD-JWT's signature ensures that the claim data has not been altered and that the entity issuing the claim is legitimate.</t>
        </section>
        <section anchor="verification-and-relying-party-actions">
          <name>Verification and Relying Party Actions</name>
          <t>Once the VS of the relying party completes verification procedures, it can reliably depend on the fact that the vesper presentation of the token or PASSporT has been signed with non-repudation by the subject entity and that the subject entity has used the services of the claim agents that have issued and signed each of the 'vesper' claims contained in the parent Vesper token.  In addition, with the NA transparency receipts the relying party can also trust that a claim was made by authorized participants in the eco-system.  The public declaration of claim information can also be verified for cases where that may be an important criteria for the trustability of that information (e.g. the corporate logo or name of a business entity).</t>
          <t>Traceability:
The successful validation of the Vesper Token and its claims allows the VS to trust that the caller is who they claim to be. Because the identity of the responsible claim agents that validated the information about the SE, and the identity of SE itself are transparent, if there is any question about the validity of information comes into question, the relying party or other ecosystem or law enforcement entity has a direct path for investigating and questioning the claim agents and the subject entity themselves. This direct accountability and clear lines of responsibility is a critical part of maintaining the trust in the ecosystem which the Vesper framework is very much intended to represent. A robust set of policies about the characteristics and definitions of the content of the claims is beyond the scope of this document, but should also be part of a specific governance or jurisdictional implementation of the Vesper framework.</t>
        </section>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>Claim Agent: An entity that is either authorized by or trusted within the eco-system to make claims of persona-related information and to issue verifiable selectively disclosable tokens containing the vetted claim information. A Claim Agent can be a trusted third party or a service provider that performs the vetting of persona-related information. Claim Agent is a role category where there are a defined a set of specific claim agent types with associated claim attribute key values that are either required or optional by specification.</t>
      <t>Vetting Claim Agent (VCA): The Claim Agent entity that initiates and establishes a Subject Entity into the eco-system. Its role is to vet a set of claims that identify the persona as an entity in the real world; claims that identify physical address, business identifiers, contact information and other real-world identifying information. Generally, this information is not disclosed as part of a typical communications transaction, although nothing prevents it from being disclosed if the SE so wishes. However, it's an important set of information to establish the existence and legal standing of a persona. This information is also relevant to a potential legal or policy enforcement action that may be required based on alleged legal or policy violations (which is something the VCA would be a responsible party to facilitate).</t>
      <t>Right to Use Claim Agent (RTUCA): The Claim Agent entity that generally represents an authorized provider of telephone numbers for direct assignment to an SE.</t>
      <t>Rich Call Data Claim Agent (RCDCA): The Claim Agent entity that is responsible for vetting the Rich Call Data claims and validating they represent the Subject Entity and conform to any relevant content policies for any relying eco-systems a Vesper PASSporT token may be used.</t>
      <t>Consent Claim Agent (CCA): The Claim Agent entity that is responsible for handling and vetting consent claims associated with different called party destination numbers for calls initiated by the calling party's originating telephone number. These could include consent to call/message for specific telephone numbers or consent to calls of various types of callers as defined in <xref target="I-D.ietf-sipcore-callinfo-spam"/>, or consent to call with robocalling, AI-enabled, or chatbot types of automated calling or messaging.</t>
      <t>Subject Entity (SE): An entity that is vetted by a Claims Agent and holds the verifiable token containing the vetted information. The Claims Agent can be a person or a business entity.</t>
      <t>Notary Agent (NA): The entity that maintains the Claim Graph and Transparency Log. The Notary Agent is responsible for ensuring the integrity and transparency of the claims made by the Claim Agents. The Notary Agent issues receipts for each claim event, which are used to verify the authenticity of the claims. The Notary Agent role is likely performed by a neutral party in the ecosystem.</t>
      <t>Vesper PASSporT or Token: A verifiable token that follows the definition of PASSporT in <xref target="RFC8225"/> created by a Subject Entity containing the presentation of disclosable claims for a specific relying party destination. The Vesper Token is represented as a JSON Web Token (JWT) PASSporT that contains "vesper" claims that are Selective Disclosure JWT (SD-JWT) + transparency receipts generated by the Notary Agent.</t>
    </section>
    <section anchor="vesper-achitecture">
      <name>Vesper Achitecture</name>
      <t>The Vesper architecture is designed around the concept of creating a secure Persona for each Subject Entity (SE) within an eco-system. This Persona is characterized by its verifiability, privacy-preserving nature, tamper resistance, and auditability. It enables SEs to interact with other entities confidently, knowing that their claims and credentials are cryptographically secured and independently verifiable. The architecture ensures that sensitive information is protected while still allowing for seamless, trust-based exchanges between parties.</t>
      <t>The Vesper architecture employs the following key entities to manage and maintain these secure Personas:</t>
      <t>Subject Entities (SEs): The organizations whose claims are being issued and verified within the system.
Claim Agents: Entities that facilitate the exchange of claims between SEs and verify the validity of these claims.
Notary Agent (NA): A central authority that ensures the integrity, transparency, and auditability of interactions by maintaining a verifiable log of claims and transactions, ensuring tamper-proof records.</t>
      <section anchor="high-level-flow">
        <name>High Level Flow</name>
        <t>The Vesper framework follows a high-level flow that involves the provisioning of the Subject Entity and the subsequent management of claims through different Claim Agents. This section outlines the primary interactions between the SE, the Vetting Claim Agent (VCA), the Right To Use Claim Agent (RTUCA), and potentially other Claim Agent services. The flow ends with the SE generating a Vesper PASSporT presentation in order to, for example, use with a STIR Authentication Service while making a phone call. This Vesper PASSporT presentation will include the relevant claims and selected disclosures intended for that call for verification by the Verification Service.</t>
        <t>This overview provides the context for more detailed explanations in subsequent sections.</t>
        <t>High-Level Flow:</t>
        <ol spacing="normal" type="1"><li>
            <t>VCA Provisions SE:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE as a business or person entity is first vetted by the VCA, which performs KYC types of checks.</t>
              </li>
              <li>
                <t>Once the SE is validated, the event is captured in the Notary Agent (NA) via the Claim Graph (CG) and Transparency Service (TS).</t>
              </li>
              <li>
                <t>The SE receives an SD-JWT containing the KYC claims and a Transparency Receipt, which are stored in the Vesper Wallet (VW).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Contacts RTUCA corresponding to their Telephone Number Assignment:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE interacts with the Right To Use Claim Agent (RTUCA) to obtain telephone numbers.</t>
              </li>
              <li>
                <t>The RTUCA claims and validates one or more TNs and records the event in the NA, returning an SD-JWT with the assigned TNs and a corresponding Transparency Receipt.</t>
              </li>
              <li>
                <t>The SE stores this data in the VW.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Contacts RCD Claim Agent for Rich Call Data:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE contacts the Rich Call Data Claim Agent to enrich the telephone call data.</t>
              </li>
              <li>
                <t>The RCD Claim Agent verifies the SE's claims and adds Rich Call Data to the CG.</t>
              </li>
              <li>
                <t>An SD-JWT containing the new claims and a Transparency Receipt is returned to the SE, which is stored in the VW.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Makes a Phone Call:
            </t>
            <ul spacing="normal">
              <li>
                <t>When the SE makes a phone call, the Vesper Wallet builds a Vesper PASSporT by encapsulating the relevant claims (e.g., KYC, TN assignment, and RCD) into a JWT.</t>
              </li>
              <li>
                <t>The Authentication Service (AS) includes the Vesper PASSporT in the SIP header of the call.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Verification Service (VS) Verifies Vesper PASSporT:
            </t>
            <ul spacing="normal">
              <li>
                <t>The VS receives the Vesper PASSporT and verifies the token and included SD-JWTs.</t>
              </li>
              <li>
                <t>Based on the validated claims, the VS makes decisions regarding the call's authenticity and proceeds accordingly.</t>
              </li>
            </ul>
          </li>
        </ol>
        <artwork><![CDATA[
+--------------+                    +----------+       +-----------+
|   Subject    |                    | Vetting  |       | Notary    |
|   Entity     |                    |  Claim   |       |  Agent    |
|              |                    |  Agent   |       |           |
+--------------+                    +----------+       +-----------+
      |                                  |                   |
      |<-------- SE creates account -----|                   |
      |                                  |                   |
      |----- Provides KYC values ------->|                   |
      |                                  |                   |
      |<----- KYC Validation complete ---|                   |
      |                                  |- Claim Notary --->|
      |                                  |<- Notary Receipt -|
      |<-- Receives KYC SD-JWT+Receipt --|                   |
      |                                  |                   |
+--------------+                    +----------+       +-----------+
| Vesper Wallet|                    | Claim    |       | Notary    |
|    (VW)      |                    |  Agents  |       |  Agent    |
+--------------+                    +----------+       +-----------+
      |                                  |                   |
      |-- Requests TN from RTUCA ------->|                   |
      |                                  |                   |
      |<--- Receives TN SD-JWT+Receipt --|                   |
      |                                  |                   |
      |-- Requests RCD Claims ---------->|- Claim Notary --->|
      |                                  |<- Notary Receipt -|
      |<-- Receives RCD SD-JWT+Receipt --|                   |
      |                                  |                   |
+--------------+                    +----------+
|  Phone Call  |                    | Verifier |
| (Vesper PASS)|                    | Service  |
+--------------+                    +----------+
      |                                  |
      |- Vesper PASSporT in SIP Header ->|
      |                                  |
      |<----------- Verified ------------|
]]></artwork>
      </section>
      <section anchor="notary-agent-flows">
        <name>Notary Agent Flows</name>
        <t>The Notary Agent (NA) is responsible for maintaining the integrity and transparency of Subject Entity (SE) claims through the Claim Graph (CG) and Transparency Log. This section provides an in-depth look at how the NA processes claims, records changes to the Claim Graph, and ensures verifiable, immutable records in the Transparency Log. It also explores how Claim Agents interact with the NA, and how trust is established across the Vesper framework.</t>
        <section anchor="claim-graph-1">
          <name>Claim Graph</name>
          <t>The CG is a dynamic structure that represents the identity of an SE and tracks all claims related to that identity. Each SE is represented as a node (or IdentityRoot), and additional claims are linked to this root through edges. These claims can represent actions such as KYC validation, telephone number assignments, and rich call data.</t>
          <t>Note: While the Claim Graph is conceptually a graph, its internal representation can be stored simply as, for example, JSON objects in a document database or tables in SQL database for performance optimization.</t>
        </section>
        <section anchor="merkle-tree-and-transparency-log">
          <name>Merkle Tree and Transparency Log</name>
          <t>The Transparency Log is implemented as a Merkle Tree to provide an immutable and cryptographically secure log of claim changes. Each change to the SE's identity or associated claims results in a new "leaf" being added to the Merkle Tree. This tree structure enables the creation of Notary Receipts, which are verifiable cryptographic proofs that a particular claim was recorded at a specific time.</t>
        </section>
        <section anchor="vetting-claim-agent-vca-provisions-new-subject-entity">
          <name>Vetting Claim Agent (VCA) Provisions New Subject Entity</name>
          <t>The process begins when the Vetting Claim Agent provisions a new SE. The VCA performs KYC checks on the SE and records the SE's identity in the Claim Graph. The NA creates a new IdentityRoot node for the SE, representing their entity in the system.</t>
          <t>Claim Graph Structure (Entity Creation):</t>
          <artwork><![CDATA[
[entity_id]   --->    {
                        node_type: IdentityRoot,
                        entity_id: 12345,
                        attributes: { ... }
                      }

Transparency Log:
__________________
Tree:        h(d0)
             /
           d0 (Initial creation event)
]]></artwork>
          <t>At this point, the SE is issued an SD-JWT containing their KYC claims and a Notary Receipt, which they store in their Vesper Wallet (VW).</t>
        </section>
        <section anchor="vetting-claim-agent-adds-kyc-claims">
          <name>Vetting Claim Agent Adds KYC Claims</name>
          <t>After creating the SE, the VCA adds the KYC claims to the Claim Graph, linking them to the IdentityRoot node. These KYC claims are hashed for privacy.</t>
          <t>Claim Graph Structure (Adding KYC Claims):</t>
          <artwork><![CDATA[
[entity_id] --- has_kyc ---> [hashed KYC data]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data }
}

Transparency Log:
__________________
Tree:
       h01
      /   \
    h0    h1

Leaves:
   d0    d1 (KYC claims added)
]]></artwork>
          <t>The KYC claims are stored in the Transparency Log, and the SE receives an updated KYC SD-JWT with the KYC claims, along with a Notary Receipt that proves the claims have been recorded immutably. This SD-JWT is stored in the Vesper Wallet, and is presented as proof of identity and KYC verification in subsequent interactions with Claim Agents. The x-vesper-kyc header is used to present this SD-JWT to future Claim Agents.</t>
        </section>
        <section anchor="rtu-claim-agent-adds-telephone-number-tn-assignment">
          <name>RTU Claim Agent Adds Telephone Number (TN) Assignment</name>
          <t>The SE contacts the Right To Use Claim Agent (RTUCA) to request the assignment of one or more telephone numbers (TNs). The RTUCA verifies the SE's identity using the KYC SD-JWT in the x-vesper-kyc header to retrieve the SE's entity_id. After SD-JWT validation, the RTUCA verifies the SE's right to use the telephone number, assigns the telephone number to the SE and updates the Claim Graph.</t>
          <t>Claim Graph Structure (Adding TN Assignment):</t>
          <artwork><![CDATA[
[TN] <- assigned_tn -- [entity_id] -- has_kyc -> [hashed KYC data]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data },
  assigned_tn: { telephone_number }
}

Transparency Log:
_________________
Tree:
       h02
      /   \
    h01   h2
   /   \
 h0    h1

Leaves:
   d0    d1    d2 (TN assignment added)
]]></artwork>
          <t>The TN assignment event is logged in the Transparency Log, and the SE receives an SD-JWT containing the telephone number Right to Use claims and a new Notary Receipt. This SD-JWT is also stored in the SE's Vesper Wallet for future use.</t>
        </section>
        <section anchor="claim-agent-adds-rich-call-data-rcd">
          <name>Claim Agent Adds Rich Call Data (RCD)</name>
          <t>Next, the SE contacts the Rich Call Data (RCD) Claim Agent to enrich the SE's telephone call data. The RCD Claim Agent verifies the SE's identity using the KYC SD-JWT and adds the RCD claims to the Claim Graph.</t>
          <t>Claim Graph Structure (Adding RCD Data):</t>
          <artwork><![CDATA[
[TN] <- assigned_tn -- [entity_id] -- has_kyc -> [hashed KYC data]
                            |
                         has_rcd
                            |
                          [RCD]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data },
  assigned_tn: { telephone_number },
  has_rcd: { rich_call_data }
}

Transparency Log:
_________________
Tree:
          hroot
         /    \
      h01     h23
     /   \   /   \
   h0    h1 h2   h3

Leaves:
   d0    d1   d2   d3 (RCD data added)
]]></artwork>
          <t>Once again, this event is recorded in the Transparency Log, and the SE receives an updated SD-JWT with the RCD claims and a Notary Receipt. The SE stores this SD-JWT in their Vesper Wallet for future verification.</t>
        </section>
        <section anchor="using-sd-jwt-for-trust">
          <name>Using SD-JWT for Trust</name>
          <t>Each step in the claim process relies on the SD-JWT issued by the Issuing Agent and passed via the x-vesper-kyc header. Claim Agents can trust the SE based on the following process:</t>
          <ol spacing="normal" type="1"><li>
              <t>The SE presents the KYC SD-JWT and receipt to the Claim Agent in the API request.</t>
            </li>
            <li>
              <t>The Claim Agent verifies the SD-JWT signature and checks the Transparency Receipt to confirm that the KYC event was logged and notarized by the NA.</t>
            </li>
            <li>
              <t>Once verified, the Claim Agent can trust the SE's identity and entity_id, allowing further claims (such as TN assignment or RCD claims) to be added securely.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="notary-agent-api">
        <name>Notary Agent API</name>
        <t>The Notary Agent (NA) exposes a set of APIs that allow Claim Agents and other authorized participants in the Vesper ecosystem to interact with the Claim Graph (CG) and the Transparency Log. These APIs are designed to provide secure, auditable interactions for creating entities, adding claims, and verifying Notary Receipts. This section outlines the key APIs available for interacting with the NA and provides an overview of their functionality.</t>
        <section anchor="create-subject-entity-se-api">
          <name>Create Subject Entity (SE) API</name>
          <t>This API is used by a Claim Agent, generally always a Vetting Claim Agent (VCA), to provision a new Subject Entity (SE) in the system. The SE is created in the Claim Graph, and a record is added to the Transparency Log.</t>
          <t>Endpoint:
POST /na/entity/create</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_data": {
    "entity_name": "Company A",
    "address": "123 Main St",
    "contact_email": "info@companya.com",
    "contact_phone": "+1234567890"
  },
  "claim_agent": {
    "id": "vca-001",
    "public_key": "public-key-vca-001"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "notary_receipt": "NotaryReceipt1234",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>entity_data: Information about the SE being created.<br/>
claim_agent: The VCA creating the SE, including its ID and public key.<br/>
entity_id: The unique identifier assigned to the SE.<br/>
notary_receipt: A cryptographic proof that the entity creation was logged in the Transparency Log.<br/>
sd_jwt: The SD-JWT containing the KYC claims and the entity_id for the SE.<br/></t>
        </section>
        <section anchor="add-kyc-claims-api">
          <name>Add KYC Claims API</name>
          <t>Once an SE has been created, the Vetting Claim Agent uses this API to add KYC claims to the Claim Graph. This API also records the event in the Transparency Log and issues a new Notary Receipt.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/kyc</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "kyc_data": {
    "full_name": "John Doe",
    "document_id": "ID123456789",
    "issue_date": "2023-01-15"
  },
  "issuing_agent": {
    "id": "vca-001",
    "signature": "signature-of-kyc-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt5678",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>kyc_data: The KYC claims (hashed for privacy) being added to the SE's Claim Graph.<br/>
claim_agent: Information about the VCA making the request, including a signature over the data.<br/>
notary_receipt: The Notary Receipt showing that the KYC claims were recorded.<br/>
sd_jwt: An SD-JWT containing the KYC claims and the entity_id.<br/></t>
        </section>
        <section anchor="add-telephone-number-tn-assignment-api">
          <name>Add Telephone Number (TN) Assignment API</name>
          <t>The Right To Use Claim Agent (RTUCA) uses this API to assign one or more telephone numbers to an SE. The event is logged in the Transparency Log, and an updated SD-JWT is issued to the SE.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/tn/assign</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "tn_data": {
    "telephone_numbers": ["+1234567890", "+9876543210"]
  },
  "claim_agent": {
    "id": "rtuca-001",
    "public_key": "public-key-ca-001",
    "signature": "signature-of-tn-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt7890",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>tn_data: The telephone numbers being assigned to the SE.<br/>
claim_agent: Information about the RTUCA making the request.<br/>
notary_receipt: Proof that the TN assignment was recorded in the Transparency Log.<br/>
sd_jwt: An updated SD-JWT containing the assigned TN claims and the entity_id.<br/></t>
        </section>
        <section anchor="add-rich-call-data-rcd-claims-api">
          <name>Add Rich Call Data (RCD) Claims API</name>
          <t>The Rich Call Data (RCD) Claim Agent uses this API to add RCD claims to the SE's Claim Graph. The RCD data is linked to the SE's telephone numbers, and the event is logged in the Transparency Log.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/rcd</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "rcd_data": {
    "call_reason": "Business Inquiry",
    "rcd": {
      "caller_name": "Company A",
      "caller_location": "123 Main St"
    }
  },
  "claim_agent": {
    "id": "rcdca-001",
    "public_key": "public-key-ca-002",
    "signature": "signature-of-rcd-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt8901",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>rcd_data: The RCD claims being added to the SE's identity.<br/>
claim_agent: Information about the RCD Claim Agent making the request.<br/>
notary_receipt: The updated Notary Receipt showing that the RCD claims were recorded.<br/>
sd_jwt: An updated SD-JWT containing the RCD claims and the entity_id.<br/></t>
        </section>
        <section anchor="verify-notary-receipt-api">
          <name>Verify Notary Receipt API</name>
          <t>Any verifier can use this API to check the validity of a Notary Receipt. This allows third parties (such as Verification Services) to confirm that a claim was logged in the Transparency Log.</t>
          <t>Endpoint:
POST /na/verify/receipt</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "receipt": "NotaryReceipt1234"
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "status": "verified",
  "log_entry": {
    "entity_id": "12345",
    "timestamp": "2024-09-09T12:00:00Z",
    "claims": {
      "kyc": "verified",
      "tn": "verified",
      "rcd": "verified"
    }
  }
}
]]></artwork>
          <t>receipt: The Notary Receipt being verified.<br/>
status: Whether the receipt is valid and recorded in the Transparency Log.<br/>
log_entry: Details about the entity_id, timestamp, and verified claims.<br/></t>
        </section>
        <section anchor="retrieve-entity-history-api">
          <name>Retrieve Entity History API</name>
          <t>This API allows authorized participants to retrieve the entire history of an SE from the Transparency Log, including all claims added over time.</t>
          <t>Endpoint:
GET /na/entity/{entity_id}/history</t>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "history": [
    {
      "timestamp": "2024-09-09T12:00:00Z",
      "event": "Entity Created",
      "notary_receipt": "NotaryReceipt1234"
    },
    {
      "timestamp": "2024-09-10T10:00:00Z",
      "event": "KYC Claims Added",
      "notary_receipt": "NotaryReceipt5678"
    },
    {
      "timestamp": "2024-09-11T11:00:00Z",
      "event": "TN Assignment Added",
      "notary_receipt": "NotaryReceipt7890"
    }
  ]
}
]]></artwork>
          <t>entity_id: The ID of the SE whose history is being retrieved.<br/>
history: A list of all events associated with the SE, including timestamps and Notary Receipts.<br/></t>
        </section>
      </section>
      <section anchor="vesper-wallet-flows">
        <name>Vesper Wallet Flows</name>
        <t>The Vesper Wallet manages claims, cryptographic keys, and the construction of Vesper PASSporTs. It securely stores all claims (in the form of SD-JWTs) along with the corresponding Notary Receipts, which prove that the claims have been notarized by the Notary Agent (NA). Additionally, the Vesper Wallet handles the generation and management of key pairs used for signing PASSporTs and requesting delegate certificates.</t>
        <section anchor="vesper-wallet-key-pair-generation">
          <name>Vesper Wallet Key Pair Generation</name>
          <t>The Vesper Wallet creates and manages a public/private key pair. This key pair is used for two purposes:</t>
          <ul spacing="normal">
            <li>
              <t>Requesting Delegate Certificate: The public key is sent to a Certificate Authority (CA) to obtain a Delegate Certificate, which authorizes the SE to use specific telephone numbers (TNs).</t>
            </li>
            <li>
              <t>Signing Vesper PASSporTs: The private key is used to sign Vesper PASSporTs, which are cryptographically bound to the SE's claims.</t>
            </li>
          </ul>
          <t>Key Pair Generation Flow:</t>
          <artwork><![CDATA[
+-------------------+                 +-----------------+
|  Vesper Wallet    |                 | Certificate     |
|   (VW)            |                 |    Authority    |
+-------------------+                 +-----------------+
      |                                        |
      |<-- Create public/private key pair      |
      |                                        |
      |---> Request Delegate Certificate  ---->|
      |        (Includes public key)           |
      |                                        |
      |<---- Delegate Certificate issued ------|
      |                                        |
]]></artwork>
        </section>
        <section anchor="storage-of-sd-jwts-and-notary-receipts">
          <name>Storage of SD-JWTs and Notary Receipts</name>
          <t>The Vesper Wallet stores SD-JWTs for each claim type, along with the corresponding Notary Receipts. These SD-JWTs represent claims such as KYC, telephone number assignment, and rich call data (RCD). The Notary Receipts are proof that each claim has been logged in the Transparency Log by the NA.</t>
          <t>SD-JWT Storage Structure:</t>
          <artwork><![CDATA[
+------------------+       +-----------------+
|   Vesper Wallet  |       |  Claims Storage |
+------------------+       +-----------------+
      |                             |
      |--> Stores SD-JWTs --------->|
      |      + Notary Receipts      |
      |                             |
      +-----------------------------+
]]></artwork>
          <t>Each claim stored in the Vesper Wallet contains:</t>
          <ul spacing="normal">
            <li>
              <t>SD-JWT: The selective disclosure JWT containing the claim.</t>
            </li>
            <li>
              <t>Notary Receipt: Proof from the Transparency Log that the claim was notarized.</t>
            </li>
          </ul>
        </section>
        <section anchor="building-the-vesper-token">
          <name>Building the Vesper Token</name>
          <t>When the SE needs to present claims (e.g., during a phone call), the Vesper Wallet constructs a Vesper Token, which serves as a presentation of the claims to the Verification Service (VS). The Vesper Token contains:</t>
          <ol spacing="normal" type="1"><li>
              <t>Claim Type: Identifies the type of claim (e.g., KYC, TN, RCD, CC).</t>
            </li>
            <li>
              <t>SD-JWT: The SD-JWT for the claim, containing selectively disclosable claims.</t>
            </li>
            <li>
              <t>Notary Receipt: The Notary Receipt that verifies the claim was recorded in the Transparency Log.</t>
            </li>
          </ol>
          <t>Vesper Token Structure:</t>
          <artwork><![CDATA[
{
  ...
  "claims": [
    {
      "type": "kyc",
      "sd_jwt": "eyJhbGciOi...",
      "receipt": "NotaryReceipt1234"
    },
    {
      "type": "tn",
      "sd_jwt": "eyJhbGci...",
      "receipt": "NotaryReceipt5678"
    },
    {
      "type": "rcd",
      "sd_jwt: "eyJhbGci...",
      "receipt": "NotaryReceipt8901"
    }
  ]
  ...
}
]]></artwork>
          <t>The "kyc" and "tn" claim types are mandatory, while the "rcd" and "cc" claim types are optional.</t>
          <t>Once the Vesper Token is built, it is included in a Vesper PASSporT. The Vesper PASSporT is a specialized form of PASSporT that encapsulates multiple Vesper Tokens and is signed by the SE's private key (the same private key associated with the Delegate Certificate).</t>
        </section>
        <section anchor="signing-the-vesper-passport">
          <name>Signing the Vesper PASSporT</name>
          <t>The Vesper PASSporT is signed using the SE's private key, which is associated with the Delegate Certificate. This signature binds the claims and their associated receipts to the SE and ensures that the Vesper PASSporT can be trusted by the Verification Service (VS).</t>
          <t>Signing the Vesper PASSporT:</t>
          <artwork><![CDATA[
+-------------------+       +----------------------+
|  Vesper Wallet    |       | Delegate Certificate |
+-------------------+       +----------------------+
      |                                |
      |<-- Uses private key to sign  --|
      |   Vesper PASSporT              |
      |                                |
]]></artwork>
          <t>The signed Vesper PASSporT is then sent to the Authentication Service (AS), which includes it in the SIP header during a call.</t>
        </section>
        <section anchor="passing-the-vesper-passport-to-the-authentication-service-as">
          <name>Passing the Vesper PASSporT to the Authentication Service (AS)</name>
          <t>Once the Vesper PASSporT is signed, it is passed to the Authentication Service (AS). The AS inserts the Vesper PASSporT into the SIP header, which is transmitted as part of the phone call. This allows the Verification Service (VS) to receive the Vesper PASSporT for validation.</t>
          <t>Sending Vesper PASSporT:</t>
          <artwork><![CDATA[
+-------------------+       +----------------------+
|  Vesper Wallet    |       | Authentication       |
|   (VW)            |       |     Service (AS)     |
+-------------------+       +----------------------+
      |                                 |
      |-- Pass Vesper PASSporT -------->|
      |      to AS                      |
      |                                 |
]]></artwork>
        </section>
        <section anchor="verification-of-vesper-passport-by-vs">
          <name>Verification of Vesper PASSporT by VS</name>
          <t>When the Verification Service (VS) receives the Vesper PASSporT, it performs several verification steps to ensure the validity of the claims:</t>
          <ol spacing="normal" type="1"><li>
              <t>Signature Verification: The VS checks the signature on the Vesper PASSporT using the public key from the Delegate Certificate to confirm that the SE legitimately signed the token.</t>
            </li>
            <li>
              <t>SD-JWT Verification: The VS goes through the SD-JWTs inside the Vesper PASSporT and verifies their individual signatures. Each SD-JWT contains a JWK (JSON Web Key) representing the public key used to sign the claim.</t>
            </li>
          </ol>
          <t>JWK Claim Example:</t>
          <artwork><![CDATA[
{
  "alg": "RS256",
  "typ": "JWT",
  "jwk": {
    "kty": "RSA",
    "kid": "key-id",
    "n": "...",
    "e": "..."
  }
}
]]></artwork>
          <ol spacing="normal" type="1"><li>
              <t>Receipt Validation: For each SD-JWT, presence of Notary Receipt should be sufficient to accept the claims.  However, VS may optionally choose to verify the Notary Receipts against the Transparency Log to ensure that the claims were notarized by the NA.  This step would be done out of the call path in different process or service.  If the receipt is not valid, the VS will put the Vesper PASSporT claims on the black list for the future calls.</t>
            </li>
          </ol>
          <t>Verification Process:</t>
          <artwork><![CDATA[
+-------------------+        +---------------------+
| Verification      |        |  Transparency Log   |
|  Service (VS)     |        |                     |
+-------------------+        +---------------------+
      |                                 |
      |----> Verifies Vesper PASSporT   |
      |     signature (Delegate Cert)   |
      |                                 |
      |--> Verifies SD-JWTs signatures  |
      |                                 |
      |--- Validates Notary Receipts -->|
      |                                 |
]]></artwork>
          <t>Once the Vesper PASSporT and its claims are verified, the VS can make decisions based on the presented claims, such as authenticating the call and allowing it to proceed.</t>
        </section>
      </section>
    </section>
    <section anchor="the-vesper-passport">
      <name>The "vesper" PASSporT</name>
      <t>A Vesper PASSporT introduces a mechanism for the verification of provable claims based on third party validation and vetting of authorized or provable information that the verifier can have greater trust because through the vesper PASSporT and associated claims there is a signed explicit relationship with two important concepts in the vesper framework:</t>
      <ul spacing="normal">
        <li>
          <t>the Claim Agent that is known to be a valid participant in the vesper framework and has a type association with the claims being made</t>
        </li>
        <li>
          <t>the transparency receipt created by the Notary Agent representing the time and claim assertion event recorded</t>
        </li>
      </ul>
      <t>The Vesper PASSporT is a PASSporT as defined in <xref target="RFC8225"/> which is a JSON Web Token <xref target="RFC7519"/> and upon creation should include the standard PASSporT claims including the "orig" and "dest" and "iat" claims required for replay attack protection. It <bcp14>MUST</bcp14> include a PASSporT type, "ppt", with the value of the string "vesper" in the protected header of the PASSporT.
A Vesper PASSporT, as can any PASSporT, can contain any claims that a relying party verification service might understand, but the intention of the Vesper framework is that a Vesper PASSporT contain one or more "vesper" claim objects, defined in the "Vesper Claims" section.</t>
      <section anchor="compact-form-and-other-representations-of-vesper-information">
        <name>Compact Form and Other Representations of Vesper Information</name>
        <t>The use of the compact form of PASSporT is not specified for a "vesper" PASSporT primarily because generally or specifically when using the <xref target="RFC8224"/> defined identity header field as the transport of a "vesper" PASSporT there <bcp14>MUST NOT</bcp14> be any corresponding vesper information or claims provided that are unprotected or not signed to validate it's issuer in SIP <xref target="RFC3261"/> or SIP header fields, nor should there be due to the trusted intent of "vesper" claims or "vesper" PASSporTs. "Vesper" claims and PASSporTs are intended to only be used with the identity header field defined in <xref target="RFC8224"/>. Other uses may be considered but <bcp14>MUST</bcp14> consider the use of digital signatures to tie responsible parties and issuers to vesper related information.</t>
      </section>
    </section>
    <section anchor="vesper-claims">
      <name>Vesper Claims</name>
      <t>A Vesper Claim is defined as a JWT claim <xref target="RFC7519"/> JSON object with a claim key that is the string "vesper" and with a claim value that is a JSON object containing the following key values:</t>
      <ul spacing="normal">
        <li>
          <t>a "type" key with the claim value as the string that defines the claim agent type defined in the "Claim Agent" section of this document or future claim agent types defined and registered in claim agent IANA registry</t>
        </li>
        <li>
          <t>a "claim-token" key with a claim value of the SD-JWT <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> which represents the actual signed claims from the Claim Agent and defined in the section "Vesper Claim SD-JWT"</t>
        </li>
        <li>
          <t>a "receipt" key with the claim value of the Signed Vesper Timestamp the Claim Agent received from the Notary Agent defined in the "Signed Vesper Timestamp" section of the document.</t>
        </li>
      </ul>
      <section anchor="vesper-claim-sd-jwt-selective-disclosure-json-web-tokens">
        <name>Vesper Claim SD-JWT (Selective Disclosure JSON Web Tokens)</name>
        <t>This section defines the vesper "claims" object "claim-token" key as a SD-JWT, defined in <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/>. The claim and issuance process and disclosure of information closely follows the SD-JWT Issuance and Presentation Flow, Disclosure and Verification, and more generally the three-party model (i.e. Issuer, Holder, Verifier) defined in SD-JWT.  The Issuer in the context of the vesper token is the Claim Agent, the Holder corresponds to the Subject Entity, and the Verifier is the receiver of the Vesper Claim, which in the context of this document would be contained in a Vesper Claim object that is signed inside of a Vesper PASSporT.</t>
      </section>
      <section anchor="sd-jwt-and-disclosures">
        <name>SD-JWT and Disclosures</name>
        <t>SD-JWT is a digitally signed JSON document containing digests over the selectively disclosable claims with the Disclosures outside the document. Disclosures can be omitted without breaking the signature, and modifying them can be detected. Selectively disclosable claims can be individual object properties (name-value pairs) or array elements. When presenting an SD-JWT to a Verifier, the Holder only includes the Disclosures for the claims that it wants to reveal to that Verifier. An SD-JWT can also contain clear-text claims that are always disclosed to the Verifier.</t>
        <t>To disclose to a Verifier a subset of the SD-JWT claim values, a Holder sends only the Disclosures of those selectively released claims to the Verifier as part of the SD-JWT. The use of Key Binding is an optional feature.</t>
      </section>
      <section anchor="vesper-claim-sd-jwt-data-formats">
        <name>Vesper Claim SD-JWT Data Formats</name>
        <t>An SD-JWT is composed of</t>
        <ul spacing="normal">
          <li>
            <t>an Claim Agent signed JWT, and</t>
          </li>
          <li>
            <t>zero or more Disclosures.</t>
          </li>
        </ul>
        <t>The serialized format for the SD-JWT is the concatenation of each part delineated with a single tilde ('~') character as follows:</t>
        <artwork><![CDATA[
<Issuer-signed JWT>~<Disclosure 1>~<Disclosure 2>~...~<Disclosure N>~
]]></artwork>
        <t>The payload of a vesper token as an SD-JWT is a JSON object according to the following rules:</t>
        <t>The payload <bcp14>MAY</bcp14> contain the _sd_alg key described in Section 5.1.1 of <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/>.
The payload <bcp14>MAY</bcp14> contain one or more digests of Disclosures to enable selective disclosure of the respective claims, created and formatted as described in Section 5.2.
The payload <bcp14>MAY</bcp14> contain one or more decoy digests to obscure the actual number of claims in the SD-JWT, created and formatted as described in Section 5.2.5.
The payload <bcp14>MAY</bcp14> contain one or more non-selectively disclosable claims.
The payload <bcp14>MAY</bcp14> contain the Holder's public key(s) or reference(s) thereto, as explained in Section 5.1.2.
The payload <bcp14>MAY</bcp14> contain further claims such as iss, iat, etc. as defined or required by the application using SD-JWTs.</t>
        <t>In order to represent the vetted claim information about a VE. The SD-JWT <bcp14>MUST</bcp14> include the following claims:</t>
        <t>iss: Issuer, the Claim Agent.
sub: Subject, the subject entity represented by a unique entity-id
iat: Issuance timestamp.
exp: Expiry timestamp.
claim-data-hash: Hash of the claim data.
transparency-receipt: Transparency receipt issued by the transparency service.  (SVCT)
(optional) cnf: Public key of the Subject Entity, only if key binding is required, defined in <xref target="RFC7800"/></t>
      </section>
    </section>
    <section anchor="claim-agents">
      <name>Claim Agents</name>
      <t>Claim Agents are entities that act as issuers in the SD-JWT three party trust model, but generally validate information provided by a Subject Entity via either checking an authorized source or via a vetting procedure.  The details of either of these processes are very likely application or jurisdiction specific and should follow an eco-system specific set of policies and therefore are out-of-scope of this document.</t>
      <t>There are different types of claims that can be validated on behalf of a subject entity, but specific to telephone number identities and the entities that are assigned the right to use telephone numbers and more generally the subject and focus of this document there are two required claim types defined in this document and two optional supplemental claim types defined in this document.  It is anticipated that future specifications may define new claim types with additional relevant information that requires trust and validation and therefore an IANA registry for Vesper Claim Agent types is setup to register unique type indicators.</t>
      <section anchor="claim-agent-types-and-claim-values">
        <name>Claim Agent Types and Claim Values</name>
        <t>Each Claim Agent Type has a corresponding unique string that uniquely identifies a Claim Agent as a particular type and the associated claim object generated by a claim agent to include defined set of claim key values that include both required and optional key values.</t>
        <section anchor="vetting-claim-agent-vca">
          <name>Vetting Claim Agent - "vca"</name>
          <t>The Vetting Claim Agent is a required claim agent data type and is also the first claim that <bcp14>MUST</bcp14> be established to establish a globally unique entity-id to represent the Subject Entity in the Notary Agent uniquely.</t>
          <t>The Vetting Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| address             | JSON object |                              |
+---------------------+-------------+------------------------------+
| street_address      | String      |                              |
| locality            | String      |                              |
| region              | String      |                              |
| country             | String      |                              |
| postal_code         | String      |                              |
+---------------------+-------------+------------------------------+
| contact_given_name  | String      |                              |
| contact_family_name | String      |                              |
| contact_email       | String      |                              |
| contact_phone_num   | String      |                              |
+---------------------+-------------+------------------------------+
| business_ids        | JSON Array  |                              |
+---------------------+-------------+------------------------------+
| EIN                 | String      |                              |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="right-to-use-claim-agent-rtuca">
          <name>Right to Use Claim Agent - "rtuca"</name>
          <t>The Right to Use Claim Agent is a required claim agent data type and is tied to a telephone number service provider or Responsible Organization that is authorized to assign telephone numbers. The Subject Entity has a business relationship with their telephone number provider that also either directly or through a relationship with a Claim Agent can validate the assigned Telephone Number.</t>
          <t>Note: the telephone number service provider also should provide the mechanism to provide a delegate certificate with the telephone number resource as part of the TNAuthList.</t>
          <t>The Vetting Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| telephone_num       | Value Array | Array of e.164 Strings       |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="rich-call-data-claim-agent-rcdca">
          <name>Rich Call Data Claim Agent - "rcdca"</name>
          <t>The Rich Call Data Claim Agent is an optional claim agent data type and is tied to Rich Call Data as defined in <xref target="I-D.ietf-stir-passport-rcd"/>.</t>
          <t>The Rich Call Data Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| rcd Array           | JSON Array  | Array of rcd claims objects  |
+---------------------+-------------+------------------------------+
| rcd                 | JSON Object | rcd claim                    |
| rcdi                | JSON Object | rcdi claim                   |
| crn                 | JSON Object | call reason claim            |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="consent-claim-agent-cca">
          <name>Consent Claim Agent - "cca"</name>
          <t>The Consent Claim Agent is an optional claim agent data type and is tied to a consent assertion associated to a destination telephone number.</t>
          <t>The Consent Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| consent_assertion   | JSON Array  | Array consent_assertion objs |
+---------------------+-------------+------------------------------+
| consent_type        | String      | consent_type                 |
| destination_tn      | e.164 array | array of destination tns     |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="vesper-passport-token-as-a-wrapper-for-multiple-vesper-claims-presentation">
      <name>Vesper PASSporT Token as a wrapper for Multiple Vesper Claims Presentation</name>
      <t>A Subject Entity (SE), acting as the Holder of multiple Vesper claims as SD-JWT + receipts, may need to present a combination of these tokens to satisfy various verification requirements in a single interaction. For instance, in the STIR ecosystem, the SE might first present a vetting Vesper claim to a Telephone Number Service Provider (TNSP) to prove its identity. Once trusted, the TNSP issues a Right To Use (RTU) Vesper claim for a specific Telephone Number (TN) and associated Rich Call Data (RCD). The SE can then present both the vetting and RTU Vesper claims to the AS when signing a call.</t>
      <section anchor="structure-of-multiple-vesper-claim-presentation">
        <name>Structure of multiple Vesper Claim Presentation</name>
        <t>When creating a multiple Vesper Claim presentation, the SE assembles a package that may contain:</t>
        <ol spacing="normal" type="1"><li>
            <t>Multiple Base SD-JWTs: The core JWTs from each Vesper token (e.g., KYC/KYB and RTU), representing the vetted claims.</t>
          </li>
          <li>
            <t>Disclosures: The selectively disclosable claims from each token that are relevant to the verifier.</t>
          </li>
        </ol>
        <t>The presentation package is composed as follows:</t>
        <artwork><![CDATA[
<SD-JWT-1>~<Disclosure 1-1>~<Disclosure 1-2>~...<SD-JWT-2>~
  <Disclosure 2-1>~<Disclosure 2-2>~
]]></artwork>
        <t>In this format:</t>
        <ul spacing="normal">
          <li>
            <t>&lt;SD-JWT-1&gt; and &lt;SD-JWT-2&gt; represent the KYC/KYB and RTU Vesper tokens, respectively.</t>
          </li>
          <li>
            <t>&lt;Disclosure 1-1&gt;, &lt;Disclosure 1-2&gt;, etc., represent selectively disclosed claims from each token.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="preventing-replay-attacks">
      <name>Preventing Replay Attacks</name>
      <t>A replay attack occurs when a malicious actor intercepts a valid token or message and reuses it to gain unauthorized access or perform unauthorized actions. In the context of Vesper tokens, this could involve reusing a token or presentation package to fraudulently sign calls or access services. To address the potential replay attack issue in the Vesper token ecosystem, JWT ID (JTI) claim is used.</t>
      <section anchor="mitigation-strategy-jwt-id-jti-claim">
        <name>Mitigation Strategy - JWT ID (JTI) Claim</name>
        <ul spacing="normal">
          <li>
            <t>Description: The JTI claim is a unique identifier for each JWT. This identifier ensures that each token is distinct, even if it contains the same claims. The JTI can be used by the verifier to track tokens and detect if the same token is being reused maliciously.</t>
          </li>
          <li>
            <t>Implementation:  </t>
            <ul spacing="normal">
              <li>
                <t>When a Vesper token (SD-JWT) is issued, the Claim Agent includes a unique jti value in the JWT payload.</t>
              </li>
              <li>
                <t>Verifiers, such as the AS, should store recent JTI values temporarily (e.g., in a cache) to detect if the same token is being presented multiple times within a short period. This prevents replay attacks using old tokens.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Example:</t>
        <artwork><![CDATA[
{
  "iss": "https://vetting-claim-agent.example.com",
  "sub": "Business_42",
  "iat": 1683000000,
  "exp": 1883000000,
  "jti": "unique-token-id-12345",
  ...
}
]]></artwork>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>Note: this example section is still very much a work in progress</t>
      <section anchor="example-sd-jwt-claim-token-issuance">
        <name>Example SD-JWT Claim Token Issuance</name>
        <t>The Issuer is using the following input claim set:</t>
        <artwork><![CDATA[
{
  "sub": "Business_42",
  "telephone_number_rtu": [
    +18001231234,
    +18881231234
  ],
  "rcd": [
    {"nam":"Business_42","icn":"https://example.com/logo.png"}
  ]
  "business_ids": [
    {"EIN":"123456789"}
  ]
  "address": {
    "street_address": "123 Main St",
    "locality": "Anytown",
    "region": "Anystate",
    "country": "US"
  },
  "contact_given_name": "John",
  "contact_family_name": "Doe",
  "contact_email": "johndoe@example.com",
  "contact_phone_number": "+12025550101"
}
]]></artwork>
        <t>The Issuer in this case made the following decisions:</t>
        <ul spacing="normal">
          <li>
            <t>The "telephone_number_rtu" array and contents is always visible.</t>
          </li>
          <li>
            <t>The "rcd" array is always visible, but its contents are selectively disclosable.</t>
          </li>
          <li>
            <t>The sub element and essential verification data (iss, iat, cnf, etc.) are always visible.</t>
          </li>
          <li>
            <t>All other claims are selectively disclosable.</t>
          </li>
          <li>
            <t>For address, all of the claims can only be selectively disclosed in full.</t>
          </li>
        </ul>
        <t>The following payload is used for the SD-JWT:</t>
        <artwork><![CDATA[
{
  "_sd": [
    "CrQe7S5kqBAHt-nMYXgc6bdt2SH5aTY1sU_M-PgkjPI",
    "JzYjH4svliH0R3PyEMfeZu6Jt69u5qehZo7F7EPYlSE",
    "PorFbpKuVu6xymJagvkFsFXAbRoc2JGlAUA2BA4o7cI",
    "TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo",
    "XQ_3kPKt1XyX7KANkqVR6yZ2Va5NrPIvPYbyMvRKBMM",
    "XzFrzwscM6Gn6CJDc6vVK8BkMnfG8vOSKfpPIZdAfdE",
    "gbOsI4Edq2x2Kw-w5wPEzakob9hV1cRD0ATN3oQL9JM",
    "jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4"
  ],
  "iss": "https://vetting-claim-agent.example.com",
  "iat": 1683000000,
  "exp": 1883000000,
  "sub": "Business_42",
  "telephone_number_rtu": [
    +18001231234,
    +18881231234
  ],
  "rcd": [
    {
      "...": "pFndjkZ_VCzmyTa6UjlZo3dh-ko8aIKQc9DlGzhaVYo"
    }
  ],
  "business_ids": [
    {
      "...": "7Cf6JkPudry3lcbwHgeZ8khAv1U1OSlerP0VkBJrWZ0"
    }
  ],
  "svt": "8khAv1U1OSlerP0VkBJrWZ07Cf6JkPudry3lcbwHgeZ",
  "vcm": {
      "vcm_version": 1,
      "vetting_agent": {
          "agent_name": "Vetting Authority Inc.",
          "agent_metadata": {}
      },
      "vetted_entity": {
          "entity_id": "VE654321",
          "entity_name": "Business_42"
      },
      "vetting_metadata": []
  },
  "_sd_alg": "sha-256",
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
      "y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
    }
  }
}
]]></artwork>
        <t>The following Disclosures are created by the Issuer:</t>
        <t>Claim contact_given_name:</t>
        <artwork><![CDATA[
SHA-256 Hash: jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4
Disclosure:
WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImdpdmVuX25hbWUiLCAiSm9o
biJd
Contents: ["2GLC42sKQveCfGfryNRN9w", "contact_given_name", "John"]
]]></artwork>
        <t>Claim contact_family_name:</t>
        <artwork><![CDATA[
SHA-256 Hash: TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo
Disclosure:
WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImZhbWlseV9uYW1lIiwgIkRv
ZSJd
Contents: ["eluV5Og3gSNII8EYnsxA_A", "contact_family_name", "Doe"]
]]></artwork>
        <t>Claim contact_email:</t>
        <artwork><![CDATA[
SHA-256 Hash: JzYjH4svliH0R3PyEMfeZu6Jt69u5qehZo7F7EPYlSE
Disclosure:
WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImVtYWlsIiwgImpvaG5kb2VA
ZXhhbXBsZS5jb20iXQ
Contents: ["6Ij7tM-a5iVPGboS5tmvVA", "contact_email",
   "johndoe@example.com"]
]]></artwork>
        <t>Claim phone_number:</t>
        <artwork><![CDATA[
SHA-256 Hash: PorFbpKuVu6xymJagvkFsFXAbRoc2JGlAUA2BA4o7cI
Disclosure:
WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgInBob25lX251bWJlciIsICIr
MS0yMDItNTU1LTAxMDEiXQ
Contents: ["eI8ZWm9QnKPpNPeNenHdhQ", "contact_phone_number",
"+1-202-555-0101"]
]]></artwork>
        <t>Claim business_ids:</t>
        <artwork><![CDATA[
SHA-256 Hash: XQ_3kPKt1XyX7KANkqVR6yZ2Va5NrPIvPYbyMvRKBMM
Disclosure:
WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgInBob25lX251bWJlcl92ZXJp
ZmllZCIsIHRydWVd
Contents: ["Qg_O64zqAxe412a108iroA", "business_ids", true]
]]></artwork>
        <t>Claim address:</t>
        <artwork><![CDATA[
SHA-256 Hash: XzFrzwscM6Gn6CJDc6vVK8BkMnfG8vOSKfpPIZdAfdE
Disclosure:
WyJBSngtMDk1VlBycFR0TjRRTU9xUk9BIiwgImFkZHJlc3MiLCB7InN0cmVl
dF9hZGRyZXNzIjogIjEyMyBNYWluIFN0IiwgImxvY2FsaXR5IjogIkFueXRv
d24iLCAicmVnaW9uIjogIkFueXN0YXRlIiwgImNvdW50cnkiOiAiVVMifV0
Contents: ["AJx-095VPrpTtN4QMOqROA", "address", {"street_address":
"123 Main St", "locality": "Anytown", "region": "Anystate",
"country": "US"}]
]]></artwork>
        <t>Array Entry:</t>
        <artwork><![CDATA[
SHA-256 Hash: pFndjkZ_VCzmyTa6UjlZo3dh-ko8aIKQc9DlGzhaVYo
Disclosure: WyJsa2x4RjVqTVlsR1RQVW92TU5JdkNBIiwgIlVTIl0
Contents: ["lklxF5jMYlGTPUovMNIvCA", "{"nam":"Business_42",
  "icn":"https://example.com/logo.png"}"]
]]></artwork>
        <t>Array Entry:</t>
        <artwork><![CDATA[
SHA-256 Hash: 7Cf6JkPudry3lcbwHgeZ8khAv1U1OSlerP0VkBJrWZ0
Disclosure: WyJuUHVvUW5rUkZxM0JJZUFtN0FuWEZBIiwgIkRFIl0
Contents: ["nPuoQnkRFq3BIeAm7AnXFA", "123456789"]
]]></artwork>
        <t>The payload is then signed by the Issuer to create a JWT like the following:</t>
        <artwork><![CDATA[
eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImV4YW1wbGUrc2Qtand0In0.eyJfc2QiOiBb
IkNyUWU3UzVrcUJBSHQtbk1ZWGdjNmJkdDJTSDVhVFkxc1VfTS1QZ2tqUEkiLCAiSnpZ
akg0c3ZsaUgwUjNQeUVNZmVadTZKdDY5dTVxZWhabzdGN0VQWWxTRSIsICJQb3JGYnBL
dVZ1Nnh5bUphZ3ZrRnNGWEFiUm9jMkpHbEFVQTJCQTRvN2NJIiwgIlRHZjRvTGJnd2Q1
SlFhSHlLVlFaVTlVZEdFMHc1cnREc3JaemZVYW9tTG8iLCAiWFFfM2tQS3QxWHlYN0tB
TmtxVlI2eVoyVmE1TnJQSXZQWWJ5TXZSS0JNTSIsICJYekZyendzY002R242Q0pEYzZ2
Vks4QmtNbmZHOHZPU0tmcFBJWmRBZmRFIiwgImdiT3NJNEVkcTJ4Mkt3LXc1d1BFemFr
b2I5aFYxY1JEMEFUTjNvUUw5Sk0iLCAianN1OXlWdWx3UVFsaEZsTV8zSmx6TWFTRnpn
bGhRRzBEcGZheVF3TFVLNCJdLCAiaXNzIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUu
Y29tIiwgImlhdCI6IDE2ODMwMDAwMDAsICJleHAiOiAxODgzMDAwMDAwLCAic3ViIjog
InVzZXJfNDIiLCAibmF0aW9uYWxpdGllcyI6IFt7Ii4uLiI6ICJwRm5kamtaX1ZDem15
VGE2VWpsWm8zZGgta284YUlLUWM5RGxHemhhVllvIn0sIHsiLi4uIjogIjdDZjZKa1B1
ZHJ5M2xjYndIZ2VaOGtoQXYxVTFPU2xlclAwVmtCSnJXWjAifV0sICJfc2RfYWxnIjog
InNoYS0yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0y
NTYiLCAieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VH
ZW1jIiwgInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlG
MkhaUSJ9fX0.XaB1KmNGBE-uKjT8M3VSu65QVWdNMjuhJI1sIEM4TIEs6Ae2f0DfWP80
TAg79QIhbz04IIrrXyrEbzkeZLoVHQ

The issued SD-JWT might look as follows:

eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImV4YW1wbGUrc2Qtand0In0.eyJfc2QiOiBb
IkNyUWU3UzVrcUJBSHQtbk1ZWGdjNmJkdDJTSDVhVFkxc1VfTS1QZ2tqUEkiLCAiSnpZ
akg0c3ZsaUgwUjNQeUVNZmVadTZKdDY5dTVxZWhabzdGN0VQWWxTRSIsICJQb3JGYnBL
dVZ1Nnh5bUphZ3ZrRnNGWEFiUm9jMkpHbEFVQTJCQTRvN2NJIiwgIlRHZjRvTGJnd2Q1
SlFhSHlLVlFaVTlVZEdFMHc1cnREc3JaemZVYW9tTG8iLCAiWFFfM2tQS3QxWHlYN0tB
TmtxVlI2eVoyVmE1TnJQSXZQWWJ5TXZSS0JNTSIsICJYekZyendzY002R242Q0pEYzZ2
Vks4QmtNbmZHOHZPU0tmcFBJWmRBZmRFIiwgImdiT3NJNEVkcTJ4Mkt3LXc1d1BFemFr
b2I5aFYxY1JEMEFUTjNvUUw5Sk0iLCAianN1OXlWdWx3UVFsaEZsTV8zSmx6TWFTRnpn
bGhRRzBEcGZheVF3TFVLNCJdLCAiaXNzIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUu
Y29tIiwgImlhdCI6IDE2ODMwMDAwMDAsICJleHAiOiAxODgzMDAwMDAwLCAic3ViIjog
InVzZXJfNDIiLCAibmF0aW9uYWxpdGllcyI6IFt7Ii4uLiI6ICJwRm5kamtaX1ZDem15
VGE2VWpsWm8zZGgta284YUlLUWM5RGxHemhhVllvIn0sIHsiLi4uIjogIjdDZjZKa1B1
ZHJ5M2xjYndIZ2VaOGtoQXYxVTFPU2xlclAwVmtCSnJXWjAifV0sICJfc2RfYWxnIjog
InNoYS0yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0y
NTYiLCAieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VH
ZW1jIiwgInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlG
MkhaUSJ9fX0.XaB1KmNGBE-uKjT8M3VSu65QVWdNMjuhJI1sIEM4TIEs6Ae2f0DfWP80
TAg79QIhbz04IIrrXyrEbzkeZLoVHQ~WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgI
mdpdmVuX25hbWUiLCAiSm9obiJd~WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImZh
bWlseV9uYW1lIiwgIkRvZSJd~WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImVtYWl
sIiwgImpvaG5kb2VAZXhhbXBsZS5jb20iXQ~WyJlSThaV205UW5LUHBOUGVOZW5IZGhR
IiwgInBob25lX251bWJlciIsICIrMS0yMDItNTU1LTAxMDEiXQ~WyJRZ19PNjR6cUF4Z
TQxMmExMDhpcm9BIiwgInBob25lX251bWJlcl92ZXJpZmllZCIsIHRydWVd~WyJBSngt
MDk1VlBycFR0TjRRTU9xUk9BIiwgImFkZHJlc3MiLCB7InN0cmVldF9hZGRyZXNzIjog
IjEyMyBNYWluIFN0IiwgImxvY2FsaXR5IjogIkFueXRvd24iLCAicmVnaW9uIjogIkFu
eXN0YXRlIiwgImNvdW50cnkiOiAiVVMifV0~WyJQYzMzSk0yTGNoY1VfbEhnZ3ZfdWZR
IiwgImJpcnRoZGF0ZSIsICIxOTQwLTAxLTAxIl0~WyJHMDJOU3JRZmpGWFE3SW8wOXN5
YWpBIiwgInVwZGF0ZWRfYXQiLCAxNTcwMDAwMDAwXQ~WyJsa2x4RjVqTVlsR1RQVW92T
U5JdkNBIiwgIlVTIl0~WyJuUHVvUW5rUkZxM0JJZUFtN0FuWEZBIiwgIkRFIl0~
]]></artwork>
      </section>
      <section anchor="example-vesper-passport">
        <name>Example Vesper PASSporT</name>
        <t>The following non-normative example shows a Vesper PASSporT as it would be sent from the Holder (SE) to the Verifier.</t>
        <t>Add Example</t>
      </section>
      <section anchor="example-presentation">
        <name>Example Presentation</name>
        <t>Examples of different presentation scenarios</t>
        <t>Add Example</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token claims</name>
        <t>This specification requests that the IANA add two new claims to the JSON Web Token Claims registry as defined in <xref target="RFC7519"/>.</t>
        <t>Claim Name: "vesper"</t>
        <t>Claim Description: A JSON object that includes both an SD-JWT object containing Vesper Claims from a Vesper Claim Agent and a Notary Agent transparency receipt object as required by the STIR Vesper framework</t>
        <t>Change Controller: IESG</t>
        <t>Specification Document(s): [RFCThis]</t>
      </section>
      <section anchor="passport-types">
        <name>PASSporT Types</name>
        <t>This specification requests that the IANA add a new entry to the Personal Assertion Token (PASSporT) Extensions registry for the type "vesper" which is specified in [RFCThis].</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC3261">
        <front>
          <title>SIP: Session Initiation Protocol</title>
          <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
          <author fullname="G. Camarillo" initials="G." surname="Camarillo"/>
          <author fullname="A. Johnston" initials="A." surname="Johnston"/>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <author fullname="R. Sparks" initials="R." surname="Sparks"/>
          <author fullname="M. Handley" initials="M." surname="Handley"/>
          <author fullname="E. Schooler" initials="E." surname="Schooler"/>
          <date month="June" year="2002"/>
          <abstract>
            <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3261"/>
        <seriesInfo name="DOI" value="10.17487/RFC3261"/>
      </reference>
      <reference anchor="RFC7519">
        <front>
          <title>JSON Web Token (JWT)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7519"/>
        <seriesInfo name="DOI" value="10.17487/RFC7519"/>
      </reference>
      <reference anchor="RFC7800">
        <front>
          <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="April" year="2016"/>
          <abstract>
            <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7800"/>
        <seriesInfo name="DOI" value="10.17487/RFC7800"/>
      </reference>
      <reference anchor="RFC8224">
        <front>
          <title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <author fullname="C. Jennings" initials="C." surname="Jennings"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="C. Wendt" initials="C." surname="Wendt"/>
          <date month="February" year="2018"/>
          <abstract>
            <t>The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context. This document defines a mechanism for securely identifying originators of SIP requests. It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.</t>
            <t>This document obsoletes RFC 4474.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8224"/>
        <seriesInfo name="DOI" value="10.17487/RFC8224"/>
      </reference>
      <reference anchor="RFC8225">
        <front>
          <title>PASSporT: Personal Assertion Token</title>
          <author fullname="C. Wendt" initials="C." surname="Wendt"/>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <date month="February" year="2018"/>
          <abstract>
            <t>This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications. The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination. The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel. PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8225"/>
        <seriesInfo name="DOI" value="10.17487/RFC8225"/>
      </reference>
      <reference anchor="RFC8226">
        <front>
          <title>Secure Telephone Identity Credentials: Certificates</title>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <author fullname="S. Turner" initials="S." surname="Turner"/>
          <date month="February" year="2018"/>
          <abstract>
            <t>In order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8226"/>
        <seriesInfo name="DOI" value="10.17487/RFC8226"/>
      </reference>
      <reference anchor="I-D.ietf-oauth-selective-disclosure-jwt">
        <front>
          <title>Selective Disclosure for JWTs (SD-JWT)</title>
          <author fullname="Daniel Fett" initials="D." surname="Fett">
            <organization>Authlete</organization>
          </author>
          <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
            <organization>Keio University</organization>
          </author>
          <author fullname="Brian Campbell" initials="B." surname="Campbell">
            <organization>Ping Identity</organization>
          </author>
          <date day="18" month="October" year="2024"/>
          <abstract>
            <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON-encoded data structure used as the
   payload of a JSON Web Signature (JWS).  The primary use case is the
   selective disclosure of JSON Web Token (JWT) claims.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-13"/>
      </reference>
      <reference anchor="I-D.ietf-sipcore-callinfo-spam">
        <front>
          <title>SIP Call-Info Parameters for Labeling Calls</title>
          <author fullname="Henning Schulzrinne" initials="H." surname="Schulzrinne">
            <organization>Columbia University</organization>
          </author>
          <date day="30" month="August" year="2019"/>
          <abstract>
            <t>   Called parties often wish to decide whether to accept, reject or
   redirect calls based on the likely nature of the call.  For example,
   they may want to reject unwanted telemarketing or fraudulent calls,
   but accept emergency alerts from numbers not in their address book.
   This document describes SIP Call-Info parameters and a feature tag
   that allow originating, intermediate and terminating SIP entities to
   label calls as to their type, confidence and references to additional
   information.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-sipcore-callinfo-spam-04"/>
      </reference>
      <reference anchor="I-D.ietf-stir-passport-rcd">
        <front>
          <title>PASSporT Extension for Rich Call Data</title>
          <author fullname="Chris Wendt" initials="C." surname="Wendt">
            <organization>Somos Inc.</organization>
          </author>
          <author fullname="Jon Peterson" initials="J." surname="Peterson">
            <organization>Neustar Inc.</organization>
          </author>
          <date day="5" month="June" year="2023"/>
          <abstract>
            <t>   This document extends PASSporT, a token for conveying
   cryptographically-signed call information about personal
   communications, to include rich meta-data about a call and caller
   that can be signed and integrity protected, transmitted, and
   subsequently rendered to the called party.  This framework is
   intended to include and extend caller and call specific information
   beyond human-readable display name comparable to the "Caller ID"
   function common on the telephone network and is also enhanced with a
   integrity mechanism that is designed to protect the authoring and
   transport of this information for different authoritative use-cases.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-stir-passport-rcd-26"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 1312?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VZ4LX3X0LC6maSICh8k1i0VLdgy2tdw2IG5qRxU+sxZU0QTSqKdmqcog8jCV
ClcvfVEcIykaPeciVMCjU/ZYR5mVkJxx/Ftu8HBhKzsNP3TX737ZbO8XzeTw
8uvN8P0gKNa6++t+73I1P/922Dy5ubs96SjwPvh+ebv/Lr+Po/2Vs7cns53D
6/Bq+v6geP9puv5LOLpKP+x+2Dm5jLs76pOTNNsdTD5P+9P3j7PxgX9zf7eb
735tD87S4drBXtw+b69ttt+lH4Z6lt7e9bv0y+DmIVg/OPX3Z5/7p1fnn86D
vZ2Vh/Ws2M6zq+/X5346/pKqT76efnt7d/K5WP06+/rhc/vo7pf+2fvZ1Vrf
Xz/KTjr3J5eD2eH92efNw0P9yffd7PtDPjx8v5e83zrYHr6/73/+uHl3mFzv
fbw/7n6+npx0roL2daD3cjM4zjvvdoJf1h7XPj80H9YfTna++3fp4NOovzo8
215p947epqdfPh3oWW7z6adZfxo/nJ7Go9348Nvbg/j7od/d/X4Tj073VrYn
1/7s9OHL+WcqTvizarX2ap73ct72byP0qo4hloPB1jG7SXB7d/Wtv/V9POv5
789v46v0bTBq3qUf/c7n0+Gn7Xjv+8jvX6ZWdcPl+RS/NP6Hrev3B3cn0yCb
vY2Hg4f9m/Dq492ofb96vnrcjcPsZKV/t3mQXVytlMfP76nK4py36wbmI7sf
ju1OGvDXb0BccmYOq7qQo1xgqeGO/EgPNclXDjxTqLqTDE1NSOuLcVj4qrfQ
b/Lzb86UYfCNbTHlKUO7m0N/hzuFuXOEbv9RG1hq58LtWSv6u+k6JpH+1BZo
5Dd19SEgtIYj26WHTPGhnS2rwVF2j49O9AD09JF6JWy1d85WP13dT98e7+++
u3138e7+uttP9zsnq50vUbwd5x/ut8K9cGzVEaUJrh5vo4uLwdXh6d5+/wLo
zLvRoNuJsrx/PQ2HWzvvi3e3vU+7a/tXp3O7nCj2aQiznVXAddadqhDMZzdU
DHFVNqjIZ939Nm6bwqs3vFeQlIZZykbjYtaZna08bh9tH3zvru6uXZ0fjc/W
rmbh+Xq3dxu/7UQPN51xMAnG/enXtfXR4OI8+rLVjrrjT2ljEB0EjS1hv9hx
bm3vy9a7tfzz6X24db13nc2Ozo4+PWDzuRphZ1mEnZ/LB+cegSX+PHMGr2AR
pTM4iAdw1Ufnn5LDtaDXu4sPjnf6V4Pk6N1p/9Mmn8EV7D3Ow/6n6eXFakzP
7s7uG1fd0hmE8bS/fnzz9qZ71Ol83LlM8sf2t7Z9BrZAt8wC3TNnQCLeM7t/
BRsuQ8Ba9wJo7s5KcdnrT/rx5v7l+FPv6OtZEcRXsvt+cQm75z9P7v299bvB
Wr/duPo6Gg2+buZX3fXbwdpK9PXUOYv3ndsPxWHTX4/6J3uDtLtejO/7zlmw
8EoIWCu/zjkYmyU9cy6vkDUqUNHtAedZW1k/v1j/cr6/eXy+1z++uljvXO2N
zugsks10sLYeA2asDi4O4mHUyTtbnaxx2F2ZHW53iqPe+eqXXvvxcHunfDZh
5+PVxfjTafL5ZHJ0Eh6FyX4wOrXPxhHXlxsgrjdBXm+CwN4kiX3O2dh88Zmz
eYWEVD6bs6vVTydHt2fvh+e77656p4+H4x3Y5mgyHAvGlM8m/rR29fVg0rga
x/HVFhzU/tksuOi72HN68+34/bvvv7Qfw3era/7qyscoSwliHHa/jD6EcM4B
iGD93N5fLuqV977ZTW6Kw+27VcCV2XD3bKV3e3bWO//0eH6nqMXu3dU+7Pnt
IVDLzQ+d5GhlOO7HjWD30+hq72x29fXoe+c2venc7swOZ5tHgFzTzu7RCn/8
eH+5tpv7X8/W6Z273Wn4FUhNsPaOaC+MlPgXn6bmx6OVy69nTJPGR/fBxfrK
MLmLjqN21O8fRtf9FeeM2wePzZVP6/2TbNIrgMQdHv9ydkxnrJTfZdCcy/pw
w9WH5+jCc/Tgkg78W+Xm2C+6Q325nr63V0iM9r15cG+5v/b47uy2/0uvH+dn
q2en/YtPa73z9YPg7ojvLe73OrF7WvFd/Li7fnt4Ge/1Ts7T+8Ojzv0WnVat
0YLE7hfYLarY+/IjeIVQWz6C6fl+/x7IWXZ+d/V4uHJwcHW+Wxyt7E4vdoTU
353tlo8gOZmmpwn88MvbzU7YHn9oJ1936QiMYaWyHTv9TtcRdkpui20BS3dy
8xOue4KJQ655oXIcpsp7OzrrH86OepeEGcF+/EBYMe6/Ay79MNg7z4Zrp1hH
aaWTrLTgu2v4O3y3OWh07o5m5xfnb8+/97PhOSD1/mkxuFu9utgLbo/GB3fB
9kGvu90f9XfvHoer/eted/X0aq345XznjkWgZHLV8O9uVoZvr3L//Obh/Pbo
NDzvH12N+37Qu/ocbF+uB73+49XFyB98D/aOVvqnFxePvbMucomD08Hbg73L
ZPNLI+hfrR4lo/XB+WR09fYqO0uO9i52dqPz8afbw7vJ/mBnt3/aO9g67Z3d
H60dHTConu1f3Z7d9/YOkmDtdLXRjXdH3f34Sz/e9fu9uH+1E+we7g9Xh8nZ
zvDtgR+Or/qXF5+K3t5HWv7F7u714Vpx2n17+nixH18erRSbjd64eOzHnbWw
n876453VXnJw2v16Bcs+WO99vep2Vw6Oerz8y/AOxMQk+H65srJ2tvZu7XRl
snP5/Wqt0b/L352Oi6PB+Gr/eP/q5HylGA93Nw8uxmebV2MAL5Ypo97bo4Oj
nf7dsHfw7vCuePvl63A1WN3cDce7WWOw1ln3dy8fL1cPdg53ds97t0f35+cP
6927FVq+nxytHn+NL4KLx7fnfaCWO1d5r//xe3f8+L53sds7SyZJYwB8+uz7
5s5w72oU9nff9nb7X462DgIaQJHg8Wgl2N/8fhx9vMdnwJJmXwz8TBuXa58K
XnI8CrY67zvbO2vH24cPh9tt/D+eRRzutxEYH4+3b77L8wci1W/7EU7S6CT9
78D9ro+2O7T8wXh3BWn45cXjJNiL4+EMBt4tPnSid9MvEfx56+DhbLx+548L
/+vq1XY4Xl1v9Pd21voXk/xi/PH71d5N4a99fHd5Hn85vzhcP9t73A/Ho1E/
ju8B1IG75tEXGIy5TLB9dXv12V/dXG0AX1o/XHu8vUyCDnL6470iPf16+djv
7Z6crz0Cn24/9MfFVjc5+Hpx20bugVsEvDm7htUmsp2j9BJkHIV4l2vrY/wB
EOyXYC1HBPvQGRcrYZe2sns6I5i5HSaXhLTnWyuzhvo43KKXzk9XdnfPb3fW
L5Kr1cOVT52z27NfjnaHK8H4qtcff+p0++3H7vnjZLBzlg+/A9Cv9fcbVxer
tyxuMMO7SEa/+P3g62U8OTo/Dzr9OACU2Fnx9wCbL+LZcPVqDFd8e7pyvhZs
n/3SB27ROLwb+efdg0/XX1daX/3N1c/jo73Nneb0823v4+Hbfnf6fh14RXB0
eDsdHXRW887O4bteZyd/3w7Xrle2ry9OPq40eu2bD59OO6PB95V3nU6WfZ1l
O4Pvd+HVl7S/f8oEURJZxXTPwRdxmt65Tun/kLf/kLf/kLf/kLf/i8jb7y8y
JDXmWJLQkPT7S80wjTo7DJphfn+FKaNRsWVUTRm/P2cCaDxlA6g3AfxeUZ0b
r9Cdy6rz70oZbfwRbbSsjDZeo43OU0YbL9BGcdmnl98PvwO1m/X2ANeA/wx2
Rglwh+vg4koOdnwwAeqeXu3trlwRUe48HvdOH/Aw8f+gpeBA+4fbB8fnb+FU
x5O9i92dt92Ljw/HX4/WG5cXEznN/gMNcgEo/vUUl/141BsqCvfAt1KvHDaq
2uHvr1CjKhFflv++th2QMRhjNZWEc9jvQxMuMKIu0tW62BT9pEuVUdyWLssn
8asY2lpTLqodBGpNzvrc2EQVxMB1Mk0FeivUKR+GCUat5uUxsTLLlPwWW1J1
k/OxYMvH28f6V8xs4cT78muwqlKh4qHU0eQKf3a9ANWK1upORGP6Adct0CUE
dAxnaegtVY9Ykv/dDJe/SznOn1vK3HSElmlda1M9dQKl2k7OsZ0Bn3O8qamp
VC3C6YYv06X6ddUIKOrVzSOvrUetajVZJZdVDyyMES5XFYYNjfzkhvICigzA
M8w2vM5Od6/R6Drnvi3lHRbzpQ06Jrybn+nyTKg2ljt47a35dGchJRzLlZ2E
WU6JEW0dQc+Xt6imWgL4K8KEy787hRwomQ6D3nV5VF0P21QYlpumLWAhymaz
6Q384R2CaHuItcXjMLihQOzGPzfYRhsG/9/CtQ+8aeE3gWxfvxm2Gv8Heuxh
iGEtAQA=

-->

</rfc>
