<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.5 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3161 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3161.xml">
<!ENTITY RFC5035 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5035.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC5652 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml">
<!ENTITY RFC6931 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6931.xml">
<!ENTITY RFC7515 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC7518 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7518.xml">
<!ENTITY RFC7519 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
<!ENTITY RFC8610 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
]>


<rfc ipr="trust200902" docName="draft-santesson-svt-04" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Signature Validation Token</title>

    <author initials="S." surname="Santesson" fullname="Stefan Santesson">
      <organization abbrev="IDsec Solutions">IDsec Solutions AB</organization>
      <address>
        <postal>
          <street>Forskningsbyn Ideon</street>
          <city>Lund</city>
          <code>223 70</code>
          <country>SE</country>
        </postal>
        <email>sts@aaa-sec.com</email>
      </address>
    </author>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <street>516 Dranesville Road</street>
          <city>Herndon, VA</city>
          <code>20170</code>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>

    <date year="2022" month="March" day="24"/>

    <area>Security</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Electronic signatures have a limited lifespan with respect to the time period that they
can be validated and determined to be authentic. The Signature Validation Token (SVT)
defined in this specification provides evidence that asserts the validity of an
electronic signature. The SVT is provided by a trusted authority, which asserts that
a particular signature was successfully validated according to defined procedures at
a certain time. Any future validation of that electronic signature can be satisfied by
validating the SVT without any need to also validate the original electronic signature or
the associated digital certificates. SVT supports electronic signatures in CMS, XML,
PDF and JSON documents.</t>



    </abstract>



  </front>

  <middle>


<section anchor="intro"><name>Introduction</name>

<t>Electronic signatures have a limited lifespan regarding when they can be validated
and determined to be authentic. Many factors make it more difficult to validate
electronic signatures over time. For example:</t>

<t><list style="symbols">
  <t>Trusted information about the validity of the certificate containing the signer's public key is not available.</t>
  <t>Trusted information about the date and time when the signature was actually created is not available.</t>
  <t>Algorithms used to create the electronic signature are no longer considered secure.</t>
  <t>Services necessary to validate the signature are no longer available.</t>
  <t>Supporting evidence such as CA certificates, OCSP responses, CRLs, or timestamps.</t>
</list></t>

<t>The challenges to validation of an electronic signature increases over time, and
eventually it is simply impossible to verify the signature with a sufficient level of
assurance.</t>

<t>Existing standards, such as the ETSI XAdES <xref target="XADES"/> profile for XML
signatures <xref target="XMLDSIG11"/>, ETSI PAdES <xref target="PADES"/> profile for PDF signatures
<xref target="ISOPDF2"/>, and ETSI CAdES <xref target="CADES"/> profile for CMS signatures
<xref target="RFC5652"/> can be used to prolong the lifetime of a signature by
storing data that supports validation of the electronic signature beyond
the lifetime of the certificate containing the signer's public key, which
is often referred to as the signing certificate.  The problem with this
approach is that the amount of information that must be stored along with
the electronic signature constantly grows over time.  The increasing
amount of information and signed objects that need to be validated in
order to verify the original electronic signature grows in complexity to
the point where validation of the electronic signature may become
infeasible.</t>

<t>The Signature Validation Token (SVT) defined in this specification takes a fundamentally
different approach to the problem by providing evidence by a trusted authority that
asserts the validity of an electronic signature. The SVT asserts that a particular
electronic signature was successfully validated  by a trusted authority according to
defined procedures at a certain date and time. Once the SVT is issued by a trusted
authority, any future validation of that electronic signature is satisfied by validating
the SVT, without any need to also validate the original electronic signature.</t>

<t>This approach drastically reduces the complexity of validation of older electronic
signatures for the simple reason that validating the SVT eliminates the need to
validate the many signed objects that would otherwise been needed to provide the
same level of assurance. The SVT can be signed with private keys and algorithms that
provide confidence for a considerable time period. In fact, multiple SVTs can be used
to offer greater assurance. For example, one SVT could be produced with a large RSA
private key, a second one with a strong elliptic curve, and a third one with a quantum
safe digital signature algorithm to protect against advances in computing power and
cryptanalytic capabilities. Further, the trusted authority can add additional SVTs
in the future using fresh private keys and signatures to extend the lifetime of the,
if necessary.</t>

</section>
<section anchor="defs"><name>Definitions</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>

<t>This document use the following terms:</t>

<t><list style="symbols">
  <t>Signed Data -- The data covered by a particular electronic signature. This is typically
equivalent to the signed content of a document, and it represents the data that the
signer intended to sign. In some cases, such as in some XML signatures, the signed data
can be the collection of several data fragments each referenced by the signature. In the
case of PDF, this is the data covered by the "ByteRange" parameter in the signature
dictionary.</t>
  <t>Signed Bytes -- These are the actual bytes of data that were hashed and signed by the
digital signature algorithm. In most cases, this is not the actual Signed Data, but a
collection of signature metadata that includes references (hash) of the Signed Data as
well as information about algorithms and other data bound to a signature. In XML, this
is the canonicalized SignedInfo element. In CMS and PDF signatures, this is the
DER-encoded SignedAttributes structure.</t>
</list></t>

<t>When these terms are used as defined in this section, they appear with a
capitalized first letter.</t>

</section>
<section anchor="svt"><name>Signature Validation Token</name>

<t>The Signature Validation Token (SVT) is created by a trusted service to capture
evidence of successful electronic signature verification, and then relying
parties can depend on the checking that has already taken place by the
trusted service.</t>

<section anchor="svt-function"><name>Signature Validation Token Function</name>

<t>The function of the SVT is to capture evidence of electronic signature
validity at one instance of secure signature validation process and to
use that evidence to eliminate the need to perform any repeated
cryptographic validation of the original electronic signature value, as
well as reliance on any hash values bound to that signature.  The SVT
achieves this by binding the following information to a specific
electronic signature:</t>

<t><list style="symbols">
  <t>A unique identification of the electronic signature.</t>
  <t>The data and metadata signed by the electronic signature.</t>
  <t>The signer's certificate that was validated as part of electronic signature verification.</t>
  <t>The certification path that was used to validate the signer's certificate.</t>
  <t>An assertion providing evidence of that the signature was verified, the date and time the verification was performed, the procedures used to verify the electronic signature, and the outcome of the verification.</t>
  <t>An assertion providing evidence of the date and time at which the signature is known to have existed, the procedures used to validate the date and time of existence, and the outcome of the validation.</t>
</list></t>

<t>Using an SVT is equivalent to validating a signed document in a system once, and then
using that document multiple times without subsequent revalidating the electronic
signature for each usage. Such procedures are common in systems where the document is
residing in a safe and trusted environment where it is protected against modification. The
SVT allows the safe and trusted environment to expand beyond a locally controlled
environment, and the SVT allows a greater period between original electronic signature
verification and subsequent usage.</t>

<t>Using the SVT, the electronic signature verification of a document can be take place
once using a reliable trusted service, and then any relying party that is able to
depend on the verification process already performed by the trusted service. The SVT
is therefore not only a valuable tool to extend the lifetime of a signed document, but
also avoids the need for careful integration between electronic signature verification
and document usage.</t>

</section>
<section anchor="svt-syntax"><name>Signature Validation Token Syntax</name>

<t>The SVT is carried in a JSON Web Token (JWT) as defined in <xref target="RFC7519"/>.</t>

<section anchor="svt-syntax-dt"><name>Data Types</name>

<t>The contents of claims in an SVT are specified using the following data types:</t>

<t><list style="symbols">
  <t>String -- JSON Data Type of string that contains an arbitrary case sensitive string value.</t>
  <t>Base64Binary -- JSON Data Type of string that contains of Base64 encoded byte array of binary data.</t>
  <t>StringOrURI -- JSON Data Type of string that contains an arbitrary string or an URI as defined in <xref target="RFC7519"/>, which REQUIRES a value containing the colon character (":") to be a URI.</t>
  <t>URI -- JSON Data Type of string that contains an URI as defined in <xref target="RFC7519"/>.</t>
  <t>Integer -- JSON Data Type of number that contains a 32-bit signed integer value (from -2^31 to 2^31-1).</t>
  <t>Long -- JSON Data Type of number that contains a 64-bit signed integer value (from -2^63 to 2^63-1).</t>
  <t>NumericDate -- JSON Data Type of number that contains a data as defined in <xref target="RFC7519"/>, which is the number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time, ignoring leap seconds.</t>
  <t>Boolean -- JSON Data Type of boolean that contains explicit value of true or false.</t>
  <t>Object&lt;Class&gt; -- A JSON object holding a claims object of a class defined in this specification (see <xref target="svt-syntax-claim"/>).</t>
  <t>Map&lt;Type&gt; -- A JSON object with name-value pairs where the value is an object of the specified Type in the notation. For example, Map&lt;String&gt; is a JSON object with name value pairs where all values are of type String.</t>
  <t>Array -- A JSON array of a specific data type as defined in this section. An array is expressed in this specification by square brackets. For example, [String] indicates an array of String values, and [Object&lt;DocHash&gt;] indicates an array of DocHash objects.</t>
  <t>Null -- A JSON null that represents an absent value. A claim with a null value is equivalent with an absent claim.</t>
