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

Add transport protocols as a resource #92

Merged
merged 1 commit into from
Sep 28, 2023
Merged
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 data/Credential-Profile/DIIP.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "did:jwk"
"Key Management (Holder)": "did:jwk",
"Issuance Protocol": "OpenID4VCI",
"Presentation Protocol": "OpenID4VP"
}
4 changes: 4 additions & 0 deletions data/Issuance-Protocol/ACDC.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "../../viewer/src/schemas/Issuance-Protocol.json",
"Issuance Protocol": "ACDC"
}
4 changes: 4 additions & 0 deletions data/Issuance-Protocol/ISO-23220-3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "../../viewer/src/schemas/Issuance-Protocol.json",
"Issuance Protocol": "ISO 23220-3"
}
4 changes: 4 additions & 0 deletions data/Issuance-Protocol/Issue-Credential-v2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "../../viewer/src/schemas/Issuance-Protocol.json",
"Issuance Protocol": "Issue Credential v2"
}
5 changes: 5 additions & 0 deletions data/Issuance-Protocol/OpenID4VCI.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"$schema": "../../viewer/src/schemas/Issuance-Protocol.json",
"Issuance Protocol": "OpenID4VCI",
"Specification": "https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html"
}
5 changes: 5 additions & 0 deletions data/Presentation-Protocol/OpenID4VP.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"$schema": "../../viewer/src/schemas/Presentation-Protocol.json",
"Presentation Protocol": "OpenID4VP",
"Specification": "https://openid.net/specs/openid-4-verifiable-presentations-1_0.html"
}
4 changes: 4 additions & 0 deletions viewer/src/app/app.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ export type Resource =
| 'Revocation Algorithm'
| 'Key Management (Issuer)'
| 'Key Management (Holder)'
| 'Issuance Protocol'
| 'Presentation Protocol'
| 'Trust Management';
@Injectable({
providedIn: 'root',
Expand All @@ -20,6 +22,8 @@ export class AppService {
'Revocation Algorithm',
'Key Management (Issuer)',
'Key Management (Holder)',
'Issuance Protocol',
'Presentation Protocol',
'Trust Management',
];

Expand Down
9 changes: 9 additions & 0 deletions viewer/src/app/profile-config/profile-config.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ <h2>Profile configurator</h2>
[label]="'Key Management (Issuer)'"
[resource]="'Key Management'"
></app-auto-select>
<app-auto-select
[label]="'Issuance Protocol'"
[resource]="'Issuance Protocol'"
></app-auto-select>
<app-auto-select
[label]="'Presentation Protocol'"
[resource]="'Presentation Protocol'"
></app-auto-select>

<app-auto-select
[label]="'Trust Management'"
[resource]="'Trust Management'"
Expand Down
2 changes: 2 additions & 0 deletions viewer/src/app/resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ export interface Resources {
'Key Management': Format;
'Revocation Algorithm': Format;
'Signing Algorithm': Format;
'Issuance Protocol': Format;
'Presentation Protocol': Format;
'Trust Management': Format;
}

Expand Down
6 changes: 3 additions & 3 deletions viewer/src/schemas/Credential-Format.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"Credential Format": {
"type": "string",
"description": "Unique identifier of the credential format."
"description": "Unique identifier of the credential format"
},
"Implementation Support (e.g. Libraries) / Active Community": {
"$ref": "defs.json#/definitions/Implementation-Support"
Expand All @@ -28,7 +28,7 @@
},
"Encoding Scheme": {
"type": "string",
"description": "Data encoding on the storage layer which applies to this credential format."
"description": "Data encoding on the storage layer which applies to this credential format"
},
"Rich Schemas/Semantic": {
"allOf": [
Expand Down Expand Up @@ -57,7 +57,7 @@
},
{
"description": "Is the credential format capable of selective disclosure - presenting or revealing a subset of claims/attributes - without relying on architecture and protocol solutions like Just-in-Time issuance or a presentation transformation by a trusted third party?",
"$comment": "Do we need to ask if kind of selective disclosure reveals more information like it should? Like using SD-JWT, the verifier can see that the value came from the same credential like in the past, but this is not the case for Anoncreds."
"$comment": "Do we need to ask if kind of selective disclosure reveals more information like it should? Like using SD-JWT, the verifier can see that the value came from the same credential like in the past, but this is not the case for Anoncreds"
}
]
},
Expand Down
51 changes: 35 additions & 16 deletions viewer/src/schemas/Credential-Profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
},
"Credential Profile is commonly called": {
"type": "string",
"description": "The name of the credential profile, as it is commonly called. This is the name that should be used to refer to the credential profile in other documents and discussions."
"description": "The name of the credential profile, as it is commonly called. This is the name that should be used to refer to the credential profile in other documents and discussions"
},
"Credential Profile Description": {
"type": "string",
"description": "A brief description of the credential profile."
"description": "A brief description of the credential profile"
},
"Credential Format": {
"type": "string",
"description": "The used credential format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The used credential format",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"ACDC (KERI)",
"AnonCred",
Expand All @@ -40,8 +40,8 @@
},
"Signing Algorithm": {
"type": "string",
"description": "The format of the signing algorithm. If possible this should be a link to a specification of the format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The format of the signing algorithm.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"BBS+ with public key binding",
"BoundBBS+",
Expand All @@ -54,8 +54,8 @@
},
"Revocation Algorithm": {
"type": "string",
"description": "The format of the revocation algorithm. If possible this should be a link to a specification of the format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The format of the revocation algorithm.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"BBF18-cryptographic accumulator based on RSA",
"CRL - certificate revocation list",
Expand All @@ -73,8 +73,8 @@
},
"Key Management (Issuer)": {
"type": "string",
"description": "The format of the key management. If possible this should be a link to a specification of the format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The format of the key management.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
".well-known/jwt-issuer",
"cose key",
Expand All @@ -97,8 +97,8 @@
},
"Key Management (Holder)": {
"type": "string",
"description": "The format of the key management. If possible this should be a link to a specification of the format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The format of the key management.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
".well-known/jwt-issuer",
"cose key",
Expand All @@ -119,10 +119,29 @@
"raw public keys (none jwk)"
]
},
"Issuance Protocol": {
"type": "string",
"description": "The format of the issuance protocol.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"ACDC",
"ISO 23220-3",
"Issue Credential v2",
"OpenID4VCI"
]
},
"Presentation Protocol": {
"type": "string",
"description": "The format of the presentation protocol.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"OpenID4VP"
]
},
"Trust Management": {
"type": "string",
"description": "The format of the trust management. If possible this should be a link to a specification of the format.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder.",
"description": "The format of the trust management.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"EBSI Trust Registries",
"IRMA (Yivi) Schemes",
Expand All @@ -136,14 +155,14 @@
},
"Formal Specification": {
"type": "string",
"description": "A link to a formal specification of the credential profile."
"description": "A link to a formal specification of the credential profile"
},
"IPR Policy": {
"description": "What is the policy regarding intellectual properties associated with this technology?"
},
"Implementations": {
"type": "string",
"description": "A list of implementations of this technology."
"description": "A list of implementations of this technology"
}
},
"required": [
Expand Down
20 changes: 20 additions & 0 deletions viewer/src/schemas/Issuance-Protocol.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/openwallet-foundation/credential-format-comparison-sig/main/viewer/src/schemas/Issuance-Protocol.json",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"$ref": "defs.json#/definitions/Schema"
},
"Issuance Protocol": {
"type": "string",
"description": "Unique identifier of the issuance protocol"
},
"Specification": {
"$ref": "defs.json#/definitions/Specification"
}
},
"required": ["$schema", "Issuance Protocol"],
"title": "IssuanceProtocol"
}
6 changes: 3 additions & 3 deletions viewer/src/schemas/Key-Management.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"Key Management": {
"type": "string",
"description": "Unique identifier of the method."
"description": "Unique identifier of the method"
},
"Implementation Support (e.g. Libraries) / Active Community": {
"$ref": "defs.json#/definitions/Implementation-Support"
Expand Down Expand Up @@ -46,7 +46,7 @@
"$ref": "defs.json#/definitions/Filter"
},
{
"description": "Is it possible to retain and obtain the history of keys related to a certain identifier? In case of key rotation it is important for signed credentials to request older keys that are not used for signing anymore."
"description": "Is it possible to retain and obtain the history of keys related to a certain identifier? In case of key rotation it is important for signed credentials to request older keys that are not used for signing anymore"
}
]
},
Expand All @@ -56,7 +56,7 @@
"enum": ["issuer", "holder"]
},
"description": "What party may uses this technique?",
"$comment": "We are not looking at verifiers here, since e.g. the identification of the verifier is not part of the credential comparison matrix."
"$comment": "We are not looking at verifiers here, since e.g. the identification of the verifier is not part of the credential comparison matrix"
}
},
"required": ["$schema", "Key Management"],
Expand Down
20 changes: 20 additions & 0 deletions viewer/src/schemas/Presentation-Protocol.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/openwallet-foundation/credential-format-comparison-sig/main/viewer/src/schemas/Presentation-Protocol.json",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"$ref": "defs.json#/definitions/Schema"
},
"Presentation Protocol": {
"type": "string",
"description": "Unique identifier of the presentation protocol"
},
"Specification": {
"$ref": "defs.json#/definitions/Specification"
}
},
"required": ["$schema", "Presentation Protocol"],
"title": "PresentationProtocol"
}
4 changes: 2 additions & 2 deletions viewer/src/schemas/Revocation-Algorithm.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"Revocation Algorithm": {
"type": "string",
"description": "Unique identifier of the algorithm."
"description": "Unique identifier of the algorithm"
},
"Implementation Support (e.g. Libraries) / Active Community": {
"$ref": "defs.json#/definitions/Implementation-Support"
Expand Down Expand Up @@ -38,7 +38,7 @@
},
"Category": {
"type": "string",
"description": "Algorithm that behind the implementation of the revocation (Bitlist = each credential has a position in the list. Deny-List: revoked credentials will be added on demand. Accumulator: cryptographic proof the holder presents to show that the credential is not revoked)."
"description": "Algorithm that behind the implementation of the revocation (Bitlist = each credential has a position in the list. Deny-List: revoked credentials will be added on demand. Accumulator: cryptographic proof the holder presents to show that the credential is not revoked)"
},
"Performance": {
"type": "string",
Expand Down
4 changes: 2 additions & 2 deletions viewer/src/schemas/Signing-Algorithm.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"Signing Algorithm": {
"type": "string",
"description": "A unique identifier for the signing algorithm."
"description": "A unique identifier for the signing algorithm"
},
"Implementation Support (e.g. Libraries) / Active Community": {
"$ref": "defs.json#/definitions/Implementation-Support"
Expand Down Expand Up @@ -47,7 +47,7 @@
"$ref": "defs.json#/definitions/Filter"
},
{
"description": "Is the Signing Algorithm supported by common hardware-backed cryptographic implementations, such as Secure Elements, SecureEnclave, HSM, Strongbox, TEE, TPM.",
"description": "Is the Signing Algorithm supported by common hardware-backed cryptographic implementations, such as Secure Elements, SecureEnclave, HSM, Strongbox, TEE, TPM",
"$comment": "Using different approaches can lead to different results when choosing key lengths or performance measurements"
}
]
Expand Down
4 changes: 2 additions & 2 deletions viewer/src/schemas/Trust-Management.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"Trust Management": {
"type": "string",
"description": "A unique identifier for the trust management approach."
"description": "A unique identifier for the trust management approach"
},
"Implementation Support (e.g. Libraries) / Active Community": {
"$ref": "defs.json#/definitions/Implementation-Support"
Expand All @@ -25,7 +25,7 @@
},
"Description": {
"type": "string",
"description": "Explanation or link to a source how this trust management approach works."
"description": "Explanation or link to a source how this trust management approach works"
}
},
"required": ["$schema", "Trust Management"],
Expand Down