<?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 RFC3125 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3125.xml">
<!ENTITY RFC3126 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3126.xml">
<!ENTITY RFC3161 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3161.xml">
<!ENTITY RFC3647 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3647.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-07" 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="May" day="16"/>

    <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 may no longer be considered secure at the time of validation and may therefore no longer be available in software libraries.</t>
  <t>Services necessary to validate the signature are no longer available at the time of validation.</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 may simply be 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 extend the time within which a signature can be
validated at the cost of significant complexity which involves storing and
validating significant amounts of external evidence data such as revocation data,
signature time stamps and archival time stamps.</t>

<t>The Signature Validation token (SVT) defined in this specification takes a
trusted signature validation process as an input and preserves the validation result
for the associated signature and signed document. 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. Those procedures MUST include checks
that the signature match the signed document, checks that the signature can be validated by
the signing certificate and checks that the signing certificate pass certificate
path validation <xref target="RFC5280"/>.
Those procedures MAY also include checks associated with a particular trust policy such as
that an acceptable certificate policy <xref target="RFC5280"/> <xref target="RFC3647"/> was used to issue the
signer's certificate and checks that an acceptable signature policy was used by
the signer <xref target="RFC3125"/> <xref target="RFC3126"/>.</t>

<t>Once the SVT is issued by a trusted
authority, any future validation of that electronic signature can be satisfied by validating
the SVT, without any need to also re-validate the original electronic signature.</t>

<t>As SVT is used to preserve validation result obtained through applying existing
standards for signature validation, it is complementary to and not a replacement for such standards,
including the ETSI standards for long term validation listed above.
SVT do however have the potentially positive effect that it may significantly reduce the need to
apply complex long-term validation and preservation techniques for signature validation
if an SVT is issued and applied to the signed document at an early stage where the signature
can be validated without support of large amounts of external evidence.
The use of SVT may therefore drastically reduce the complexity of re-validation of old
archived electronic signatures.</t>