</list></t>

</section>
<section anchor="svt-syntax-claim"><name>Signature Validation Token JWT Claims</name>

<t>The SVT MUST contain only JWT claims in the following list:</t>

<t><list style="symbols">
  <t>jti -- A String data type that is a "JWT ID" registered claim according to <xref target="RFC7519"/>. It is RECOMMENDED that the identifier holds a hexadecimal string representation of a 128-bit unsigned integer. A SVT MUST contain one "JWT ID" claim.</t>
  <t>iss  -- A StringOrURI data type that is an "Issuer" registered claim according to <xref target="RFC7519"/>, which is an arbitrary unique identifier of the SVT issuer. This value SHOULD have the value of an URI based on a domain owned by the issuer. A SVT MUST contain one "Issuer" claim.</t>
  <t>iat -- A NumericDate data type that is an "Issued At" registered claim according to <xref target="RFC7519"/>, which expresses the date and time when this SVT was issued. A SVT MUST contain one "Issued At" claim.</t>
  <t>aud -- A [StringOrURI] data type or a StringOrURI data type that is an "Audience" registered claim according to <xref target="RFC7519"/>. The audience claim is an array of one or more identifiers, identifying intended recipients of the SVT. Each identifier MAY identify a single entity, a group of entities or a common policy adopted by a group of entities. If only one value is provided it MAY be provided as a single StringOrURI data type value instead of as an array of values. Inclusion of the "Audience" claim in a SVT is OPTIONAL.</t>
  <t>exp -- A NumericDate data type that is an "Expiration Time" registered claim according to <xref target="RFC7519"/>, which expresses the date and time when services and responsibilities related to this SVT is no longer provided by the SVT issuer. The precise meaning of the expiration time claim is defined by local policies. See implementation note below. Inclusion of the "Expiration Time" claim in a SVT is OPTIONAL.</t>
  <t>sig_val_claims -- A Object&lt;SigValidation&gt; data type that contains signature validation claims for this SVT extending the standard registered JTW claims above. A SVT MUST contain one sig_val_claims claim.</t>
</list></t>

<t>Note: An SVT asserts that a particular validation process was undertaken at a stated
date and time. This fact never changes and never expires. However, some other aspects
of the SVT such as liability for false claims or service provision related to a specific
SVT may expire after a certain period of time, such as a service where an old SVT can be
upgraded to a new SVT signed with fresh keys and algorithms.</t>

</section>
<section anchor="sigvalidation-obj-class"><name>SigValidation Object Class</name>

<t>The sig_val_claims JWT claim uses the SigValidation object class. A SigValidation object
holds all custom claims, and a SigValidation object contains the following parameters:</t>

<t><list style="symbols">
  <t>ver -- A String data type representing the version. This parameter MUST be present, and the version in this specification indicated by the value "1.0".</t>
  <t>profile -- A StringOrURI data type representing the name of a profile that defines conventions followed for specific claims and any extension points used by the SVT issuer. This parameter MUST be present.</t>
  <t>hash_algo -- A URI data type that identifies the hash algorithm used to compute the hash values within the SVT. The URI identifier MUST be one defined in <xref target="RFC6931"/> or in the IANA registry defined by this specification. This parameter MUST be present.</t>
  <t>sig -- A [Object&lt;Signature&gt;] data type that gives information about validated electronic signatures as an array of Signature objects. If the SVT contains signature validation evidence for more than one signature, then each signature is represented by a separate Signature object. At least one Signature object MUST be present.</t>
  <t>ext -- A Map&lt;String&gt; data type that provides additional claims related to the SVT. Extension claims are added at the discretion of the SVT issuer; however, extension claims MUST follow any conventions defined in a profile of this specification (see <xref target="profiles"/>). Inclusion of this parameter is OPTIONAL.</t>
</list></t>

</section>
<section anchor="signature-obj-class"><name>Signature Claims Object Class</name>

<t>The sig parameter in the SigValidation object class uses the Signature object
class. The Signature object contains claims related to signature validation
evidence for one signature, and it contains the following parameters:</t>

<t><list style="symbols">
  <t>sig_ref -- A Object&lt;SigReference&gt; data type that contains reference information identifying the target signature. This parameter MUST be present.</t>
  <t>sig_data_ref -- A [Object&lt;SignedDataReference&gt;] data type that contains an array of references to Signed Data that was signed by the target electronic signature. At least one SignedDataReference object MUST be present.</t>
  <t>signer_cert_ref -- A Object&lt;CertReference&gt; data type that references the signer's certificate and optionally reference to a supporting certification path that was used to verify the target electronic signature. This parameter MUST be present.</t>
  <t>sig_val -- A [Object&lt;PolicyValidation&gt;] data type that contains an array of results of signature verification according to defined procedures. At least one PolicyValidation object MUST be present.</t>
  <t>time_val -- A [Object&lt;TimeValidation&gt;] data type that contains an array of time verification results that the target signature has existed at a specific date and time in the past. Inclusion of this parameter is OPTIONAL.</t>
  <t>ext -- A MAP&lt;String&gt; data type that provides additional claims related to the target signature. Extension claims are added at the discretion of the SVT Issuer; however, extension claims MUST follow any conventions defined in a profile of this specification (see <xref target="profiles"/>). Inclusion of this parameter is OPTIONAL.</t>
</list></t>

</section>
<section anchor="sigreference-obj-class"><name>SigReference Claims Object Class</name>

<t>The sig_ref parameter in the Signature object class uses the SigReference object
class. The SigReference object provides information used to match the Signature
claims object to a specific target electronic signature and to verify the integrity
of the target signature value and Signed Bytes, and it contains the following parameters:</t>

<t><list style="symbols">
  <t>id -- A String data type that contains an identifier assigned to the target signature. Inclusion of this parameter is OPTIONAL.</t>
  <t>sig_hash -- A Base64Binary data type that contains a hash value of the target electronic signature value. This parameter MUST be present.</t>
  <t>sb_hash -- A Base64Binary data type that contains a hash value of the Signed Bytes of the target electronic signature. This parameter MUST be present.</t>
</list></t>

</section>
<section anchor="signeddatareference-obj-class"><name>SignedDataReference Claims Object Class</name>

<t>The sig_data_ref parameter in the Signature object class uses the SignedDataReference object
class. The SignedDataReference object provides information used to verify the target electronic
signature references to Signed Data as well as to verify the integrity of all data that
is signed by the target signature, and it contains the following parameters:</t>

<t><list style="symbols">
  <t>ref -- A String data type that contains a reference identifier for the data or data fragment covered by the target electronic signature. This parameter MUST be present.</t>
  <t>hash -- A Base64Binary data type that contains the hash value for the data covered by the target electronic signature. This parameter MUST be present.</t>
</list></t>

</section>
<section anchor="policyval-obj-class"><name>PolicyValidation Claims Object Class</name>

<t>The sig_val parameter in the Signature object class uses the PolicyValidation object
class. The PolicyValidation object provides information about the result of a validation
process according to a spefific policy, and it contains the following parameters:</t>

<t><list style="symbols">
  <t>pol -- A StringOrURI data type that contains the identifier of the policy governing the electronic signature verification process. This parameter MUST be present.</t>
  <t>res -- A String data type that contains the result of the electronic signature verification process. The value MUST be one of "PASSED", "FAILED" or "INDETERMINATE" as defined by <xref target="ETSI319102-1"/>. This parameter MUST be present.</t>
  <t>msg -- A String data type that contains a message describing the result. Inclusion of this parameter is OPTIONAL.</t>
  <t>ext -- A MAP&lt;String&gt; data type that provides additional claims related to the target signature. Extension claims are added at the discretion of the SVT Issuer; however, extension claims MUST follow any conventions defined in a profile of this specification (see <xref target="profiles"/>). Inclusion of this parameter is OPTIONAL.</t>
</list></t>

</section>
<section anchor="timever-obj-class"><name>TimeValidation Claims Object Class</name>

<t>The time_val parameter in the Signature object class uses the TimeValidation object
class. The TimeValidation claims object provides information about the result of
validating time evidence asserting that the target signature existed at a particular
date and time in the past, and it contains the following parameters:</t>

<t><list style="symbols">
  <t>time -- A NumericDate data type that contains the verified time. This parameter MUST be present.</t>
  <t>type -- A StringOrURI data type that contains an identifier of the type of evidence of time. This parameter MUST be present.</t>
  <t>iss -- A StringOrURI data type that contains an identifier of the entity that issued the evidence of time. This parameter MUST be present.</t>
  <t>id -- A String data type that contains an unique identifier assigned to the evidence of time.  Inclusion of this parameter is OPTIONAL.</t>
  <t>val -- A [Object&lt;PolicyValidation&gt;] data type that contains an array of results of the time evidence validation according to defined validation procedures. Inclusion of this parameter is OPTIONAL.</t>
  <t>ext -- A MAP&lt;String&gt; data type that provides additional claims related to the target signature. Extension claims are added at the discretion of the SVT Issuer; however, extension claims MUST follow any conventions defined in a profile of this specification (see <xref target="profiles"/>). Inclusion of this parameter is OPTIONAL.</t>
</list></t>

</section>
<section anchor="certref-obj-class"><name>CertReference Claims Object Class</name>

