Skip to content
Draft
Show file tree
Hide file tree
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
4 changes: 3 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
export * from './IssuerHelp';
export * from './src/IssuerHelp';
export * from './src/ExpirationDateHelp';
export * from './src/RegistryHelp';
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
"name": "@digitalcredentials/vc-help-react",
"description": "React components providing contextual help content (text/images) for Verifiable Credentials",
"version": "1.0.0",
"scripts": {
},
"type": "module",
"module": "./index.js",
"exports": {
Expand Down
15 changes: 15 additions & 0 deletions src/ExpirationDateHelp.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export const ExpirationDateHelp = () => {
return <>
<p>This is mostly straightforward - the credential is considered 'expired' once the given date has passed.</p>
<p>The date is set directly in the Verifiable Credential.</p>
<p>For version 1 Verifiable Credentials, the date is set like so:</p>
<pre>"expirationDate": "2025-01-09T16:23:24Z"</pre>
<p>For version 2 Verifiable Credentials, the date is set like so:</p>
<pre>"validUntil": "2025-01-09T16:23:24Z"</pre>

<p>One nuance, though, is that sometimes a credential is still useful even though it has expired. An expired driver's licence, for
example, can still be used to prove our age. Or to prove that we were in fact authorized to drive during a given period,
which might be useful when applying for a job that requires some number of years of driving experience.
</p>
</>
}
5 changes: 1 addition & 4 deletions src/IssuerHelp.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
export const IssuerHelp = () => {
return <>
<p>The issuer is the person or institution that issued the Verifiable Credential.
This might be, for example, a university that has granted a degree to a student
and subsequently then issued a Verifiable Credential attesting that the student did earn the degree.</p>
<p>The issuer usually also signs the credential, but in some cases a third party might sign on the issuer's behalf.</p>
<p>The issuer is the person or institution that issued the Verifiable Credential, for example, a university that gives students Verifiable Credentials confirming their graduation.</p>
<p>Fundmentally important is that to trust anything signed by an issuer,
the DID (Decentralized Identififer) used to
sign the credential must be known to us in some way. That might be because
Expand Down
21 changes: 21 additions & 0 deletions src/RegistryHelp.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
export const RegistryHelp = () => {
return <>
<p>To know who issued a <a href="https://w3c.github.io/vc-data-model/">Verifiable Credential</a> we must
know who controls the cryptographic key pair (a public key and a private key) used to sign the credential, which typically means
we must be told from a trustworthy source that the public key does in fact belong
to the claimed issuer. We can be told directly by the issuer themselves, which can be as a simple as saying, "Hey there, my DID is did:key:z6MkjoriXdbyWD25YXTed114F8hdJrLXQ567xxPHAUKxpKkS" or they might post it on their known
web site (e.g. mit.edu) so we can check it as needed, or they might add it to a registry so that it can be looked up along with the
keys of other issuers.
</p>
<p>It is fundamentally necessary that we are told in some trustworthy way that a public key does belong to the issuer. Without that knowledge,
fake key pairs could be used to sign fake credentials and we just wouldn't know.
</p>
<p>In this app, when verifying a credential, we look up public keys in a registry controlled by the Digital Credentials Consortium.
We don't, however, make any guarantees about the trustworthiness or legitimacy of the credentials - only that they
were signed by a key that has been registered in one of our registries. We make no guarantees because this is
strictly for demonstration purposes. A 'real' verifier would use a registry whose entries have been vetted and approved.
</p>
<p>A registry of keys controlled by the association of university registrars for a given coountry, for example,
could be used to verify digital degrees from accredited universities </p>
</>
}
5 changes: 5 additions & 0 deletions src/VCHelp.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const VCHelp = () => {
return <>
<p>A <a href="https://w3c.github.io/vc-data-model/">Verifiable Credential</a> is a cryptographically signed digital credential. </p>
</>
}