<t>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 the result of electronic signature
validation using a well-defined and trustworthy signature validation process
to make it possible to verify which signature, signed document and signer
certificate that is bound to this signature validation result, without having to
re-validate the original signature or to re-use any of its associated cryptographic
algorithms. 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;
&RFC3125;
&RFC3126;
&RFC3161;
&RFC3647;
&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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
dvkY1PJvNBChnoQFD5n+jY9PEMuccNzN/GkFv6XsohX51Zr6Ge9yLa9PeqqA
CGCzD2kx/0bkIvNhGIfIRB1h/LMCZIsqj2qJSSjjxU5fehPQ0raYwiWuQBiw
2+Iksab3lqhJhZkCQ9hJTj3xWB0gFlV96/JScWIUVfKCPPhp5Xwmfzccwnex
WEQ8St3HsZ2vO+UC5WkpLml+Wvk0Pwpvtozw0s/YP+7spOTe7HkX3slpr3zl
nR2cDPsAbcVq3qU9rr2ny/9cy4NX0NXiqdI7gRb9Q05aaJOdq+EO5iTrJuS3
T+jpiKhIAc1cIkV0elAry3p2Hru4WdhSSrSEXROdVS8LTnbN62l0ue1hyCNA
PPAsAva05ydu4qZYHo+Nh5G4DvRJzo2fJZF7hUq7Is1Ga6DNJ9OUV/iju1S5
UkOXWZk/dvNOezIWSaESoHcagGnZblFx0IvF4QWY0GHI7sijxqJCYhT2J3ES
uPH8Fm2OwhbyRsTzhqB11at81dLhCuKUAxQaJnJ9c3SqdJrDXmTpaCQ/pDq2
N8lddiWPBkSDTC9jX/MIVSHNO3uVV5Uxh4zaeSLGuShZMZN7uMIbii1dGaDm
eaUA00oxBS+VXelRGMpe4FOSXkxa9AHDMUoCbdrDAoB4QocA6HN7vijKlxTM
1CgRXjV5uiuesyKy8htOITW1uIjWlmYVQ5TqgQ6CAQPsso80/V638xmWRIgc
W/aXNdSvyVMYgt2Wp/HBZ2zA9Mq8D5yGT4dpzSwgZQpSsfjhPJxfioa+kiL1
ZOFaug4tX7qa715I9P/RXhWxaplFgP2pa8uLc8iVlfEBjh29Cpfir2Z8mXkM
Ml0+N+iS7G2dhIgI+TJqJyHpyowsRenh7WXAM0LJoRJWDYQtuWRz5wM9i/Ku
4gJt7E7tKKW+9MqhJLKCWDmUrV/hptySSdsFgh7ZLhXfg+ImkXpkRVseFg3r
4ZtFSuINfGlEG9FRPLGBpcQ5FbqNCsomV0q+8QcFkZrvJIk27yDgF05sCdnq
c2nji/oSmojr/xXajWN1H9LTRSvybjjxniLOoi2Je1bNOk/zadezcZ9RPY6k
JYoxvcfqE0dEPoK6tXMi4qZHQhS/min/QI0S4FOnwGXk7zyPRfAvPv+jZVd9
yhwKQeLSD4WIwyNtvily6s4UWZpqeb5pUnh0Z7miVD01khNQHfF8BClY+aRS
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
+PuRHfjH3Yf9Ybdur3de/InR7u299I9Oqs3H5Gu3cxi2jspt6+Vu8+pluH4+
Gj/evZR2Gn6JSa2jLpL4g3V0OO5zejFAXBFTAE+gIBneVPkyAfuypQs9kkxH
hy8Wib27h1Z1/7JTuQX5+PxgdI9BynQdnNtDq7Jx3iq11rv+edl6cF6cx1Lp
9mb/6fzxvnR+3aq3us/J+WNzE9DXve7szfqjlg90cHdjjfyJc1Runb/Ylfb1
822vvrNvP5w/uzfjOzdocuJ6lkTU8JogvVsgP0rAC9f152an93jROfHuHkCU
vCBf1F9uR43q7cNt5bxzBVICWImktWT1s+4oCW79sGJ0QUD0R8Ne86F50rmO
n1oVv3fng3AptbpO9c6/vvZLd73DyCk5fjs4rDW7J5uwYNcXRyet22DfN+4O
4cOec9o9Hj47j+FT139cbx4Nq/0OsDcwzN3LfsN+PASt5Zw5uCJB2QF6KFnX
ZR/lpUECs1zeuQEGursZloBhJs71cwwfVe5uGgBu4/nsYQ+J6Mke7YwA8z6u
zHW9fI6rY9DyHO6APnCmUoHUxvZZGeRg1ameBfbL2QjEHvw+f9h7Ou+hTGyB
/Bwm/aPexLidNV+sI+iu0/AGN6Vixzk+CBvd9t1D5eW80Ty936qvrxe2e/Vf
RydfNztH5Yvw8im4bce/Dmfd/uTGGEVnJ+PJ4/ZRa+M2Chz3YmJfdm/3ni6f
j5NfB5vbJ42r2WHHK1n3Fzu9k4eg3Nq6fKieJJvXRzvjW+CFYOPsuFArj6zn
Wrl89/zct2/d434cJ06lPatMzq3qvjOGn0fO5WzUHtmbR8+3G5OT8KxU2Jg+
hb8aVb+wvt+vnh10vMnz7aU9eklOG/3arDKs359Uj5/Lp+vHh6X28X1QbQTj
r/vutDocVdpnTyDiNvYPzo1o9rS/Nzy+rW9eHNVL1sXJ5mOyt9G9LD00GscD
62nHKz81vJPkuGMdTabJ7Lp99rhhx8PRJNg5fnQejcdWZ29ro/8y+VpqzJzS
12FpqxTtbR89uIV4vfO0/vySJPenAEj7cTrbDjYOv05frp34bmr7B0eV0a1x
uxOdPw9/3dosbTVv7GfrYe9yfVa7CE+b8UYw2qludc/c0vSguW1tXXeiwwmw
5UM02zoevrTO1w829oyvz/3axf7N5dksPI/WvwbrZ62Tg+PnC/fsbjOsTu6n
tYuL63j28Fh1fW+2/1SbbH89Od7qjmaeffZcs42DqDTsnv76OG3Vvz7UKnfM
PK1x8w/TWdnJod00nZhOmeyuXLhB4y/r1fWTYX86qAXJoPePte3o4vlo6xBm
+2Cd9k6s3tfG4f5NOOwN99yNwem2FYTT1Cgutze3t6Ot077l/2UwHVvH5Ydt
r3+/Ubnan5Uvr376iYx6tLBhOACF/bT8e/jZam+UKyvCnFbhZcccVHgxNdXk
mc+7a2vcpi3a4WjN4hmpZdY3Bg/El5gjPXcXFzdXw4h/D84qfF/eLFXXN7bX
K2V6ionC2Mu6U67ubA7Kg8FWZXuwXnI2Kuulan+zbG9sra9vb7I+MomfpnAy
WMVZ8Eyk00F+HjxBV0Z4KzK3Q/uSRxYRiItTNe85pwceXjXTpH/lDUaBFdQt
up4MgAAYCuxy9LV5nzKJC+NH73mtVBYO0msa/0oPY2vp1unhahh/ZruXvbPG
i2OPT3e2GrcXw8PGoBzMtnaOR42Dfrv30nDvmn3vJdyKjhpPCzzx42az9HLT
aM9Ojx4OpkEYXFhXR4OztcvqtJbsb2/PTtvX7s09JzwOh8eIx3MKW9Wd7R17
c2CXNqvwH6u/4W5tVAfl0mALFnRzS0sw76fA74eXvfXrg72deK9hDR9Oy8fW
w+Dw2fvL3svB+slRZzKo7lyDvftgv9QOuq3nfOgde+fWTdzjxH4+6rn39+Pn
45OtjTX7auu4WXZqDvB34wlhFxhW8auf89TwzJ/8bK6U/2JZJ25yvxW5fr3l
d2u3da+7fte4G3bWW92p17i6m5xuheWjw1Orc3m1OftLHqSPz2uXzaQWjSdf
rzZvBtHj8c7Tbe103Z2VZuvXUbMeBU8ahtN/Vobrl7Xn/sbd6ei57HbaX6e9
6e3R9n21Gpc2Tl6e9v/SvK8fH3bX7+2d5OtR6fH+OBeCAZgz4dnLY+fpaRI1
hpu3O3vW4O72q115uayM65Xx+tUiCGpO5WAj3i81Lq7c815Q338837jaud7Z
HO0fN5/AHExebs7jv5w9TW7ti+708jHKg2B21CpZl0fbFztB47Lq9582Tx+u
ysPaqPW4+XKw/Vx5cHCl1BgwP6W7mz3CM7eUaa5eluVFdpxKh5IID+2j8cXF
YNvz7cukUj6CidpHwdlR7RlE6cNWPD1ft8bjyvE60FL9bFQ5eLFzZuZ2bksV
0PYng+sHL0hGV9UtcOhuOhd7UbU8e7l9iTUKzIPuE91cXCiXrfLGhrNT6Q82
NraAfcrVfn+rv7lZXt/asgdO7iROW4/3/bvNy7Vg2N2sNs4fS0ded9Bdq3We
pu6tl7hXj09H7snXg439l06zt92/6udMYuw6nc7k+uTy+ev0pNS63V4fPo22
3Nu1+9JxtHfh3p8+KZNQBJXMCiPMs30V+X5etlK2OoKNV1TyR7ISxi677oo/
TtO4FWmbvaWytI43WYPw/RQPLVJ/aUTp/wFYDrzrZPoAAA==

-->

</rfc>