<t>The signer_cert_ref parameter in the Signature object class uses the CertReference object
class. The CertReference object references a single X.509 certificate or a X.509
certification path, either by providing the certificate data or by providing hash
references for certificates that can be located in the target electronic signature, and
it contains the following parameters:</t>

<t><list style="symbols">
  <t>type -- A StringOrURI data type that contains an identifier of the type of reference. The type identifier MUST be one of the identifiers defined below, an identifier specified by the selected profile, or a URI identifier. This parameter MUST be present.</t>
  <t>ref -- A [String] data type that contains an array of string parameters according to conventions defined by the type identifier. At least one parameter MUST be present.</t>
</list></t>

<t>The following type identifiers are defined:</t>

<t><list style="symbols">
  <t>chain -- The ref contains an array of Base64 encoded X.509 certificates <xref target="RFC5280"/>. The certificates MUST be provided in the order starting with the end entity certificate. Any following certificate must be able to validate the signature on the previous certificate in the array.</t>
  <t>chain_hash -- The ref contains an array of one or more Base64 encoded hash values where each hash value is a hash over a X.509 certificate <xref target="RFC5280"/> used to validate the signature.  The certificates MUST be provided in the order starting with the end entity certificate.  Any following certificate must be able to validate the signature on the previous certificate in the array. This option MUST NOT be used unless all hashed certificates are present in the target electronic signature.</t>
</list></t>

<t>Note: All certificates referenced using the identifiers above are X.509 certificates.
Profiles of this specification MAY define alternative types of public key containers;
however, a major function of these referenced certificates is not just to reference
the public key, but also to provide the subject name of the signer. It is therefore
important for the full function of an SVT that the referenced public key container also
provides the means to identify of the signer.</t>

</section>
<section anchor="svt-jose-header"><name>SVT JOSE Header</name>

<t>The SVT JWT MUST contain the following JOSE header parameters in accordance with
Section 5 of <xref target="RFC7519"/>:</t>

<t><list style="symbols">
  <t>typ -- This parameter MUST have the string value "JWT" (upper case).</t>
  <t>alg -- This parameter identifies the algorithm used to sign the SVT JWT. The algorithm identifier MUST be specified in <xref target="RFC7518"/> or the IANA JSON Web Signature and Encryption Algorithms Registry [ add a ref ]. The specified signature hash algorithm MUST be identical to the hash algorithm specified in the hash_algo parameter of the SigValidation object within the sig_val_claims claim.</t>
</list></t>

<t>The SVT header MUST contain a public key or a reference to a public key used to verify the signature on the SVT in accordance with <xref target="RFC7515"/>. Each profile, as discussed in <xref target="profiles"/>, MUST define the requirements for how the key or key reference is included in the header.</t>

</section>
</section>
</section>
<section anchor="profiles"><name>Profiles</name>

<t>Each signed document and signature type will have to define the precise content and
use of several claims in the SVT.</t>

<t>Each profile MUST as a minimum define:</t>

<t><list style="symbols">
  <t>The identifier of the profile.</t>
  <t>How to reference the Signed Data content of the signed document.</t>
  <t>How to reference to the target electronic signature and the Signed Bytes of the signature.</t>
  <t>How to reference certificates supporting each electronic siganture.</t>
  <t>How to include public keys or references to public keys in the SVT.</t>
  <t>Whether each electronic signature is supported by a single SVT, or whether one SVT may support multiple electronic signatures of the same document.</t>
</list></t>

<t>A profile MAY also define:</t>

<t><list style="symbols">
  <t>Explicit information on how to perform signature validation based on an SVT.</t>
  <t>How to attach an SVT to an electronic signature or signed document.</t>
</list></t>

<section anchor="defined-profiles"><name>Defined Profiles</name>

<t>The following profiles are defined in Appendixes of this document:</t>

<t><list style="symbols">
  <t><xref target="appendix-xml-profile"/>: XML Profile</t>
  <t><xref target="appendix-pdf-profile"/>: PDF Profile</t>
  <t><xref target="appendix-jws-profile"/>: JWS Profile</t>
</list></t>

<t>Other documents MAY define other profiles that MAY complement, ammend or supersede these profiles.</t>

</section>
</section>
<section anchor="signature-verification-with-a-svt"><name>Signature Verification with a SVT</name>

<t>Signature verification based on an a SVT MUST follow these steps:</t>

<t><list style="numbers">
  <t>Locate all available SVTs available for the signed document that are relevant for the target electronic signature.</t>
  <t>Select the most recent SVT that can be successfully validated and meets the requirement of the relying party.</t>
  <t>Verify the integrity of the signature and the Signed Bytes of the target electronic signature using the sig_ref claim.</t>
  <t>Verify that the Signed Data reference in the original electronic signature matches the reference values in the sig_data_ref claim.</t>
  <t>Verify the integrity of referenced Signed Data using provided hash values in the sig_data_ref claim.</t>
  <t>Obtain the verified certificates supporting the asserted electronic signature verification through the signer_cert_ref claim.</t>
  <t>Verify that signature validation policy results satisfy the requirements of the relying party.</t>
  <t>Verify that verified time results satisfy the context for the use of the signed document.</t>
</list></t>

<t>After successfully performing these steps, signature validity is established as well as
the trusted signer certificate binding the identity of the signer to the electronic
signature.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>

<section anchor="claim-names-reg"><name>Claim Names Registration</name>

<t>This section registers the "sig_val_claims" claim name in the IANA "JSON Web Token Claims" registry established by Section 10.1 in <xref target="RFC7519"/>.</t>

<section anchor="clname-reg-contents"><name>Registry Contents</name>

<t><list style="symbols">
  <t>Claim Name: "sig_val_claims"</t>
  <t>Claim Description: Signature Validation Token</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <xref target="sigvalidation-obj-class"/> of {this document}</t>
</list></t>

<t>NOTE to RFC editor: Please replace {this document} with its assigned RFC number.</t>

</section>
</section>
<section anchor="iana-header-params"><name>Header Parameter Names Registration</name>

<t>This section registers the "svt" Header Parameter in the IANA "JSON Web Signature and Encryption Header Parameters" registry established by <xref target="RFC7515"/>.</t>

<section anchor="iana-header-params-reg"><name>Registry Contents</name>

<t><list style="symbols">
  <t>Header Parameter Name: "svt"</t>
  <t>Header Parameter Description: Signature Validation Token</t>
  <t>Header Parameter Usage Location(s): JWS</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <xref target="svt-header"/> of {this document}</t>
</list></t>

<t>NOTE to RFC editor: Please replace {this document} with its assigned RFC number.</t>

</section>
</section>
</section>
<section anchor="seccons"><name>Security Considerations</name>

<section anchor="seccon-lvl-of-reliance"><name>Level of reliance</name>

<t>An SVT allows a signature verifier to still validate the original signature using
the original signature data and to use the information in the SVT selectively to
either just confirm the validity and integrity of the original data, such as confirming the integrity of signed data or the validity of the signer's certificate etc.</t>

<t>Another way to use an SVT is to completely rely on the validation conclusion provided
by the SVT and to omit re-validation of the original signature value and original
certificate status checking data.</t>

<t>This choice is a decision made by the verifier according to its own policy and risk assessment.</t>

<t>However, even when relying on the SVT validation conclusion of an SVT it is vital to still verify that
the present SVT is correctly associated with the document and signature that is being validated by
validating the hashed reference data in the SVT of the signature, signing certificate chain,
signed data and the signed bytes.</t>

</section>
<section anchor="seccon-aging-algos"><name>Aging algorithms</name>

<t>Even if the SVT provides protection against algorithms becoming weakened or broken over time, this protection is only valid for as long as the algorithms used to sign the SVT are still considered secure. It is advisable to re-issue SVT in cases where an algorithm protecting the SVT is getting close to its end of life.</t>

<t>One way to increase the resistance of algorithms becoming insecure, is to issue multiple SVT for the same signature with different algorithms and key lengths where one algorithm could still be secure even if the corresponding algorithm used in the alternative SVT is broken.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC2119;
&RFC3161;
&RFC5035;
&RFC8174;
&RFC5280;
&RFC5652;
&RFC6931;
&RFC7515;
&RFC7518;
&RFC7519;
<reference anchor="ETSI319102-1" >
  <front>
    <title>ETSI - Electronic Signatures and Infrastructures (ESI); Procedures for Creation and Validation of AdES Digital Signatures; Part 1: Creation and Validation</title>
    <author >
      <organization>ETSI</organization>
    </author>
    <date year="2016" month="May"/>
  </front>
  <seriesInfo name="ETSI" value="EN 319 102-1 v1.1.1"/>
</reference>
<reference anchor="XMLDSIG11" >
  <front>
    <title>XML Signature Syntax and Processing Version 1.1</title>
    <author initials="D." surname="Eastlake" fullname="Donald Eastlake">
      <organization></organization>
    </author>
    <author initials="J." surname="Reagle" fullname="Joseph Reagle">
      <organization></organization>
    </author>
    <author initials="D." surname="Solo" fullname="David Solo">
      <organization></organization>
    </author>
    <author initials="F." surname="Hirsch" fullname="Frederick Hirsch">
      <organization></organization>
    </author>
    <author initials="M." surname="Nystrom" fullname="Magnus Nystrom">
      <organization></organization>
    </author>
    <author initials="T." surname="Roessler" fullname="Thomas Roessler">
      <organization></organization>
    </author>
    <author initials="K." surname="Yiu" fullname="Kelvin Yiu">
      <organization></organization>
    </author>
    <date year="2013" month="April" day="11"/>
  </front>
  <seriesInfo name="W3C" value="Proposed Recommendation"/>
