Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix grammar, punctuation, some whitespace #10

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 38 additions & 38 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1122,14 +1122,14 @@ <h2> Test Vectors</h2>
as step-by-step processes for how they are generated and how they are verified.
</p>
<p>
Throughout this section we will analyze two running examples, one a VCB securing
the MRZ of a Utopia Employment Authorization Document, and one a VCB securing
In this section we will analyze two running examples: a VCB securing
the MRZ of a Utopia Employment Authorization Document, and a VCB securing
the PDF417 of a Utopia Driver's License.
</p>
<section>
<h3>Creating VCBs</h3>
<p>
We start with the data that will be signed by the VCB (i.e an MRZ and
We start with the data that will be signed by the VCB (i.e., an MRZ and
mandatory AAMVA fields from a PDF417):
</p>
<pre class="example nohighlight"
Expand All @@ -1139,7 +1139,7 @@ <h3>Creating VCBs</h3>
S M I T H &#60 &#60 J O H N < < < < < < < < < < < < < < < < < < <
</pre>
<pre class="example nohighlight"
title="Fields from a PDF417 that might appear on a Utopia Driver's License">
title="Fields from a PDF417 that might appear on a Utopia Driver's License">
DACJOHN
DADNONE
DAG123 MAIN ST
Expand Down Expand Up @@ -1170,13 +1170,13 @@ <h4>

<p>
Assume for simplicity that the only data in the PDF417 that you want to sign is first
name (DAC), last name (DCS), and license number (DAQ). The bitstring value for use in
name (`DAC`), last name (`DCS`), and license number (`DAQ`). The bitstring value for use in
`protectedComponentIndex` is then |100000100000000000100000|, and the value of
`protectedComponentIndex` is "uggAg". Applying
`protectedComponentIndex` is "`uggAg`". Applying
<a href="#create-opticaldatabytes">Algorithm 3.5.4.1</a>, we get
</p>
<pre class="example nohighlight"
title="Data from the canonicalization of a Utopia Driver's License">
title="Data from the canonicalization of a Utopia Driver's License">
canonicalizedData = 'DACJOHN\nDAQ987654321\nDCSSMITH\n'
opticalDataBytes:
[188, 38, 200, 146, 227, 213, 90, 250,
Expand All @@ -1188,7 +1188,7 @@ <h4>
For the EAD, we apply <a href="#create-opticaldatabytes">Algorithm 3.5.4.2</a>:
</p>
<pre class="example nohighlight"
title="Data from the canonicalization of a Utopia EAD MRZ">
title="Data from the canonicalization of a Utopia EAD MRZ">
canonicalizedData = 'IAUTO0000007010SRC0000000701<<\n8804192M2601058NOT<<<<<<<<<<
&lt5\nSMITH<&#60JOHN<<<<<<<<<<<<<<<<<<<\n'
opticalDataBytes:
Expand All @@ -1199,7 +1199,7 @@ <h4>
</pre>
</section>
<p>
We now can use these hash values with
We can now use these hash values with
<a href="#hashing-ecdsa-xi-2023">Algorithm 3.5.3</a> to sign the VC.
Executing <a href="#credential-creation">Algorithm 3.2</a> with a
`BitstringStatusListCredential`, we get the following JSON-LD VCs:
Expand All @@ -1209,7 +1209,7 @@ <h4>
Example VCs
</h4>
<pre class="example nohighlight"
title="A JSON-LD VC for a Utopia Driver's License VCB">
title="A JSON-LD VC for a Utopia Driver's License VCB">
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
Expand Down Expand Up @@ -1240,7 +1240,7 @@ <h4>
}
</pre>
<pre class="example nohighlight"
title="A JSON-LD VC for a Utopia EAD VCB">
title="A JSON-LD VC for a Utopia EAD VCB">
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
Expand Down Expand Up @@ -1268,19 +1268,19 @@ <h4>
<section>
<h4>CBOR-LD Compression and Encoding</h4>
<p>
We can now apply CBOR-LD compression to these VCs. Here we use the newest
version of CBOR-LD, however at the end of the section we provide VCBs
We can now apply CBOR-LD compression to these VCs. Here, we use the newest
version of CBOR-LD; however, at the end of the section, we provide VCBs
encoded using older versions of CBOR-LD for interoperability testing
with CBOR-LD implementations that are not up to date.
</p>
<p>
For this specficiation, we have reserved the CBOR-LD registry entry
with value 100 (i.e. these payloads will begin with tag 0x0664). The parameters
with value `100` (i.e., these payloads will begin with tag `0x0664`). The parameters
to encode using CBOR-LD, which can be found in the registry in the CBOR-LD
specification, are then as follows:
</p>
<pre class="example nohighlight"
title="CBOR-LD encoding parameters">
title="CBOR-LD encoding parameters">
registryEntryId: 100
typeTable:
{
Expand All @@ -1302,7 +1302,7 @@ <h4>CBOR-LD Compression and Encoding</h4>
</pre>
This results in the following encoded credentials:
<pre class="example nohighlight"
title="A CBOR-LD compressed Utopia Driver's License VC">
title="A CBOR-LD compressed Utopia Driver's License VC">
d90664a60183198000198001198002189d82187618a418b8a3189c18a618ce18b218d01ae592208118baa2189c18a018a8447582002018be18aa18c0a5189c186c18d60418e018e618e258417ab7c2e56b49e2cce62184ce26818e15a8b173164401b5d3bb93ffd6d2b5eb8f6ac0971502ae3dd49d17ec66528164034c912685b8111bc04cdc9ec13dbadd91cc18e418ac

diagnostic:
Expand All @@ -1324,7 +1324,7 @@ <h4>CBOR-LD Compression and Encoding</h4>
)
</pre>
<pre class="example nohighlight"
title="A CBOR-LD compressed Utopia EAD VC">
title="A CBOR-LD compressed Utopia EAD VC">
d90664a50183198000198001198002189d82187618a418baa1189c18a218be18ae18c0a5189c186c18d20418dc18e218de58417a9ec7f688f60caa8c757592250b3f6d6e18419941f186e1ed4245770e687502d51d01cd2c2295e4338178a51a35c2f044a85598e15db9aef00261bc5c95a744e718e018b0

diagnostic:
Expand All @@ -1345,18 +1345,18 @@ <h4>CBOR-LD Compression and Encoding</h4>
)
</pre>
<p>
Encoding the Driver's License CBORLD as base64url and inserting the result into the
Encoding the Driver's License CBOR-LD as base64url and inserting the result into the
PDF417 bytes in the 'ZZA' field in the 'ZZ' subfile:
</p>
<pre class="example nohighlight"
title="Bytes from a PDF417 including an encoded Utopia Driver's License VCB">
title="Bytes from a PDF417 including an encoded Utopia Driver's License VCB">
bytes(@\n\x1e\rANSI000000090002DL00410267ZZ03080162DLDAQF987654321\nDCSSMITH\nDDEN\nDACJOHN\nDDFN\nDADNONE\nDDGN\nDCAC\nDCBNONE\nDCDNONE\nDBD01012024\nDBB04191988\nDBA04192030\nDBC1\nDAU069 IN\nDAYBRO\nDAG123 MAIN ST\nDAIANYVILLE\nDAJUTO\nDAKF87P20000 \nDCFUTODOCDISCRIM\nDCGUTO\nDAW158\nDCK1234567890\nDDAN\rZZZZA2QZkpgGDGYAAGYABGYACGJ2CGHYYpBi4oxicGKYYzhiyGNAa5ZIggRi6ohicGKAYqER1ggAgGL4YqhjApRicGGwY1gQY4BjmGOJYQXq3wuVrSeLM5iGEziaBjhWosXMWRAG107uT_9bSteuPasCXFQKuPdSdF-xmUoFkA0yRJoW4ERvATNyewT263ZHMGOQYrA==\r)
</pre>
<p>
Encoding the EAD CBORLD as base45 and prepending 'VC1-':
Encoding the EAD CBOR-LD as base45 and prepending 'VC1-':
</p>
<pre class="example nohighlight"
title="An encoded Utopia EAD VCB">
title="An encoded Utopia EAD VCB">
VC1-SJRPWCR803A3P0098G3A3-B02-J743853U53KGK0XJ6MKJ1OI0M.FO053.33963DN04$RAQS+4SMC8C3KM7VX4VAPL9%EILI:I1O$D:23%GJ0OUCPS0H8D2FB9D5G00U39.PXG49%SOGGB*K$Z6%GUSCLWEJ8%B95MOD0P NG-I:V8N63K53
</pre>
<p>
Expand Down Expand Up @@ -1405,32 +1405,32 @@ <h4>Decoding and Decompressing</h4>
We first read the data from the barcodes:
</p>
<pre class="example nohighlight"
title="Bytes from a PDF417 including an encoded Utopia Driver's License VCB">
title="Bytes from a PDF417 including an encoded Utopia Driver's License VCB">
bytes(@\n\x1e\rANSI000000090002DL00410267ZZ03080162DLDAQF987654321\nDCSSMITH\nDDEN\nDACJOHN\nDDFN\nDADNONE\nDDGN\nDCAC\nDCBNONE\nDCDNONE\nDBD01012024\nDBB04191988\nDBA04192030\nDBC1\nDAU069 IN\nDAYBRO\nDAG123 MAIN ST\nDAIANYVILLE\nDAJUTO\nDAKF87P20000 \nDCFUTODOCDISCRIM\nDCGUTO\nDAW158\nDCK1234567890\nDDAN\rZZZZA2QZkpgGDGYAAGYABGYACGJ2CGHYYpBi4oxicGKYYzhiyGNAa5ZIggRi6ohicGKAYqER1ggAgGL4YqhjApRicGGwY1gQY4BjmGOJYQXq3wuVrSeLM5iGEziaBjhWosXMWRAG107uT_9bSteuPasCXFQKuPdSdF-xmUoFkA0yRJoW4ERvATNyewT263ZHMGOQYrA==\r)
</pre>
<pre class="example nohighlight"
title="An encoded Utopia Driver's License EAD">
title="An encoded Utopia Driver's License EAD">
VC1-SJRPWCR803A3P0098G3A3-B02-J743853U53KGK0XJ6MKJ1OI0M.FO053.33963DN04$RAQS+4SMC8C3KM7VX4VAPL9%EILI:I1O$D:23%GJ0OUCPS0H8D2FB9D5G00U39.PXG49%SOGGB*K$Z6%GUSCLWEJ8%B95MOD0P NG-I:V8N63K53
</pre>
<p>
We extract the data after 'VC1-' and the data in field 'ZZA'
in subfile 'ZZ', undoing the base encoding:
</p>
<pre class="example nohighlight"
title="A CBOR-LD compressed Utopia Driver's License VC">
title="A CBOR-LD compressed Utopia Driver's License VC">
d90664a60183198000198001198002189d82187618a418b8a3189c18a618ce18b218d01ae592208118baa2189c18a018a8447582002018be18aa18c0a5189c186c18d60418e018e618e258417ab7c2e56b49e2cce62184ce26818e15a8b173164401b5d3bb93ffd6d2b5eb8f6ac0971502ae3dd49d17ec66528164034c912685b8111bc04cdc9ec13dbadd91cc18e418ac
</pre>
<pre class="example nohighlight"
title="A CBOR-LD compressed Utopia EAD VC">
title="A CBOR-LD compressed Utopia EAD VC">
d90664a50183198000198001198002189d82187618a418baa1189c18a218be18ae18c0a5189c186c18d20418dc18e218de58417a9ec7f688f60caa8c757592250b3f6d6e18419941f186e1ed4245770e687502d51d01cd2c2295e4338178a51a35c2f044a85598e15db9aef00261bc5c95a744e718e018b0
</pre>
<p>
We now decompress with CBOR-LD to get the original JSON-LD VCs to be
verified. Again, the parameters are associated with CBOR-LD
registry entry 100.
registry entry `100`.
</p>
<pre class="example nohighlight"
title="CBOR-LD decoding parameters">
title="CBOR-LD decoding parameters">
typeTable:
{
"context":
Expand All @@ -1450,7 +1450,7 @@ <h4>Decoding and Decompressing</h4>
}
</pre>
<pre class="example nohighlight"
title="A JSON-LD VC for a Utopia Driver's License VCB">
title="A JSON-LD VC for a Utopia Driver's License VCB">
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
Expand Down Expand Up @@ -1481,7 +1481,7 @@ <h4>Decoding and Decompressing</h4>
}
</pre>
<pre class="example nohighlight"
title="A JSON-LD VC for a Utopia EAD VCB">
title="A JSON-LD VC for a Utopia EAD VCB">
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
Expand Down Expand Up @@ -1509,14 +1509,14 @@ <h4>Decoding and Decompressing</h4>
<section>
<h4>Verifying</h4>
<p>
Again we apply <a href="#create-opticaldatabytes">Algorithm 3.5.4.1</a>
Again, we apply <a href="#create-opticaldatabytes">Algorithm 3.5.4.1</a>
and <a href="#create-opticaldatabytes">Algorithm 3.5.4.2</a> to create
the |opticalDataBytes| that `ecdsa-xi-2023` requires, using the
scanned PDF417 as input for the driver's license, and using the MRZ
on the EAD as input for the EAD:
</p>
<pre class="example nohighlight"
title="A canonicalization of a Utopia Driver's License PDF417">
title="A canonicalization of a Utopia Driver's License PDF417">
canonicalizedData = 'DACJOHN\nDAQ987654321\nDCSSMITH\n'
opticalDataBytes:
[188, 38, 200, 146, 227, 213, 90, 250,
Expand All @@ -1525,7 +1525,7 @@ <h4>Verifying</h4>
136, 125, 137, 165, 117, 63, 152, 207]
</pre>
<pre class="example nohighlight"
title="A canonicalization of a Utopia EAD MRZ">
title="A canonicalization of a Utopia EAD MRZ">
canonicalizedData = 'IAUTO0000007010SRC0000000701<<\n8804192M2601058NOT<<<<<<<<<<
&lt5\nSMITH<&#60JOHN<<<<<<<<<<<<<<<<<<<\n'
opticalDataBytes:
Expand All @@ -1550,7 +1550,7 @@ <h4>Status Checking</h4>
strings as values of |statusPurpose|.
</p>
<pre class="example nohighlight"
title="A BitstringStatusListEntry for status purpose: revocation">
title="A BitstringStatusListEntry for status purpose: revocation">
{
type: 'BitstringStatusListEntry',
statusListCredential: 'https://sandbox.platform.veres.dev/statuses/z19rJ4oGrbFCqf3cNTVDHSbNd/status-lists/revocation/29385',
Expand All @@ -1559,7 +1559,7 @@ <h4>Status Checking</h4>
}
</pre>
<pre class="example nohighlight"
title="A BitstringStatusListEntry for status purpose: suspension">
title="A BitstringStatusListEntry for status purpose: suspension">
{
type: 'BitstringStatusListEntry',
statusListCredential: 'https://sandbox.platform.veres.dev/statuses/z19rJ4oGrbFCqf3cNTVDHSbNd/status-lists/suspension/29385',
Expand All @@ -1569,19 +1569,19 @@ <h4>Status Checking</h4>
</pre>
<p>
These can then be validated as in the <a data-cite="VC-BITSTRING-STATUS-LIST#validate-algorithm">
Bitstring Status List v1.0: Validate Algorithm</a>.
Bitstring Status List v1.0: Validate Algorithm</a>.
</p>
</section>
</section>
<section>
<h3>
Legacy CBOR-LD encoded credentials
</h3>
For testing if a CBOR-LD implementation that is not fully up to date is used. The process remains
the same, with the exception of the CBOR-LD decoding step, for which the following |appContextMap|
The same process is used to test whether a CBOR-LD implementation that is not fully up to date
was used, with the exception of the CBOR-LD decoding step, for which the following |appContextMap|
should be used:
<pre class="example nohighlight"
title="A BitstringStatusListEntry for status purpose: suspension">
title="A BitstringStatusListEntry for status purpose: suspension">
appContextMap:
[['https://www.w3.org/ns/credentials/v2', 32768],
['https://w3id.org/vc-barcodes/v1', 32769],
Expand Down
Loading