13 Commits

Author SHA1 Message Date
Jonathan Boulle 9685f37575 *: adjust copyright header
Inspired by a similar change in the Kubernetes project [1], this changes
the copyright header to the more generic "The rkt Authors" rather than
"CoreOS, Inc.", which is only sometimes correct.

https://github.com/GoogleCloudPlatform/kubernetes/commit/6b3a6e6b983f967c88d14d26542ec6e30c49ebd3
2015-05-03 14:29:15 -07:00
Krzesimir Nowak 21ccdbd1cd *: Standardize on "system" and "local" configuration
So "vendor" config becomes "system" and "custom" one - "local".
2015-04-22 13:26:59 +02:00
Krzesimir Nowak 8b7c134be4 keystore: Make it easy to create keystore config 2015-04-22 12:18:41 +02:00
Jonathan Boulle 79753c9b19 *: rocket -> rkt 2015-03-31 16:31:21 -07:00
Vito Caputo c2ec98e25e keystore: improve fingerprint mismatch error message
Show the filename & fingerprint for the mismatching key to assist
troubleshooting.
2015-03-23 15:08:56 -07:00
Brandon Philips 62bd3ec5be pkg: keystore: default to 0755 for keystore
There is nothing private about our collection of public keys. Make it
world-readable by default. This makes it possible to fetch containers as
non-root users.
2015-03-09 03:05:44 -04:00
Vincent Batts aea9f30a59 pkg/keystore: error for no sigs in *.sig
if the Reader for the *.sig is without an armored signature, then the
returned error is just EOF. Not helpful.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2015-02-10 21:36:35 +01:00
Jonathan Boulle 72395d1ffa *: vendor appc spec
Take two at getting the spec vendored into Rocket with Godep.
Since actool is used during the construction of the stage1.aci, it
really needs to be vendored too to prevent any unexpected divergence
between whatever version the user happens to have in their PATH. Thus,
we introduce a silly dummy package (stage1/dummy.go) to coerce Godep
into vendoring actool. This also requires a slight rearrangement of the
appc repo, moving some functionality from actool itself into the aci
package.
2015-02-05 14:36:40 +01:00
Jonathan Boulle 6d58c1fd17 *: add missing godocs and copyright headers
Also moves pkg/util/aci.go -> pkg/aci/aci.go for simplicity and
consistency with the other pkgs.
2015-01-24 19:03:56 -08:00
Kelsey Hightower bad73895c9 fetch: add signature validation
Currently rocket does not perform signature validation for ACI images.

Fix the issue by validating all ACI images during the initial download.

Example Usage:

```
$ sudo rkt run example.com/hello:0.0.1
rkt: starting to discover app img example.com/hello:0.0.1
...
rkt: example.com/hello:0.0.1 verified signed by:
  Kelsey Hightower (ACI signing key) <kelsey.hightower@coreos.com>
```

This patch introduces a new global flag `-insecure-skip-verify`, which
disables signature validation for a single run.

```
$ sudo rkt -insecure-skip-verify run example.com/hello:0.0.1
...
```

This patch changes the behaviour of the fetch and run subcommands. By
default rocket will attempt to verify all ACI images and fail if the
detached signature is missing.

This patch also includes a new tutorial on how to sign, host, and verify
ACI images.
2015-01-12 23:40:33 -08:00
Simone Gotti ce302c1a72 keystore: tests: remove the whole temporary directory.
removeKeyStore removes only the files known in Config.
Drop it and just defer the removal of the whole temp dir.
2015-01-06 16:41:39 +01:00
Jonathan Boulle 6dece1122d *: add license header to all source files
h/t @johndeng for raising this in #305
2014-12-29 17:34:05 -08:00
Kelsey Hightower a3e710bd86 add support for managing opengpg keys and ACI signature validation
This patch adds support for managing trusted opengpg keys in a keystore backed
by the local filesystem. Trusted keys are stored in following directories by
default:

* /etc/rkt/trustedkeys/root.d
* /etc/rkt/trustedkeys/prefix.d
* /usr/lib/rkt/trustedkeys/root.d
* /usr/lib/rkt/trustedkeys/prefix.d

Each trusted key is stored using the key fingerprint as the name and the key
in OpenPGP ASCII Armor format as the contents.

OS vendors can store system-wide trusted keys in the trusted keys directories
under /usr, which can be overridden by creating an empty file under /etc with a
matching name (fingerprint).

This patch also adds support for validating ACI signatures against trusted keys
found in the local keystore.

Fixes #215
2014-12-24 02:40:55 -05:00