</reference>
<reference anchor="ISOPDF2" >
  <front>
    <title>Document management -- Portable document format -- Part 2: PDF 2.0</title>
    <author >
      <organization>ISO</organization>
    </author>
    <date year="2017" month="July"/>
  </front>
  <seriesInfo name="ISO" value="32000-2"/>
</reference>
<reference anchor="XADES" >
  <front>
    <title>Electronic Signatures and Infrastructures (ESI); XAdES digital signatures; Part 1: Building blocks and XAdES baseline signatures</title>
    <author >
      <organization>ETSI</organization>
    </author>
    <date year="2016" month="April"/>
  </front>
  <seriesInfo name="ETSI" value="EN 319 132-1 v1.1.1"/>
</reference>
<reference anchor="PADES" >
  <front>
    <title>Electronic Signatures and Infrastructures (ESI); PAdES digital signatures; Part 1: Building blocks and PAdES baseline signatures</title>
    <author >
      <organization>ETSI</organization>
    </author>
    <date year="2016" month="April"/>
  </front>
  <seriesInfo name="ETSI" value="EN 319 142-1 v1.1.1"/>
</reference>
<reference anchor="CADES" >
  <front>
    <title>Electronic Signatures and Infrastructures (ESI); CAdES digital signatures; Part 1: Building blocks and CAdES baseline signatures</title>
    <author >
      <organization>ETSI</organization>
    </author>
    <date year="2016" month="April"/>
  </front>
  <seriesInfo name="ETSI" value="EN 319 122-1 v1.1.1"/>
</reference>


    </references>

    <references title='Informative References'>

&RFC8610;


    </references>


<section anchor="appendix-xml-profile"><name>Appendix: XML signature profile</name>

<t>This appendix defines a profile for implementing SVT with a signed XML document, and defines the following aspects of SVT usage:</t>

<t><list style="symbols">
  <t>How to include reference data related to XML signatures and XML documents in an SVT.</t>
  <t>How to add an SVT token to a XML signature.</t>
</list></t>

<t>XML documents can have any number of signature elements, signing an arbitrary number of fragments of XML documents. The actual signature element may be included in the signed XML document (enveloped), include the signed data (enveloping) or may be separate from the signed content (detached).</t>

<t>To provide a generic solution for any type of XML signature an SVT is added to each XML signature element within the XML signature &lt;ds:Object&gt; element.</t>

<section anchor="notation"><name>Notation</name>

<section anchor="ref-to-xml-elements"><name>References to XML Elements from XML Schemas</name>

<t>When referring to elements from the W3C XML Signature namespace
(http://www.w3.org/2000/09/xmldsig#) the following syntax is used:</t>

<t><list style="symbols">
  <t>&lt;ds:Signature&gt;</t>
</list></t>

<t>When referring to elements from the ETSI XAdES XML Signature namespace
(http://uri.etsi.org/01903/v1.3.2#) the following syntax is used:</t>

<t><list style="symbols">
  <t>&lt;xades:CertDigest&gt;</t>
</list></t>

<t>When referring to elements defined in this specification
(http://id.swedenconnect.se/svt/1.0/sig-prop/ns) the following syntax is used:</t>

<t><list style="symbols">
  <t>&lt;svt:Element&gt;</t>
</list></t>

</section>
</section>
<section anchor="svt-in-xml"><name>SVT in XML Documents</name>

<t>When SVT is provided for XML signatures then one SVT MUST be provided for each XML signature.</t>

<t>An SVT embedded within the XML signature element MUST be placed in a  &lt;svt:SignatureValidationToken&gt; element as defined in <xref target="signaturevalidationtoken-signature-property"/>.</t>

<section anchor="signaturevalidationtoken-signature-property"><name>SignatureValidationToken Signature Property</name>

<t>The &lt;svt:SignatureValidationToken&gt; element MUST be placed in a &lt;ds:SignatureProperty&gt; element in accordance with <xref target="XMLDSIG11"/>. The &lt;ds:SignatureProperty&gt; element MUST be placed inside a &lt;ds:SignatureProperties&gt; element inside a &lt;ds:Object&gt; element inside a &lt;ds:Signature&gt; element.</t>

<t>Note: <xref target="XMLDSIG11"/> requires the Target attribute to be present in &lt;ds:SignatureProperty&gt;, referencing the signature targeted by this signature property. If an SVT is added to a signature that do not have an Id attribute, implementations SHOULD add an Id attribute to the &lt;ds:Signature&gt; element and reference that Id in the Target attribute. This Id attribute and Target attribute value matching is required by the <xref target="XMLDSIG11"/> standard, but it is redundant in the context of SVT validation as the SVT already contains information that uniquely identifies the target signature. Validation applications SHOULD not reject an SVT token because of Id and Target attribute mismatch, and MUST rely on matching against signature using signed information in the SVT itself.</t>

<t>The &lt;svt:SignatureValidationToken&gt; element is defined by the following XML Schema:</t>

<figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    targetNamespace="http://id.swedenconnect.se/svt/1.0/sig-prop/ns"
    xmlns:svt="http://id.swedenconnect.se/svt/1.0/sig-prop/ns">

  <xs:element name="SignatureValidationToken"
      type="svt:SignatureValidationTokenType" />

  <xs:complexType name="SignatureValidationTokenType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

</xs:schema>
]]></artwork></figure>

<t>The SVT token MUST be included as a string representation of the SVT JWT. Note that this is the string representation of the JWT without further encoding. The SVT MUST NOT be represented by the Base64 encoded bytes of the JWT string.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
<ds:Signature Id="MySignatureId">
  ...
  <ds:Object>
    <ds:SignatureProperties>
      <ds:SignatureProperty Target="#MySignatureId">
        <svt:SignatureValidationToken>
              eyJ0eXAiOiJKV1QiLCJhb...2aNZ
        </svt:SignatureValidationToken>
      </ds:SignatureProperty>
    </ds:SignatureProperties>
  </ds:Object>
</ds:Signature>
]]></artwork></figure>

</section>
<section anchor="xml-multiple-svt-tokens"><name>Multiple SVT in an XML signature</name>

<t>If a new SVT is stored in a signature which already contains a previously issued SVT, implementations can choose to either replace the existing SVT or to store the new SVT in addition to the existing SVT.</t>

<t>If the new SVT is stored in addition to the old SVT, it SHOULD be stored in a new &lt;ds:SignatureProperty&gt; element inside the existing &lt;ds:SignatureProperties&gt; element where the old SVT is located.</t>

<t>For interoperability robustness, signature validation applications MUST be able to handle signatures where the new SVT is located in a new &lt;ds:Object&gt; element.</t>

</section>
</section>
<section anchor="xml-svt-claims"><name>XML signature SVT Claims</name>

<section anchor="xml-profile-identifier"><name>XML Profile Identifier</name>

<t>When this profile is used the SigValidation object MUST contain a "profile" claim with the value "XML".</t>

</section>
<section anchor="xml-signature-reference-data"><name>XML Signature Reference Data</name>

<t>The SVT Signature object MUST contain a "sig_ref" claim (SigReference object) with the following elements:</t>

<t><list style="symbols">
  <t>"id" -- The Id-attribute of the XML signature, if present.</t>
  <t>"sig_hash" -- The hash over the signature value bytes.</t>
  <t>"sb_hash" -- The hash over the canonicalized &lt;ds:SignedInfo&gt; element (the bytes the XML signature algorithm has signed to generated the signature value).</t>
</list></t>

</section>
<section anchor="xml-signed-data-reference"><name>XML Signed Data Reference Data</name>

<t>The SVT Signature object MUST contain one instance of the "sig_data" claim (SignedData object) for each &lt;ds:Reference&gt; element in the &lt;ds:SignedInfo&gt; element. The "sig_data" claim MUST contain the following elements:</t>

<t><list style="symbols">
  <t>"ref" -- The value of the URI attribute of the corresponding &lt;ds:Reference&gt; element.</t>
  <t>"hash" -- The hash of all bytes identified corresponding &lt;ds:Reference&gt; element after applying all identified canonicalization and transformation algorithms. These are the same bytes that is hashed by the hash value in the &lt;ds:DigestValue&gt; element inside the &lt;ds:Reference&gt; element.</t>
</list></t>

</section>
<section anchor="xml-signer-certificate-references"><name>XML Signer Certificate References</name>

<t>The SVT Signature object MUST contain a "signer_cert_ref" claim (CertReference object). The "type" parameter of the "signer_cert_ref" claim MUST be either "chain" or "chain_hash".</t>

<t><list style="symbols">
  <t>The "chain" type MUST be used when signature validation was performed using one or more certificates where some or all of the certificates in the chain are not present in the target signature.</t>
  <t>The "chain_hash" type MUST be used when signature validation was performed using one or more certificates where all of the certificates are present in the target signature.</t>
