Skip to content

Commit 006aa55

Browse files
committed
updated based on review feedback
1 parent e31872e commit 006aa55

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

docs/signature-layout.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,32 @@ A common file layout for storing and serving signatures provides a consistent wa
44

55
## Specification
66

7-
**SCHEME://[URI]/PATH_PREFIX/REGISTRY/REPOSITORY/IMAGE@MANIFEST_DIGEST/signature-INT**
8-
9-
* **SCHEME**: The transport scheme, e.g. **file://** or **https://**
10-
* **URI**: For remote transport schemes, the signature server URI, e.g. **example.com**
11-
* **PATH_PREFIX**: The path to the base of the registry directory
12-
* **REGISTRY**: The registry URI and optional port, e.g. **registry.example.com:5000**
13-
* **REPOSITORY**: The repository namespace. May occur multiple times for registries that support multiple repository namespaces.
14-
* **IMAGE**: The name of the image
7+
This specification relies on [RFC3986](https://tools.ietf.org/html/rfc3986), focusing on defining a [path component](https://tools.ietf.org/html/rfc3986#section-3.3) to compose a concise URI reference to a signature.
8+
9+
**SCHEME[AUTHORITY]/PATH_PREFIX/IMAGE@MANIFEST_DIGEST/signature-INT**
10+
11+
**Definitions**
12+
13+
* **SCHEME**: URI scheme per [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1), e.g. **file://** or **https://**
14+
* **AUTHORITY**: An optional authority reference per [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2), e.g. **example.com**
15+
* **PATH_PREFIX**: An arbitrary base path to the image component
16+
* **IMAGE**: The name of the image per [v2 API](https://docs.docker.com/registry/spec/api/#/overview). This would typically take the form of registry/repository/image but is not required to have exactly three parts. There is no requirement to include a **:PORT** component but it should be included if part of the image reference.
1517
* **MANIFEST_DIGEST**: The value of the manifest digest, including the hash function and hash, e.g. **sha256:HASH**
1618
* **INT**: An integer of the signature starting with 1. For multiple signatures increment by 1, e.g. **signature-1**, **signature-2**.
1719

1820
## Examples
1921

2022
1. A reference to a local file signature
2123

22-
file:///var/lib/atomic/sigstore/registry.example.com:5000/acme/myimage@sha256:b1c302ecc8e21804a288491cedfed9bd3db972ac8367ccab7340b33ecd1cb8eb/signature-1
24+
file:///var/lib/containers/signatures/registry.example.com:5000/acme/myimage@sha256:b1c302ecc8e21804a288491cedfed9bd3db972ac8367ccab7340b33ecd1cb8eb/signature-1
2325
1. A reference to a signature on a web server
2426

2527
https://sigs.example.com/signatures/registry.example.com:5000/acme/myimage@sha256:b1c302ecc8e21804a288491cedfed9bd3db972ac8367ccab7340b33ecd1cb8eb/signature-1
2628
1. A reference to two signatures on a web server
2729

2830
https://sigs.example.com/signatures/registry.example.com:5000/acme/myimage@sha256:b1c302ecc8e21804a288491cedfed9bd3db972ac8367ccab7340b33ecd1cb8eb/signature-1
2931
https://sigs.example.com/signatures/registry.example.com:5000/acme/myimage@sha256:b1c302ecc8e21804a288491cedfed9bd3db972ac8367ccab7340b33ecd1cb8eb/signature-2
32+
33+
## Signature Indexing and Discovery
34+
35+
There is no signature indexing mechanism or service defined. Signatures are obtained by iterating with increasing indexes, stopping at first missing index.

0 commit comments

Comments
 (0)