Skip to content

Commit

Permalink
grammar changes to some specifications
Browse files Browse the repository at this point in the history
  • Loading branch information
JLoveUOA committed Oct 2, 2024
1 parent 4159dd1 commit bc36fcf
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 46 deletions.
2 changes: 1 addition & 1 deletion EncryptedRO-Crate.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ReadingEncryptedRO-Crate.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
60 changes: 16 additions & 44 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,6 @@ Based on : [https://github.com/workflowhub-eu/about/tree/master/Workflow-RO-Crat

# GPG Crate (DRAFT)

<!-- https://signposting.org/FAIR/ markup --->

<!-- <link href="https://github.com/ResearchObject/ro-crate/blob/profiles/docs/1.2-DRAFT/profiles.md" rel="type" />
<link href="http://purl.org/dc/terms/Standard" rel="type" />
<link href="https://schema.org/CreativeWork" rel="type" />
<link href="https://spdx.org/licenses/BSD-3-Clause" rel="license" />
<link href="ro-crate-metadata.json" rel="describedby" type='application/ld+json; profile="https://w3id.org/ro/crate"' />
<link href="ro-crate-metadata.jsonld" rel="describedby" type='application/ld+json; profile="https://w3id.org/ro/crate"' />
<link href="ro-crate-preview.html" rel="describedby" type='text/html' /> -->

<!-- repeat of hasPart in RO-Crate -->
<!-- <link href="index.html" rel="item" />
<link href="licenses/" rel="item" />
<link href="languages/" rel="item" />
<link href="example/" rel="item" />
<link href="https://w3id.org/ro/crate/1.1/context" rel="item" />
<link href="https://pypi.org/project/rocrate/" rel="item" />
<link href="https://github.com/inab/WfExS-backend/" rel="item" />
<link href="https://www.nationalarchives.gov.uk/PRONOM/x-fmt/263" rel="item" />
<link href="https://workflowhub.eu/" rel="item" />
<link href="https://bioschemas.org/ComputationalWorkflow" rel="item" />
<link href="https://bioschemas.org/FormalParameter" rel="item" />
<link href="http://schema.org/HowTo" rel="item" />
<link href="http://schema.org/ImageObject" rel="item" />
<link href="https://github.com/KockataEPich/CheckMyCrate/blob/master/CheckMyCrate/profile_library/ro_crate_1.1_basic.json" rel="item" /> -->

<!-- ![GPG RO-Crate]({{ '/assets/img/ro-crate-workflow.svg' | relative_url }}) -->

* Permalink: `TODO`
Expand Down Expand Up @@ -80,13 +52,13 @@ If a data entity has associated sensitive metadata these SHOULD be created as se

Any *EncryptedContextEntity* MAY OPTIONALLY contain `EncryptedContextEntity` in its type. *(as almost any type of entity MAY be an encryptedcontextentity with their original typing to be retained unchanged, for this reason EncryptedContextEntities SHOULD be defined programmatically in the library writing or reading the crate rather by their @type)*.

Any *EncryptedContextEntity* MUST have a least one entity as a `recipient` and that *recipient* MUST have at least one valid gpg public key fingerprint listed via the `pubkeyFingerprints` property.
Any *EncryptedContextEntity* MUST have a least one entity as a `recipient` and that *recipient* MUST have at least one valid gpg public key fingerprint listed via the `pubkey_fingerprints` property.

Values specified in an *EncryptedContextEntity*'s `recipients` property SHOULD refer to other context entities within the graph via the standard `"recipients":[{"@id":"<id>"}]` format. *(they should not be raw strings or references to external files)*.

Encrypted context entities MUST only exist in a decrypted state only while in memory.

Once the crate is written to disk as `ro_crate_metadata.json` *EncryptedContextEntities* are aggregated based on common sets of `recipient` `pubkeyFingerprints` and written as the `encrypted_graph` property of an `EncryptedGraphMessage`.
Once the crate is written to disk as `ro_crate_metadata.json` *EncryptedContextEntities* are aggregated based on common sets of `recipient` `pubkey_fingerprints` and written as the `encrypted_graph` property of an `EncryptedGraphMessage`.

When data is decrypted from an *EncryptedGraphMessage* it MUST be decrypted into an *EncryptedContextEntity* it MAY be manually redesignated as a *Context Entity* later if the data is no longer to be encrypted.

Expand Down Expand Up @@ -126,15 +98,15 @@ An *EncryptedGraphMessage* that cannot be decrypted MAY be removed from the grap

An *EncryptedGraphMessage* SHOULD record its status via `"actionStatus"`. E.g. `'actionStatus":"PotentialActionStatus"` for a message that is yet to be decrypted or sent.

An *EncryptedGraphMessage* SHOULD record the message format of the message encrypted as `"encryptedGraph"` property via the `deliveryMethod` property.
An *EncryptedGraphMessage* SHOULD record the encryption message format of the message encrypted as `"encryptedGraph"` property via the `deliveryMethod` property.

An the `deliveryMethod` property of an *EncryptedGraphMessage* SHOULD point to a URI of a standard or documentation that provides context to identify and the message stored in `'encryptedGraph"` format, this SHOULD be sufficient to determine a decryption method for the message. For example "https://doi.org/10.17487/RFC4880" for PGP encrypted messages.
The `deliveryMethod` property of an *EncryptedGraphMessage* SHOULD point to a URI of a standard or documentation that provides context to identify the message stored in `'encryptedGraph"` format, this SHOULD be sufficient to determine a decryption method for the message. For example "https://doi.org/10.17487/RFC4880" for PGP encrypted messages.

Any *EncryptedGraphMessage* MUST list all `"recipients"` matching the complete set of `"recipients"` of any *EncryptedContextEntities* that were aggregated and encrypted as part of the *EncryptedGraphMessage*.

Values specified in an *EncryptedGraphMessage*s `"recipients"` property SHOULD refer to other context entities within the graph via the `"recipients":[{"@id":"<id>"}]` format. *(they should not be raw strings or references to external files)*

`"recipients"` of an *EncryptedGraphMessage* SHOULD refer to the complete set of private key holders that are able to decrypt the message stored in `"encryptedGraph"`. They MAY list contact information to identify these individuals and MAY identify their public keys via `"pubkeyFingerprints".
`"recipients"` of an *EncryptedGraphMessage* SHOULD refer to the complete set of private key holders that are able to decrypt the message stored in `"encryptedGraph"`. They MAY list contact information to identify these individuals and MAY identify their public keys via `"pubkey_fingerprints".

## Recipients

Expand All @@ -144,11 +116,11 @@ A *Recipient* SHOULD be of the type `"ContactPoint"` `"Person"` and/or `"Audienc

*Recipients* and MAY refer back to a*EncryptedGraphMessage*s and *EncryptedContextEntities* using the `"recipientOf"` property.

*Recipients* of *EncryptedGraphMessage*s and *EncryptedContextEntities* MUST store at least one public key fingerprint via the `pubkeyFingerprints` property.
*Recipients* of *EncryptedGraphMessage*s and *EncryptedContextEntities* MUST store at least one public key fingerprint via the `pubkey_fingerprints` property.

The fingerprints stored via *Recipients*' `pubkeyFingerprints` MUST refer to public keys accessible to the system writing the *crate* either locally or via a keyserver.
The fingerprints stored via *Recipients*' `pubkey_fingerprints` MUST refer to public keys accessible to the system writing the *crate* either locally or via a keyserver.

*Recipients* MAY list a keyserver from which the public keys matching their `pubkeyFingerprints` can be retrieved via `keyserver`.
*Recipients* MAY list a keyserver from which the public keys matching their `pubkey_fingerprints` can be retrieved via `keyserver`.

## Summary: Reading and Writing a GPG-Crate

Expand Down Expand Up @@ -228,14 +200,14 @@ A minimal example of _GPG Crate_ metadata, containing example sensitive banking
"actionStatus": "PotentialActionStatus",
"deliveryMethod": "https://doi.org/10.17487/RFC4880",
"encryptedGraph": "-----BEGIN PGP MESSAGE-----\n\nhF4DV/haefcwdMcSAQdAoKdyS9NBV6cXRw7oAYrWdfAXvhS6XSOnTav8H+IObwUw\nZhM6tfPBOiZQP4aQ5u/r222RZb/kdWyIm4Z88riSawm/Q6HgGOw61o4aqIpbFN3A\nhF4DVhe2+C+HB+0SAQdAdIAFPbC8ykXunE7NPG0WUL2uQLzRYrGc2AyCX0I8P3Iw\nRXlmAKkVZIy32KFVLW5LCI4aZvuE85csjqmX5tuXGNlmgqzIkcsTD2x/WAz2oqGQ\n1MBnAQkCENeUCJO2Pv/9lGTd2RXZAr5DvtvtWIZX+JvS2TkCxw1LPZ5kB/xWt/gQ\nNIzYqoM0s6g4MMXkON/ezZ7gU2Cqc+FaFflbtuAkN3telMZECcm7BIIp8fkFlHYe\nbE1d40tAq6ZEIfWKOykdNxjDqV3Va3+Ue+ZDUkte82SQnyO2xY1gYdk9VMGWbyDM\nYiuzbMEzZtyiwRWgHXag0jml4yQBMwCWHkLSrq5iyZVo+igQ+X3GXgpj3SD27Ef2\nKj/kdwxvhjH3nZovzT8eRipO42nvt6Gck4XGpRnNpX5uminNmCwjxz1obykj06oe\nbSP1Fk7D733wlv2JIJTr2804w0K+c7DbNX86/4ROaaiMnceKKL2IqAyeU5m6t4dj\nNMzgX3jvUtnA/w==\n=nUDI\n-----END PGP MESSAGE-----\n",
"recipients": [
{
"@id": "https://orcid.org/0000-0004-1818-0000"
},
{
"@id": "https://orcid.org/0000-0001-7760-1240"
}
]
"recipients": [
{
"@id": "https://orcid.org/0000-0004-1818-0000"
},
{
"@id": "https://orcid.org/0000-0001-7760-1240"
}
]
}
]
}
Expand Down

0 comments on commit bc36fcf

Please sign in to comment.