</list></t>

</section>
</section>
<section anchor="xml-jose-header"><name>JOSE Header</name>

<section anchor="xml-svt-signing-key-reference"><name>SVT Signing Key Reference</name>

<t>The SVT JOSE header for XML signatures must contain one of the following header parameters in accordance with <xref target="RFC7515"/>, for storing a reference to the public key used to verify the signature on the SVT:</t>

<t><list style="symbols">
  <t>"x5c" -- Holds an X.509 certificate <xref target="RFC5280"/> or a chain of certificates. The certificate holding the public key that verifies the signature on the SVT MUST be the first certificate in the chain.</t>
  <t>"kid" -- A key identifier holding the Base64 encoded hash value of the certificate that can verify the signature on the SVT. The hash algorithm MUST be the same hash algorithm used when signing the SVT as specified by the <spanx style="verb">alg</spanx> header parameter.</t>
</list></t>

</section>
</section>
</section>
<section anchor="appendix-pdf-profile"><name>Appendix: PDF signature profile</name>

<t>This appendix defines a profile for implementing SVT with a signed PDF document, and defines the following aspects of SVT usage:</t>

<t><list style="symbols">
  <t>How to include reference data related to PDF signatures and PDF documents in an SVT.</t>
  <t>How to add an SVT token to a PDF document.</t>
</list></t>

<t>PDF document signatures are added as incremental updates to the signed PDF document and signs all data of the PDF document up until the current signature. When more than one signature is added to a PDF document the previous signature is signed by the next signature and can not be updated with additional data after this event.</t>

<t>To minimize the impact on PDF documents with multiple signatures and to stay backwards compatible with PDF software that do not understand SVT, PDF documents add one SVT token for all signatures of the PDF as an extension to a document timestamp added to the signed PDF as an incremental update. This SVT covers all signatures of the signed PDF.</t>

<section anchor="svt-in-pdf"><name>SVT in PDF Documents</name>

<t>The SVT for a signed PDF document MAY provide signature validation information about any of the present signatures in the PDF. The SVT MUST contain a separate "sig" claim (Signature object) for each signature on the PDF that is covered by the SVT.</t>

<t>An SVT added to a signed PDF document MUST be added to a document timestamp accordance with ISO 32000-2:2017 <xref target="ISOPDF2"/>.</t>

<t>The document timestamp contains an <xref target="RFC3161"/> timestamp token (TSTInfo) in EncapsulatedContentInfo of the CMS signature. The SVT MUST be added to the timestamp token (TSTInfo) as an Extension object as defined in  <xref target="svt-extension-to-timestamps"/>.</t>

<section anchor="svt-extension-to-timestamps"><name>SVT Extension to Timestamp Tokens</name>

<t>The SVT extension is an Extension suitable to be included in TSTInfo as defined by <xref target="RFC3161"/>.</t>

<t>The SVT extension is identified by the Object Identifier (OID) 1.2.752.201.5.2</t>

<t>Editors note: This is the current used OID. Consider assigning an IETF extension OID.</t>

<t>This extension data (OCTET STRING) holds the bytes of SVT JWT, represented as a UTF-8 encoded string.</t>

<t>This extension MUST NOT be marked critical.</t>

<t>Note: Extensions in timestamp tokens according to <xref target="RFC3161"/> are imported from the definition of the X.509 certificate extensions defined in <xref target="RFC5280"/>.</t>

</section>
</section>
<section anchor="pdf-svt-claims"><name>PDF signature SVT Claims</name>

<section anchor="pdf-profile-identifier"><name>PDF Profile Identifier</name>

<t>When this profile is used the SigValidation object MUST contain a "profile" claim with the value "PDF".</t>

</section>
<section anchor="pdf-signature-reference-data"><name>PDF Signature Reference Data</name>

<t>The SVT Signature object MUST contain a "sig_ref" claim (SigReference object) with the following elements:</t>

<t><list style="symbols">
  <t>"id" -- Absent or a Null value.</t>
  <t>"sig_hash" -- The hash over the signature value bytes.</t>
  <t>"sb_hash" -- The hash over the DER encoded SignedAttributes in SignerInfo.</t>
</list></t>

</section>
<section anchor="pdf-signed-data-reference"><name>PDF Signed Data Reference Data</name>

<t>The SVT Signature object MUST contain one instance of the "sig_data" claim (SignedData object) with the following elements:</t>

<t><list style="symbols">
  <t>"ref" -- The string representation of the ByteRange value of the PDF signature dictionary of the target signature. This is a sequence of integers separated by space where each integer pair specifies the start index and length of a byte range.</t>
  <t>"hash" -- The hash of all bytes identified by the ByteRange value. This is the concatenation of all byte ranges identified by the ByteRange value.</t>
</list></t>

</section>
<section anchor="pdf-signer-certificate-references"><name>PDF Signer Certificate References</name>

<t>The SVT Signature object MUST contain a "signer_cert_ref" claim (CertReference object). The "type" parameter of the "signer_cert_ref" claim MUST be either "chain" or "chain_hash".</t>

<t><list style="symbols">
  <t>The "chain" type MUST be used when signature validation was performed using one or more certificates where some or all of the certificates in the chain are not present in the target signature.</t>
  <t>The "chain_hash" type MUST be used when signature validation was performed using one or more certificates where all of the certificates are present in the target signature.</t>
</list></t>

<t>Note: The referenced signer certificate MUST match any certificates referenced using ESSCertID or ESSCertIDv2 from <xref target="RFC5035"/>.</t>

</section>
</section>
<section anchor="pdf-jose-header"><name>JOSE Header</name>

<section anchor="pdf-svt-signing-key-reference"><name>SVT Signing Key Reference</name>

<t>The SVT JOSE header must contain one of the following header parameters in accordance with <xref target="RFC7515"/>, for storing a reference to the public key used to verify the signature on the SVT:</t>

<t><list style="symbols">
  <t>"x5c" -- Holds an X.509 certificate <xref target="RFC5280"/> or a chain of certificates. The certificate holding the public key that verifies the signature on the SVT MUST be the first certificate in the chain.</t>
  <t>"kid" -- A key identifier holding the Base64 encoded hash value of the certificate that can verify the signature on the SVT. The hash algorithm MUST be the same hash algorithm used when signing the SVT as specified by the <spanx style="verb">alg</spanx> header parameter. The referenced certificate SHOULD be the same certificate that was used to sign the document timestamp that contains the SVT.</t>
</list></t>

</section>
</section>
</section>
<section anchor="appendix-jws-profile"><name>Appendix: JWS Profile</name>

<t>This appendix defines a profile for implementing SVT with a JWS signed payload according to <xref target="RFC7515"/>, and defines the following aspects of SVT usage:</t>

<t><list style="symbols">
  <t>How to include reference data related to JWS signatures in an SVT.</t>
  <t>How to add an SVT token to JWS signatures.</t>
</list></t>

<t>A JWS may have one or more signatures depending on its serialization format, signing the same payload data. A JWS either contains the data to be signed (enveloping) or may sign any externally associated payload data (detached).</t>

<t>To provide a generic solution for JWS, an SVT is added to each present signature as a JWS Unprotected Header. If a JWS includes multiple signatures, then each signature includes its own SVT.</t>

<section anchor="svt-in-jws"><name>SVT in JWS</name>

<t>An SVT token MAY be added to any signature of a JWS to support validation of that signature. If more than one signature is present then each present SVT MUST provide information exclusively related to one associated signature and MUST NOT include information about any other signature in the JWS.</t>

<t>Each SVT is stored in its associated signature's "svt" header as defined in <xref target="svt-header"/>.</t>

<section anchor="svt-header"><name>"svt" Header Parameter</name>

<t>The "svt" (Signature Validation Token) Header Parameter is used to contain an array of SVT tokens to support validation of the associated signature. Each SVT token in the array has the format of a JWT as defined in <xref target="RFC7519"/> and is stored using its natural string representation without further wrapping or encoding.</t>

<t>The "svt" Header Parameter, when used, MUST be included as a JWS Unprotected Header.</t>

<t>Note: JWS Unprotected Header is not supported with JWS Compact Serialization. A consequence of adding an SVT token to a JWS is therefore that JWS JSON Serialization MUST be used, either in the form of general JWS JSON Serialization (for one or more signatures) or in the form of flattened JWS JSON Serialization (optionally used when only one signature is present in the JWS).</t>

</section>
<section anchor="jws-multiple-svt-tokens"><name>Multiple SVT in a JWS signature</name>

<t>If a new SVT is stored in a signature which already contains a previously issued SVT, implementations can choose to either replace the existing SVT or to store the new SVT in addition to the existing SVT.</t>

<t>If a JWS signature already contains an array of SVTs and a new SVT is to be added, then the new SVT MUST be added to the array of SVT tokens in the existing "svt" Header Parameter.</t>

</section>
</section>
<section anchor="jws-svt-claims"><name>JWS signature SVT Claims</name>

<section anchor="jws-profile-identifier"><name>JWS Profile Identifier</name>

<t>When this profile is used the SigValidation object MUST contain a "profile" claim with the value "JWS".</t>

</section>
<section anchor="jws-signature-reference-data"><name>JWS Signature Reference Data</name>

