<?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-05" 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="31"/>

    <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. In JWS, this is the unencoded payload data (before base64url encoding).</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. In JWS, this is the protected header and payload
data formatted according to <xref target="RFC7515"/>.</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 evidence of time asserting that the target signature existed at a particular
date and time in the past. Evidence of time is typically a timestamp according to <xref target="RFC3161"/> but other types of evidence may be used such as a previously issued SVT for this signature. The TimeValidation claims object 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>hash -- A Base64Binary data type that contains the hash value of the validated 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
  ? hash: binary-value / 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": "Time evidence identifier",
                     "type": ["string","null"]

                 },
                 "hash": {
                     "description": "Hash of time evidence",
                     "type": ["string","null"],
                     "format": "base64"
                 },
                 "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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
QNNCEUH0jauiYA3kaQSMjgiBZbOYKJbiLS2mFxBx15kFsHjpcT7OvVw3GbDw
QT92UKD1nTDkAj2SzbALpecNk/QfzBcIZMgoAXWtYY3gmQWL60ZSz5vWEEMA
CKAqD+j1EOQE6RtACeo4Qh92ZyycO7IsUFIMRPoYBlNN8BFUnNYBZCN7ZFx1
woVtBt0nGILDKhSZZpK4vgFqF0fQ2GC5amOAgVYCTwiE8AtK1zigOY0C0DQo
9DKU8oIZD60ZwARdOWiw4dRIwBirWEPmcmsoBm0DshasBGBN1JMoCQxUOwAf
wCnXk9txYsXB0mFWjybcsu0fbvAsNLAyJ50YWKrZZKpmU6YeXGZBLYJPtayM
TMvKTCwrTXltmNfMgpS2oAuSL2UJGoolaH3cIsM1U6wxM7HGDD7u+o8wx4ie
YCy54jY6OUAniEPgzTEqRBIwCUkD3PosAg85JeleldsoSpk4wfYmsqiQAhkG
poOmlo+qkR7xSRnafIY43SxGngZjDx7BN+HUjVBcAjtgF1JMI8ViH0YEVC/1
lpnoLUl+wiBmw5CkG4XuBGEA+cmcOCsxQ4jWxQAgqvqcNXD2ljQ3KMCh+EQb
YI2SBbgOEtGLXUQQDB6pCsYAyAPkS5AuaOKEKrSKxQdGg89BJzR0iWtx/Wyh
soF5Hh2z3jg0lKmso5oCKQPzwQ6EdseFBBb3PHcE1GCCjTRhpgMS+MANta+/
jkEwj4eA1b4z7woneOKrEKOHaD0CW4EWsOwJzkWKzTHRwyiY4kxB2fXC2Qjk
vuXNCA5rZHVdz41ddBFOxiEu9jrzNecYHLFo2Tb+z0VSxSArYNdwmeHJGXJM
Ecs+0GrGEiuEDLA7L6Ar7Tk9D7/XDbef2I0b6GiUUaK4bCvh2yeQL9Ebk91o
PeOmR2SuXbUazbV19m+zdk1/1yu3rWq9Usa/G2eHl5fyD/FF4+y6dQnvDf5X
0vL4+uqqUiuzxvDUTD26OrxfY6u4dn3TrF7XDi/XhIowZOQNbVumD13clRmF
DuE1AqUS9UK3y9TK0fHNv/vdaPTXwpZJxhEG7cE4or8xPv/2ZqCRz8YLfJAn
7Cd5SyBvHHCBoR+QNLisSDNgIqIYHwRT30RNKYSThAwYgi1d4HnBlAQHuFcR
eTsNxqpltK7A42syjwOZb0KGPslmxftepH5ImpvxbMSEoOF8HQNReDg814Zc
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
oF17qp03O9G0XvTaDx4Il3y9ZZcevE7Hyz+0T0I7b3sN/6Rca53vwIJ1rk/P
6/f+kWc8nMCHbfuidTZ4sZ+Dact73qqdDkrdJrA3MMzD61G193wCWsu+tHFF
/IIN9JC3OgUP5aVBArNQ2L8DBnq4G+SBYcZ25yWCj4oPd1UAt/py+XSIRDTt
DfeHgHkPV6ZTKVzh6hi0PCf7oA/siVQg5VHvsgBysGSXLv3e6+UQxB78vno6
nF61USbWQX4O4u5pe2zcz2qv1il016y6/bv8RtM+Ow6qrcbDU/H1qlq7eNyt
bG3l9tqVX4fnX3eap4Xr4Gbq3zeiXwezVnd8ZwzDy/PR+HnvtL59H/q2cz3u
3bTuD6c3L2fxr/2dvfPq7eyk6eatx+v99vmTX6jv3jyVzuOdzun+6B54wd++
PMuVC0PrpVwoPLy8dHv3zlk3imK72JgVx1dW6cgewc9T+2Y2bAx7O6cv99vj
8+Ayn9ueTINfjZKX2zrqli6Pm+745f6mN3yNL6rd8qw4qDyel85eChdbZyf5
xtmjX6r6o69HzqQ0GBYbl1MQcdtHx1dGOJseHQ7O7is716eVvHV9vvMcH263
bvJP1epZ35ruu4Vp1T2Pz5rW6XgSzzqNy+ftXjQYjv39s2f72XiuNw93t7uv
46/56szOfx3kd/Ph4d7pk5OLtprTrZfXOH68AEAaz5PZnr998nXy2rGjh0nP
Oz4tDu+N+/3w6mXw6+5Ofrd213uxng5vtmbl6+CiFm37w/3SbuvSyU+Oa3vW
bqcZnoyBLZ/C2e7Z4LV+tXW8fWh8femWr4/ubi5nwVW49dXfuqyfH5+9XDuX
DztBafw4KV9fd6LZ03PJ8dzZ0bQ83vt6frbbGs7c3uVLuWcch/lB6+LX50m9
8vWpXHxg5mmZm3+YzspODh0k6cR0yuRg7drxq3/ZKm2dD7qTftmP++1/bO6F
1y+nuycw2yfron1utb9WT47ugkF7cOhs9y/2LD+YJEZxobGztxfuXnQt7y/9
ycg6Kzztud3H7eLt0axwc/vTT2TUo4UNwwEo7KflPcLPemO7UFwT5rQKLzvm
oMKLqakmz3w+2NzkNu1GLxhuWjwjtcD6xuCB+BJzpOfu4uLmahDy78FZhe8L
O/nS1vbeVrFATzFRGHvZsgul/Z1+od/fLe71t/L2dnErX+ruFHrbu1tbezus
j1TipymcDFZxFjwT6XSQnwdP0JUR3orM7dC+5JFFBOL6Qs17zuiBh1fNJOlf
eYNRYAV1i64nAyAAhhy7HH1z3qeMo9zo2X3ZzBeEg/SWxL+Sw9haunVyuBrG
n/Wcm/Zl9dXujS72d6v314OTar/gz3b3z4bV426j/Vp1Hmpd9zXYDU+r0wWe
+Fmtln+9qzZmF6dPxxM/8K+t29P+5eZNaVKOj/b2ZheNjnP3yAmPw+Ey4nHt
3G5pf2+/t9Pv5XdK8B+ru+3sbpf6hXx/FxZ0Z1dLMO8mwB8FN+2tzvHhfnRY
tQZPF4Uz66l/8uL+5fD1eOv8tDnul/Y7YO8+9V7Lx636Szb0dm//3omds7j3
ctp2Hh9HL2fnu9ubvdvds1rBLtvA39Upwi4wrOJXP+ep4Zk/+dlcK/zFss6d
+HE3dLxK3WuV7ytua+uh+jBobtVbE7d6+zC+2A0KpycXVvPmdmf2lyxIn182
b2pxORyNv97u3PXD57P96X35YsuZ5WdbnbBWCf2phuHkn7XB1k35pbv9cDF8
KTjNxtdJe3J/uvdYKkX57fPX6dFfao+Vs5PW1mNvP/56mn9+PMuEoA/mTHD5
+tycTsdhdbBzv39o9R/uv/aKrzfFUaU42rpdBEHZLh5vR0f56vWtc9X2K0fP
V9u3+539neHRWW0K5mD8encV/eVyOr7vXbcmN89hFgSz03reujndu973qzcl
rzvduXi6LQzKw/rzzuvx3kvxycaVUmPA/JTuQfoIz9xSJrl6aZYX2XEqHUoi
POmdjq6v+3uu17uJi4VTmGjv1L88Lb+AKH3ajSZXW9ZoVDzbAlqqXA6Lx6+9
jJk5zft8EbT9eb/z5Prx8La0Cw7dXfP6MCwVZq/3r5FGgVnQfaKbi3OFglXY
3rb3i93+9vYusE+h1O3udnd2Clu7u72+nTmJi/rzY/dh52bTH7R2StWr5/yp
2+q3NsvN6cS5d2Pn9nl66px/Pd4+em3W2nvd227GJEaO3WyOO+c3L18n5/n6
/d7WYDrcde43H/Nn4eG183gxVSahCCqZFUaYZ/sq8v28bKVsdQQbr6jkj2Ql
jAN23RV/nKRxK9I2fUtlfgtvsgbh+ykaWKT+kojS/wNIH1oMLvcAAA==

-->

</rfc>

