Skip to content

Commit 3af1829

Browse files
committed
more cleanup
1 parent 33b35d3 commit 3af1829

File tree

5 files changed

+36
-37
lines changed

5 files changed

+36
-37
lines changed

docs/manifest/reading/legacy.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,25 @@ title: Reading legacy manifest data
55

66
As much as possible, an application should **write** manifest data that conforms to the recent [version 2.2](https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html) C2PA technical specification, but should be able to **read and validate** manifest data that conforms to earlier versions of the specification. This ensures that your application is "backward-compatible" and can still validate older assets with claims that were written in the past.
77

8-
<div class="review-comment">
9-
For READING old claims (only) … v1 actions and ingredients
10-
</div>
11-
128
## Legacy ingredients
139

1410
Existing manifests may contain any of these three kinds of ingredients:
1511
- V1, with label `c2pa.ingredient` (deprecated).
1612
- V2, with label `c2pa.ingredient.v2` (deprecated).
17-
- V3, with label `c2pa.ingredient.v3`, which addresses the issue of validating ingredients after redaction.
13+
- V3, with label `c2pa.ingredient.v3`, which addresses the issue of validating ingredients after redaction.
14+
15+
<div class="review-comment">
16+
What should we say about reading v1 and v2 ingredients?
17+
</div>
1818

1919
## Legacy actions
2020

2121
Existing manifests may contain two versions of actions: original v1 actions, with label `c2pa.actions`, and revised v2 actions, with label `c2pa.actions.v2`. While a v1 action is fully specified in its actions array, a v2 action may either be fully specified in an element of the actions array or it may be derived from an element in the templates array with the same action name.
2222

23+
<div class="review-comment">
24+
What should we say about reading v1 actions?
25+
</div>
26+
2327
## Legacy metadata assertions
2428

2529
Existing manifests may contain individual assertions for each metadata standard:
@@ -29,7 +33,6 @@ Existing manifests may contain individual assertions for each metadata standard:
2933

3034
In the latest version of the SDK, Exif and IPTC assertions are now CAWG assertions, and the CreativeWork assertion is not supported at all.
3135

32-
3336
### Exif assertion
3437

3538
Exchangeable image file (Exif) format is a standard for storing technical metadata in image files of JPEG, TIFF, PNG, and other formats. Most digital cameras (including smartphones), scanners and other digital capture devices use Exif to store information such as device make and model, shutter speed, ISO number, date and time of capture, location, and so on. For more information on Exif, see the [Exif specification](https://www.cipa.jp/std/documents/download_e.html?DC-008-Translation-2019-E).
@@ -139,7 +142,7 @@ For example:
139142
]
140143
```
141144

142-
## Training and data mining assertion
145+
## Legacy training and data mining assertion
143146

144147
Old manifests may have training and data mining assertions with the following entry keys:
145148
- `c2pa.data_mining`

docs/manifest/reading/reading-cawg-id.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,25 @@ title: Reading CAWG identity assertions
55

66
The [Creator Assertions Working Group (CAWG)](https://cawg.io/) identity assertion enables a credential holder to prove control over a digital identity and to use that identity to document a content creator’s role(s) in a C2PA asset’s lifecycle.
77

8-
<div class="review-comment">
9-
Revise to focus on reading these assertions.
10-
</div>
11-
128
The SDK can read and validate CAWG identity assertions provided:
139

1410
- Using an [X.509 certificate](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures) to sign the identity claims. Enterprises or large organizations can use this approach to assert their identity in a particular trust ecosystem; for example, a news organization or publisher. The SDK can validate and sign these claims.
1511
- Using an [identity claim aggregator](https://cawg.io/identity/1.1/#_identity_claims_aggregation). Individuals can use this approach to document their role in creating an asset by using identity signals collected and verified by a third-party aggregator. The SDK can validate these claims only. Signing is not supported.
1612

17-
## Identity assertions provided using an X.509 certificate
18-
19-
In an identity assertion by using an X.509 certificate, the value of `signer_payload.sig_type` is `cawg.x509.cose`. The signature value must be a COSE signature as described in the [CAWG Identity Assertion technical specification](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures).
13+
## Assertions signed using a certificate
2014

21-
## Identity assertions provided using a claim aggregator
15+
In an identity assertion provided by using an X.509 certificate, the value of `signer_payload.sig_type` is `cawg.x509.cose`. The signature value must be a COSE signature as described in the [CAWG Identity Assertion technical specification](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures).
2216

23-
As defined in the [CAWG Identity Assertion technical specification](https://cawg.io/identity/1.1/#_identity_claims_aggregation), an identity assertion can be signed using a trusted third-party intermediary known as a _identity claims aggregator_ to gather these signals and to restate them on their behalf.
17+
## Assertions signed using a claim aggregator
2418

25-
The identity claims aggregator:
19+
An identity assertion can also be signed using a trusted third-party intermediary known as an [_identity claims aggregator_](https://cawg.io/identity/1.1/#_identity_claims_aggregation). The identity claims aggregator:
2620

2721
- Collects and verifies identity attestation claims from various identity providers such as social media sites and ID verification vendors.
2822
- Creates a unique asset-specific credential that binds the identity attestation claims to a specific asset.
2923

30-
## Identity assertion
24+
In an identity assertion provided by using an identity clarims aggregator, the value of `signer_payload.sig_type` is `cawg.identity_claims_aggregation`.
25+
26+
### Example
3127

3228
An identity assertion using an identity claims aggregator has this general form in JSON:
3329

@@ -65,7 +61,7 @@ An identity assertion using an identity claims aggregator has this general form
6561
]
6662
```
6763