<t>The SVT Signature object MUST contain a "sig_ref" claim (SigReference object) with the following elements:</t>

<t><list style="symbols">
  <t>"sig_hash" -- The hash over the associated signature value (the bytes of the base64url-decoded signature parameter).</t>
  <t>"sb_hash" -- The hash over all bytes signed by the associated signature (the JWS Signing Input according to <xref target="RFC7515"/>).</t>
</list></t>

</section>
<section anchor="jws-signed-data-reference"><name>JWS Signed Data Reference Data</name>

<t>The SVT Signature object MUST contain one instance of the "sig_data" claim (SignedData object) with the following elements:</t>

<t><list style="symbols">
  <t>"ref" -- This parameter MUST hold one of the following thee possible values.  <list style="numbers">
      <t>The explicit string value "payload" if the signed JWS Payload is embedded in a "payload" member of the JWS.</t>
      <t>The explicit string value "detached" if the JWS signs detached payload data without explicit reference.</t>
      <t>A URI that can be used to identify or fetch the detached signed data. The means to determine the URI for the detached signed data is outside the scope of this specification.</t>
    </list></t>
  <t>"hash" -- The hash over the JWS Payload data bytes (not its base64url-encoded string representation).</t>
</list></t>

</section>
<section anchor="jws-signer-certificate-references"><name>JWS Signer Certificate References</name>

<t>The SVT Signature object MUST contain a "signer_cert_ref" claim (CertReference object). The "type" parameter of the "signer_cert_ref" claim MUST be either "chain" or "chain_hash".</t>

<t><list style="symbols">
  <t>The "chain" type MUST be used when signature validation was performed using one or more certificates where some or all of the certificates in the chain are not present in the target signature.</t>
  <t>The "chain_hash" type MUST be used when signature validation was performed using one or more certificates where all of the certificates are present in the target signature JOSE header using the "x5c" Header Parameter.</t>
</list></t>

</section>
</section>
<section anchor="jws-svt-jose-header"><name>SVT JOSE Header</name>

<section anchor="jws-svt-signing-key-reference"><name>SVT Signing Key Reference</name>

<t>The SVT JOSE header must contain one of the following header parameters in accordance with <xref target="RFC7515"/>, for storing a reference to the public key used to verify the signature on the SVT:</t>

<t><list style="symbols">
  <t>"x5c" -- Holds an X.509 certificate <xref target="RFC5280"/> or a chain of certificates. The certificate holding the public key that verifies the signature on the SVT MUST be the first certificate in the chain.</t>
  <t>"kid" -- A key identifier holding the Base64 encoded hash value of the certificate that can verify the signature on the SVT. The hash algorithm MUST be the same hash algorithm used when signing the SVT as specified by the <spanx style="verb">alg</spanx> header parameter.</t>
</list></t>

</section>
</section>
</section>
<section anchor="schema-appendix"><name>Appendix: Schemas</name>

<section anchor="concise-data-definition-language-cddl"><name>Concise Data Definition Language (CDDL)</name>

<t>The following informative CDDL <xref target="RFC8610"/> express the structure of an SVT token:</t>

<figure><artwork><![CDATA[
svt = {
  jti: text
  iss: text
  iat: uint
  ? aud: text / [* text]
  ? exp: uint
  sig_val_claims: SigValClaims
}

SigValClaims = {
  ver: text
  profile: text
  hash_algo: text
  sig: [+ Signature]
  ? ext: Extension
}

Signature = {
  sig_ref: SigReference
  sig_data_ref: [+ SignedDataReference]
  signer_cert_ref: CertReference
  sig_val: [+ PolicyValidation]
  ? time_val: [* TimeValidation]
  ? ext: Extension
}

SigReference = {
  ? id: text / null
  sig_hash: binary-value
  sb_hash: binary-value
}

SignedDataReference = {
  ref: text
  hash: binary-value
}


CertReference = {
  type: "chain" / "chain_hash"
  ref: [+ text]
}

PolicyValidation = {
  pol: text
  res: "PASSED" / "FAILED" / "INDETERMINATE"
  ? msg: text / null
  ? ext: Extension
}

TimeValidation = {
  "time": uint
  type: text
  iss: text
  ? id: text / null
  ? val: [* PolicyValidation]
  ? ext: Extension
}


Extension = {
  + text => text
} / null

binary-value = text             ; base64 classic with padding
]]></artwork></figure>

</section>
<section anchor="json-schema"><name>JSON Schema</name>

<t>The following informative JSON schema describes the syntax of the SVT token payload.</t>

<figure><artwork><![CDATA[
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Signature Validation Token JSON Schema",
    "description": "Schema defining the payload format for SVT",
    "type": "object",
    "required": [
        "jti",
        "iss",
        "iat",
        "sig_val_claims"
    ],
    "properties": {
        "jti": {
            "description": "JWT ID",
            "type": "string"
        },
        "iss": {
            "description": "Issuer",
            "type": "string"
        },
        "iat": {
            "description": "Issued At",
            "type": "integer"
        },
        "aud": {
            "description": "Audience",
            "type": [
                "string",
                "array"
            ],
            "items": {"type": "string"}
        },
        "exp": {
            "description": "Expiration time (seconds since epoch)",
            "type": "integer"
        },
        "sig_val_claims": {
            "description": "Signature validation claims",
            "type": "object",
            "required": [
                "ver",
                "profile",
                "hash_algo",
                "sig"
            ],
            "properties": {
                "ver": {
                    "description": "Version",
                    "type": "string"
                },
                "profile": {
                    "description": "Implementation profile",
                    "type": "string"
                },
                "hash_algo": {
                    "description": "Hash algorithm URI",
                    "type": "string"
                },
                "sig": {
                    "description": "Validated signatures",
                    "type": "array",
                    "items": {
                        "$ref": "#/$def/Signature"
                    },
                    "minItems": 1
                },
                "ext": {
                    "description": "Extension map",
                    "$ref": "#/$def/Extension"
                }
            },
            "additionalProperties": false
        }
    },
"additionalProperties": false,
"$def": {
         "Signature":{
             "type": "object",
             "required": [
                 "sig_ref",
                 "sig_data_ref",
                 "signer_cert_ref",
                 "sig_val"
             ],
             "properties": {
                 "sig_ref": {
                     "description": "Signature Reference",
                     "$ref": "#/$def/SigReference"
                 },
                 "sig_data_ref": {
                     "description": "Signed data array",
                     "type": "array",
                     "items": {
                         "$ref" : "#/$def/SignedDataReference"
                     },
                     "minItems": 1
                 },
                 "signer_cert_ref": {
                     "description": "Signer certificate reference",
                     "$ref": "#/$def/CertReference"
                 },
                 "sig_val": {
                     "description": "Signature validation results",
                     "type": "array",
                     "items": {
                         "$ref": "#/$def/PolicyValidation"
                     },
                     "minItems": 1
                 },
                 "time_val": {
                     "description": "Time validations",
                     "type": "array",
                     "items": {
                         "$ref": "#/$def/TimeValidation"
                     }
                 },
                "ext": {
                    "description": "Extension map",
                    "$ref": "#/$def/Extension"
                }
             },
             "additionalProperties": false
         },
         "SigReference":{
             "type": "object",
             "required": [
                 "sig_hash",
                 "sb_hash"
             ],
             "properties": {
                 "sig_hash": {
                     "description": "Hash of the signature value",
                     "type": "string",
                     "format": "base64"
                 },
                 "sb_hash": {
                     "description": "Hash of the Signed Bytes",
                     "type": "string",
                     "format": "base64"
                 },
                 "id": {
                     "description": "Signature ID reference",
                     "type": ["string","null"]
                 }
             },
            "additionalProperties": false
         },
         "SignedDataReference": {
             "type": "object",
             "required": [
                 "ref",
                 "hash"
             ],
             "properties": {
                 "ref": {
                     "description": "Reference to the signed data",
                     "type": "string"
                 },
                 "hash": {
                     "description": "Signed data hash",
                     "type": "string",
                     "format": "base64"
                 }
             },
            "additionalProperties": false
         },
         "CertReference":{
             "type": "object",
             "required": [
                 "type",
                 "ref"
             ],
             "properties": {
                 "type": {
                     "description": "Type of certificate reference",
                     "type": "string",
                     "enum": ["chain","chain_hash"]
                 },
                 "ref": {
                     "description": "Certificate reference data",
                     "type": "array",
                     "items": {
                         "type": "string",
                         "format": "base64"
                     },
                     "minItems": 1
                 }
             },
            "additionalProperties": false
         },
         "PolicyValidation":{
             "type": "object",
             "required": [
                 "pol",
                 "res"
             ],
             "properties": {
                 "pol": {
                     "description": "Policy identifier",
                     "type": "string"
                 },
                 "res": {
                     "description": "Signature validation result",
                     "type": "string",
                     "enum": ["PASSED","FAILED","INDETERMINATE"]
                 },
                 "msg": {
                     "description": "Message",
                     "type": ["string","null"]
                 },
                 "ext": {
                    "description": "Extension map",
                    "$ref": "#/$def/Extension"
                }
             },
            "additionalProperties": false
         },
         "TimeValidation":{
             "type": "object",
             "required": [
                 "time",
                 "type",
                 "iss"
             ],
             "properties": {
                 "time": {
                     "description": "Verified time",
                     "type": "integer"
                 },
                 "type": {
                     "description": "Type of time validation proof",
                     "type": "string"
                 },
                 "iss": {
                     "description": "Issuer of the time proof",
                     "type": "string"
                 },
                 "id": {
                     "description": "Tiem evidence identifier",
                     "type": ["string","null"]

                 },
                 "val": {
                     "description": "Validation result",
                     "type": "array",
                     "items": {
                         "$ref": "#/$def/PolicyValidation"
                     }
                 },
                 "ext": {
                    "description": "Extension map",
                    "$ref": "#/$def/Extension"
                }
             },
            "additionalProperties": false
         },
         "Extension": {
           "description": "Extension map",
           "type": ["object","null"],
           "required": [],
           "additionalProperties": {
               "type": "string"
           }
         }
     }
}
]]></artwork></figure>

