Skip to content

Commit

Permalink
limit scope of signature format
Browse files Browse the repository at this point in the history
  • Loading branch information
aweiteka committed Oct 14, 2016
1 parent 7429e49 commit fe5c98c
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 119 deletions.
93 changes: 93 additions & 0 deletions docs/signature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Image Signature Specification

**Version 0.1**

## Introduction

This document defines a detached container image signature object and signing methods.

## Signature Format

```js
{
"critical": {/* required fields */
"identity": {/* identity reference */},
"image": {/* signed object reference */ },
"type": "..."
},
"optional": {/* optional metadata fields */}
}
}
```

### Fields

There are two top-level fields, **critical** (required) and **optional** (optional).

#### `critical`

**identity** (string):

```js
{
"docker-reference": imageName
}
```

`imageName` per [V2 API](https://docs.docker.com/registry/spec/api/#/overview) Required.

**image** (string):

```js
{
"docker-manifest-digest": manifestDigest
}
```

`manifestDigest` in the form of `<algorithm>:<hashValue>`

**type** (string): Only supported value is "atomic container signature"

#### `optional`

**creator** (string): Creator ID. This refers to the tooling used to generate the signature.

**timestamp** (int64): timestamp epoch

### Example

```js
{
"critical": {
"identity": {
"docker-reference": "busybox"
},
"image": {
"docker-manifest-digest": "sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6"
},
"type": "atomic container signature"
},
"optional": {
"creator": "atomic 0.1.0-dev",
"timestamp": 1471035347
}
}
```

### Encryption and Decryption

The signature data is written to a file that is encrypted and signed with a private key. The file may be decrypted (verified) using the corresponding public key.

**Example GPG Sign command**

Given signature file busybox.sig formatted per above:

```
$ gpg2 -r KEYID --encrypt --sign busybox.sig
```

**Example GPG Verify command**

```
$ gpg2 --decrypt busybox.sig.gpg
```
1 change: 0 additions & 1 deletion signature/README.md

This file was deleted.

118 changes: 0 additions & 118 deletions signature/spec/README.md

This file was deleted.

0 comments on commit fe5c98c

Please sign in to comment.