68-
### Verified identity types
64+
## Verified identity types
6965

7066
The following table describes the allowed values of the `type` property of `verifiedIdentities` array elements.
7167

docs/manifest/writing/assertions-actions.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,19 @@ The standard form of an assertion in a JSON manifest is:
3131
Changes include:
3232
- `c2pa.data_mining` > `cawg.data_mining`, etc. were renamed, with xref.
3333
- `SoftwareAgent` is a [ClaimGeneratorInfo](../json-ref/manifest-def.mdx#claimgeneratorinfo) structure instead of a string.
34-
35-
- Actions are now V3 actions
3634
- Ingredients are now V2 ingredients
3735

3836
#### V2 actions
3937

4038
The [C2PA Technical Specification](https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_actions) describes expanded v2 actions. While v1 actions are fully specified in the actions array v2 actions may either be specified by an element of the actions array or from an element in the templates array with the same action name.
4139

4240
<div class="review-comment">
43-
The CAI APIs can read all v2 actions and write most v2 actions.
41+
The CAI APIs can read all v2 actions and write most v2 actions. What v2 actions can it NOT write?
4442
</div>
4543

4644
V1 actions have a label of `c2pa.actions` v2 actions have a label of `c2pa.actions.v2`. Actions are modelled after XMP ResourceEvents, but with a number of C2PA-specific adjustments.
4745

48-
v1 actions are fully specified in its actions array. However, in v2, an action may either be fully specified in an element of the actions array or it may be derived from an element in the templates array with the same action name.
46+
V1 actions are fully specified in its actions array. However, a v2 action may either be fully specified in an element of the actions array or it may be derived from an element in the templates array with the same action name.
4947

5048
## C2PA standard assertions
5149

@@ -105,7 +103,7 @@ Update assertions
105103
106104
-->
107105

108-
### Actions
106+
## Actions
109107

110108
An action is an assertion that provides information about creation, edits, and other things that have occurred to an asset. In the manifest, an `actions` assertion is an array of [AssertionDefinition](../json-ref/manifest-def.mdx#assertiondefinition) objects. For example:
111109

@@ -137,13 +135,13 @@ Each object in the `actions` array has the following standard properties.
137135
| `softwareAgent` | No | The software or hardware used to perform the action. | `"Adobe Firefly"` |
138136
| `parameters` | No | Additional information describing the action; see [Parameters](#parameters) | Reference to ingredients in the `org.cai.ingredientIds` array. |
139137

140-
#### Action names
138+
### Action names
141139

142140
The value of the `action` property must be either one of the pre-defined [standard C2PA action strings](https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_actions) of the form `c2pa.*` or a custom action name. The set of standard C2PA actions includes fundamental ones as `c2pa.created` for when an asset is first created, and others (`c2pa.cropped`, `c2pa.resized`, and so on) for when an asset's content is modified in some way.
143141

144142
For the complete list of standard actions, see the [C2PA Technical Specification](https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_actions).
145143

146-
#### Digital source type
144+
### Digital source type
147145

148146
Use the `digitalSourceType` property to specify how an asset was created or modified, for example "digital capture", "digitized from negative," or "trained algorithmic media."
149147

@@ -172,7 +170,7 @@ The value of `digitalSourceType` is one of the URLs specified by the Internation
172170
This table is provided for convenience. For the authoritative list, see the [IPTC NewsCodes Digital Source Type scheme (controlled vocabulary)](https://cv.iptc.org/newscodes/digitalsourcetype/).
173171
:::
174172

175-
#### Generative AI action
173+
### Generative AI action
176174

177175
To specify that an asset was created using generative AI, use the `c2pa.created` action with `digitalSourceType` that's one of:
178176
- `trainedAlgorithmicMedia` for an asset created by generative AI tools.
@@ -201,7 +199,7 @@ For other possible values of `digitalSourceType`, see [Digital source type](#dig
201199

202200
Where `<TOOL_NAME>` is the name of the generative AI tool or service.
203201

204-
#### Parameters
202+
### Parameters
205203

206204
The `parameters` property can contain any data that provide more details on the action, for example:
207205

@@ -415,7 +413,7 @@ For example:
415413
Assertions with the `cawg.training-mining` label provide information about whether an asset with C2PA metadata may be used as part of a data mining or AI/ML (artificial intelligence / machine learning) workflows, including whether permission is granted to use an asset in ML training or inference.
416414

417415
:::note
418-
Training and data mining assertions formerly had `c2pa.*` labels.
416+
Training and data mining assertions formerly had `c2pa.*` labels. See [Legacy training and data mining assertion](../reading/legacy.md#legacy-training-and-data-mining-assertion) for more information.
419417
:::
420418

421419

docs/manifest/writing/cawg-id.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,18 @@ id: cawg-id
33
title: Writing CAWG identity assertions
44
---
55

6-
The [Creator Assertions Working Group (CAWG)](https://cawg.io/) identity assertion enables a credential holder to prove control over a digital identity and to use that identity to document a content creator’s role(s) in a C2PA asset’s lifecycle.
6+
The [Creator Assertions Working Group (CAWG)](https://cawg.io/) identity assertion enables a credential holder to prove control over a digital identity and to use that identity to document a content creator’s role(s) in an asset’s lifecycle.
77

8-
The SDK can write and sign claims for CAWG identity assertions provided using an [X.509 certificate](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures) to sign the identity claims. Enterprises or large organizations can use this approach to assert their identity in a particular trust ecosystem; for example, a news organization or publisher. The SDK can validate and sign these claims.
8+
The SDK can write and sign claims for CAWG identity assertions provided using an [X.509 certificate](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures).
99

1010
:::note
11-
CAWG identity assertions can also be created using an [identity claim aggregator](https://cawg.io/identity/1.1/#_identity_claims_aggregation), but the SDK only read and validate claims for these kinds of assertions. It cannot write them.
11+
CAWG identity assertions can also be created using an [identity claim aggregator](https://cawg.io/identity/1.1/#_identity_claims_aggregation), but the SDK only _read and validate_ claims for these kinds of assertions. It cannot write them.
1212
:::
1313

1414
## Using an X.509 certificate
1515

1616
When providing an identity assertion by using an X.509 certificate, the value of `signer_payload.sig_type` must be `cawg.x509.cose`. The signature value must be a COSE signature as described in the [CAWG Identity Assertion technical specification](https://cawg.io/identity/1.1/#_x_509_certificates_and_cose_signatures).
1717

18-
## Identity assertion
19-
2018
An identity assertion using an identity claims aggregator has this general form in JSON:
2119

2220
```json
@@ -53,7 +51,7 @@ An identity assertion using an identity claims aggregator has this general form
5351
]
5452
```
5553

56-
### Verified identity types
54+
## Verified identity types
5755

5856
The following table describes the allowed values of the `type` property of `verifiedIdentities` array elements.
5957

@@ -69,7 +67,7 @@ The following table describes the allowed values of the `type` property of `veri
6967
The above table is based on the [CAWG identity assertion technical specifications](https://cawg.io/identity/1.1/#vc-credentialsubject-verifiedidentity-type).
7068
:::
7169

72-
### Example
70+
## Example
7371

7472
```json
7573
"assertions": [

docs/manifest/writing/ingredients.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ title: Writing ingredients
77

88
Digital assets are often not created entirely from scratch, but instead created from one or more existing assets, for example placing an image into a layer in Photoshop. Such constituent assets are called _ingredients_.
99

10-
Old manifests may contain deprecated v1 and v2 ingredients, but applications should only write v3 ingredients.
10+
[Old manifests](../reading/legacy.md) may contain deprecated v1 and v2 ingredients, but applications should only write v3 ingredients.
11+
12+
<div class="review-comment">
13+
This page should cover only v3 ingredients.
14+
</div>
1115

1216
:::note
1317
The C2PA Technical Specification describes _ingredient assertions_ but the CAI SDK treats ingredients separately as their own objects in the JSON manifest rather than as a type of assertion.

0 commit comments

Comments
 (0)