</section>
</section>
<section anchor="appendix-examples"><name>Appendix: Examples</name>

<t>The following example illustrates a basic SVT according to this specification
issued for a signed PDF document.</t>

<t>Note: Line breaks in the decoded example are inserted for readablilty. Line
breaks are not allowed in valid JSON data.</t>

<t>Signature validation token JWT:</t>

<figure><artwork><![CDATA[
eyJraWQiOiJPZW5JKzQzNEpoYnZmRG50ZlZcLzhyT3hHN0ZrdnlqYUtWSmFWcUlG
QlhvaFZoQWU1Zks4YW5vdjFTNjg4cjdLYmFsK2Z2cGFIMWo4aWJnNTJRQnkxUFE9
PSIsInR5cCI6IkpXVCIsImFsZyI6IlJTNTEyIn0.eyJhdWQiOiJodHRwOlwvXC9l
eGFtcGxlLmNvbVwvYXVkaWVuY2UxIiwiaXNzIjoiaHR0cHM6XC9cL3N3ZWRlbmNv
bm5lY3Quc2VcL3ZhbGlkYXRvciIsImlhdCI6MTYwMzQ1ODQyMSwianRpIjoiNGQx
Mzk2ZjFmZjcyOGY0MGQ1MjQwM2I2MWM1NzQ0ODYiLCJzaWdfdmFsX2NsYWltcyI6
eyJzaWciOlt7ImV4dCI6bnVsbCwic2lnX3ZhbCI6W3sibXNnIjoiT0siLCJleHQi
Om51bGwsInJlcyI6IlBBU1NFRCIsInBvbCI6Imh0dHA6XC9cL2lkLnN3ZWRlbmNv
bm5lY3Quc2VcL3N2dFwvc2lndmFsLXBvbGljeVwvdHMtcGtpeFwvMDEifV0sInNp
Z19yZWYiOnsic2lnX2hhc2giOiJ5Y2VQVkxJemRjcEs5N0lZT2hGSWYxbnk3OUht
SUNiU1Z6SWVaTmJpem83ckdJd0hOTjB6WElTeUtHakN2bm9uT2FRR2ZMXC9QM3ZE
dEI4OHlLU1dlWGc9PSIsImlkIjoiaWQtNzM5ODljNmZjMDYzNjM2YWI1ZTc1M2Yx
MGY3NTc0NjciLCJzYl9oYXNoIjoiQm9QVjRXQ0E5c0FJYWhqSzFIYWpmRnhpK0F6
QzRKR1R1ZjM5VzNaV2pjekRDVVJ4ZGM5WWV0ZUh0Y3hHVmVnZ3B4SEo3NVwvY1E3
SE4xZERkbGl5SXdnPT0ifSwic2lnbmVyX2NlcnRfcmVmIjp7InJlZiI6WyIxK2Fh
SmV0ZzdyZWxFUmxVRFlFaVU0WklaaFQ0UlV2aUlRWnVLN28xR0ZLYVRQUTZ5K2t4
XC9QTnREcnB1cVE2WGZya0g5d1lESzRleTB5NFdyTkVybnc9PSIsImg0UER4YjVa
S214MWVUU3F2VnZZRzhnMzNzMDVKendCK05nRUhGVTRnYzl0cUcwa2dIa2Y2VzNv
THprVHd3dXJJaDZZOUFhZlpZcWMyelAycEUycDRRPT0iLCJEZDJDNXNCMElPUWVN
Vm5FQmtNNVE5Vzk2bUJITnd3YTJ0elhNcytMd3VZY09VdlBrcnlHUjBhUEc4Tzlu
SVAzbGJ3NktqUTFoRG1SazZ6Qzh4MmpkZz09Il0sInR5cGUiOiJjaGFpbl9oYXNo
In0sInNpZ19kYXRhX3JlZiI6W3sicmVmIjoiIiwiaGFzaCI6IkZjR3BPT2Y4aWxj
UHQyMUdEZDJjR25MR0R4UlM1ajdzdk00YXBwMkg0MWRERUxtMkN6Y2VUWTAybmRl
SmZXamludG1RMzc2SWxYVE9BcjMxeXpZenNnPT0ifSx7InJlZiI6IiN4YWRlcy0x
MWExNTVkOTJiZjU1Nzc0NjEzYmI3YjY2MTQ3N2NmZCIsImhhc2giOiJLUmtnYlo2
UFwvbmhVNjNJTWswR2lVZlVcL0RUd3ZlWWl0ZVFrd0dlSnFDNUJ6VE5WOGJRYnBl
ZFRUdVdKUHhxdkowUlk4NGh3bTdlWVwvZzBIckFPZWdLdz09In1dLCJ0aW1lX3Zh
bCI6W119XSwiZXh0IjpudWxsLCJ2ZXIiOiIxLjAiLCJwcm9maWxlIjoiWE1MIiwi
aGFzaF9hbGdvIjoiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMVwvMDRcL3htbGVu
YyNzaGE1MTIifX0.TdHCoIUSZj2zMINKg7E44-8VE_mJq6TG1OoPwnYSs_hyUbuX
mrLJpuk8GR5YrndeOucPUYAwPxHt_f68JIQyFTi0agO9VJjn1R7Pj3Jt6WG9pYVN
n5LH-D1maxD11ZxxbcYeHbsstd2Sy2uMa3BdpsstGdPymSmc6GxY5uJoL0-5vwo_
3l-4Bb3LCTiuxYPcmztKIbDy2hEgJ3Hx1K4HF0SHgn3InpqBev3hm2SLw3hH5BCM
rywBAhHYE6OGE0aOJ6ktA5UP0jIIHfaw9i1wIiJtHTaGuvtyWSLk5cshmun9Hkdk
kRTA75bzuq0Iyd0qh070rA8Gje-s4Tw4xzttgKx1KSkvy8n5FqvzWdsZvclCG2mY
Y9rMxh_7607NXcxajAP4yDOoKNs5nm937ULe0vCN8a7WTrFuiaGjry7HhzRM4C5A
qxbDOBXPLyoMr4qn4LRJCHxOeLZ6o3ugvDOOWsyjk3eliyBwDu8qJH7UmyicLxDc
Cr0hUK_kvREqjD2Z
]]></artwork></figure>

<t>Decoded JWT Header:</t>

<figure><artwork><![CDATA[
{
  "kid":"OenI+434JhbvfDntfV\/8rOxG7FkvyjaKVJaVqIFBXohVhAe5fK8anov
         1S688r7Kbal+fvpaH1j8ibg52QBy1PQ==",
  "typ":"JWT",
  "alg":"RS512"
}
]]></artwork></figure>

<t>Decoded JWT Claims:</t>

<figure><artwork><![CDATA[
{
  "aud" : "http://example.com/audience1",
  "iss" : "https://swedenconnect.se/validator",
  "iat" : 1603458421,
  "jti" : "4d1396f1ff728f40d52403b61c574486",
  "sig_val_claims" : {
    "sig" : [ {
      "ext" : null,
      "sig_val" : [ {
        "msg" : "OK",
        "ext" : null,
        "res" : "PASSED",
        "pol" : "http://id.swedenconnect.se/svt/sigval-policy/
                 ts-pkix/01"
      } ],
      "sig_ref" : {
        "sig_hash" : "ycePVLIzdcpK97IYOhFIf1ny79HmICbSVzIeZNbizo7rGIw
                      HNN0zXISyKGjCvnonOaQGfL/P3vDtB88yKSWeXg==",
        "id" : "id-73989c6fc063636ab5e753f10f757467",
        "sb_hash" : "BoPV4WCA9sAIahjK1HajfFxi+AzC4JGTuf39W3ZWjczDCURx
                     dc9YeteHtcxGVeggpxHJ75/cQ7HN1dDdliyIwg=="
      },
      "signer_cert_ref" : {
        "ref" : [ "1+aaJetg7relERlUDYEiU4ZIZhT4RUviIQZuK7o1GFKaTPQ6y+
                   kx/PNtDrpuqQ6XfrkH9wYDK4ey0y4WrNErnw==",
                  "h4PDxb5ZKmx1eTSqvVvYG8g33s05JzwB+NgEHFU4gc9tqG0kgH
                   kf6W3oLzkTwwurIh6Y9AafZYqc2zP2pE2p4Q==",
                  "Dd2C5sB0IOQeMVnEBkM5Q9W96mBHNwwa2tzXMs+LwuYcOUvPkr
                   yGR0aPG8O9nIP3lbw6KjQ1hDmRk6zC8x2jdg==" ],
        "type" : "chain_hash"
      },
      "sig_data_ref" : [ {
        "ref" : "",
        "hash" : "FcGpOOf8ilcPt21GDd2cGnLGDxRS5j7svM4app2H41dDELm2Czc
                  eTY02ndeJfWjintmQ376IlXTOAr31yzYzsg=="
      }, {
        "ref" : "#xades-11a155d92bf55774613bb7b661477cfd",
        "hash" : "KRkgbZ6P/nhU63IMk0GiUfU/DTwveYiteQkwGeJqC5BzTNV8bQb
                  pedTTuWJPxqvJ0RY84hwm7eY/g0HrAOegKw=="
      } ],
      "time_val" : [ ]
    } ],
    "ext" : null,
    "ver" : "1.0",
    "profile" : "XML",
    "hash_algo" : "http://www.w3.org/2001/04/xmlenc#sha512"
  }
}
]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
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
pf9in9vF4XX7+Wjnrua1nU58Zr00yr3R/qRdPmk2y49XMJ3bq8pjzbBr9a3r
M++yU7K9u9P+PhHWyHuhtb+7jRtvV9vXVe+5Aet0VX14azxflR/u6qXHdr8E
f8Eynj5UGu1+sfHcp6V68PaDh/tGgB3cjvZvu8/N+9tibbtfPDl/uBt+ab2d
1B/uxqOmPxxfFE92jNu35kWz1CxB/9vdt4bVLY+fnZdmtds933o8vdq+u+sW
HzvD4gMwU3fU9R8rR1utWlBpINWWahWjVdt6faw1XwDb2617279pF91Bi9FA
b9SdA9F4fb856I+6o/rzeBeX+9EFupjXXy/KJ0OjNYIR3mxYideTzui12zzx
Tqxup3j34lnWyW2x43XLVsdr3vndy0Z577VZfLx86DZvO+3H7YtyvGUgNtt+
s9b3j0r9bq18d/o4t4pP23bJq7Xemp7TPtpunNjz9kt33vMFkp+KnVpz6+G5
axmtcmnr6q7b6VROyjDDx+bb0L96A9xXuxcgi48vitt+szM87bab/sObV+x3
+jOrbNetMlDJG1Bi+2wcds/sin1/fm5VHx+vOyfDR2/82L+7mjve4bxf68z7
1WYTcQOrVHusnlcb943jq5p307nrNozuaPvkdhQ3Gt0arMJLudc5r7d9u/LQ
Pi863rDRn8dXdqX7+FDc79reUdj3vbPO89GwU+tvtd+8idHqHr71Ts8rjZf4
S6d9EjRPSy3r7XHn9m24dTUavzy+FffrXpFJrdMOkvizdXoy7nF6MUBcEVMA
T6AgGd5X+DIB+7KlC1ySTKcnbxaJvcfnZuXopl1+APn4+mx0zkDKdGyc23Oz
vH3VLDa3Ot5VyXq23+yXYvHh/mh29fJUvLpr1pqd1/jqpbED6OvctQ/nvVHT
Azp4vLdG3sQ+LTWv3vrl1t3rQ7e2f9R/vnp17sePjt/gxPUqiajuNkB6N0F+
FIEX7mqvjXb35bp97j4+gyh5Q76ovT2M6pWH54fyVfsWpASwEklryeqXnVHs
P3hB2eiAgOiNht3Gc+O8fRfNmmWv++iBcCk2O3bl0bu784qP3ZPQLtpeyz+p
NjrnO7Bgd9en580H/8gzHk/gw6590TkbvtovwazjvWw1ToeVXhvYGxjm8e2o
3n85Aa1lX9q4In7JBnooWnclD+WlQQKzVNq/BwZ6vB8WgWEm9t1rBB+VH+/r
AG799fL5EIlo1h/tjwDzHq7MXa10hatj0PKc7IM+sKdSgVTH/csSyMGKXbn0
+2+XIxB78Pvq+XB21UWZ2AT5OYx7p92J8TBvvFmn0F277g7uixtt++w4qHda
j8/lN/D/L552a1tbhb1u7bfR+Zed9mnpOriZ+Q+t6LfhvNOb3Buj8PJ8PHnZ
O21uP4S+7VxP+jedh8PZzetZ/NtgZ++8fjs/abtF6+l6v3v+7JeauzfPlfN4
5+50f/wAvOBvX54VqqWR9VotlR5fX3v9B+esF0WxXW7Ny5Mrq3Jkj+HnqX0z
H7VG/Z3T14ftyXlwWSxsT2fBb0bFK2wd9SqXx2138vpw0x+9xRf1XnVeHtae
zitnr6WLrbOTYuvsya/U/fGXI2daGY7KrcsZiLjto+MrI5zPjg6HZw+1nevT
WtG6Pt95iQ+3OzfF53r9bGDN9t3SrO6ex2dt63Qyjed3rcuX7X40HE38/bMX
+8V4abYPd7d7b5MvxfrcLn4ZFneL4eHe6bNTiLbas63Xtzh+ugBAWi/T+Z6/
ffJl+nZnR4/Tvnd8Wh49GA/74dXr8LfdneJu477/aj0f3mzNq9fBRSPa9kf7
ld3OpVOcHjf2rN27dngyAbZ8Due7Z8O35tXW8fah8eW1V70+ur+5nAdX4dYX
f+uyeX589nrtXD7uBJXJ07R6fX0XzZ9fKo7nzo9m1cnel/Oz3c5o7vYvX6t9
4zgsDjsXv71Mm7Uvz9XyIzNPq9z8w1RQdq7mIEnFpTMYB2vXjl//y1Zl63zY
mw6qfjzo/mNzL7x+Pd09gdk+Wxfdc6v7pX5ydB8Mu8NDZ3twsWf5wTQxikut
nb29cPeiZ3l/GUzH1lnpec/tPW2Xb4/mpZvbn38mox4tbBgOQGE/Le8JfjZb
26XymjCnVXjZIQAVXkzrNHnW8MHmJrdpN/rBaNPi2Zwl1jc63uJLzC9euKmK
m6tByL+3Yvy+tFOsbG3vbZVL9BSTbLGXLbtU2d8ZlAaD3fLeYKtob5e3ipXe
Tqm/vbu1tbfD+kglTZrCyWD1WMEzkU4H+XnwBF0Z4a3IvAjtSx6VQyCuL9Sc
4YweeGjSTFLilTcYQVVQl3d5FwABMBTY1eGbiz5lHBXGL+7rZrEkHKRvSewo
OaqspSonR49h/Hnfuele1t/s/vhif7f+cD08qQ9K/nx3/2xUP+61um9157HR
c9+C3fC0PsvxxM8ajeLbfb01vzh9Pp76gX9t3Z4OLjdvKtNqfLS3N79o3Tn3
T5zwOBwuIx7XLuxW9vf2+zuDfnGnAv+xetvO7nZlUCoOdmFBd3a15OxeAvxR
cNPdujs+3I8O69bw+aJ0Zj0PTl7dvxy+HW+dn7Yng8r+Hdi7z/236nGn+ZoN
vd3ff3Bi5yzuv552naen8evZ+e72Zv9296xRsqs28Hd9hrALDKv41U9Banjm
T34x10p/saxzJ37aDR2v1vQ61Yea29l6rD8O21vNztSt3z5OLnaD0unJhdW+
ud2Z/yUL0pfXzZtGXA3Hky+3O/eD8OVsf/ZQvdhy5sX51l3YqIX+TMNw8s/a
cOum+trbfrwYvZacduvLtDt9ON17qlSi4vb52+zoL42n2tlJZ+upvx9/OS2+
PJ1lQjAAcya4fHtpz2aTsD7cedg/tAaPD1/65beb8rhWHm/d5kFQtcvH29FR
sX5961x1/drRy9X27f7d/s7o6KwxA3Mwfru/iv5yOZs89K8705uXMAuC+Wmz
aN2c7l3v+/Wbiteb7Vw835aG1VHzZefteO+1/GzjSqnxU36G9SB9wGVhKZM8
tzTLi8wylQ4lEZ70T8fX14M91+vfxOXSKUy0f+pfnlZfQZQ+70bTqy1rPC6f
bQEt1S5H5eO3fsbMnPZDsQza/nxw9+z68ei2sgsO3X37+jCslOZvD2+RRoFZ
0P1E9/oWSiWrtL1t75d7g+3tXWCfUqXX2+3t7JS2dnf7AztzEhfNl6fe487N
pj/s7FTqVy/FU7cz6GxW27Op8+DGzu3L7NQ5/3K8ffTWbnT3ere9jEmMHbvd
ntyd37x+mZ4Xmw97W8PZaNd52HwqnoWH187TxUyZhCKoZEYVYZ7tScj3i7KV
Mr0RbLzAkT+SdSIO2GVQ/HGSAq1I2/QdjsUtvOcZhO9P0dAi9ZdElP4vAXpb
91/0AAA=

-->

</rfc>

